JP3589699B2 - Data processing device and data processing system using the same - Google Patents

Data processing device and data processing system using the same Download PDF

Info

Publication number
JP3589699B2
JP3589699B2 JP10597294A JP10597294A JP3589699B2 JP 3589699 B2 JP3589699 B2 JP 3589699B2 JP 10597294 A JP10597294 A JP 10597294A JP 10597294 A JP10597294 A JP 10597294A JP 3589699 B2 JP3589699 B2 JP 3589699B2
Authority
JP
Japan
Prior art keywords
bus
data processing
address space
command
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP10597294A
Other languages
Japanese (ja)
Other versions
JPH07295922A (en
Inventor
直幹 三ツ石
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP10597294A priority Critical patent/JP3589699B2/en
Publication of JPH07295922A publication Critical patent/JPH07295922A/en
Application granted granted Critical
Publication of JP3589699B2 publication Critical patent/JP3589699B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【産業上の利用分野】
本発明は、データ処理装置にかかり、例えば動作の指示にコマンドを必要とするメモリ例えばフラッシュメモリを接続するマイクロコンピュータなどに適用して利用して有効な技術に関するものである。また、本発明はそのようなデータ処理装置を応用したシステムの評価又はそのシステムのためのソフトウェアのデバッグを行うエミュレータに関する。
【0002】
【従来の技術】
平成5年3月(株)日立製作所発行『H8/3003 ハードウェアマニュアル』に記載されるように、半導体集積回路でなるマイクロコンピュータは中央処理装置であるCPUのアドレス空間の一部または全部を外部アドレスとして、アドレスバス・データバス・制御信号を外部と入出力し、外部に接続したメモリまたはその他回路をリード/ライトできる。このとき、所定のレジスタの設定によって、アドレス空間を分割した領域に対応するエリアデコード信号例えばチップ選択信号を出力したり、ロウアドレス/カラムアドレスをマルチプレクスして出力したり、各種ストローブ信号の出力波形を変更したりして、マスクROM、スタティックRAM(SRAM)、疑似スタティックRAM(PSRAM)、ダイナミックRAM(DRAM)などの各種メモリを直接接続し、リード/ライトを可能にしている。
【0003】
【発明が解決しようとする課題】
しかしながら、リード/ライト時にメモリに与えられる又は読み出される、アドレス/データはメモリの記憶情報とは直接関係ない場合がある。例えば、1993年9月(株)日立製作所発行『日立ICメモリ2』pp280−304に記載されるフラッシュメモリのように、メモリの動作を指定するコマンドを予じめデータバスから与えなければならないものがある。
【0004】
図26には上記フラッシュメモリのコマンドの一例が示される。
同図においてWはライト動作、Rはリード動作、×は任意値、RAはリードアドレス、RDはリードデータ、BAはブロックアドレス、PAは書込みアドレス、PDは書込みデータ、H’は16進数を示す。ブロックアドレスBAはブロック単位での消去対象とされるブロックを指定するためのアドレス情報である。
例えば、書込みを行なう場合にはデータのライトに先だって、コマンド(H’10)をライトし、続いて、書込むべきアドレス(PA)に、書込むべきデータ(PD)のライトを行なうものである。
【0005】
CPUによる書込み動作のプログラム例を以下に示す。命令は上記平成5年3月(株) 日立製作所発行『H8/3003 ハードウェアマニュアル』に記載のCPUと同一にしてある。
MOV.B #CMD,R0L………(1)
MOV.B R0L,@FMEM……(2)
MOV.B #DATA,R0L……(3)
MOV.B R0L,@WADR……(4)
上記命令の記述において、CMDはコマンドの値(図26の例ではH’10)、DATAは書込みデータであり、#はイミディエイトデータを示す。また、FMEMはフラッシュメモリの任意のアドレス、WADRはライトアドレスである。@はメモリアドレスを示す。上記命令(1)はコマンドCMDをCPUのレジスタR0Lに転送する命令、(2)はレジスタR0Lのコマンドをフラッシュメモリのアドレス@FMEMに転送する命令、(3)はCPUのレジスタR0Lに書込みデータDATAを転送する命令、(4)はレジスタR0Lのデータを書込みアドレスWADRに転送する命令である。
【0006】
アドレスは絶対アドレスとして指定するほか、レジスタ間接などとすることができる。書込みデータも汎用レジスタ上に用意されていてもよい。上記命令記述から明らかなように、1バイトデータの書込みでは、コマンドをフラッシュメモリに書込むための命令(1),(2)が必要であるから、フラッシュメモリに対するデータ書込みに直接必要な命令に対して全体で2倍の命令実行が必要になる。これによって、プログラムサイズも増加し、処理速度も低下してしまう。
【0007】
CPUは任意のプログラムを実行できるので、上述のようにソフトウェアの負担増を覚悟すれば、コマンド方式によるフラッシュメモリへのデータ書込みなどを行うことができる。しかしながら、ダイレクトメモリアクセスコントローラ(DMAC)などは、単純なデータ転送のみが可能であり、アクセス対象が、例えばSRAMであるか、フラッシュメモリであるかを判定して、さらにコマンドを挿入するようなことは容易ではない。本発明者の検討によれば、その様なデータの書込みをDMACで実現しようとする場合、転送元には書込みデータと共にコマンドも格納しておかなければならず、実際にその様なことを行おうとすれば、DMA転送に先立つCPUの負担が格段に増大して、システムのスループットを著しく低下させてしまう。換言すれば、それは現実的な手法ではない。なお、DMACの例は上記平成5年3月(株)日立製作所発行『H8/3003 ハードウェアマニュアル』に記載されている。また、DMAC以外にも、データトランスファコントローラ(DTC)なども同様である。DTCは、例えば、昭和63年12月(株)日立製作所発行『H8/532 ハードウェアマニュアル』など記載されている。
【0008】
本発明の目的は、コマンドによって動作が指示されるフラッシュメモリなどの周辺回路に対するコマンド転送のためのバスサイクルを自動的に追加若しくは挿入できるデータ処理装置を提供することにある。
本発明の別の目的は、上記バスサイクルの自動的な追加若しくは挿入を所要の周辺回路に対するアクセスのためのバス情報に従って行うデータ処理装置を提供することにある。
本発明の別の目的は、上記バスサイクルの自動的な追加若しくは挿入を所定の内部レジスタに対する制御情報の書込みによって行うデータ処理装置を提供することにある。
本発明の更に別の目的は、コマンドによって動作が指示されるフラッシュメモリなどをの周辺回路をアクセスするための命令実行時間を短縮できると共に、プログラムサイズを小さくできるデータ処理装置を提供することにある。
本発明のその他の目的は、コマンドによって動作が指示されるフラッシュメモリなどの周辺回路に直結してそれをアクセスできるDMACなどのデータ処理装置を提供することにある。
また、本発明は、コマンド転送のためのバスサイクルを自動的に追加若しくは挿入できる上記データ処理装置の機能が当該データ処理装置を応用したシステムの評価やそのシステムのためのソフトウェアデバッグを行うエミュレータの使い勝手を低下させないようにする技術を提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0010】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
(1)外部バスを使用できるバスマスタ手段(例えばCPU2やDMAC3)を内蔵し、コマンドによって動作が指示される外部回路(例えばフラッシュメモリ10)と接続可能なデータ処理装置(例えばシングルチップマイクロコンピュータ1)であって、バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って、上記所定アドレス空間に対して上記外部回路の動作を指示するためのコマンドをライトする第1のコマンドライトサイクルを生成するバス制御手段(例えばバスコントローラ4)を備えて成る。
【0012】
(2)上記バス制御手段は、第1のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段(例えばレジスタCMDCR)と、バスマスタ手段によるアクセスアドレスが上記アドレス空間指定手段で指定されたアドレス空間に含まれるか否かを判定する判定手段(例えば制御回路41)と、判定手段による含まれるとの検出結果に基づいて上記第1のコマンドライトサイクルを生成するタイミング制御手段(例えば図17に示される構成を含むタイミング制御回路44)と、を含んで構成できる。
【0013】
(3)第1のコマンドライトサイクルによってライトすべきコマンドはコマンド記憶手段(例えばレジスタWCMD,CDATA0,CDATA1)に書換え可能に保持させておくことができる。
【0014】
(4)更に上記バス制御手段は、制御レジスタ手段(例えばレジスタCNTL)と、CPUが該制御レジスタ手段の第1のビット(例えばビットBE0〜BE3)を操作することによって所定のアドレス空間に所定のコマンドデータ(例えばフラッシュメモリのブロック消去のためのコマンド)をライトする第2のコマンドライトサイクルを生成するタイミング制御手段(例えば第19図に示される構成を含むタイミング制御回路44)とを更に備えることができる。
【0015】
(5)上記第2のコマンドライトサイクルで出力すべきアドレスはアドレス記憶手段(例えばレジスタBADR0〜BADR3)に格納させておくことができる。
【0016】
(6)更に上記バス制御手段は、CPUが上記制御レジスタ手段の第2のビット(例えばビットRE,ビットPOL)を操作することにより、所定の外部端子(例えばレディー入力端子READY)から入力される信号(例えばフラッシュメモリの出力信号RDY/BUSY*)の変化を待つポーリング制御を行うための外部リードサイクルを生成するタイミング制御手段(例えば第19図に示される構成を含むタイミング制御回路44)とさらに備えることができる。
【0017】
(7)エミュレーション用のデータ処理装置に対しては、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを設けることが望ましい。また、エミュレーション用のデータ処理装置においてそのCPUは外部からの所定の割込み(例えばブレーク信号)に基づき上記バス制御手段による上記第1のコマンドサイクルの生成を禁止させる制御信号を出力させるようにする。このようなデータ処理装置は、当該データ処理装置に含まれるエミュレーションインタフェースに結合されるエミュレータとによってデータ処理システムを構成することができる。上記エミュレータは、トレースメモリとブレーク制御回路を有し、トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、ブレーク制御回路は上記データ処理装置による制御状態が予じめ設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものである。
【0018】
(8)データ処理装置は、上記バスマスタ手段としてダイレクトメモリアクセスコントローラを更に備え、1個の半導体基板にシングルチップマイクロコンピュータとして形成構成することができる。このようなデータ処理装置は、例えば当該データ処理装置に直結された外部回路としてのフラッシュメモリを備えてデータ処理システムを構成することができる。
【0019】
(9)外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示されるフラッシュメモリと接続可能なデータ処理装置は、上記バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って上記所定アドレス空間に対して上記フラッシュメモリの動作を指示するためのコマンドをライトするコマンドライトサイクルを生成するバス制御手段と、上記コマンドライトによって指示されたフラッシュメモリの内部動作状態を示す信号の外部入力端子とを含んで、1個の半導体基板に形成して構成できる。
【0020】
【作用】
上記した手段(1)から(3)によれば、フラッシュメモリのような外部回路に割当てられた所定のアドレス空間がアクセスされると、そのアクセスに先立って、当該外部回路の動作を指示するコマンドをライトするための第1のコマンドライトサイクルが自動的に挿入される。このことは、例えばフラッシュメモリに対するバイト又はページ単位での書込みに際して毎回コマンドを書込むための処理とそれを規定するプログラム記述を不要にする。
【0021】
上記した手段(4),(5)によれば、内蔵制御レジスタの所定のビットがCPUによって操作されると、当該操作の次に、外部回路の動作を指示するコマンドをライトするための第2のコマンドライトサイクルが自動的に挿入される。このことは、例えばフラッシュメモリに対するブロック消去のような複数回に分けたコマンドライトが必要な場合にも、命令記述は制御レジスタに対する書込みなどを規定すればよく、このことが、上記同様データ処理効率の向上とプログラムサイズの縮小化とを実現する。
【0022】
上記手段(6)によれば、ポーリング制御のための外部リードサイクルをCPUによる内蔵制御レジスタの所定ビットの操作によって開始し維持することは、やはり上記同様外部バスサイクルの生成という点においてデータ処理効率の向上とプログラムサイズの縮小化とを実現する。
【0023】
上記した手段(7)によれば、上記特別に挿入されたコマンドライトサイクルは対応する命令記述が存在しないが、そのことが、トレース情報から命令実行軌跡を検証するエミュレーションの妨げにならに様に、上記識別信号は特別に挿入されたコマンドライトサイクルであることを指し示すように作用する。また、ブレークされた後にデータ処理装置の動作空間が切換えられてエミュレーションのためのコントロールプログラムが実行される状態において、コマンドライトサイクルを挿入すべきアドレスに重ねてコントロール用のRAMなどが割当てられるような場合、自動的にコマンドライトサイクルが発生して誤って当該RAMのデータが書換えられたりしないように作用し、コマンドライトサイクルを自動的に追加若しくは挿入できる上記データ処理装置の機能が当該データ処理装置を応用したシステムの評価やそのシステムのためのソフトウェアデバッグを行うエミュレータの使い勝手を低下させないようにする。
【0024】
上記した手段(8)に明示的に示されるようにバスマスタ手段がダイレクトメモリアクセスコントローラであっても、上記コマンドライトサイクルの自動挿入によって、ダイレクトメモリアクセスコントローラもそのようなコマンド形式のフラッシュメモリをデータ転送元又はデータ転送先として利用することを可能にする。
【0025】
上記した手段(9)のデータ処理装置によれば、コマンドによって動作が指示されるフラッシュメモリとのインタフェースの簡素化及び使い勝手の向上を達成する。
【0026】
【実施例】
図1には本発明に係るデータ処理装置の一実施例であるシングルチップマイクロコンピュータが示される。
同図に示されるシングルチップマイクロコンピュータ1は、CPU2、DMAC3、バスコントローラ(BSC)4、ROM5、RAM6、タイマ7、シリアルコミュニケーションインタフェース(SCI)8、第1乃至第9入出力ポートIOP1〜IOP9、クロック発振器(CPG)9の機能ブロック乃至はモジュールから構成され、公知の半導体製造技術により1つの半導体基板上に半導体集積回路として形成される。
【0027】
上記シングルチップマイクロコンピュータ1は、電源端子として、グランドレベル端子Vss、電源電圧レベル端子Vcc、その他専用制御端子として、リセット端子RES、スタンバイ端子STBY、モード制御端子MODE、クロック入力端子EXTAL、XTALを有する。それらは外部端子である。
クロック入力端子EXTAL、XTALに接続される、図示はされない水晶振動子に基づいて、クロック発振器9が生成するシステムクロックφ1、φ2に同期して、シングルチップマイクロコンピュータ1は動作する。或は外部クロックをEXTAL端子に入力してもよい。システムクロックφ1、φ2の1周期を1ステートと呼ぶ。システムクロックφ1、φ2はノン・オーバーラップの2相クロックとされ、φ2はφ1に対して実質的に反転若しくは位相が180°ずらされたクロックとされる。
【0028】
上記機能ブロックは、内部バスによって相互に接続される。内部バスはアドレスバス・データバスの他、リード信号、ライト信号、さらにバスサイズ信号、そしてシステムクロックφ1、φ2などを含む制御バスなどによって構成される。内部アドレスバスには、IAB、PABが存在し、内部データバスにはIDB、PDBが存在する。IAB、IDBはCPU2、ROM5、RAM6、バスコントローラ4、入出力ポートIOP1〜IOP9の一部に接続される。PAB、PDBはバスコントローラ4、タイマ7、SCI8、入出力ポートIOP1〜9に接続される。IABとPAB、IDBとPDBは、それぞれバスコントローラ4でインタフェースされる。特に制限されないが、PABとPDBはそれが接続されている機能ブロック内のレジスタアクセスに専ら用いられる。
【0029】
入出力ポートIOP1〜IOP9は、外部バス信号と、入出力回路の入出力信号との入出力に兼用とされている。これらは、動作モードあるいはソフトウエアの設定により、機能を選択されて、使用される。入出力ポートIOP1〜3はアドレスバス出力、入出力ポートIOP4及びIOP5はデータバス入出力、入出力ポートIOP6及びIOP7はバス制御信号と兼用されている。外部アドレス、外部データは、それぞれ、これらの入出力ポートに含まれる図示しないバッファ回路を介してIAB、IDBと接続されている。PAB、PDBは入出力ポートやバスコントローラ4などの内蔵レジスタをリード/ライトするために使用され、外部バスとは直接の関係はない。
【0030】
内部バス及び外部バス共に16ビットバス幅とされ、バイトサイズ(8ビット)及びワードサイズ(16ビット)のリード/ライトが行われるようになっている。なお、外部バスは8ビット幅とすることもできる。
【0031】
バス制御信号には、後述するエリア選択信号CS0*〜CS7*、リード信号RD*、ライト信号HWR*,LWR*、カラムアドレスストローブ信号CAS*、ウエィト信号WAIT*、レディ信号READYなどがある。
【0032】
リセット端子RESにリセット信号が加えられると、モード制御端子MODEで与えられる動作モードを取り込み、シングルチップマイクロコンピュータ(以下単にマイクロコンピュータとも記す)1はリセット状態にされる。動作モードは、特に制限はされないものの、内蔵ROM5の有効/無効、アドレス空間を16Mバイトまたは1Mバイト、データバス幅の初期値を8ビットまたは16ビットから選択する。必要に応じてモード制御端子MODEは複数端子とされ、これらの端子への入力状態の組合せで動作モードが決定される。
【0033】
内蔵ROM5が無効にされると、外部アドレスが有効とされ、ROM5に相当するアドレスは外部アドレスとされる。内蔵ROM5は、マスクROMまたはPROM(プログラマブルROM)などとされる。マスクROMは、その内容を半導体集積回路の製造工程で書込むため、ユーザがプログラム作成してからマイクロコンピュータを入手するまでの時間が著しく長い。また、書替えを行なうことができない。PROMは、ユーザがプログラムを書込むことができるが、システムに装着したまま書き換えることができない。或は、マイクロコンピュータに内蔵可能なROM5の記憶容量は、ROM単体程大きくはなく、ユーザが所望のプログラム規模を全て内蔵ROM5に格納することができるとは限らない。このため、内蔵ROMを用いず、外部にプログラム格納用のROMを、マイクロコンピュータとは別に設けることが考えられる。マイクロコンピュータをシステムに装着したまま、プログラム格納用の外部ROMを交換することによって、プログラム作成からシステムを得るまでの時間を短縮したり、システムの仕様変更を行なったりすることができる。以後は、内蔵ROMを使用せず、外部にプログラムROMを設ける場合について説明する。
【0034】
リセット状態を解除すると、CPU2は、スタートアドレスをリードして、このスタートアドレスから命令のリードを開始するリセット例外処理を行なう。前記スタートアドレスは、特に制限はされないものの0番地から始まる領域に格納されているものとする。その後、CPU2は前記スタートアドレスから順次命令を実行する。
【0035】
DMAC3は、CPU2の制御に基づいてデータの転送を行なう。CPU2とDMAC3は互いに排他的に内部バス・外部バスを使用してリード/ライト動作を行なう。CPU2またはDMAC3のいずれが動作するかの調停はバスコントローラ4が行なう。
【0036】
バスコントローラ4はCPU2またはDMAC3の動作に呼応して、バスサイクルを構成する。即ち、CPU2またはDMAC3の出力するアドレス、リード信号、ライト信号、バスサイズ信号に基づき、バスサイクルを形成する。例えば、RAM6に相当するアドレスをCPU2が内部アドレスバスIABに出力した場合、バスサイクルは1ステートとされ、バイト/ワードサイズに拘らず、1ステートでリード/ライトが行われるようになっている。タイマ7、SCI8、入出力ポートIOP1〜IOP9に相当するアドレスをCPU2が内部アドレスバスIABに出力した場合、バスサイクルは3ステートとされ、内部アドレスバスIABの内容が内部アドレスバスPABに出力され、バイト/ワードサイズに拘らず、3ステートでリード/ライト動作を行なうようになっている。この制御はバスコントローラ4が行う。
【0037】
図2にはマイクロコンピュータ1のアドレスマップの一例が示される。
アドレス空間は全体で16Mバイトとされ、アドレス空間は2Mバイトずつの8エリアに分割されている。これらのエリアに対応したエリア選択信号CS0*〜CS7*が出力される。例えばエリア0をアクセスするとエリア選択信号CS0*が活性状態になる。エリア選択信号はそれが入力される回路にとってチップ選択信号とされるような信号である。
【0038】
それぞれのエリアのアクセス方法は、バスコントローラ4に含まれる、夫々8ビットの5個のレジスタBSWCR、ASTCR、WSCRA−B、MPXCR、CMDCRによって指定される。
それぞれのレジスタの各ビットが対応する番号のエリアの制御を行なう。これらの対応が図に示されている。例えば、エリア0はBSWCR、ASTCR、WSCRA−B(WSCRA及びWSCRB)、MPXCR、CMDCRの各ビット0によって制御される。
これらのレジスタはCPU2から常にリード/ライト可能である。レジスタBSWCRの初期値は動作モードによって決定される。即ち、データバス幅の初期値を8ビットとするとH’FF、16ビットとするとH’00に初期化される。レジスタASTCR、WSCRA−Bの初期値はH’FFとされ、レジスタMPXCR、CMDCRの初期値はH’00とされる。
【0039】
上記レジスタBSWCRは各エリアのバス幅を指定する。バス幅は8、16ビットが選択される。対応するビットを”0”にクリアすると16ビットバス、”1”にセットすると8ビットバスが選択される。
【0040】
上記レジスタASTCR及びWSCRA−Bは各エリアのバスサイクル数を指定する。バスサイクル数は2、3、4、5、6ステート数が選択される。レジスタASTCRの対応するビットを”0”にクリアすると2ステートアクセス、”1”にセットすると、レジスタWSCRA−Bで指定したステート数になる。レジスタWSCRA−Bはウェイトステート数を設定する。レジスタWSCRA−Bの対応するビットをいずれも”0”にクリアするとウェイトステートなし(3ステートアクセス)とされ、レジスタWSCRAの対応するビットを”0”にクリアし、レジスタWSCRBの対応するビットを”1”にセットすると1ステートウェイト(4ステートアクセス)とされ、レジスタWSCRAの対応するビットを”1”にセットし、レジスタWSCRBの対応するビットを”0”にクリアすると2ステートウェイト(5ステートアクセス)とされ、レジスタWSCRA−Bの対応するビットをいずれも”1”にセットすると3ステートウェイト(6ステートアクセス)とされる。レジスタWSCRA−Bで挿入されたウェイトをプログラマブルウェイトと呼び、マイクロコンピュータの外部から指示される外部ウェイトとは区別される。
【0041】
レジスタMPXCRはアドレスマルチプレクスを指定する。バスサイクルが3ステート以上のとき有効である。例えば16ビット構成の4MビットDRAMを接続する場合、マイクロコンピュータのアドレス出力A9−A1に、最初にロウアドレス(論理アドレスのA18−A10)が出力され、次にカラムアドレス(論理アドレスのA9−A1)が出力される。このとき、同時にエリア選択信号の波形が変更され、ロウアドレスの出力後にRAS*(ロウアドレスストローブ)信号が活性状態とされる。ロウアドレスのセットアップ・ホールドが確保される。また、カラムアドレスの出力後に別の端子からCAS*(カラムアドレスストローブ)信号が活性状態とされる。
【0042】
レジスタCMDCRはコマンドサイクルを自動生成するエリアを指定する。レジスタCMDCRの対応するビットが”1”にセットされたエリアに、CPU2またはDMAC3が所定のアクセスを行うと、自動的にバスコマンドサイクルが挿入される。例えば、CPU2が、プログラムに記述された
MOV.B #DATA,R0L
MOV.B R0L,@WADR
という命令を実行して、アドレスWADRに対するデータDATAのライトサイクルを実行しようとしたした場合、アドレスWADRが、上記レジスタCMDCRの対応するビットが”1”にセットされたエリアに相当すれば、例えばフラッシュメモリにライト動作を指示するコマンドCMDの、アドレスWADRに対するライトサイクルが自動的に起動されて挿入され、その次に、上記アドレスWADRに対するデータDATAのライト動作のためのバスサイクルが起動されるようになる。ここで、コマンドをライトするとき、その対象とされるフラッシュメモリのような回路に対するチップ選択信号がエリア選択信号として直接該回路に供給されている場合には、コマンドライトのときに外部に出力されるアドレスは実質的な意味を持たない。この例の場合は便宜上次のデータライトのアドレスと同一のアドレスを出力している。
なお、RAM6、タイマ7、SCI8、入出力ポートIOP1〜IOP9といった内蔵メモリや周辺機能はエリア7に含まれるものの、それぞれ固有のバス幅、バスサイクル数に固定される。
【0043】
図3及び図4にはバス制御のためのそのほかのレジスタ構成が示される。
レジスタWCMDは8ビット構成であり、上述のライトサイクルに先立って出力すべきコマンドとされるデータを格納する。
レジスタCDAT0,CDAT1はそれぞれ8ビット構成であり、上述のライトサイクルに先立って出力すべきコマンドとなるデータを格納する。CDAT0は1回めのコマンド、CDAT1は2回目のコマンドとされる。すなわち、必
要とされるコマンドが2バイトとされる場合に当該レジスタCDAT0,CDAT1が利用される。2バイトのコマンドの一例としては、図26に示されるブロック消去のためのコマンドH’20とH、B0を挙げることができる。
レジスタBADR0〜BADR3はそれぞれ16ビット構成であり、アドレス情報を格納する。
以上のWCMD、CDAT0〜CDAT1、BADR0〜BADR3の各レジスタは、常にCPU2からリード/ライト可能であり、初期値はH’00とされる。
【0044】
レジスタCNTLは8ビット構成であり、コマンドバスサイクルを付加する条件が設定される。ビットBE0〜ビットBE3は外部のフラッシュメモリに対するブロック消去の条件ビット、ビットPOLはポーリングのための条件ビットである。その外にビットREを含む。ビットREは常にCPU2からリード/ライト可能であるが、ビットBE0〜ビットBE3及びビットPOLは”1”のライトのみ可能であり、所定の動作が終了すると、自動的に”0”にクリアされる。ビット4、5はリザーブビットであり、リードすると”0”が読み出され、ライトは無効とされる。
【0045】
レジスタCNTLの初期値はH’00とされる。
ビットREが”1”にセットされると、マイクロコンピュータのREADY端子の入力が有効になる。この状態で、ビットPOLがCPU2によって”1”にセットされると、そのバスサイクルに引き続いて、外部に対してポーリングリードサイクルが自動的に挿入される。このとき、マイクロコンピュータ1の後述するREADY端子に例えばフラッシュメモリから入力されたビジー状態の信号をウェイト信号として認識する。例えば外部のフラッシュメモリが内部動作中であってビジー状態の信号を出力しているとき、即ち外部のフラッシュメモリが内部動作中であれば、かかる内部動作が終了するまでマイクロコンピュータ1はウェイト状態になり、その間自動的に上記ポーリングリードサイクルを継続する。
【0046】
フラッシュメモリが内部動作中に、他にマイクロコンピュータ1が処理すべき内容があれば、フラッシュメモリが出力するRDY/BUSY*信号(ハイレベルでレディー状態、ローレベルでビジー状態)を、マイクロコンピュータ1の割込入力として、この立ち上がりエッジを検出して割込を発生させるようにしてもよい。即ち、マイクロコンピュータ1は、フラッシュメモリに対して書込み又は消去を指示した後、RDY/BUSY*信号の立ち上がりエッジによる割込みによってその動作の終了を検出する。したがって、その間マイクロコンピュータは常時フラッシュメモリの動作終了を監視しなくてもよくなり、フラッシュメモリの動作制御に対する負荷が小さくなる。
ビットREを”0”にクリアすると、上記READY端子の入力が無効になり、対応する端子は入出力ポートとして使用することができるようにされる。
【0047】
ビットBE0〜BE3のいずれかを”1”にセットすると、そのバスサイクルに引き続いて、外部のフラッシュメモリに対するブロック消去のためのコマンドライトサイクルが開始される。コマンドは予め上記レジスタCDAT0,CDATA1に格納した内容とされる。ブロック消去は2バイトのコマンドで指示される。このときに消去対象ブロックアドレスはレジスタBADR0〜BADR3で指定されたアドレスとされる。
例えば、フラッシュメモリのブロックサイズは512バイトとすると、アドレスは同時に4ブロックを指定できる。したがって2kバイトを連続して消去することができる。
【0048】
レジスタBADR0〜BADR3は、それぞれ16ビットであり、下位1ビットは無視される。この16ビットに下位8ビットをH’00として、消去ブロックアドレスを指定する。これはアドレス空間が16Mバイトであることに対応する。従って、レジスタBADR0にH’0123を設定すると、消去ブロックの先頭アドレスはH’012200とされる。
このとき、このアドレスが含まれるエリアに対応するレジスタCMDCRのビットを”1”にセットしておくものとする。レジスタCDAT0にH’20、レジスタCDAT1にH’B0を格納しておき、ビットBE0を”1”にセットすると、アドレスH’012200に対して、2回のライトサイクルが実行され、1回目のデータはH’20、2回目のデータはH’B0となって、フラッシュメモリの146番目のブロックが消去される。
【0049】
チップ消去、または連続ブロック消去を行う場合はCDAT0及びCDATA1に設定するコマンドデータをチップ消去または連続ブロック消去に相当するものに変更すればよい。また、レジスタCDAT0,CDATA1に設定するコマンドデータをページ書込みに相当するものに変更し、バスコマンドを発行した後に、順次ライトサイクルを行えば、レジスタCNTLを利用してページ書込みを行うこともできる。
16ビットバスのとき、コマンドデータは上位8ビット、下位8ビットに同じデータが出力される。
【0050】
以上により、コマンドによって動作の指示が与えられるようなフラッシュメモリに対するライト動作、ブロック消去、ポーリングなどを、CPU2の負担を軽減して行うことができる。フラッシュメモリに対するライト動作についてはDMAC3がバスサイクルを起動するときもCPU2による場合と同じ様に行うことができる。
【0051】
フラッシュメモリに対するリード動作はランダムに行うことができる。即ち、図26に従えばリード動作はコマンドH’00によって指示されるが、当該コマンドによってリード動作が指示されたときは、その後に別の動作モードが指示されない限りフラッシュメモリは随時リード動作が可能にされる。例えばパワーオンリセットや例外処理に際してマイクロコンピュータ1はフラッシュメモリに対してリード動作を指示するコマンドH’00を無条件に書込むようになっている。フラッシュメモリに格納される情報は専ら読出しに供される動作プログラムの他に、例えば書換えの対象とされる定数データやチューニング情報とされる。このような定数データやチューニング情報の書換えはマイクロコンピュータ1を適用したシステム上、例外処理によって行うものとすれば、フラッシュメモリに対するリード動作は随時可能にされる。
【0052】
図5には上記シングルチップマイクロコンピュータ1を用いたシステムの一例が示される。
同図に示されるシステムは、特に制限はされないものの、プリンタ制御システムであり、シングルチップマイクロコンピュータ1、シングルチップマイクロコンピュータ1のプログラム及びチューニング情報格納用のフラッシュメモリ10、データバッファ用のDRAM(バッファRAMとも記す)11、キャラクタジェネレート用のマスクROM(CGROMと記す)12、印字データ一時格納用のSRAM(出力バッファ)13、図示しないホストプロセッサとインタフェースされるセントロニクスインタフェース回路14、及び印字ヘッド駆動回路15有し、これらがシングルチップマイクロコンピュータ1の外部バス16を介して接続される。セントロニクスインタフェース回路14及び印字ヘッド駆動回路15は同一の半導体集積回路、例えばゲートアレイ(G/A)で構成され、その外の回路は夫々別体の半導体集積回路チップにて構成される。更に、図示はされないものの、マイクロコンピュータ1のSCI8はホストプロセッサと接続され、マイクロコンピュータ1のタイマ7の出力によって制御されるプリンタのラインフィードモータやキャリッジリターンモータなどを備える。
【0053】
シングルチップマイクロコンピュータ1はフラッシュメモリ10に格納されているプログラムに基づいて動作する。例えば、かかるプログラムに基づき、ホストプロセッサから送られてくるデータはセントロニクスインタフェース回路14を経由して、バッファRAM11に転送される。バッファRAM11に転送されたデータは、CGROM12が参照されることによって、フォントデータに変換される。フォントデータは出力バッファRAM13に格納される。その後シングルチップマイクロコンピュータ1はタイマ7を用いてパルス出力を行い、図示しないキャリッジリターンモータを駆動する。キャリッジリターンモータの回転によって印字ヘッドが移動される。印字ヘッドの移動に合わせて、出力バッファRAM13から印字ヘッド駆動回路15へフォントデータが転送される。セントロニクスインタフェース回路14からバッファRAM11へのデータ転送、出力バッファ13から印字ヘッド駆動回路15へのデータ転送にはシングルチップマイクロコンピュータ1内蔵のDMAC3を用いることができる。フラッシュメモリ10に格納されるチューニング情報を書換えたりすることによって、システムの微調整を行なうことができる。また、フラッシュメモリ10に格納された動作プログラムはバージョンアップや使用変更によって修正されることがある。シングルチップマイクロコンピュータによる上述のコマンドサイクルの自動的な挿入若しくは追加の機能によってフラッシュメモリ10に対する書換えを効率的に行うことができる。
【0054】
例えば図5のシステムにおいてフラッシュメモリ10をエリア0、CGROM12をエリア4、バッファRAM11をエリア5、出力バッファ13をエリア6、セントロニクスインタフェース回路14及び印字ヘッド駆動回路15をエリア7に設定する。そして、
エリア0は16ビットバス、3ステート、コマンド有効とし、
エリア4は16ビットバス、3ステートとし、
エリア5は16ビットバス、3ステート、アドレスマルチプレクスとし、
エリア6は16ビットバス、2ステートとし、
エリア7は8ビットバス、3ステートとし、
プログラマブルウェイトはいずれのエリアにも挿入しないものとする。
このときの、上記レジスタの設定は
BSWCR=B’10000000、
ASTCR=B’10110001、
WSCRA=B’00000000、
WSCRB=B’00000000、
MPXCR=B’00100000、
CMDCR=B’00000001
とされる。
【0055】
図6には図5のシステムにおける外部バス16による接続状態の一例が示される。同図においてG/Aはセントロニクスインタフェース回路14及び印字ヘッド駆動回路15を構成するゲートアレイである。
フラッシュメモリ10は1993年9月(株)日立製作所発行『日立ICメモリ2』pp305−321に記載される16Mビット、マスクROM12は1993年9月(株)日立製作所発行『日立ICメモリ2』pp681−687に記載される16Mビット、DRAM11は1993年9月(株)日立製作所発行『日立ICメモリ3』pp432−455に記載される4Mビットのものとする。SRAM13は1993年9月(株)日立製作所発行『日立ICメモリ1』pp470−477に記載される4Mビットのものを2個とする。
【0056】
アドレスはフラッシュメモリ10、DRAM11、マスクROM12、SRAM13、G/A14,15の全てに入力される。但し、それぞれの容量に対応したビット数が入力される。例えばフラッシュメモリ10は1Mワード(16Mビット)の容量であるのでアドレスは20ビットである。シングルチップマイクロコンピュータ1はバイト単位のアドレス、フラッシュメモリ10はワード単位のアドレスであるので、マイクロコンピュータ1が出力するアドレスの最下位ビットを無視してそのアドレスを半分とするようにマイクロコンピュータ1のアドレスがフラッシュメモリ10に供給される。即ち、マイクロコンピュータ1のアドレス端子A20〜A1がフラッシュメモリ10のアドレス端子A19〜A0に接続される。また、SRAM13は一方が偶数アドレス、他方が奇数アドレスとされ、マイクロコンピュータのアドレス端子A19〜A1がSRAM13のアドレス端子A18〜A0に接続される。
【0057】
データバス上位D15〜D8は、フラッシュメモリ10、DRAM11、マスクROM12、SRAM(偶数アドレス)13、G/A14,15の全てに接続される。データバス下位D7〜D0は、フラッシュメモリ10、DRAM11、マスクROM12、SRAM(奇数アドレス)13に接続される。出力端子CS0*(記号*はそれが付された信号のアクティブレベルがローレベルであることを意味し、図面においては当該信号名の上に付された横棒線が記号*に代えて付されている)がフラッシュメモリ10、出力端子CS4*がマスクROM12、出力端子CS6*がSRAM13の各チップ選択信号入力端子CS*に接続される。出力端子CS5*はDRAM11のロウアドレスストローブ信号入力端子RAS*に接続される。また出力端子CS7はG/A14,15のチップ選択信号入力端子CS*に入力される。上記CS0*,CS4*,CS5*,CS6*,CS7*はエリア選択信号の出力端子である。
【0058】
リード信号の出力端子RD*は、フラッシュメモリ10、マスクROM12、SRAM13のアウトプットイネーブル信号の入力端子OE*に接続され、またG/Aの入力端子OE*にも接続される。
上位バイトのライト信号の出力端子HWR*はフラッシュメモリ10、DRAM11の上位側ライトイネーブル信号入力端子UW*、SRAM(偶数アドレス)13のライトイネーブル信号入力端子WE*に接続され、またG/Aのライトイネーブル信号入力端子WE*にも接続される。
下位バイトのライト信号の出力端子LWR*はフラッシュメモリ10、DRAM11の下位側ライトイネーブル信号入力端子LW端子、SRAM(奇数アドレス)13のライトイネーブル信号入力端子WE*に接続される。
マイクロコンピュータ1のカラムアドレスストローブ信号の出力端子CAS*はDRAM11のカラムアドレスストローブ信号入力端子CAS*及びアウトプットイネーブル信号入力端子OE*に接続される。
さらに、フラッシュメモリ10のレディー/ビジー信号の出力端子RDY/BUSY#はマイクロコンピュータ1の入力端子READYに接続される。
なお、上記各種端子の記号は以下の説明において対応端子の入力又は出力信号名の符合としても兼用する。
【0059】
図7乃至図15には図5のシステムにおける上記レジスタBSWCR,ASTCR,WSCRA,WSCRB,MPXCR,CMDCRの設定状態での代表的なバスサイクルのタイミング、例えばワードデータアクセス時のタイミングが示される。なお、それらに示されるタイミングにおいて、ワードデータアクセスは偶数番地から始まるもの2バイトのデータに限定してある。また、特に制限はされないものの、8ビットバスではデータバスの上位D15〜D8を使用するものとしている。バス制御信号はすべて負論理とされる。
【0060】
(1)エリア0の16ビットバス、3ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図7及び図8によって示される。
エリア0の16ビットバス、3ステートアクセスの場合は、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード/ライトが行なわれる。マイクロコンピュータ1は、偶数番地のリード/ライトに対応してリード信号RD*/上位ライト信号HWR*を、奇数番地のリード/ライトに対応してリード信号RD*/下位ライト信号LWR*を活性状態とする。リードは16ビット一括して制御される。ライトはバイト単位で制御される。アドレス及びCS0*信号出力はバスサイクル中有効とされる。リード信号RD*はT1ステートにおけるクロックφの立ち下がり(クロックφ2の立上がり)に同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がり(クロックφ2の立上がり)に同期してインアクティブに戻される。マイクロコンピュータ1が出力する上位ライト信号HWR*、下位ライト信号LWR*はT2ステートにおけるクロックφの立上がり(クロックφ1の立上がり)に同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がり(クロックφ2の立上がり)に同期してインアクティブに戻される。
このとき、リード動作はそのまま行なわれるが、ライト動作の指示があったときは、フラッシュメモリに対するコマンドのライトサイクルが挿入される。当該コマンドのライトサイクルにおいて外部アドレスバスにはCPU2またはDMAC3といったバスマスタが出力したアドレスが出力される。そのときのデータはWCMDレジスタに保持されているコマンドデータとされる。アドレス及び制御信号出力は前記同様である。
【0061】
(2)エリア4の16ビットバス、3ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図7及び図9によって示される。エリア4の16ビットバス、3ステートアクセスにおいて、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリードが行なわれる。リードは16ビット一括して制御される。アドレス及び出力信号CS4*はバスサイクル中有効値を示す。リード信号RD*はT1ステートにおけるクロックφの立ち下がり(クロックφ2の立上がり)に同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
【0062】
(3)エリア5の16ビットバス、3ステートアクセス、アドレスマルチプレクスアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図10及び図11によって示される。この場合は、T1ステートでロウアドレスが、T2・T3ステートでカラムアドレスが、それぞれA10〜A1に出力される。CS5*、RD*、HWR*、LWR*の各出力信号はT1ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。カラムアドレスストローブ信号CAS*はT2ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
前記同様に、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード/ライトが行なわれる。偶数番地のライトに対応してHWR*が、奇数番地のライトに対応してLWR*が活性状態とされる。
【0063】
(4)エリア6の16ビットバス、2ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図12及び図13によって示される。この場合は、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード/ライトが行なわれる。偶数番地のリード/ライトに対応してRD*又はHWR*の出力信号が、奇数番地のリード/ライトに対応してRD*又はLWR*の出力信号がアクティブにされる。リードは16ビット一括して制御される。ライトはバイト単位で制御される。アドレス及び出力信号CS6*はバスサイクル中アクティブレベルにされる。RD*、HWR*、LWR*の各出力信号はT1ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
【0064】
(5)エリア7の8ビットバス、3ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図14及び図15によって示される。この場合には、データバスの上位を使用してリード/ライトが行なわれる。すなわち、RD*又はHWR*の信号が選択的にアクティブにされる。アドレス及び出力信号CS7*はバスサイクル中アクティブにされる。出力信号RDはT1ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブに戻される。出力信号HWR*はT2ステートにおけるクロックφの立ち上がりに同期してアクティブレベルにされ、T3ステートにおけるクロックφの立ち下がりに同期してインアクティブに戻される。
図14及び図15に示されるように、CPU2またはDMAC3のようなバスマスタがワードデータのアクセスを行った場合には、偶数番地・奇数番地の順にバイトアクセスが2回行われる。
【0065】
図16には上述のような各種バスアクセスタイミングを生成するバスコントローラ4の一例ブロック図が示される。
バスコントローラ4は、アドレデコード回路40、制御回路41、バス権調停回路42、選択回路43、タイミング制御回路44、及び制御レジスタ45、コマンドレジスタ46、及びアドレスレジスタ47から構成される。制御レジスタ45は上記レジスタBSWCR、ASTCR、WSCRA−B、MPXCR、CMDCR、CNTLを含む。コマンドレジスタ46は上記レジスタWCMD、CDAT0〜CDATA1を含む。アドレスレジスタ47は上記レジスタBADR0〜BADR3を含む。図16には入出力ポートに含まれる機能として、入出力バッファ、マルチプレクサ47,48、及び出力バッファ、が代表的に示されている。47はアドレスマルチプレクサであり、48はデータマルチプレクサである。
【0066】
バス権調停回路42は、CPU2またはDMAC3のいずれがバスを使用するかを制御する。例えば、DMAC3にデータ転送起動要因が発生して、DMACバス要求信号が1レベルのようなアクティブレベルにされると、タイミング制御回路44で指示される所定のタイミングでバス調停回路42はDMAC3にバス使用を許可して、DMACバス権許可信号を1レベルのようなアクティブレベルにしてDMAC3に返す。それ以外の時はCPU2がバス権を有する。DMAC3がバス権を有する時にCPU2がバス権を取り戻すときも上記同様にCPUバス権要求信号とCPUバス権許可信号によって行われる。この制御に基づいて、CPU2とDMAC3が排他的にアドレス・データバスを使用できる。
【0067】
選択回路43はCPU2及びDMAC3の出力するバス制御信号、例えばリード信号RD、ライト信号HWR,LWR、バスサイズ情報などを、バス権調停回路42の指示に基づいて、選択し、タイミング制御回路44に与える。すなわち、DMACバス権許可信号が1レベルであれば、DMAC3からのバス制御信号をタイミング制御回路44に与え、それ以外はCPU2からのバス制御信号をタイミング制御回路44に与える。CPU2及びDMAC3のいずれがバス権を有しても、バスコントローラ4の内部の動作は基本的に同一とされる。
【0068】
アドレデコード回路40は、CPU2またはDMAC3がアドレスバスIABに出力したアドレスが、いずれのエリアに相当するかをデコードする。デコード結果は、出力バッファを介して、所定の端子からエリア選択信号として出力される。
制御回路41は、アドレデコード回路40の出力によって、いずれのエリアが選択されたかを判定して、制御レジスタ45の何れのビットを参照すべきかを判定する。判定結果はタイミング制御回路44に対する指示として与えられる。
タイミング制御回路44は、上記制御回路41の出力に基づいて、バスサイクルを生成し、内部及び外部のバス制御信号を出力する。また、入出力バッファ、マルチプレクサ、バス権調停回路の動作タイミングを指示する。さらに、それが生成するバスサイクルがコマンドライトのバスサイクルなどの場合には必要に応じて制御信号DATASELやCDATSELでコマンドレジスタ46を選択する。
【0069】
出力バッファに含まれるアドレスマルチプレクサ47は、タイミング制御回路44の指示に従って、ロウアドレスとカラムアドレスの選択、及びアドレスバスIABとアドレスレジスタ47に含まれるレジスタBADR0〜BADR3の内容の選択を行なう。
入出力バッファに含まれるデータマルチプレクサ48は、データバスIDBのデータを入出力するか、コマンドレジスタ46に含まれるレジスタWCMD、CDAT0〜CDATA1の内容を出力するかを選択する。なお、タイミング制御回路44はライトサイクルの生成に関し、8ビットバスのときはバイトライトのみ、16ビットバスのときはワードライトのみを有効とする。
【0070】
図17にはタイミング制御回路44の具体的な第1の回路例が示される。
図18には図17の動作タイミング図の一例が示される。
図17の回路例においては、内容をわかり易くするために、ブロック消去やポーリング機能についての論理構成は省略してある。すなわち、所定のエリアに対するライトアクセスによって自動的にコマンドライトのためのバスサイクルを生成して挿入するための構成に着目した回路例とされる。また、この回路例は正論理で示されている。
【0071】
RD+WR信号はCPU2又はDMAC3によるリード動作又はライト動作のバス起動用内部信号とされ、選択回路43の出力である。BUS8A、ST3A、CMDAは、アドレスデコード回路40でアドレスをデコードして得られる信号であり、エリアとBSWCR,ASTCR,CMDCRの各レジスタの対応するビットから生成される信号である。即ち、信号BUS8A、ST3A、CMDAは、そのときのアクセス対象のエリアが、8ビットバスエリア、3ステートアクセスエリア(ウェイトステート数に応じて全体のステート数はそれ以上になる)、コマンド有効エリアであることをハイレベルによって示す。内部信号WRはライト動作のバス起動用内部信号とされる。WORDはアドレスデコード回路40でアドレスをデコードして得られる信号でありワードアクセスである場合にハイレベルにされる。WR、WORD信号は何れも選択回路43の出力である。
【0072】
バスサイクルは2ステートを基本とし、3ステート以上の場合、T1ステートの後にウェイトステートが挿入される(ウェイトステートが挿入された場合、便宜上当該ウェートステートをT2ステート、その次のステートをT3ステートと記す)。ウェイト要求信号waitは、3ステートアクセスエリアのとき、レジスタWSCRA,WSCRBによるウェイト要求と、外部端子に供給されるウェイト信号WAITによるウェイト要求を含むものとする。即ち、外部からのウェイト信号WAITは直列3段のD型ラッチから成るフリップフロップFF7〜FF9を通してウェイト要求信号waitとされる。レジスタWSCRA,WSCRBによるプログラマブルウェイトに関しては当該レジスタWSCRA,WSCRBの内容に従ってウェイト要求信号waitが生成される。尚、何れのウェイト要求においても、信号ST3Aはウェイト期間中ハイレベルにされる。但し、信号ST3Aは2ステートアクセスエリアでないことがレジスタASTCRで指定されていない場合には一切ハイレベルにされない。
【0073】
クロックφ1Bは、ウェイト要求信号waitとクロックφ1との論理和信号とされ、クロックφ2Bは、ウェイト要求信号waitの反転信号とクロックφ2との論理積信号とされ、ウェイト中は、クロックφ1Bがハイレベル、クロックφ2Bがロウレベルで固定され、フリップフロップFF1〜FF4はクロック入力が変化しないため、状態を保持する。
信号DATASELは、レジスタWCMDが保有するコマンドを出力するか、データバスIDBの内容を出力するかを選択するための信号である。
【0074】
選択回路SELは、論理和ゲートOR1を介して上記バス起動信号RD+WRが初段に供給される直列接続された3段のD型ラッチ回路回路から成るフリップフロップFF1、FF2、FF3の出力を入力とする。φ1、φ2の同期化回路も含む。この選択回路SELが上記各種バスタイミング信号を出力する。すなわち、エリア選択信号CS0*〜CS7*、アドレスストローブ信号AS*、リード信号RD*、ライト信号HWR*,LWR*、カラムアドレスストローブ信号CAS*の出力波形、アドレスマルチプレクスのタイミングなどを生成して出力する。
例えば、リード信号RD*の波形は第2のフリップフロップFF2の出力信号の反転信号とされる。レジスタMPXCRの対応するビットを”1”にしたとき、そのエリア選択信号はアドレスデコード結果とフリップフロップFF2との論理積信号の反転信号とされる。
【0075】
バス起動信号RD+WRは、バスサイクルの開始以前の、システムクロックφ1,φ2に同期してタイミング制御回路44に与えられる。フリップフロップFF1はT1ステートにおけるクロックφ1Bの立上がりに同期して信号を出力する。同様にフリップフロップFF2、FF3、FF4は、それぞれ、T1ステートにおけるクロックφ2Bの立上がり、T2ステートにおけるクロックφ1Bの立ち上がり、T3ステートにおけるクロックφ2Bの立上がり、に同期して入力信号をラッチして出力する。フリップフロップFF4のラッチ動作は、ウェイト解除後のT3ステートにおけるクロックφ2の立ち上がりに同期している。例えば、8ビットバスエリアに対するワードアクセスの場合には(BUS8A及びをRDはハイレベル)、或いはコマンドサイクルに続くデータアクセスサイクルの場合(フリップフロップFF6がセット状態)には、1回めのバスサイクルが終了した時点で、FF4の出力がハイレベルにされ、この出力が論理和ゲートOR1を介してフリップフロップFF1に帰還されてそれが当該FF1にラッチされる。即ち、2回目のバスサイクルの起動が指示されることになる。
【0076】
1回目のバスサイクルか、2回目のバスサイクルかは、RS(リセット・セット)型の第5、第6のフリップフロップFF5、FF6で指定される。フリップフロップFF5は、1回目のバスサイクルであればセット状態、2回目のバスサイクルであればリセット状態にされる。このフリップフロップFF5のセット状態が実質的に意味を持つのは、信号WORDがワードアクセスを意味するハイレベルにされていてフリップフロップFF10がそれをラッチしているときであり、しかもそのワードアクセスが8ビットバスを介して行われるとき(信号BUS8Aがハイレベル)である。フリップフロップFF6は、コマンドサイクルの場合、即ちコマンド有効エリアに対するライトのとき(WR及びCMDAがハイレベル)かつ信号BRKAKがインアクティブとしてのローレベルのときにセット状態とされ、フリップフロップFF4のハイレベル出力によってリセット状態にされる。
【0077】
尚、上記信号BRKAKはマイクロコンピュータ1をエミュレーションに利用すする場合を考慮したものであり、CPU2がブレーク状態であることを示す信号である。信号BRKAK信号がアクティブレベルとしてのハイレベルにされた場合には、コマンドサイクルの挿入を禁止し、ブレーク後においてマイクロコンピュータのアドレス空間がターゲットプログラムのためのアドレス空間から評価のための制御空間に切換えられた場合、書込みサイクルが自動的に挿入されてデータが不所望に書換えられる虞を排除している。この点についての詳細は後述する。
【0078】
このように図17のタイミング制御回路44は、第1に8ビットバスでワードアクセスを行う場合、第2にコマンド有効エリアに対するライトで(WR及びCMDAがハイレベル)信号BRKAKがインアクティブのときに指示されるコマンドサイクルの場合に、連続的に2回所定のバスサイクルを生成する。
【0079】
図19にはタイミング制御回路44の具体的な第2の回路例が示される。この回路例においては、内容をわかり易くするために、図17では省略したブロック消去やポーリング機能についての論理構成を専ら示してある。また、この回路例も正論理とされる。図19において図17と同一の信号及び回路要素には同一符合を付してその詳細な説明を省略する。
【0080】
同図に示されるタイミング制御回路44はレジスタCNTLに対するCPU2の書込みによって所定のバスサイクルを自動的に起動する構成を専ら示すものである。信号REGCLRは自動的に生成されたバスサイクルを終了させるためにレジスタCNTLの内容をクリアするための信号である。この例に従えば、フラッシュメモリのブロック消去のために自動的に生成されるバスサイクルは2サイクルであり、ポーリングのために自動生成されるバスサイクルは1サイクルとされる。フリップフロップFF4のハイレベル出力は2サイクル目の起動信号とされ、フリップフロップCFF4は自動生成されたバスサイクルが終了するタイミングで上記信号REGCLRをハイレベルに制御する。フリップフロップCFF5及びナンドゲートNAND1は、ブロック消去のための2回のコマンドライトサイクルにおいては1サイクル目にFF4を、2サイクル目にCFF4を利用させ、またポーリングのためのバスサイクルにおいてはCFF4だけを利用するように制御する。
【0081】
同図に示されるタイミング制御回路44は、上記レジスタCNTLから、POLビットのセット信号SETPOLが与えられる。このSETPOL信号はレジスタCNTLに対するライトサイクルのT3ステートにおけるクロックφ2の立ち上がりに同期して有効とされる。但し、REビットを”1”にセットした状態でのみPOLビットのセット信号は有効となる。このSETPOL信号とRE信号との論理積信号は起動信号として論理和ゲートOR2に供給され、それがフリップフロップFF1にラッチされて、その内部レジスタライトサイクルに引き続いて、外部に対してポーリングリードサイクルが開始される。ポーリングリードサイクルはPOLビットがセットされていることで認識される。このときのアドレスは、特に制限はされないが、レジスタBADR0で指定されたアドレスとされる。
【0082】
このとき、マイクロコンピュータ1のレディー端子READYに入力されたフラッシュメモリからの信号RDY/BUSY*(レディー入力信号READYと記す)は外部からのウェイト信号WAITと等価な信号としてフリップフロップFF7に供給される。即ち、フラッシュメモリが内部動作中であれば、レディー入力信号READYがインアクティブなローレベルとされるから、フラッシュメモリの内部動作が終了されて入力信号READYがアクティブなハイレベルにされるまで、マイクロコンピュータ1はウェイト状態とされる。即ち、その間クロックφ1B及びφ2Bのレベルが固定されてフリップフロップFF3のラッチ動作が抑止される。入力信号READYがアクティブレベルにされてウェイトが解除されると、当該ポーリングリードサイクルのT3ステートを経て当該バスサイクルが終了される。終了に当たって信号REGCLRがハイレベルにされる。
【0083】
また、タイミング制御回路44には、レジスタCNTLから、BE0〜BE3ビットのセット信号の論理和信号SETBEが与えられる。この信号SETBEはレジスタCNTLのライトサイクルのT3ステートにおけるクロックφ2の立上がりに同期して有効になる。この信号SETBEもバスの起動信号とされて論理和ゲートOR2に供給される。更にフリップフロップCFF5のリセット端子に入力される。また、BE0〜BE3ビットの論理和信号BEOR信号はナンドゲートNAND1の一方の入力に供給される。当該ナンドゲートNAND1の他方の入力にはフリップフロップCFF5の出力の反転信号が供給される。レジスタCNTLへの書込みによってフラッシュメモリのブロック消去が指示された状態においてナンドゲートNAND1の出力はローレベルにされる。したっがて、ブロック消去のためのコマンドライトサイクルにおける第1サイクル目の終了タイミングではフリップフロップFF4の出力がハイレベルにされて、フリップフロップFF1に対して第2回目のコマンドライトのバスサイクルの起動が指示される。これと同時にフリップフロップCFF5がセット状態にされて今度はフリップフロップCFF4のデータ入力動作が可能にされる。したがって、第2回目のコマンドライトサイクルの終了タイミングではフリップフロップCFF4がFF3の出力をラッチし、信号REGCLRをハイレベルにすることによってバスサイクルの自動生成を終了させる。
【0084】
図20には上記ブロック消去のためのコマンドライトサイクルの自動生成に関する動作タイミングが示される。
上記信号SETBEを起動信号として、レジスタCNTLに対するCPU2のライトサイクルに引き続いて、コマンドライトサイクルが開始される。すなわち、フリップフロップFF1が当が起動信号をラッチし、フリップフロップCFF5がリセット状態とされる。このときのアドレスはレジスタBADR0〜BADR3で指定しされたアドレスとされる。レジスタBADR0〜BADR3の指定はレジスタCNTLのBE0〜BE3ビットの状態に従って行われる。
【0085】
第1のコマンドサイクルでは、CFF5がリセット状態、BEORがハイレベルであり、T3ステートにおけるクロックφ2の立上がりに同期してFF4がセット状態にされる。これを起動信号として第2のコマンドサイクルが起動され、FF1が当該起動信号をラッチし、CFF5がセット状態にされる。
【0086】
第2のコマンドサイクルでは、CFF5がセット状態であり、FF4はデータ入力不可能な状態に制御される。一方、CFF4がデータ入力可能な状態になり、T3ステートにおけるクロックφ2の立上がりに同期してレジスタクリア信号REGCLRがハイレベルにされる。これによって、今回のコマンドライトサイクルの起動要因となったBE0〜BE3ビットがクリアされる。
【0087】
そのときフラッシュメモリに書込まれるコマンドはレジスタCDAT0,CDATA1の内容とされ、CFF5から出力される信号CDATSELで当該レジスタCDAT0,CDATA1の出力が選択される。CFF5がリセット状態のときレジスタCDAT0の内容、CFF5がセット状態のときCDAT1レジスタの内容が出力される。内部バスは16ビットバスであり、コマンドデータは上位8ビット、下位8ビットに同じデータが出力される。8ビットバスモードのときは、下位8ビットのデータは外部データバスには出力されない。
なお、BE0〜BE3ビット、POLビットは、任意の1ビットのみを”1”にセットすることが可能であり、複数ビットを同時に”1”にセットすることは禁止される。
【0088】
タイミング制御回路44の具体的な構成を図17及び図19に分けて夫々説明したが、実際には、図17と図19の回路を合成して当該タイミング回路が実現される。合成する場合には、例えばフリップフロップFF1,FF2,FF3,FF7,FF8,FF9及びクロック系を共通化し、その他の回路要素を別々に設けて動作態様に応じて経路選択を行い、或はその他の回路要素からの信号を論理和回路を通して共通回路要素に導く、という公知の手法を以って簡単に実現できる。
【0089】
フラッシュメモリは、半導体集積回路装置としてのシングルチップマイクロコンピュータの外部に接続するほか、内蔵することも可能である。例えば、セルベースICなどのように、図5のシステムを1個の半導体集積回路とし、システムの小型化を図ることができる。
この場合、任意の値を設定可能な上記レジスタを不要にすることができる。即ち、かかるセルベースICの使用者にとっては何れのエリアに何れのメモリを接続するかは固定的に決定することができ、レジスタで任意に設定する必要が無くなるからである。例えばBSWCR、ASRCR、WSCRAーB、MPXCR、CMDCRなどは固定とすることができる。これらのレジスタの出力を”0”または”1”のいずれかの状態に固定すればよい。レジスタの値を固定にする他に、それらの信号線をプルアップ又はプルダウンしてもよい。
【0090】
システムの高速化のためには、CPU2の処理速度を向上する必要がある。CPU2の処理速度を向上するためには、命令のフェッチ速度を向上する必要がある。フラッシュメモリは、SRAMに比較して低速であるために、命令のフェッチ速度の向上には限界がある。一方、SRAMは、システム停止時に記憶内容を保持できない。そこで、リセット直後は、フラッシュメモリに格納されたプログラムで動作し、そのプログラムをSRAMに転送し、転送終了後はSRAM上のプログラムを実行することが考えられる。
さらに、マイクロコンピュータの例外処理時に使用するベクタアドレスは、例えばエリア0などのCPU2のアドレス空間上で固定である場合がある。このため、SRAM上のプログラムを実行中であっても、割込などの例外処理が発生する毎にフラッシュメモリ上のプログラムを実行しなくてはならない。特に割込の処理などは応答時間を短縮しなければならない場合が多く、システムの高速化の制約になってしまう。
そこで、フラッシュメモリが配置されたエリア0のアクセス時に、エリア選択信号CS0*を非選択状態とし、その代わりに、SRAMが配置されているエリア2のエリア選択信号CS2*を選択状態にさせることが得策である。この制御を制御ビットCS0Cを用いて行う場合について説明する。
【0091】
図21には上記CS制御のための回路構成例が示される。
制御ビットCS0Cはデータバスの1ビットの接続されるフリップフロップ回路FF20で構成される。リセット後は制御ビットCS0Cは”0”にクリアされている。制御ビットCS0Cの存在するアドレスに対するライトが行なわれると、内部データバスPDB0の内容が格納される。CPU2やDMAC3などのバスマスタの出力するアドレス(IAB)の内容はデコードされ、ICS0〜ICS7が生成される。エリア0、2以外については直接の関係がないので、ICS0,ICS2以外は図21では図示を省略している。
【0092】
制御ビットCS0Cを”0”にクリアした状態では、エリア0アクセス時、即ち、ICS0が選択レベルであるハイレベル、ICS2が非選択レベルであるローレベルであるとき、エリア選択信号CS0が選択レベルであるハイレベル、CS2が非選択レベルであるローレベルにされる。
制御ビットCS0Cを”1”にセットした状態では、エリア0アクセス時に、即ちICS0が選択レベルであるハイレベル、ICS2が非選択レベルであるローレベルであるとき、上記とは逆に、エリア選択信号CS0が非選択レベルであるローレベル、CS2が選択レベルであるハイレベルにされる。
なお、制御ビットCS0Cの状態によらず、エリア2アクセス時は、CS0は非活性状態、CS2は活性状態にされる。外部に出力されるエリア選択信号CS0*は上記信号CS0の反転信号とされ、外部に出力されるエリア選択信号CS2*は上記信号CS2の反転信号とされる。
【0093】
図22には図21で説明した高速化の手法を適用したプリンタシステムの変形例が示される。
図23には図22のシステムにおけるアドレスマップが示される。
図22のシステムは図5に対してSRAM17が追加されている。当該SRAM17はフラッシュメモリ10に格納されているプログラムやチューニング情報の転送を受けて利用されるメモリであり、エリア2に配置される。図5と同一の回路ブロックには同一符合を付してその詳細な説明を省略する。
【0094】
斯るシステムにおいて、リセット直後は先ず、フラッシュメモリ10上のプログラムで動作が開始される。エリア0は3ステート、エリア2は2ステートとエリアとされる。エリア0のフラッシュメモリ10の内容を、エリア2のSRAM17にコピーする。例えば、DMAC3を利用してもよい。その後、上記制御ビットCS0Cを”1”にセットする。エリア0のアドレスをCPU1またはDMAC3がアクセスすると、CS0*はインアクティブ、CS2*がアクティブレベルにされる。アクセスの属性はエリア2と同様になる。即ち、CPU1の論理アドレスはエリア0であるのに対し、物理アドレスはエリア2となる。エリア0とエリア2の内容が共通であるので、物理アドレスの変更によっても誤動作することはない。低速のフラッシュメモリ10にプログラムなどを格納し、動作時には高速のSRAM17にプログラムなどを転送して、データ処理速度を高速化することができる。例えばプログラムフェッチを1.5倍に高速化できるので、全体的な処理速度もこれに従って高速化される。
【0095】
フラッシュメモリ10の特性上、システム使用者に固有の情報などを蓄積していくことが考えられる。この場合、システムの動作終了時に、SRAM17からフラッシュメモリ10に内容を転送する。これにDMAC3を用いることができる。例えば、マイクロコンピュータ1の入力信号READYをDMAC3の転送要求信号とすることができる。即ち、SRAM17の内容をフラッシュメモリ10に書き戻す場合、フラッシュメモリ10によるワード又はページ単位での書込みの終了を意味する信号RDY/BUSY*のアクティブレベル(レディー状態)への変化を入力信号READYとしてマイクロコンピュータ1が受ける度に、当該信号をDMAC3の転送要求信号として処理する。その信号を転送要求信号とするには当該信号READYを受けるポートをDMAC3の転送要求信号としてDMAC3に導くようにポートの設定を行っておけばよい。
【0096】
このような処理が可能とされるのは、バスコントローラ4は、CPU2によるアクセスとDMAC3によるアクセスの何れにおいてもフラッシュメモリ10に対するコマンド書込みのバスサイクルを自動的に付加できるからである。
尚、上述のSRAM17への転送はフラッシュメモリ10以外をも対象にすることができる。例えば、マスクROM12には初期化動作のプログラムのみを格納し、フロッピディスクなどの2次記憶からエリア4のSRAM17にその他のプログラムを転送するようにしてもよい。また、高速のメモリとしては、SRAMの他、シンクロナスDRAMのようなものであってもよい。
【0097】
図24には上記マイクロコンピュータ1をエミュレーション用マイクロコンピュータに適用した場合のブロック図が示される。
エミュレーション用マイクロコンピュータ50は、マイクロコンピュータ部分51、および図示はされないバッファ回路などを含むエミュレーションインタフェース52から構成され、公知の半導体製造技術によって1つの半導体基板上に形成されている。
【0098】
上記エミュレーション用マイクロコンピュータ50はマイクロコンピュータ部分51に対応するシングルチップマイクロコンピュータの応用システムと信号の送受信を行うユーザインタフェース53を備える。上記エミュレーションインタフェース52は図示しないエミュレータやシステム開発装置と信号の送受信を行う。
図24において図1のシングルチップマイクロコンピュータと同一機能を有する回路ブロックには同一符合を付してある。図24においてユーザインタフェース53は図1の入出力回路PIO1〜PIO9を含んでいる。また、図24においてI/Oで示される回路ブロックは、図1におけるタイマ7、SCI8を含んでいる。
【0099】
エミュレーション用バスとしては、IAB及びIDBをエミュレーションインタフェース52を介して入出力する。バスPAB、PDBはエミュレーション用バスとしてエミュレーション用インタフェース52には直結していない。これによって、エミュレーション用マイクロコンピュータの端子数を削減でき、パッケージサイズの小型化、ひいてはエミュレータのサイズの縮小に寄与する。
【0100】
自動的に付加されたコマンドサイクルであることを示すステータス信号CMDCYCをエミュレーションインタフェース52を介してエミュレータなどに出力させる。自動的に付加されたコマンドサイクルではCMDCYC信号がアクティブレベルにされる。CMDCYC信号は、例えば、DATASEL、BEOR、POL信号の論理和信号とすることができる。そのほか、エミュレーションインタフェース52には、ブレーク要求端子BRKなどが含まれてなる。
CPU2が、ブレーク割込を受け付けると、ブレークアクノリッジ信号BRKAKがアクティブレベルにされて、エミュレーションのためのコントロールプログラム実行状態に遷移される。復帰命令を実行すると、BRKAK信号がインアクティブ状態になって、ユーザプログラム実行状態に遷移する。
ブレークモード中には、コマンド書込みサイクルのような自動的なバスサイクル挿入(バスコマンド)を禁止するようにする。同一のアドレスにエミュレータ用のメモリとユーザ用フラッシュメモリを配置し、ブレークモード時にはエミュレータ用のメモリを使用し、ユーザモード時にはユーザ用フラッシュメモリを使用することができる。エミュレータ用メモリは、デバック対象のプログラムを格納する目的に従って、RAMで構成することが望ましい。このRAMに対して、バスコマンドであるライトサイクルを発行して、RAMの内容を破壊してしまうことを防ぐことができる。
【0101】
図25にはエミュレータの一例ブロック図が示される。
コネクタ部60がシングルチップマイクロコンピュータの代わりに応用システム(ユーザシステム)61に装着される。エミュレーション用マイクロコンピュータ50は上記コネクタ部60とインタフェースケーブル62を介して応用システム61と信号の入出力を行う。
【0102】
また、エミュレーション用マイクロコンピュータ50は上記エミュレーションインタフェース52を用いてエミュレーションバス63に接続される。エミュレーションバス63は状態信号、制御信号、データ、及びアドレスなどの各種信号線を含む。上記エミュレーションバス63を用いて、エミュレーション用マイクロコンピュータ50から、応用システム61とエミュレーション用マイクロコンピュータ50の内部状態に応じた情報などが出力され、また、エミュレーション用マイクロコンピュータ50に対し、エミュレーションのための各種制御信号が入力される。エミュレーション用マイクロコンピュータ50の、図示はされないエミュレートモード端子が電源レベルに固定され、エミュレーション用マイクロコンピュータ50内部ではエミュレートモードが設定される。
【0103】
上記エミュレーションバス63には、特に制限はされないものの、応用システム61またはターゲットマイクロコンピュータ内蔵のメモリを代行するためのRAMでなるようなエミュレーションメモリ64と、エミュレーション用マイクロコンピュータ50の制御状態やエミュレーションバス63の状態を監視して、その状態が予め設定された状態に達した時に、上記エミュレータ専用割込みとしてのブレーク割込みを要求して、CPU2によるユーザプログラムの実行を停止させ、エミュレーション用のコントロールプログラム実行状態に遷移させる(ブレーク)ためのブレーク制御回路65と、上記CPU2のリード動作またはライト動作を示す信号、命令リード動作を示す信号などに基づき、エミュレーションバス63に与えられるアドレスやデータさらには制御情報を逐次蓄えるリアルタイムトレース回路66などが接続される。リアルタイムトレース回路は前記信号CMDCYCも逐次蓄える。
【0104】
上記エミュレーションメモリ64、ブレーク制御回路65、リアルタイムトレース回路66はコントロールバス67にも接続され、コントロールバス67を介してコントロールプロセッサ68の制御を受けるようになっている。上記コントロールバス67は、ホストインタフェース69を介して、特に制限はされないもののパーソナルコンピュータなどのシステム開発装置70に接続される。例えば、システム開発装置70から入力されたプログラムをエミュレーションメモリ64に転送し、外部プログラムROM上に配置されるべき、またはROMを内蔵した場合、内蔵ROM上に配置されるべきかかるプログラムをCPU2がリードすると、エミュレーションメモリ64上のプログラムがリードされる。また、ブレーク条件や、リアルタイムトレース条件などもシステム開発装置70から与えることができる。システム開発装置70は、リアルタイムトレース回路66にトレースされた結果を、CRTまたは液晶などの表示画面上に表示することができる。
【0105】
エミュレータシステム上では、通常のバスサイクルと自動的に付加されたバスサイクルとを明示的に区別できる。即ち、バスサイクルに対応して得られるCMDCYC信号の状態を表示したりして区別できる。あるいは、通常のバスサイクルまたは自動的に付加されたバスサイクルのみを選択的に表示することを選択可能にする。これはシステム開発装置70の処理によって、CMDCYC信号の蓄積情報に従って、対応するバスサイクルを表示するかしないかを選択すればよい。自動的に付加されたバスサイクルを削除することによって、プログラムの実行とバスサイクルが対応するようになるため、プログラムのデバックを容易にすることができる。また、自動的に付加されたバスサイクルのみを表示することによって、バスコマンドの実行状態を容易にトレースすることができる。エミュレータがバスコマンドを解釈して、バス情報だけでなく、コマンドの内容を表示することを容易にすることができる。CMDCYC信号がアクティブレベルであり、そのときのデータがH’20、H’B0であれば、表示画面上に”ブロック消去”と表示するものである。これにより、コマンドの内容をユーザが逐次確認することがなく、プログラムのデバックを容易に行うことができるようになる。
【0106】
ここで上記フラッシュメモリ10を概略的に説明する。フラッシュメモリ10は、2層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたフラッシュメモリセル(以下単にメモリセルとも記す)をマトリクス配置したメモリアレイを備える。特に制限されないが、フラッシュメモリセルのコントロールゲートはそれぞれ対応する図示しないワード線に接続され、フラッシュメモリセルのドレインはそれぞれ対応する図示しないデータ線に接続され、フラッシュメモリセルのソースはメモリブロック毎に共通のソース線に接続される。
【0107】
メモリセルへの情報の書込み動作は、例えばコントロールゲート及びドレインに高電圧を印加して、アバランシェ注入によりドレイン側からフローティングゲートに電子を注入することで実現される。この書込み動作によりフラッシュメモリセルは、そのコントロールゲートからみたしきい値電圧が、書込み動作を行わなかった消去状態のメモリセルに比べて高くなる。
【0108】
一方消去動作は、例えばソースに高圧を印加して、トンネル現象によりフローティングゲートからソース側に電子を引き抜くことによって実現される。消去動作により記憶トランジスタはそのコントロールゲートからみたしきい値電圧が低くされる。書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値は正の電圧レベルにされる。すなわちワード線からコントロールゲートに与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく1個のトランジスタでメモリセルを構成することができる。
【0109】
読み出し動作においては、上記フラッシュメモリセルに対して弱い書込み、すなわち、フローティングゲートに対して不所望なキャリアの注入が行われないように、ドレイン及びコントロールゲートに印加される電圧が比較的低い値に制限される。例えば、1V程度の低電圧がドレインに印加されるとともに、コントロールゲートに5V程度の低電圧が印加される。これらの印加電圧によってメモリセルトランジスタを流れるチャンネル電流の大小を検出することにより、メモリセルに記憶されている情報の論理値“0”、“1”を判定することができる。
【0110】
上記実施例によれば、以下の作用効果を得るものである。
(1)外部バスを有するマイクロコンピュータ1のアドレス空間上の一部または全部の領域に接続されるメモリなどを選択制御するバスコントローラ4を有し、かつ、その内部レジスタCMDCRにより、コマンドライトを必要とするフラッシュメモリ10を指定可能とし、フラッシュメモリ10を選択したアドレス空間上の領域に、CPU2またはDMAC3のようなバスマスタがリード/ライトを行なったときに、かかるリード/ライトに対応したコマンドのためのライトサイクルをバスコントローラ4のタイミング制御回路44が挿入することによって、ソフトウェアの負荷を最低限にして、フラッシュメモリ10を接続することができる。
(2)バス幅・バスサイクル数をレジスタBSWCR,ASTCR,WSCRA,WSCRBで設定することによって、外部回路を不要にして、各種メモリを直接接続することができる。
(3)リード/ライト動作時に自動的にコマンドを挿入することによって、DMAC3のようなデータ転送のみを行なうバスマスタでも、SRAMなどと同様にフラッシュメモリ10との間でもデータ転送制御を行なうことができる。
(4)エリア選択信号を出力することによって、メモリを直接接続できる。図21に基づいて説明したようにエリア選択信号の出力条件を変更することで、物理的なシステムを変更せずに、CPU2のアドレス空間上でのメモリなどの再配置を可能にすることができる。これによって、低速の不揮発メモリに格納した内容を、高速の揮発メモリに転送して、動作するとき、エリア選択信号の出力条件を変更するだけで対処できる。
(5)エミュレーション用マイクロコンピュータにおいて、バスマスタが行なったバスサイクルか、バスコントローラが自動的に挿入したバスサイクルかを示す信号CMDCYCを出力することによって、かつ、エミュレータがこれらを区別して表示することによって、デバック効率を向上することができる。
(6)エミュレーション用マイクロコンピュータにおいて、外部メモリを使用しない状態(ブレークモード)では、バスコントローラが自動的にバスサイクルを挿入することを禁止することによって、エミュレーションメモリを保護することができる。
【0111】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0112】
例えば、バスマスタとしては、CPU、DMACの他、データトランスファコントローラ、デジタルシグナルプロセッサ(DSP)であってもよい。バスを使用してメモリをリード/ライトするようなデータ処理装置であればよい。3個以上のバスマスタを有するものであってもよい。任意の数のデータ処理装置を1つの半導体集積回路に内蔵することができる。本発明はDMACやDSPそれ自体にも適用できることは言うまでもない。コマンドによって動作が指示される外部回路はフラッシュメモリに限定されない。それがメモリの場合、例えばシンクロナスDRAMであってもよい。
【0113】
バス仕様の詳細は種々変更が可能である。例えば、バス幅は8/16ビットの選択のほか、16/32ビットであってもよいし、8/16/32ビットを選択可能にしてもよい。32ビットバスにした場合は、8ビット単位のコマンドを4個並列に出力してもよい。アドレスとバスサイズを判定して、所定のバスのみコマンドを出力してもよい。
【0114】
リセット時に、マニュアルリセットとパワーオンリセットを設け、マニュアルリセットのときはバスコントローラのレジスタの内容を保持するようにしてもよい。更に、リセット用のコマンドをCPUの動作に先だって出力するようにしてもよい。
【0115】
バス制御回路の具体的な回路構成も種々変更が可能である。制御レジスタの構成なども種々変更が可能である。コマンドを格納するレジスタはCPUが随時書き込み可能であるほか、固定的なものであってもよい。エリアの分割方法についても、128kバイト単位などとすることができる。エリアの大きさを連続的に変更可能にしてもよい。分割した全エリアについて属性を設定できなくてもよい。アドレス空間が広がった場合には、各エリアが大きくならないようにすることが望ましい。使用可能なメモリの容量よりも大きくなることは望ましくない。エリアの分割数が多く、或いはマイクロコンピュータの端子が十分に大きくない場合には、すべてのエリアに対してエリア選択信号を出力しなくてもよい。
シングルチップマイクロコンピュータのその他の機能ブロックについても何等制約されない。
【0116】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他のデータ処理装置および制御システム、エミュレータにも適用可能であり、本発明は少なくとも、外部バスを使用可能なデータ処理装置に適用することができる。
【0117】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0118】
すなわち、フラッシュメモリのような外部回路に割当てられた所定のアドレス空間がアクセスされると、そのアクセスに先立って、当該外部回路の動作を指示するコマンドをライトするための第1のコマンドライトサイクルを自動的に挿入することができる。これにより、例えばフラッシュメモリに対するバイト又はページ単位での書込みに際して毎回コマンドを書込むための処理とそれを規定するプログラム記述を不要にすることができる。
【0119】
内蔵制御レジスタの所定のビットがCPUによって操作されると、当該操作の次に、外部回路の動作を指示するコマンドをライトするための第2のコマンドライトサイクルを自動的に挿入することができる。これにより、例えばフラッシュメモリに対するブロック消去書のような複数回に分けたコマンドライトが必要な場合にも、命令記述は制御レジスタに対する書込みなどを規定すればよく、上記同様データ処理効率の向上とプログラムサイズの縮小化とを実現できる。
【0120】
ポーリング制御のための外部リードサイクルをCPUによる内蔵制御レジスタの所定ビットの操作によって開始し維持することができ、これによっても、外部バスサイクルの生成という点においてデータ処理効率の向上とプログラムサイズの縮小化とを実現できる。
【0121】
エミュレーションを考慮した時、バスマスタが行なったバスサイクルか、バスコントローラが自動的に挿入したバスサイクルかを示す信号をデータ処理装置が出力することにより、デバック効率を向上することができる。
【0122】
エミュレーションを考慮したとき、ブレークモードでは上記自動的なバスサイクルの挿入することを禁止することによって、エミュレーションメモリを保護することができる。
【0123】
バスマスタ手段がダイレクトメモリアクセスコントローラであっても、上記コマンドライトサイクルの自動挿入によって、ダイレクトメモリアクセスコントローラもそのようなコマンド形式のフラッシュメモリをデータ転送元又はデータ転送先として利用することができる。
【0124】
コマンドによって動作が指示されるフラッシュメモリとのインタフェースの簡素化及び使い勝手を向上させることができる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の一実施例であるシングルチップマイクロコンピュータのブロック図である。
【図2】図1のマイクロコンピュータのアドレスマップの一例説明図である。
【図3】バス制御レジスタの説明図である。
【図4】その他のバス制御レジスタの説明図である。
【図5】図1のシングルチップマイクロコンピュータを用いたプリンタシステムの一例ブロック図である。
【図6】図5のシステムにおける外部バス16による接続状態の一例説明図である。
【図7】エリア0の16ビットバス、3ステートアクセスにおけるリード動作とエリア4の16ビットバス、3ステートアクセスにおけるリードの一例バスサイクルタイミング図である。
【図8】エリア0の16ビットバス、3ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図9】エリア4の16ビットバス、3ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図10】エリア5の16ビットバス、3ステートアクセス、アドレスマルチプレクスアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図11】エリア5の16ビットバス、3ステートアクセス、アドレスマルチプレクスアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図12】エリア6の16ビットバス、2ステートアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図13】エリア6の16ビットバス、2ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図14】エリア7の8ビットバス、3ステートアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図15】エリア7の8ビットバス、3ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図16】バスコントローラの一例ブロック図である。
【図17】バスコントローラに含まれるタイミング制御回路の一例回路図である。
【図18】図17の回路の一例動作タイミング図である。
【図19】バスコントローラに含まれるタイミング制御回路別の一例回路図である。
【図20】図19の回路におけるブロック消去のためのコマンドライトサイクルの自動生成に関する一例動作タイミング図である。
【図21】CS制御のための一例回路図である。
【図22】図21の回路を適用したプリンタシステム一例ブロック図である。
【図23】図22のシステムにおけるアドレスマップの一例説明図である。
【図24】エミュレーション用マイクロコンピュータの一例ブロック図である。
【図25】エミュレータの一例ブロック図である。
【図26】フラッシュメモリのコマンドの一例説明図である。
【符号の説明】
1 シングルチップマイクロコンピュータ
2 CPU
3 DMAC
4 バスコントローラ
BSWCR 各エリアのバス幅指定用のレジスタ
ASTCR,WSCRA,WSCRB 各エリアのバスサイクル指定用のレジスタ
MPXCR 各エリアのアドレスマルチプレクス指定用のレジスタ
CMDCR コマンドサイクル自動生成すべきエリア指定用のレジスタ
WCMD,CDATA0,CDATA1 コマンド格納用のレジスタ
BADR0〜BADR3 アドレス格納用のレジスタ
CNTL コマンドバスサイクル挿入条件指定用のレジスタ
10 フラッシュメモリ
11 DRAM
12 マスクROM
13,17 SRAM
44 タイミング制御回路
50 エミュレーション用マイクロコンピュータ
[0001]
[Industrial applications]
The present invention relates to a data processing device, and relates to a technology that is effective when applied to a memory that requires a command for an operation instruction, for example, a microcomputer that connects a flash memory. The present invention also relates to an emulator that evaluates a system to which such a data processing device is applied or debugs software for the system.
[0002]
[Prior art]
As described in the "H8 / 3003 Hardware Manual" issued by Hitachi, Ltd. in March 1993, a microcomputer composed of a semiconductor integrated circuit has a part or all of an address space of a CPU serving as a central processing unit externally. As an address, an address bus, a data bus, and a control signal can be input / output to / from the outside, and a memory or other circuit connected to the outside can be read / written. At this time, depending on the setting of a predetermined register, an area decode signal corresponding to a region obtained by dividing the address space, for example, a chip select signal, a multiplexed row address / column address, and an output of various strobe signals are output. Various waveforms such as a mask ROM, a static RAM (SRAM), a pseudo-static RAM (PSRAM), and a dynamic RAM (DRAM) are directly connected by changing a waveform to enable reading / writing.
[0003]
[Problems to be solved by the invention]
However, the address / data provided to or read from the memory at the time of read / write may not be directly related to the information stored in the memory. For example, a flash memory described in "Hitachi IC Memory 2", pp. 280-304, issued by Hitachi, Ltd., September 1993, requires a command to specify the operation of the memory to be given from the data bus in advance. There is.
[0004]
FIG. 26 shows an example of the command of the flash memory.
In the figure, W indicates a write operation, R indicates a read operation, X indicates an arbitrary value, RA indicates a read address, RD indicates read data, BA indicates a block address, PA indicates a write address, PD indicates write data, and H 'indicates a hexadecimal number. . The block address BA is address information for specifying a block to be erased in block units.
For example, when writing data, a command (H'10) is written before writing data, and then data (PD) to be written is written to an address (PA) to be written. .
[0005]
A program example of a write operation by the CPU is shown below. The instructions are the same as those of the CPU described in "H8 / 3003 Hardware Manual" issued by Hitachi, Ltd., March 1993.
MOV. B #CMD, R0L ... (1)
MOV. BR0L, @FMEM ... (2)
MOV. B #DATA, R0L ... (3)
MOV. BR0L, @WADR ... (4)
In the above description of the instruction, CMD indicates a command value (H'10 in the example of FIG. 26), DATA indicates write data, and # indicates immediate data. FMEM is an arbitrary address of the flash memory, and WADR is a write address. @ indicates a memory address. The above-mentioned instruction (1) is an instruction to transfer the command CMD to the register R0L of the CPU, (2) is an instruction to transfer the command of the register R0L to the address @FMEM of the flash memory, and (3) is data to be written to the register R0L of the CPU. (4) is an instruction to transfer the data of the register R0L to the write address WADR.
[0006]
The address may be specified as an absolute address or may be register indirect. Write data may also be prepared on a general-purpose register. As is apparent from the above instruction description, writing 1-byte data requires instructions (1) and (2) for writing a command to the flash memory. On the other hand, twice as many instructions need to be executed. As a result, the program size increases and the processing speed also decreases.
[0007]
Since the CPU can execute an arbitrary program, if the load on the software is increased as described above, data can be written to the flash memory by the command method. However, a direct memory access controller (DMAC) or the like can perform only simple data transfer, and determines whether an access target is, for example, an SRAM or a flash memory, and inserts a command. Is not easy. According to the study of the present inventor, when such data writing is to be realized by a DMAC, a command must be stored in the transfer source together with the write data, and such a thing is actually performed. If this is the case, the load on the CPU prior to the DMA transfer is significantly increased, and the throughput of the system is significantly reduced. In other words, it is not a practical approach. An example of DMAC is described in "H8 / 3003 Hardware Manual" issued by Hitachi, Ltd. in March 1993. In addition to the DMAC, the same applies to a data transfer controller (DTC) and the like. DTC is described in, for example, "H8 / 532 Hardware Manual" issued by Hitachi, Ltd. in December 1988.
[0008]
An object of the present invention is to provide a data processing device capable of automatically adding or inserting a bus cycle for command transfer to a peripheral circuit such as a flash memory whose operation is instructed by a command.
Another object of the present invention is to provide a data processing device for automatically adding or inserting the bus cycle according to bus information for accessing a required peripheral circuit.
Another object of the present invention is to provide a data processing device for automatically adding or inserting the bus cycle by writing control information into a predetermined internal register.
Still another object of the present invention is to provide a data processing device capable of shortening an instruction execution time for accessing a peripheral circuit such as a flash memory whose operation is instructed by a command and reducing a program size. .
It is another object of the present invention to provide a data processing device such as a DMAC which can be directly connected to and access a peripheral circuit such as a flash memory whose operation is instructed by a command.
Further, the present invention provides an emulator for evaluating a system to which the data processing device is applied and debugging software for the system by using a function of the data processing device capable of automatically adding or inserting a bus cycle for command transfer. An object of the present invention is to provide a technique for preventing usability from deteriorating.
[0009]
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0010]
[Means for Solving the Problems]
The outline of a representative invention among the inventions disclosed in the present application will be briefly described as follows.
[0011]
(1) A data processing device (for example, a single-chip microcomputer 1) which incorporates a bus master means (for example, a CPU 2 or a DMAC 3) that can use an external bus and can be connected to an external circuit (for example, a flash memory 10) whose operation is instructed by a command. Responding to an instruction to access an external predetermined address space by a bus master means, and prior to generating an external bus access cycle corresponding to the access instruction, operating the external circuit with respect to the predetermined address space. Bus control means (for example, bus controller 4) for generating a first command write cycle for writing a command for instructing a command.
[0012]
(2) The bus control means includes an address space designating means (for example, a register CMDCR) for designating an address space in which a first command write cycle should be started, and an access address by a bus master means designated by the address space designating means. Determining means (for example, the control circuit 41) for determining whether or not the address is included in the specified address space; and timing control means (for example, for generating the first command write cycle based on the detection result of the presence by the determining means). And a timing control circuit 44) including the configuration shown in FIG.
[0013]
(3) Commands to be written in the first command write cycle can be rewritably held in command storage means (for example, registers WCMD, CDATA0, and CDATA1).
[0014]
(4) Further, the bus control means includes a control register means (for example, a register CNTL) and a predetermined address space in a predetermined address space by the CPU operating a first bit (for example, bits BE0 to BE3) of the control register means. Timing control means (for example, a timing control circuit 44 including the configuration shown in FIG. 19) for generating a second command write cycle for writing command data (for example, a command for erasing a block in a flash memory). Can be.
[0015]
(5) The address to be output in the second command write cycle can be stored in address storage means (for example, registers BADR0 to BADR3).
[0016]
(6) Further, the bus control means is inputted from a predetermined external terminal (for example, a ready input terminal READY) by the CPU operating a second bit (for example, bit RE, bit POL) of the control register means. Timing control means (for example, a timing control circuit 44 including the configuration shown in FIG. 19) for generating an external read cycle for performing polling control for waiting for a change in a signal (for example, an output signal RDY / BUSY * of a flash memory). Can be prepared.
[0017]
(7) It is desirable to provide the data processor for emulation with an emulation interface for outputting an identification signal indicating whether or not a bus cycle to the outside is the command write cycle. Further, in the data processing device for emulation, the CPU outputs a control signal for inhibiting generation of the first command cycle by the bus control means based on a predetermined external interrupt (for example, a break signal). Such a data processing device can constitute a data processing system by an emulator coupled to an emulation interface included in the data processing device. The emulator has a trace memory and a break control circuit. The trace memory inputs and stores the identification signal together with the bus information of the data processing device, and the break control circuit predicts the control state of the data processing device. When a set state is reached, a break signal is output to the data processing device as the interrupt signal.
[0018]
(8) The data processing device may further include a direct memory access controller as the bus master means, and may be formed as a single-chip microcomputer on one semiconductor substrate. Such a data processing device can constitute a data processing system including, for example, a flash memory as an external circuit directly connected to the data processing device.
[0019]
(9) A data processing device having a built-in bus master means capable of using an external bus and connectable to a flash memory whose operation is instructed by a command, responds to an instruction to access an external predetermined address space by the bus master means, Prior to generation of an external bus access cycle corresponding to the access instruction, bus control means for generating a command write cycle for writing a command for instructing the operation of the flash memory to the predetermined address space; An external input terminal for a signal indicating the internal operation state of the flash memory designated by the write can be formed on one semiconductor substrate.
[0020]
[Action]
According to the above means (1) to (3), when a predetermined address space allocated to an external circuit such as a flash memory is accessed, prior to the access, a command for instructing the operation of the external circuit is issued. Is automatically inserted for writing the first command write cycle. This eliminates the need for a process for writing a command each time a byte or page is written to the flash memory and a program description for defining the process.
[0021]
According to the above means (4) and (5), when a predetermined bit of the internal control register is operated by the CPU, the second command for writing a command for instructing the operation of the external circuit is written after the operation. Command write cycle is automatically inserted. This means that, even when command writing divided into a plurality of times, such as block erasing for a flash memory, is required, the instruction description may define writing to the control register and the like. And the program size can be reduced.
[0022]
According to the means (6), starting and maintaining an external read cycle for polling control by operating a predetermined bit of a built-in control register by the CPU also requires the same data processing efficiency as in the case of generating an external bus cycle. And the program size can be reduced.
[0023]
According to the above-mentioned means (7), the command write cycle specially inserted does not have a corresponding instruction description, but this would hinder the emulation of verifying the instruction execution trajectory from the trace information. , The identification signal serves to indicate that it is a specially inserted command write cycle. Further, in a state where the operation space of the data processing device is switched after the break and the control program for emulation is executed, a control RAM or the like is allocated so as to overlap the address where the command write cycle is to be inserted. In such a case, the function of the data processing device that automatically prevents a command write cycle from occurring and erroneously rewrites the data in the RAM and automatically adds or inserts a command write cycle is provided by the data processing device. An emulator that evaluates a system to which the application is applied and debugs software for the system is not reduced.
[0024]
Even if the bus master means is a direct memory access controller as explicitly shown in the above means (8), the direct memory access controller can also transfer the flash memory of such a command format to the data by the automatic insertion of the command write cycle. It can be used as a transfer source or a data transfer destination.
[0025]
According to the data processing device of the above-mentioned means (9), simplification of the interface with the flash memory, the operation of which is instructed by a command, and improvement of usability are achieved.
[0026]
【Example】
FIG. 1 shows a single-chip microcomputer which is an embodiment of a data processing device according to the present invention.
The single-chip microcomputer 1 shown in FIG. 1 includes a CPU 2, a DMAC 3, a bus controller (BSC) 4, a ROM 5, a RAM 6, a timer 7, a serial communication interface (SCI) 8, first to ninth input / output ports IOP1 to IOP9, A clock oscillator (CPG) 9 is composed of functional blocks or modules, and is formed as a semiconductor integrated circuit on one semiconductor substrate by a known semiconductor manufacturing technique.
[0027]
The single-chip microcomputer 1 has a ground level terminal Vss, a power supply voltage level terminal Vcc as power supply terminals, and a reset terminal RES, a standby terminal STBY, a mode control terminal MODE, and clock input terminals EXTAL and XTAL as other dedicated control terminals. . They are external terminals.
The single-chip microcomputer 1 operates in synchronization with the system clocks φ1 and φ2 generated by the clock oscillator 9 based on a crystal oscillator (not shown) connected to the clock input terminals EXTAL and XTAL. Alternatively, an external clock may be input to the EXTAL terminal. One cycle of the system clocks φ1 and φ2 is called one state. The system clocks φ1 and φ2 are non-overlapping two-phase clocks, and φ2 is a clock whose phase is substantially inverted or shifted by 180 ° with respect to φ1.
[0028]
The functional blocks are interconnected by an internal bus. The internal bus includes a control bus including a read signal, a write signal, a bus size signal, and system clocks φ1 and φ2 in addition to an address bus and a data bus. IAB and PAB exist on the internal address bus, and IDB and PDB exist on the internal data bus. The IAB and IDB are connected to the CPU 2, the ROM 5, the RAM 6, the bus controller 4, and some of the input / output ports IOP1 to IOP9. PAB and PDB are connected to the bus controller 4, the timer 7, the SCI 8, and the input / output ports IOP1 to IOP9. The IAB and PAB and the IDB and PDB are interfaced by the bus controller 4, respectively. Although not particularly limited, PAB and PDB are exclusively used for register access in the functional block to which they are connected.
[0029]
The input / output ports IOP1 to IOP9 are also used for input / output of external bus signals and input / output signals of input / output circuits. These functions are selected and used depending on the operation mode or software setting. The input / output ports IOP1 to IOP3 are used for address bus output, the input / output ports IOP4 and IOP5 are used for data bus input / output, and the input / output ports IOP6 and IOP7 are also used for bus control signals. The external address and external data are connected to IAB and IDB via buffer circuits (not shown) included in these input / output ports, respectively. PAB and PDB are used to read / write a built-in register such as an input / output port and the bus controller 4, and have no direct relation to an external bus.
[0030]
Both the internal bus and the external bus have a 16-bit bus width, and read / write of byte size (8 bits) and word size (16 bits) is performed. The external bus may have an 8-bit width.
[0031]
The bus control signals include area selection signals CS0 * to CS7 *, read signals RD *, write signals HWR * and LWR *, column address strobe signals CAS *, wait signals WAIT *, ready signals READY, and the like.
[0032]
When a reset signal is applied to the reset terminal RES, the operation mode given by the mode control terminal MODE is fetched, and the single-chip microcomputer (hereinafter simply referred to as microcomputer) 1 is reset. The operation mode is not particularly limited, but the validity / invalidity of the built-in ROM 5, the address space is selected from 16 Mbytes or 1 Mbyte, and the initial value of the data bus width is selected from 8 bits or 16 bits. A plurality of mode control terminals MODE are provided as necessary, and an operation mode is determined by a combination of input states to these terminals.
[0033]
When the built-in ROM 5 is invalidated, the external address is made valid, and the address corresponding to the ROM 5 is set as the external address. The built-in ROM 5 is, for example, a mask ROM or a PROM (programmable ROM). Since the contents of the mask ROM are written during the manufacturing process of the semiconductor integrated circuit, the time from when the user creates the program to when the user obtains the microcomputer is extremely long. Also, rewriting cannot be performed. The PROM allows a user to write a program, but cannot rewrite the program while the PROM is attached to the system. Alternatively, the storage capacity of the ROM 5 that can be built in the microcomputer is not as large as that of the ROM alone, and it is not always possible for the user to store the desired program scale in the built-in ROM 5. Therefore, it is conceivable that a ROM for storing a program is provided outside the microcomputer separately from the microcomputer without using the built-in ROM. By exchanging an external ROM for storing programs while the microcomputer is mounted in the system, the time from program creation to system acquisition can be reduced, or system specifications can be changed. Hereinafter, a case where a program ROM is provided outside without using the built-in ROM will be described.
[0034]
When the reset state is released, the CPU 2 reads a start address and performs a reset exception process for starting reading an instruction from the start address. Although the start address is not particularly limited, it is assumed that the start address is stored in an area starting from address 0. Thereafter, the CPU 2 executes instructions sequentially from the start address.
[0035]
DMAC 3 transfers data under the control of CPU 2. The CPU 2 and the DMAC 3 perform read / write operations using the internal bus and the external bus exclusively. Arbitration of which of the CPU 2 and the DMAC 3 operates is performed by the bus controller 4.
[0036]
The bus controller 4 configures a bus cycle in response to the operation of the CPU 2 or the DMAC 3. That is, a bus cycle is formed based on the address, read signal, write signal, and bus size signal output from the CPU 2 or the DMAC 3. For example, when the CPU 2 outputs an address corresponding to the RAM 6 to the internal address bus IAB, the bus cycle is set to one state, and reading / writing is performed in one state regardless of the byte / word size. When the CPU 2 outputs addresses corresponding to the timer 7, the SCI 8, and the input / output ports IOP1 to IOP9 to the internal address bus IAB, the bus cycle is set to three states, and the contents of the internal address bus IAB are output to the internal address bus PAB. The read / write operation is performed in three states regardless of the byte / word size. This control is performed by the bus controller 4.
[0037]
FIG. 2 shows an example of an address map of the microcomputer 1.
The address space is 16 Mbytes in total, and the address space is divided into 8 areas of 2 Mbytes each. Area selection signals CS0 * to CS7 * corresponding to these areas are output. For example, when area 0 is accessed, the area selection signal CS0 * is activated. The area selection signal is a signal that is used as a chip selection signal for a circuit to which it is input.
[0038]
The access method for each area is specified by five 8-bit registers BSWCR, ASTCR, WSCRA-B, MPXCR, and CMDCR included in the bus controller 4.
Each bit of each register controls an area corresponding to a number. These correspondences are shown in the figure. For example, area 0 is controlled by each bit 0 of BSWCR, ASTCR, WSCRA-B (WSCRA and WSCRB), MPXCR, and CMDCR.
These registers can always be read / written by the CPU 2. The initial value of the register BSWCR is determined by the operation mode. That is, if the initial value of the data bus width is 8 bits, it is initialized to H'FF, and if it is 16 bits, it is initialized to H'00. The initial values of the registers ASTCR and WSCRA-B are set to H'FF, and the initial values of the registers MPXCR and CMDCR are set to H'00.
[0039]
The register BSWCR specifies the bus width of each area. A bus width of 8 or 16 bits is selected. When the corresponding bit is cleared to "0", a 16-bit bus is selected, and when the corresponding bit is set to "1", an 8-bit bus is selected.
[0040]
The registers ASTCR and WSCRA-B specify the number of bus cycles in each area. The number of bus cycles is selected from 2, 3, 4, 5, and 6 states. When the corresponding bit of the register ASTCR is cleared to "0", two-state access is performed. When the bit is set to "1", the number of states is specified by the register WSCRA-B. The register WSCRA-B sets the number of wait states. When all the corresponding bits of the register WSCRA-B are cleared to "0", no wait state is set (3-state access), the corresponding bit of the register WSCRA is cleared to "0", and the corresponding bit of the register WSCRB is set to "0". When set to “1”, a one-state wait (four-state access) is set. When the corresponding bit of the register WSCRA is set to “1”, and when the corresponding bit of the register WSCRB is cleared to “0”, a two-state wait (five-state access) is performed. ), And if all the corresponding bits of the register WSCRA-B are set to "1", a 3-state wait (6-state access) is set. The wait inserted by the register WSCRA-B is called a programmable wait and is distinguished from an external wait instructed from outside the microcomputer.
[0041]
The register MPXCR specifies an address multiplex. This is effective when the bus cycle has three or more states. For example, when connecting a 16-bit 4-Mbit DRAM, a row address (logical address A18-A10) is first output to the address output A9-A1 of the microcomputer, and then a column address (logical address A9-A1). ) Is output. At this time, the waveform of the area selection signal is changed at the same time, and the RAS * (row address strobe) signal is activated after the output of the row address. The setup and hold of the row address is secured. After the output of the column address, a CAS * (column address strobe) signal is activated from another terminal.
[0042]
The register CMDCR specifies an area for automatically generating a command cycle. When the CPU 2 or the DMAC 3 makes a predetermined access to an area where the corresponding bit of the register CMDCR is set to “1”, a bus command cycle is automatically inserted. For example, if the CPU 2
MOV. B #DATA, R0L
MOV. BR0L, @WADR
Is executed to execute a write cycle of data DATA for the address WADR. If the address WADR corresponds to an area in which the corresponding bit of the register CMDCR is set to "1", for example, A write cycle for the address WADR of the command CMD instructing the write operation to the memory is automatically activated and inserted, and then a bus cycle for the data DATA write operation for the address WADR is activated. Become. Here, when writing a command, if a chip selection signal for a circuit such as a flash memory to be written is directly supplied to the circuit as an area selection signal, the command is output to the outside at the time of command writing. Addresses have no real meaning. In this example, the same address as the address of the next data write is output for convenience.
The built-in memories and peripheral functions such as the RAM 6, the timer 7, the SCI 8, and the input / output ports IOP1 to IOP9 are included in the area 7, but are fixed to their respective bus widths and bus cycle numbers.
[0043]
FIGS. 3 and 4 show other register configurations for bus control.
The register WCMD has an 8-bit configuration, and stores data which is a command to be output prior to the above-described write cycle.
Each of the registers CDAT0 and CDAT1 has an 8-bit configuration, and stores data serving as a command to be output prior to the above-described write cycle. CDAT0 is the first command, and CDAT1 is the second command. That is,
When the required command is 2 bytes, the registers CDAT0 and CDAT1 are used. As an example of the 2-byte command, there are the commands H'20, H, and B0 for the block erase shown in FIG.
Each of the registers BADR0 to BADR3 has a 16-bit configuration and stores address information.
The above registers WCMD, CDAT0 to CDAT1, and BADR0 to BADR3 are always readable / writable by the CPU 2, and the initial value is H'00.
[0044]
The register CNTL has an 8-bit configuration, and conditions for adding a command bus cycle are set. Bits BE0 to BE3 are condition bits for block erasing of the external flash memory, and bit POL is a condition bit for polling. In addition, a bit RE is included. The bit RE is always readable / writable by the CPU 2, but the bits BE0 to BE3 and the bit POL are only writable "1", and are automatically cleared to "0" when a predetermined operation is completed. . Bits 4 and 5 are reserved bits, and when read, "0" is read and writing is invalidated.
[0045]
The initial value of the register CNTL is set to H'00.
When the bit RE is set to "1", the input of the READY terminal of the microcomputer becomes valid. In this state, if the bit POL is set to "1" by the CPU 2, a polling read cycle is automatically inserted externally following the bus cycle. At this time, a busy signal input from, for example, a flash memory to a READY terminal (to be described later) of the microcomputer 1 is recognized as a wait signal. For example, when the external flash memory is performing an internal operation and outputting a busy signal, that is, when the external flash memory is performing an internal operation, the microcomputer 1 is in a wait state until the internal operation is completed. In the meantime, the polling read cycle is automatically continued.
[0046]
If there is any other content to be processed by the microcomputer 1 during the internal operation of the flash memory, the microcomputer 1 outputs the RDY / BUSY * signal (ready at high level, busy at low level) output from the flash memory. , The rising edge may be detected to generate an interrupt. That is, after instructing the flash memory to perform writing or erasing, the microcomputer 1 detects the end of the operation by an interrupt due to the rising edge of the RDY / BUSY * signal. Therefore, the microcomputer does not need to constantly monitor the end of the operation of the flash memory during that time, and the load on the operation control of the flash memory is reduced.
When the bit RE is cleared to "0", the input of the READY terminal is invalidated, and the corresponding terminal can be used as an input / output port.
[0047]
When any one of bits BE0 to BE3 is set to "1", a command write cycle for erasing a block in an external flash memory is started following the bus cycle. The command has contents stored in the registers CDAT0 and CDATA1 in advance. Block erasure is specified by a 2-byte command. At this time, the erase target block address is an address specified by the registers BADR0 to BADR3.
For example, if the block size of the flash memory is 512 bytes, four addresses can be specified at the same time. Therefore, 2 kbytes can be continuously erased.
[0048]
Each of the registers BADR0 to BADR3 has 16 bits, and the lower 1 bit is ignored. The lower 8 bits are set to H'00 in these 16 bits, and the erase block address is designated. This corresponds to an address space of 16 Mbytes. Therefore, when H'0123 is set in the register BADR0, the start address of the erase block is H'012200.
At this time, the bit of the register CMDCR corresponding to the area including this address is set to “1”. When H'20 is stored in the register CDAT0 and H'B0 is stored in the register CDAT1, and the bit BE0 is set to "1", two write cycles are executed for the address H'012200, and the first data Is H'20, the second data is H'B0, and the 146th block of the flash memory is erased.
[0049]
When chip erasing or continuous block erasing is performed, the command data set in CDAT0 and CDATA1 may be changed to data equivalent to chip erasing or continuous block erasing. Further, if the command data set in the registers CDAT0 and CDATA1 is changed to data corresponding to page writing, and a bus command is issued and a write cycle is sequentially performed, page writing can be performed using the register CNTL.
In the case of a 16-bit bus, the same command data is output to the upper 8 bits and lower 8 bits.
[0050]
As described above, the write operation to the flash memory, the block erasure, the polling, and the like in which the operation instruction is given by the command can be performed with the load on the CPU 2 reduced. The write operation to the flash memory can be performed when the DMAC 3 starts a bus cycle in the same manner as when the CPU 2 starts.
[0051]
The read operation for the flash memory can be performed at random. That is, according to FIG. 26, the read operation is instructed by the command H'00. However, when the read operation is instructed by the command, the flash memory can perform the read operation at any time unless another operation mode is instructed thereafter. To be. For example, upon power-on reset or exception processing, the microcomputer 1 unconditionally writes a command H'00 instructing a read operation to the flash memory. The information stored in the flash memory is, for example, constant data and tuning information to be rewritten, in addition to an operation program exclusively used for reading. If such constant data and tuning information are rewritten by exception processing in a system to which the microcomputer 1 is applied, a read operation to the flash memory can be performed at any time.
[0052]
FIG. 5 shows an example of a system using the single-chip microcomputer 1.
Although not particularly limited, the system shown in FIG. 1 is a printer control system, and includes a single-chip microcomputer 1, a flash memory 10 for storing programs and tuning information of the single-chip microcomputer 1, and a DRAM (buffer) for a data buffer. RAM 11, a mask ROM for character generation (referred to as CGROM) 12, an SRAM (output buffer) 13 for temporarily storing print data, a centronics interface circuit 14 for interfacing with a host processor (not shown), and a print head drive. It has circuits 15, which are connected via an external bus 16 of the single-chip microcomputer 1. The Centronics interface circuit 14 and the print head drive circuit 15 are formed of the same semiconductor integrated circuit, for example, a gate array (G / A), and the other circuits are formed of separate semiconductor integrated circuit chips. Further, although not shown, the SCI 8 of the microcomputer 1 is connected to a host processor and includes a line feed motor and a carriage return motor of a printer controlled by the output of the timer 7 of the microcomputer 1.
[0053]
The single-chip microcomputer 1 operates based on a program stored in the flash memory 10. For example, based on such a program, data sent from the host processor is transferred to the buffer RAM 11 via the Centronics interface circuit 14. The data transferred to the buffer RAM 11 is converted into font data by referring to the CGROM 12. The font data is stored in the output buffer RAM 13. Thereafter, the single-chip microcomputer 1 outputs a pulse using the timer 7, and drives a carriage return motor (not shown). The print head is moved by the rotation of the carriage return motor. Font data is transferred from the output buffer RAM 13 to the print head drive circuit 15 in accordance with the movement of the print head. The DMAC 3 built in the single-chip microcomputer 1 can be used for data transfer from the Centronics interface circuit 14 to the buffer RAM 11 and data transfer from the output buffer 13 to the print head drive circuit 15. By rewriting the tuning information stored in the flash memory 10, fine adjustment of the system can be performed. Further, the operation program stored in the flash memory 10 may be modified by version upgrade or use change. The rewriting of the flash memory 10 can be efficiently performed by the above-mentioned automatic insertion or additional function of the command cycle by the single-chip microcomputer.
[0054]
For example, in the system shown in FIG. 5, the flash memory 10 is set to area 0, the CGROM 12 is set to area 4, the buffer RAM 11 is set to area 5, the output buffer 13 is set to area 6, the centronics interface circuit 14, and the print head drive circuit 15 are set to area 7. And
Area 0 is a 16-bit bus, 3-state, command valid,
Area 4 has a 16-bit bus and 3 states,
Area 5 is a 16-bit bus, 3-state, address multiplex,
Area 6 has a 16-bit bus and two states.
Area 7 has an 8-bit bus and 3 states,
The programmable wait shall not be inserted in any area.
At this time, the setting of the above register is
BSWCR = B'10000000,
ASTCR = B′10110001,
WSCRA = B'00000000,
WSCRB = B'00000000,
MPXCR = B'00100000,
CMDCR = B'00000001
It is said.
[0055]
FIG. 6 shows an example of a connection state by the external bus 16 in the system of FIG. In the figure, G / A is a gate array constituting the Centronics interface circuit 14 and the print head drive circuit 15.
The flash memory 10 is 16 Mbit described in “Hitachi IC Memory 2” pp 305-321 published by Hitachi, Ltd., September 1993, and the mask ROM 12 is “Hitachi IC Memory 2” pp 681 published by Hitachi, Ltd., September 1993. The DRAM 11 is a 16 Mbit DRAM described in "-687", and the DRAM 11 is a 4 Mbit DRAM described in "Hitachi IC Memory 3", pp 432-455, issued by Hitachi, Ltd. in September 1993. The number of the SRAMs 13 is two 4 Mbits described in "Hitachi IC Memory 1", pp. 470-478, issued by Hitachi, Ltd. in September 1993.
[0056]
The address is input to all of the flash memory 10, DRAM 11, mask ROM 12, SRAM 13, and G / A 14 and 15. However, the number of bits corresponding to each capacity is input. For example, since the flash memory 10 has a capacity of 1 M words (16 M bits), the address is 20 bits. Since the single-chip microcomputer 1 is an address in byte units and the flash memory 10 is an address in word units, the microcomputer 1 operates so that the least significant bit of the address output by the microcomputer 1 is ignored and the address is halved. The address is supplied to the flash memory 10. That is, the address terminals A20 to A1 of the microcomputer 1 are connected to the address terminals A19 to A0 of the flash memory 10. One of the SRAMs 13 has an even address and the other has an odd address. Address terminals A19 to A1 of the microcomputer are connected to address terminals A18 to A0 of the SRAM 13.
[0057]
The upper data buses D15 to D8 are connected to the flash memory 10, the DRAM 11, the mask ROM 12, the SRAM (even address) 13, and the G / As 14, 15. The lower data buses D7 to D0 are connected to the flash memory 10, DRAM 11, mask ROM 12, and SRAM (odd address) 13. Output terminal CS0 * (symbol * means that the active level of the signal to which it is attached is low level, and in the drawing, a horizontal bar attached to the signal name is attached instead of symbol *. Is connected to the flash memory 10, the output terminal CS4 * is connected to the mask ROM 12, and the output terminal CS6 * is connected to each chip selection signal input terminal CS * of the SRAM 13. The output terminal CS5 * is connected to the row address strobe signal input terminal RAS * of the DRAM 11. The output terminal CS7 is input to the chip selection signal input terminals CS * of the G / As 14 and 15. CS0 *, CS4 *, CS5 *, CS6 *, and CS7 * are output terminals for area selection signals.
[0058]
The output terminal RD * of the read signal is connected to the input terminal OE * of the output enable signal of the flash memory 10, the mask ROM 12, and the SRAM 13, and is also connected to the G / A input terminal OE *.
The output terminal HWR * of the write signal of the upper byte is connected to the upper write enable signal input terminal UW * of the flash memory 10 and the DRAM 11 and the write enable signal input terminal WE * of the SRAM (even address) 13. It is also connected to the write enable signal input terminal WE *.
The output terminal LWR * of the write signal of the lower byte is connected to the lower write enable signal input terminal LW of the flash memory 10 and the DRAM 11 and the write enable signal input terminal WE * of the SRAM (odd address) 13.
The output terminal CAS * of the column address strobe signal of the microcomputer 1 is connected to the column address strobe signal input terminal CAS * and the output enable signal input terminal OE * of the DRAM 11.
Further, the output terminal RDY / BUSY # of the ready / busy signal of the flash memory 10 is connected to the input terminal READY of the microcomputer 1.
Note that the symbols of the various terminals are also used as signs of the input or output signal names of the corresponding terminals in the following description.
[0059]
FIGS. 7 to 15 show typical bus cycle timings in the setting state of the registers BSWCR, ASTCR, WSCRA, WSCRB, MPXCR, and CMDCR in the system of FIG. 5, for example, the timing at the time of word data access. At these timings, word data access is limited to 2-byte data starting from an even address. Although not particularly limited, the upper bits D15 to D8 of the data bus are used for the 8-bit bus. All bus control signals are of negative logic.
[0060]
(1) 16-bit bus in area 0, 3-state access
The bus cycle timings of the read and write operations in this case are shown in FIGS.
In the case of a 16-bit bus of area 0 and three-state access, data at even addresses is read / written using the upper data bus, and data at odd addresses is read using the lower data bus. The microcomputer 1 activates the read signal RD * / higher-order write signal HWR * corresponding to even-numbered address read / write, and the read signal RD * / lower-order write signal LWR * corresponding to odd-numbered address read / write. And Read is controlled collectively by 16 bits. Writing is controlled in byte units. The address and CS0 * signal output are valid during the bus cycle. Read signal RD * is set to an active level in synchronization with the fall of clock φ in clock T1 (rise of clock φ2), and returned to inactive in synchronization with the fall of clock φ in clock T3 (rise of clock φ2). It is. The upper write signal HWR * and the lower write signal LWR * output from the microcomputer 1 are set to the active level in synchronization with the rise of the clock φ in the T2 state (the rise of the clock φ1), and the fall of the clock φ in the T3 state (clock) It is returned to inactive in synchronization with the rise of φ2).
At this time, the read operation is performed as it is, but when a write operation is instructed, a write cycle of a command to the flash memory is inserted. In the write cycle of the command, an address output by a bus master such as CPU 2 or DMAC 3 is output to the external address bus. The data at that time is the command data held in the WCMD register. The address and control signal outputs are the same as described above.
[0061]
(2) 16-bit bus in area 4 and 3-state access
The bus cycle timing of the read and write operations in this case is shown in FIGS. In the 16-bit bus and the three-state access of the area 4, data at even addresses is read using the upper data bus, and data at odd addresses is read using the lower data bus. Read is controlled collectively by 16 bits. The address and output signal CS4 * indicates a valid value during a bus cycle. The read signal RD * is set to the active level in synchronization with the fall of the clock φ in the T1 state (the rise of the clock φ2), and is returned to the inactive level in synchronization with the fall of the clock φ in the T3 state.
[0062]
(3) 16-bit bus in area 5, 3-state access, address multiplex access
The bus cycle timing of the read and write operations in this case is shown in FIGS. In this case, the row address is output to A10 to A1 in the T1 state, and the column address is output to A10 to A1 in the T2 and T3 states. The output signals CS5 *, RD *, HWR *, and LWR * are set to the active level in synchronization with the fall of the clock φ in the T1 state, and returned to the inactive level in synchronization with the fall of the clock φ in the T3 state. It is. The column address strobe signal CAS * is set to the active level in synchronization with the fall of the clock φ in the T2 state, and is returned to the inactive level in synchronization with the fall of the clock φ in the T3 state.
Similarly to the above, read / write is performed using even-numbered data using the upper data bus and odd-numbered data using the lower data bus. HWR * is activated in response to the even address write, and LWR * is activated in response to the odd address write.
[0063]
(4) 16-bit bus in area 6, 2-state access
The bus cycle timings of the read and write operations in this case are shown in FIGS. In this case, data at even addresses is read / written using the upper data bus, and data at odd addresses is read / written using the lower data bus. An RD * or HWR * output signal is activated in response to an even address read / write, and an RD * or LWR * output signal is activated in response to an odd address read / write. Read is controlled collectively by 16 bits. Writing is controlled in byte units. Address and output signal CS6 * is made active during the bus cycle. The output signals RD *, HWR *, and LWR * are set to the active level in synchronization with the fall of the clock φ in the T1 state, and are returned to the inactive level in synchronization with the fall of the clock φ in the T3 state.
[0064]
(5) 8-bit bus in area 7, 3-state access
The bus cycle timing of the read and write operations in this case is shown in FIGS. In this case, read / write is performed using the upper part of the data bus. That is, the signal RD * or HWR * is selectively activated. The address and output signal CS7 * is activated during a bus cycle. The output signal RD is set to the active level in synchronization with the fall of the clock φ in the T1 state, and is returned to inactive in synchronization with the fall of the clock φ in the T3 state. The output signal HWR * is set to an active level in synchronization with the rise of the clock φ in the T2 state, and is returned to inactive in synchronization with the fall of the clock φ in the T3 state.
As shown in FIGS. 14 and 15, when a bus master such as the CPU 2 or the DMAC 3 accesses word data, byte access is performed twice in the order of even addresses and odd addresses.
[0065]
FIG. 16 is a block diagram showing an example of the bus controller 4 for generating the various bus access timings as described above.
The bus controller 4 includes an address decode circuit 40, a control circuit 41, a bus right arbitration circuit 42, a selection circuit 43, a timing control circuit 44, a control register 45, a command register 46, and an address register 47. The control register 45 includes the registers BSWCR, ASTCR, WSCRA-B, MPXCR, CMDCR, and CNTL. The command register 46 includes the registers WCMD and CDAT0 to CDATA1. The address register 47 includes the registers BADR0 to BADR3. FIG. 16 representatively shows, as functions included in the input / output port, an input / output buffer, multiplexers 47 and 48, and an output buffer. 47 is an address multiplexer, and 48 is a data multiplexer.
[0066]
The bus right arbitration circuit 42 controls which of the CPU 2 and the DMAC 3 uses the bus. For example, when a data transfer activation factor occurs in the DMAC 3 and the DMAC bus request signal is set to an active level such as 1 level, the bus arbitration circuit 42 transmits the bus to the DMAC 3 at a predetermined timing designated by the timing control circuit 44. The use is permitted, and the DMAC bus right permission signal is set to an active level such as 1 level and returned to the DMAC 3. At other times, the CPU 2 has the bus right. Similarly, when the DMAC 3 has the bus right and the CPU 2 regains the bus right, it is performed by the CPU bus right request signal and the CPU bus right permission signal. Based on this control, the CPU 2 and the DMAC 3 can exclusively use the address / data bus.
[0067]
The selection circuit 43 selects a bus control signal output from the CPU 2 and the DMAC 3, for example, a read signal RD, a write signal HWR, LWR, bus size information, etc., based on an instruction from the bus right arbitration circuit 42, and sends it to the timing control circuit 44. give. That is, if the DMAC bus right grant signal is at level 1, the bus control signal from the DMAC 3 is given to the timing control circuit 44, and the bus control signal from the CPU 2 is given to the timing control circuit 44 otherwise. No matter which of the CPU 2 and the DMAC 3 has the bus right, the internal operation of the bus controller 4 is basically the same.
[0068]
The address decode circuit 40 decodes which area the address output from the CPU 2 or DMAC 3 to the address bus IAB corresponds to. The decoding result is output from a predetermined terminal via an output buffer as an area selection signal.
The control circuit 41 determines which area is selected based on the output of the address decode circuit 40, and determines which bit of the control register 45 is to be referred to. The determination result is given as an instruction to the timing control circuit 44.
The timing control circuit 44 generates a bus cycle based on the output of the control circuit 41, and outputs internal and external bus control signals. It also indicates the operation timing of the input / output buffer, multiplexer, and bus arbitration circuit. Further, when the bus cycle generated by this is a command write bus cycle or the like, the command register 46 is selected by the control signal DATASEL or CDATSEL as necessary.
[0069]
The address multiplexer 47 included in the output buffer selects a row address and a column address and selects the contents of the address bus IAB and the registers BADR0 to BADR3 included in the address register 47 according to the instruction of the timing control circuit 44.
The data multiplexer 48 included in the input / output buffer selects whether to input / output data on the data bus IDB or to output the contents of the registers WCMD and CDAT0 to CDATA1 included in the command register 46. Note that the timing control circuit 44 enables only a byte write for an 8-bit bus and only a word write for a 16-bit bus with respect to generation of a write cycle.
[0070]
FIG. 17 shows a specific first circuit example of the timing control circuit 44.
FIG. 18 shows an example of the operation timing chart of FIG.
In the circuit example of FIG. 17, the logical configuration of the block erase and polling functions is omitted for easy understanding of the contents. In other words, this circuit example focuses on a configuration for automatically generating and inserting a bus cycle for command writing by write access to a predetermined area. Also, this circuit example is shown by positive logic.
[0071]
The RD + WR signal is an internal signal for activating a bus for a read operation or a write operation by the CPU 2 or the DMAC 3, and is an output of the selection circuit 43. BUS8A, ST3A, and CMDA are signals obtained by decoding the address by the address decoding circuit 40, and are signals generated from the area and the corresponding bits of the BSWCR, ASTCR, and CMDCR registers. That is, the signals BUS8A, ST3A, and CMDA indicate that the area to be accessed at that time is an 8-bit bus area, a 3-state access area (the total number of states is greater than the number of wait states, and a command valid area). Something is indicated by a high level. The internal signal WR is used as a bus start internal signal for a write operation. WORD is a signal obtained by decoding an address by the address decode circuit 40, and is set to a high level in the case of word access. Both the WR and WORD signals are outputs of the selection circuit 43.
[0072]
The bus cycle is basically composed of two states. If there are three or more states, a wait state is inserted after the T1 state. (If a wait state is inserted, the wait state is referred to as a T2 state for convenience, and the next state is referred to as a T3 state. Write). The wait request signal wait includes a wait request by the registers WSCRA and WSCRB and a wait request by the wait signal WAIT supplied to the external terminal in the case of the three-state access area. That is, the external wait signal WAIT is converted into a wait request signal wait through the flip-flops FF7 to FF9 each of which includes three serial D-type latches. Regarding the programmable waits by the registers WSCRA and WSCRB, a wait request signal wait is generated according to the contents of the registers WSCRA and WSCRB. Note that, in any of the wait requests, the signal ST3A is set to the high level during the wait period. However, the signal ST3A is not set to a high level at all unless the register ASTCR specifies that the signal ST3A is not a two-state access area.
[0073]
The clock φ1B is a logical sum signal of the wait request signal wait and the clock φ1, the clock φ2B is an AND signal of the inverted signal of the wait request signal wait and the clock φ2, and the clock φ1B is at the high level during the wait. , The clock φ2B is fixed at the low level, and the flip-flops FF1 to FF4 maintain the state because the clock input does not change.
The signal DATASEL is a signal for selecting whether to output the command held by the register WCMD or to output the contents of the data bus IDB.
[0074]
The selection circuit SEL receives as inputs the outputs of flip-flops FF1, FF2, and FF3 composed of a series-connected three-stage D-type latch circuit to which the bus start signal RD + WR is supplied to the first stage via the OR gate OR1. . Also includes φ1 and φ2 synchronization circuits. The selection circuit SEL outputs the various bus timing signals. That is, output waveforms of the area selection signals CS0 * to CS7 *, the address strobe signal AS *, the read signal RD *, the write signals HWR * and LWR *, the column address strobe signal CAS *, and the timing of address multiplexing are generated. Output.
For example, the waveform of the read signal RD * is an inverted signal of the output signal of the second flip-flop FF2. When the corresponding bit of the register MPXCR is set to “1”, the area selection signal is an inverted signal of the logical product signal of the address decode result and the flip-flop FF2.
[0075]
Bus start signal RD + WR is applied to timing control circuit 44 in synchronization with system clocks φ1 and φ2 before the start of a bus cycle. The flip-flop FF1 outputs a signal in synchronization with the rising of the clock φ1B in the T1 state. Similarly, flip-flops FF2, FF3, and FF4 latch and output input signals in synchronization with the rise of clock φ2B in the T1 state, the rise of clock φ1B in the T2 state, and the rise of clock φ2B in the T3 state, respectively. The latch operation of the flip-flop FF4 is synchronized with the rise of the clock φ2 in the T3 state after the release of the wait. For example, in the case of word access to the 8-bit bus area (BUS8A and RD are at high level), or in the case of a data access cycle following the command cycle (the flip-flop FF6 is set), the first bus cycle Is completed, the output of FF4 is set to the high level, and this output is fed back to the flip-flop FF1 via the OR gate OR1, and is latched by the FF1. That is, activation of the second bus cycle is instructed.
[0076]
The first bus cycle or the second bus cycle is designated by RS (reset / set) type fifth and sixth flip-flops FF5 and FF6. The flip-flop FF5 is set in the first bus cycle and is set in the second bus cycle. The set state of the flip-flop FF5 is substantially meaningful when the signal WORD is at a high level meaning word access and the flip-flop FF10 is latching it, and the word access is not performed. This is when the operation is performed via the 8-bit bus (the signal BUS8A is at a high level). The flip-flop FF6 is set to a set state in the case of a command cycle, that is, when writing to the command valid area (WR and CMDA are at high level) and when the signal BRKAK is at inactive low level, and the flip-flop FF4 is at high level. It is reset by output.
[0077]
The signal BRKAK considers the case where the microcomputer 1 is used for emulation, and is a signal indicating that the CPU 2 is in a break state. When the signal BRKAK is set to the high level as the active level, insertion of a command cycle is prohibited, and after the break, the address space of the microcomputer is switched from the address space for the target program to the control space for evaluation. In this case, a write cycle is automatically inserted to eliminate the possibility that data is undesirably rewritten. Details on this point will be described later.
[0078]
As described above, the timing control circuit 44 of FIG. 17 first performs word access using an 8-bit bus, and secondly, when writing to the command valid area (WR and CMDA are high level) and the signal BRKAK is inactive. In the case of an instructed command cycle, a predetermined bus cycle is continuously generated twice.
[0079]
FIG. 19 shows a second specific example of the timing control circuit 44. In this circuit example, in order to make the contents easy to understand, FIG. 17 exclusively shows the logical configuration of the block erasing and polling functions, which are omitted. Also, this circuit example is of positive logic. 19, the same signals and circuit elements as those in FIG. 17 are denoted by the same reference numerals, and detailed description thereof will be omitted.
[0080]
The timing control circuit 44 shown in FIG. 7 exclusively shows a configuration for automatically starting a predetermined bus cycle by writing of the CPU 2 into the register CNTL. The signal REGCLR is a signal for clearing the contents of the register CNTL to end the automatically generated bus cycle. According to this example, two bus cycles are automatically generated for erasing a block in the flash memory, and one bus cycle is automatically generated for polling. The high-level output of the flip-flop FF4 is used as a start signal of the second cycle, and the flip-flop CFF4 controls the signal REGCLR to a high level at the timing when the automatically generated bus cycle ends. The flip-flop CFF5 and the NAND gate NAND1 use FF4 in the first cycle in two command write cycles for block erase and use CFF4 in the second cycle, and use only CFF4 in the bus cycle for polling. To control.
[0081]
The timing control circuit 44 shown in the figure receives a POL bit set signal SETPOL from the register CNTL. This SETPOL signal is made valid in synchronization with the rise of the clock φ2 in the T3 state of the write cycle for the register CNTL. However, the set signal of the POL bit is valid only when the RE bit is set to “1”. The logical product signal of the SETPOL signal and the RE signal is supplied as a start signal to the OR gate OR2, which is latched by the flip-flop FF1, and following the internal register write cycle, a polling read cycle to the outside is performed. Be started. The polling read cycle is recognized by the POL bit being set. The address at this time is not particularly limited, but is the address specified by the register BADR0.
[0082]
At this time, the signal RDY / BUSY * (referred to as a ready input signal READY) from the flash memory input to the ready terminal READY of the microcomputer 1 is supplied to the flip-flop FF7 as a signal equivalent to an external wait signal WAIT. . That is, if the flash memory is operating internally, the ready input signal READY is set to the inactive low level. Therefore, until the internal operation of the flash memory is terminated and the input signal READY is set to the active high level, the micro input is performed. The computer 1 is in a wait state. That is, during this time, the levels of the clocks φ1B and φ2B are fixed, and the latch operation of the flip-flop FF3 is suppressed. When the input signal READY is set to the active level and the wait is released, the bus cycle is completed through the T3 state of the polling read cycle. At the end, the signal REGCLR is set to the high level.
[0083]
The timing control circuit 44 is supplied with the logical sum signal SETBE of the set signals of BE0 to BE3 bits from the register CNTL. This signal SETBE becomes valid in synchronization with the rise of the clock φ2 in the T3 state of the write cycle of the register CNTL. This signal SETBE is also supplied to the OR gate OR2 as a bus start signal. Further, it is input to the reset terminal of the flip-flop CFF5. Further, a logical sum signal BEOR signal of BE0 to BE3 bits is supplied to one input of a NAND gate NAND1. An inverted signal of the output of the flip-flop CFF5 is supplied to the other input of the NAND gate NAND1. In a state where the block erase of the flash memory is instructed by writing to the register CNTL, the output of the NAND gate NAND1 is set to the low level. Therefore, at the end timing of the first cycle in the command write cycle for block erase, the output of the flip-flop FF4 is set to the high level, and the flip-flop FF1 starts the second command write bus cycle. Is indicated. At the same time, the flip-flop CFF5 is set to the set state, and the data input operation of the flip-flop CFF4 is enabled. Therefore, at the end timing of the second command write cycle, the flip-flop CFF4 latches the output of FF3 and sets the signal REGCLR to high level, thereby ending the automatic generation of the bus cycle.
[0084]
FIG. 20 shows operation timings related to the automatic generation of the command write cycle for the block erase.
Using the signal SETBE as a start signal, a command write cycle is started following the write cycle of the CPU 2 for the register CNTL. That is, the flip-flop FF1 latches the activation signal, and the flip-flop CFF5 is reset. The address at this time is the address specified by the registers BADR0 to BADR3. The designation of the registers BADR0 to BADR3 is performed according to the state of the BE0 to BE3 bits of the register CNTL.
[0085]
In the first command cycle, CFF5 is in the reset state, BEOR is at the high level, and FF4 is set in synchronization with the rise of clock φ2 in the T3 state. Using this as a start signal, the second command cycle is started, FF1 latches the start signal, and CFF5 is set.
[0086]
In the second command cycle, CFF5 is set and FF4 is controlled so that data cannot be input. On the other hand, the CFF 4 becomes ready for data input, and the register clear signal REGCLR is set to the high level in synchronization with the rise of the clock φ2 in the T3 state. As a result, the BE0 to BE3 bits that have caused the activation of the current command write cycle are cleared.
[0087]
The command written to the flash memory at that time is the contents of the registers CDAT0 and CDATA1, and the output of the registers CDAT0 and CDATA1 is selected by the signal CDATSEL output from the CFF5. When CFF5 is in the reset state, the contents of the register CDAT0 are output, and when CFF5 is in the set state, the contents of the CDAT1 register are output. The internal bus is a 16-bit bus, and the same data is output to the upper 8 bits and lower 8 bits of the command data. In the 8-bit bus mode, lower 8 bits of data are not output to the external data bus.
The BE0 to BE3 bits and the POL bit can set only one arbitrary bit to “1”, and it is prohibited to set a plurality of bits to “1” at the same time.
[0088]
Although the specific configuration of the timing control circuit 44 has been described separately in FIGS. 17 and 19, the timing circuit is actually realized by combining the circuits in FIGS. 17 and 19. In the case of combining, for example, the flip-flops FF1, FF2, FF3, FF7, FF8, FF9 and the clock system are shared, other circuit elements are separately provided, and the path is selected according to the operation mode. It can be easily realized by a known method of leading a signal from a circuit element to a common circuit element through an OR circuit.
[0089]
The flash memory can be connected to the outside of a single-chip microcomputer as a semiconductor integrated circuit device, or can be built in. For example, like the cell-based IC, the system in FIG. 5 can be made into one semiconductor integrated circuit, and the size of the system can be reduced.
In this case, the register that can set an arbitrary value can be omitted. That is, for the user of such a cell-based IC, which memory is connected to which area can be fixedly determined, and it is not necessary to arbitrarily set a register. For example, BSWCR, ASRCR, WSCRA-B, MPXCR, CMDCR, etc. can be fixed. The outputs of these registers may be fixed to either "0" or "1". In addition to fixing the value of the register, those signal lines may be pulled up or down.
[0090]
In order to speed up the system, it is necessary to improve the processing speed of the CPU 2. To improve the processing speed of the CPU 2, it is necessary to increase the instruction fetch speed. Since the flash memory is slower than the SRAM, there is a limit in improving the instruction fetch speed. On the other hand, the SRAM cannot retain the stored contents when the system is stopped. Therefore, it is conceivable to operate with the program stored in the flash memory immediately after the reset, transfer the program to the SRAM, and execute the program on the SRAM after the transfer is completed.
Further, the vector address used at the time of exception processing of the microcomputer may be fixed in the address space of the CPU 2 such as area 0, for example. For this reason, even when a program on the SRAM is being executed, the program on the flash memory must be executed every time an exception process such as an interrupt occurs. In particular, in the case of interrupt processing and the like, the response time often needs to be shortened, which imposes a constraint on speeding up the system.
Therefore, when accessing the area 0 where the flash memory is arranged, the area selection signal CS0 * is set to the non-selection state, and instead, the area selection signal CS2 * of the area 2 where the SRAM is arranged is set to the selection state. It is a good idea. A case where this control is performed using the control bit CS0C will be described.
[0091]
FIG. 21 shows an example of a circuit configuration for the CS control.
The control bit CS0C is constituted by a flip-flop circuit FF20 to which one bit of the data bus is connected. After the reset, the control bit CS0C is cleared to "0". When a write is performed on the address where control bit CS0C exists, the contents of internal data bus PDB0 are stored. The contents of the address (IAB) output from the bus master such as the CPU 2 or the DMAC 3 are decoded, and ICS0 to ICS7 are generated. Since there is no direct relationship with areas other than areas 0 and 2, illustration is omitted in FIG. 21 except for ICS0 and ICS2.
[0092]
When the control bit CS0C is cleared to "0", when the area 0 is accessed, that is, when ICS0 is at the high level which is the selection level and ICS2 is at the low level which is the non-selection level, the area selection signal CS0 is at the selection level. A certain high level is set to a low level which is a non-selection level.
When the control bit CS0C is set to "1", when the area 0 is accessed, that is, when ICS0 is at the high level which is the selection level and ICS2 is at the low level which is the non-selection level, the area selection signal is reversed. CS0 is set to a low level which is a non-selection level, and CS2 is set to a high level which is a selection level.
Regardless of the state of the control bit CS0C, at the time of area 2 access, CS0 is inactivated and CS2 is activated. The area selection signal CS0 * output to the outside is an inverted signal of the signal CS0, and the area selection signal CS2 * output to the outside is an inverted signal of the signal CS2.
[0093]
FIG. 22 shows a modification of the printer system to which the speed-up method described in FIG. 21 is applied.
FIG. 23 shows an address map in the system of FIG.
In the system of FIG. 22, an SRAM 17 is added to FIG. The SRAM 17 is a memory that is used by receiving a program and tuning information stored in the flash memory 10 and is arranged in the area 2. The same circuit blocks as those in FIG. 5 are denoted by the same reference numerals, and detailed description thereof will be omitted.
[0094]
In such a system, immediately after the reset, the operation is first started by the program on the flash memory 10. Area 0 has three states and area 2 has two states. The contents of the flash memory 10 in the area 0 are copied to the SRAM 17 in the area 2. For example, DMAC3 may be used. Thereafter, the control bit CS0C is set to "1". When the address of the area 0 is accessed by the CPU 1 or the DMAC 3, CS0 * is set to inactive and CS2 * is set to active level. The access attributes are the same as in area 2. That is, the logical address of CPU 1 is area 0, while the physical address is area 2. Since the contents of the area 0 and the area 2 are common, no malfunction occurs even when the physical address is changed. A program or the like is stored in the low-speed flash memory 10, and the program or the like is transferred to the high-speed SRAM 17 during operation, so that the data processing speed can be increased. For example, since the program fetch can be speeded up by a factor of 1.5, the overall processing speed is also increased accordingly.
[0095]
Due to the characteristics of the flash memory 10, it is conceivable that information unique to the system user is accumulated. In this case, the contents are transferred from the SRAM 17 to the flash memory 10 at the end of the operation of the system. DMAC3 can be used for this. For example, the input signal READY of the microcomputer 1 can be used as a transfer request signal of the DMAC 3. That is, when writing back the contents of the SRAM 17 to the flash memory 10, the change of the signal RDY / BUSY * to the active level (ready state) indicating the end of writing in units of words or pages by the flash memory 10 is used as the input signal READY. Each time the microcomputer 1 receives the signal, the signal is processed as a DMAC 3 transfer request signal. In order to make this signal a transfer request signal, the port should be set so that the port receiving the signal READY is led to the DMAC3 as the DMAC3 transfer request signal.
[0096]
Such processing is enabled because the bus controller 4 can automatically add a command write bus cycle to the flash memory 10 in both access by the CPU 2 and access by the DMAC 3.
Note that the above-described transfer to the SRAM 17 can be applied to a device other than the flash memory 10. For example, only the program for the initialization operation may be stored in the mask ROM 12, and another program may be transferred from the secondary storage such as a floppy disk to the SRAM 17 in the area 4. The high-speed memory may be an SRAM or a synchronous DRAM.
[0097]
FIG. 24 is a block diagram when the microcomputer 1 is applied to an emulation microcomputer.
The emulation microcomputer 50 includes a microcomputer portion 51 and an emulation interface 52 including a buffer circuit (not shown) and the like, and is formed on one semiconductor substrate by a known semiconductor manufacturing technique.
[0098]
The emulation microcomputer 50 has a user interface 53 for transmitting and receiving signals to and from an application system of a single-chip microcomputer corresponding to the microcomputer portion 51. The emulation interface 52 transmits and receives signals to and from an emulator and a system development device (not shown).
24, circuit blocks having the same functions as those of the single-chip microcomputer of FIG. 1 are denoted by the same reference numerals. 24, the user interface 53 includes the input / output circuits PIO1 to PIO9 of FIG. The circuit block indicated by I / O in FIG. 24 includes the timer 7 and the SCI 8 in FIG.
[0099]
As an emulation bus, IAB and IDB are input and output via an emulation interface 52. The buses PAB and PDB are not directly connected to the emulation interface 52 as emulation buses. As a result, the number of terminals of the emulation microcomputer can be reduced, which contributes to a reduction in the size of the package and, consequently, the size of the emulator.
[0100]
A status signal CMDCYC indicating that the command cycle is automatically added is output to an emulator or the like via the emulation interface 52. In the command cycle automatically added, the CMDCYC signal is set to the active level. The CMDCYC signal can be, for example, a logical sum signal of the DATASEL, BEOR, and POL signals. In addition, the emulation interface 52 includes a break request terminal BRK and the like.
When the CPU 2 receives the break interrupt, the break acknowledge signal BRKAK is set to the active level, and the state transits to a control program execution state for emulation. When the return instruction is executed, the BRKAK signal becomes inactive and transits to the user program execution state.
During the break mode, automatic bus cycle insertion (bus command) such as a command write cycle is prohibited. The emulator memory and the user flash memory are arranged at the same address, and the emulator memory can be used in the break mode, and the user flash memory can be used in the user mode. It is desirable that the emulator memory be constituted by a RAM in accordance with the purpose of storing a program to be debugged. By issuing a write cycle as a bus command to the RAM, it is possible to prevent the contents of the RAM from being destroyed.
[0101]
FIG. 25 is a block diagram showing an example of the emulator.
The connector section 60 is mounted on an application system (user system) 61 instead of a single-chip microcomputer. The emulation microcomputer 50 inputs and outputs signals to and from the application system 61 via the connector section 60 and the interface cable 62.
[0102]
The emulation microcomputer 50 is connected to an emulation bus 63 using the emulation interface 52. The emulation bus 63 includes various signal lines such as a status signal, a control signal, data, and an address. Using the emulation bus 63, information and the like according to the internal state of the application system 61 and the emulation microcomputer 50 are output from the emulation microcomputer 50, and the emulation microcomputer 50 is provided with information for emulation. Various control signals are input. An emulation mode terminal (not shown) of the emulation microcomputer 50 is fixed at the power supply level, and the emulation mode is set inside the emulation microcomputer 50.
[0103]
The emulation bus 63 includes, but is not limited to, an emulation memory 64 such as a RAM for substituting the built-in memory of the application system 61 or the target microcomputer, the control state of the emulation microcomputer 50, and the emulation bus 63. When the state reaches a preset state, a break interrupt is requested as an interrupt exclusive to the emulator, execution of the user program by the CPU 2 is stopped, and the execution state of the control program for emulation is monitored. And a break control circuit 65 for causing the CPU 2 to make a transition (break) to the emulation bus 63 based on a signal indicating a read operation or a write operation of the CPU 2 and a signal indicating an instruction read operation. Less and data further such as real-time trace circuit 66 for storing the control information sequentially are connected. The real-time trace circuit also sequentially stores the signal CMDCYC.
[0104]
The emulation memory 64, the break control circuit 65, and the real-time trace circuit 66 are also connected to a control bus 67, and are controlled by a control processor 68 via the control bus 67. The control bus 67 is connected via a host interface 69 to a system development device 70 such as, but not limited to, a personal computer. For example, the program input from the system development device 70 is transferred to the emulation memory 64, and the CPU 2 reads the program to be arranged on the external program ROM or, if the ROM is incorporated, to be arranged on the internal ROM. Then, the program on the emulation memory 64 is read. In addition, a break condition, a real-time trace condition, and the like can also be given from the system development device 70. The system development device 70 can display the result traced by the real-time trace circuit 66 on a display screen such as a CRT or a liquid crystal.
[0105]
On the emulator system, a normal bus cycle and an automatically added bus cycle can be clearly distinguished. That is, the state of the CMDCYC signal obtained corresponding to the bus cycle can be displayed or distinguished. Alternatively, it is possible to selectively display only the normal bus cycle or only the automatically added bus cycle. This can be done by the processing of the system development device 70 selecting whether or not to display the corresponding bus cycle according to the accumulated information of the CMDCYC signal. By automatically deleting the added bus cycle, the execution of the program corresponds to the bus cycle, so that the program can be easily debugged. In addition, by displaying only the automatically added bus cycle, the execution state of the bus command can be easily traced. The emulator can easily interpret the bus command and display the contents of the command as well as the bus information. If the CMDCYC signal is at the active level and the data at that time is H'20, H'B0, "block erase" is displayed on the display screen. Thus, the program can be easily debugged without the need for the user to sequentially confirm the contents of the command.
[0106]
Here, the flash memory 10 will be schematically described. The flash memory 10 includes a memory array in which flash memory cells (hereinafter, also simply referred to as memory cells) each formed of an insulated gate field effect transistor having a two-layer gate structure are arranged in a matrix. Although not particularly limited, a control gate of each flash memory cell is connected to a corresponding word line (not shown), a drain of each flash memory cell is connected to a corresponding data line (not shown), and a source of each flash memory cell is provided for each memory block. Connected to common source line.
[0107]
The operation of writing information to the memory cell is realized by, for example, applying a high voltage to the control gate and the drain and injecting electrons from the drain side to the floating gate by avalanche injection. Due to this write operation, the threshold voltage of the flash memory cell as viewed from its control gate is higher than that of the erased memory cell in which the write operation has not been performed.
[0108]
On the other hand, the erasing operation is realized by, for example, applying a high voltage to the source and extracting electrons from the floating gate to the source side by a tunnel phenomenon. By the erase operation, the threshold voltage of the storage transistor as viewed from its control gate is lowered. The threshold value of the memory cell transistor is set to a positive voltage level in both the write and erase states. That is, the threshold voltage in the writing state is increased and the threshold voltage in the erasing state is decreased with respect to the word line selection level applied from the word line to the control gate. With such a relationship between the two threshold voltages and the word line selection level, a memory cell can be constituted by one transistor without using a selection transistor.
[0109]
In the read operation, the voltage applied to the drain and the control gate is set to a relatively low value so that weak writing to the flash memory cell, that is, undesired carrier injection to the floating gate is not performed. Limited. For example, a low voltage of about 1 V is applied to the drain, and a low voltage of about 5 V is applied to the control gate. By detecting the magnitude of the channel current flowing through the memory cell transistor based on these applied voltages, the logical values “0” and “1” of the information stored in the memory cell can be determined.
[0110]
According to the above embodiment, the following effects can be obtained.
(1) The microcomputer 1 having an external bus has a bus controller 4 for selectively controlling a memory or the like connected to a part or all of the address space in the address space, and requires a command write by its internal register CMDCR. When a bus master such as the CPU 2 or DMAC 3 reads / writes an area in the address space where the flash memory 10 is selected, a command corresponding to the read / write can be designated. The write cycle is inserted by the timing control circuit 44 of the bus controller 4 so that the flash memory 10 can be connected with a minimum load of software.
(2) By setting the bus width and the number of bus cycles in the registers BSWCR, ASTCR, WSCRA, WSCRB, various memories can be directly connected without the need for an external circuit.
(3) By automatically inserting a command during a read / write operation, a bus master such as the DMAC 3 that performs only data transfer can perform data transfer control with the flash memory 10 like an SRAM or the like. .
(4) The memory can be directly connected by outputting the area selection signal. By changing the output condition of the area selection signal as described with reference to FIG. 21, it is possible to relocate the memory and the like in the address space of the CPU 2 without changing the physical system. . Thus, when the contents stored in the low-speed nonvolatile memory are transferred to the high-speed volatile memory and the operation is performed, it can be dealt with only by changing the output condition of the area selection signal.
(5) In the microcomputer for emulation, by outputting a signal CMDCYC indicating a bus cycle performed by the bus master or a bus cycle automatically inserted by the bus controller, and by the emulator distinguishing and displaying these. Thus, the debugging efficiency can be improved.
(6) In the emulation microcomputer, when the external memory is not used (break mode), the emulation memory can be protected by prohibiting the bus controller from automatically inserting a bus cycle.
[0111]
Although the invention made by the inventor has been specifically described based on the embodiments, the present invention is not limited thereto, and it is needless to say that various modifications can be made without departing from the gist of the invention.
[0112]
For example, the bus master may be a CPU, a DMAC, a data transfer controller, or a digital signal processor (DSP). Any data processing device that can read / write a memory using a bus may be used. It may have three or more bus masters. Any number of data processing devices can be incorporated in one semiconductor integrated circuit. It goes without saying that the present invention can be applied to the DMAC and the DSP itself. The external circuit whose operation is instructed by the command is not limited to the flash memory. If it is a memory, it may be, for example, a synchronous DRAM.
[0113]
The details of the bus specification can be variously changed. For example, the bus width may be 16/32 bits or 8/16/32 bits in addition to the selection of 8/16 bits. When using a 32-bit bus, four 8-bit commands may be output in parallel. The address and the bus size may be determined, and the command may be output only to a predetermined bus.
[0114]
At the time of reset, a manual reset and a power-on reset may be provided, and at the time of manual reset, the contents of the register of the bus controller may be held. Further, a reset command may be output prior to the operation of the CPU.
[0115]
The specific circuit configuration of the bus control circuit can be variously changed. The configuration of the control register and the like can be variously changed. The register for storing the command can be written at any time by the CPU, or may be fixed. The method of dividing the area may be in units of 128 kbytes. The size of the area may be continuously changeable. It may not be possible to set attributes for all divided areas. When the address space is widened, it is desirable that each area does not become large. It is not desirable that the capacity be larger than the available memory capacity. If the number of divided areas is large or the terminals of the microcomputer are not sufficiently large, it is not necessary to output an area selection signal for all areas.
The other functional blocks of the single-chip microcomputer are not restricted at all.
[0116]
In the above description, the case where the invention made by the present inventor is applied to a single-chip microcomputer, which is the application field in which the invention is based, has been described. However, the present invention is not limited to this. The present invention can be applied to a system and an emulator, and at least the present invention can be applied to a data processing device that can use an external bus.
[0117]
【The invention's effect】
The following is a brief description of an effect obtained by a representative one of the inventions disclosed in the present application.
[0118]
That is, when a predetermined address space allocated to an external circuit such as a flash memory is accessed, a first command write cycle for writing a command instructing the operation of the external circuit is performed prior to the access. Can be inserted automatically. This makes it unnecessary to write a command each time a byte or page is written to the flash memory and to write a program that defines the process.
[0119]
When a predetermined bit of the internal control register is operated by the CPU, a second command write cycle for writing a command instructing the operation of the external circuit can be automatically inserted after the operation. Thus, even when a command write divided into multiple times such as a block erase write to a flash memory is required, the instruction description may specify writing to the control register and the like. The size can be reduced.
[0120]
An external read cycle for polling control can be started and maintained by the CPU by operating a predetermined bit of a built-in control register, which also improves data processing efficiency and reduces program size in terms of generating external bus cycles. Can be realized.
[0121]
In consideration of emulation, the data processing device outputs a signal indicating whether the bus cycle is performed by the bus master or the bus cycle automatically inserted by the bus controller, so that the debugging efficiency can be improved.
[0122]
When emulation is taken into consideration, emulation memory can be protected by prohibiting the automatic insertion of the bus cycle in the break mode.
[0123]
Even if the bus master means is a direct memory access controller, the direct memory access controller can use such a command format flash memory as a data transfer source or a data transfer destination by automatically inserting the command write cycle.
[0124]
The interface with the flash memory whose operation is instructed by the command can be simplified and the usability can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram of a single-chip microcomputer that is an embodiment of a data processing device according to the present invention.
FIG. 2 is an explanatory diagram of an example of an address map of the microcomputer of FIG. 1;
FIG. 3 is an explanatory diagram of a bus control register.
FIG. 4 is an explanatory diagram of another bus control register.
FIG. 5 is a block diagram showing an example of a printer system using the single-chip microcomputer shown in FIG. 1;
6 is an explanatory diagram of an example of a connection state by an external bus 16 in the system of FIG.
FIG. 7 is an example bus cycle timing diagram of a 16-bit bus in area 0 and a read operation in 3-state access and a read in area 4 in 16-bit bus and 3-state access.
FIG. 8 is an example bus cycle timing diagram of a write operation in a 16-bit bus of area 0 and three-state access;
FIG. 9 is a bus cycle timing diagram showing an example of a write operation in a 16-bit bus and three-state access in area 4;
FIG. 10 is a bus cycle timing diagram showing an example of a read operation in a 16-bit bus, 3-state access, and address multiplex access of an area 5;
FIG. 11 is a bus cycle timing diagram showing an example of a write operation in a 16-bit bus, three-state access, and address multiplex access of an area 5;
FIG. 12 is an example bus cycle timing chart of a read operation in a 16-bit bus and two-state access in area 6;
FIG. 13 is an example bus cycle timing diagram of a write operation in a 16-bit bus and two-state access in area 6;
FIG. 14 is an example bus cycle timing diagram of an 8-bit bus in area 7 and a read operation in three-state access;
FIG. 15 is an example bus cycle timing diagram of a write operation in an 8-bit bus and three-state access in area 7;
FIG. 16 is an example block diagram of a bus controller.
FIG. 17 is an example circuit diagram of a timing control circuit included in the bus controller.
18 is an example operation timing chart of the circuit of FIG. 17;
FIG. 19 is a circuit diagram illustrating another example of a timing control circuit included in the bus controller;
20 is an example operation timing chart relating to automatic generation of a command write cycle for block erasure in the circuit of FIG. 19;
FIG. 21 is an example circuit diagram for CS control.
FIG. 22 is a block diagram showing an example of a printer system to which the circuit shown in FIG. 21 is applied.
FIG. 23 is an explanatory diagram of an example of an address map in the system of FIG. 22;
FIG. 24 is an example block diagram of an emulation microcomputer.
FIG. 25 is a block diagram illustrating an example of an emulator.
FIG. 26 is an explanatory diagram of an example of a command of the flash memory.
[Explanation of symbols]
1 Single-chip microcomputer
2 CPU
3 DMAC
4 Bus controller
BSWCR Register for specifying bus width of each area
ASTCR, WSCRA, WSCRB Register for specifying bus cycle of each area
MPXCR Register for specifying the address multiplex of each area
CMDCR Command cycle area register to be automatically generated
Register for storing WCMD, CDATA0, CDATA1 command
BADR0-BADR3 Address storage registers
CNTL Command bus cycle insertion condition specification register
10 Flash memory
11 DRAM
12 Mask ROM
13,17 SRAM
44 Timing Control Circuit
50 Emulation microcomputer

Claims (14)

外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示される外部回路と接続可能なデータ処理装置であって、バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って、上記所定アドレス空間に対して上記外部回路の動作を指示するためのコマンドをライトする第1のコマンドライトサイクルを生成するバス制御手段を備え、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第1のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第1のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。
A data processing device having a built-in bus master means capable of using an external bus and being connectable to an external circuit whose operation is instructed by a command. Bus control means for generating a first command write cycle for writing a command for instructing the operation of the external circuit to the predetermined address space, prior to generation of an external bus access cycle corresponding to the instruction. ,
The bus control means includes: an address space determining means for determining an address space corresponding to an access address by the bus master means; an address space specifying means for specifying an address space in which a first command write cycle is to be started; A match determining unit that determines whether the address space determined by the space determining unit matches the address space specified by the address space specifying unit; and an address space determined by the address space determining unit. Timing control means for generating an external bus access cycle and generating the first command write cycle in response to a match determination result by the match determination means.
The data processing apparatus, wherein the address space determining means is allowed to determine a predetermined address space that can be specified by the address space specifying means as another address space according to a value of a rewritable control bit. .
上記バス制御手段は、第1のコマンドライトサイクルによってライトすべきコマンドを書換え可能に保持するコマンド記憶手段を含んで成るものであることを特徴とする請求項記載のデータ処理装置。It said bus control means, the data processing apparatus according to claim 1, characterized in that comprising a command storage means for holding rewritable command to be written by the first command write cycle. 上記バスマスタ手段としてCPUを含み、上記バス制御手段は、制御レジスタ手段と、CPUが該制御レジスタ手段の第1のビットを操作することによって所定のアドレス空間に所定のコマンドデータをライトする第2のコマンドライトサイクルを生成するタイミング制御手段とを更に備えて成るものであることを特徴とする請求項1又は2項記載のデータ処理装置。The bus master means includes a CPU, and the bus control means includes a control register means and a second register for writing predetermined command data to a predetermined address space by operating the first bit of the control register means. 3. The data processing device according to claim 1, further comprising timing control means for generating a command write cycle. 上記バス制御手段は、第2のコマンドライトサイクルで出力すべきアドレスを保持するアドレス記憶手段を更に備えて成るものであることを特徴とする請求項記載のデータ処理装置。4. The data processing apparatus according to claim 3 , wherein said bus control means further comprises address storage means for holding an address to be output in a second command write cycle. 上記バス制御手段は、CPUが上記制御レジスタ手段の第2のビットを操作することにより、所定の外部端子から入力される信号の変化を待つポーリング制御を行うための外部リードサイクルを生成するものであることを特徴とする請求項3又は4記載のデータ処理装置。The bus control means generates an external read cycle for performing polling control for waiting for a change in a signal input from a predetermined external terminal by operating a second bit of the control register means by the CPU. The data processing device according to claim 3 , wherein the data processing device is provided. 外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備えて成るものであることを特徴とする請求項1乃至の何れか1項記載のデータ処理装置。Bus cycle for the outside of any one of claims 1 to 5, characterized in that comprising further includes emulation interface for outputting an identification signal indicating whether the said command write cycle Data processing device. CPUは外部からの所定の割込みに基づき上記バス制御手段による上記第1のコマンドサイクルの生成を禁止させる制御信号を出力するものであることを特徴とする請求項記載のデータ処理装置。4. The data processing apparatus according to claim 3, wherein the CPU outputs a control signal for inhibiting generation of the first command cycle by the bus control means based on a predetermined external interrupt. 上記バスマスタ手段は、ダイレクトメモリアクセスコントローラであることを特徴とする請求項1乃至の何れか1項記載のデータ処理装置。It said bus master means, the data processing apparatus of any one of claims 1 to 6, characterized in that a direct memory access controller. 上記外部回路はフラッシュメモリであることを特徴とする請求項1乃至の何れか1項記載のデータ処理装置。The external circuit data processor of any one of claims 1 to 8, characterized in that a flash memory. 上記データ処理装置は、単一の半導体チップ上に形成されていることを特徴とする請求項1乃至の何れか1項記載のデータ処理装置。The data processing apparatus, data processing apparatus according to any one of claims 1 to 9, characterized in that it is formed on a single semiconductor chip. 請求項1乃至の何れか1項記載のデータ処理装置と、このデータ処理装置に接続された上記外部回路と、を備えて成るものであることを特徴とするデータ処理システム。Data processing system, characterized in that the data processing device of any one of claims 1 to 8, those comprising and an the external circuit connected to the data processing device. 上記データ処理装置と上記外部回路とは、別の半導体チップ上に形成されて成るものであることを特徴とする請求項11記載のデータ処理システム。The data processing system according to claim 11 , wherein the data processing device and the external circuit are formed on different semiconductor chips. 請求項7記載のデータ処理装置と、エミュレータとを備え、
上記データ処理装置は、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備え、
上記エミュレータは、上記データ処理装置に含まれるエミュレーションインタフェースに結合され、トレースメモリとブレーク制御回路を有し、上記トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、上記ブレーク制御回路は上記データ処理装置による制御状態が予め設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものであることを特徴とするデータ処理システム。
A data processing device according to claim 7, and an emulator,
The data processing device further includes an emulation interface for outputting an identification signal indicating whether a bus cycle to the outside is the command write cycle,
The emulator is coupled to the emulation interface included in the data processing apparatus has a trace memory and break control circuit, the trace memory accumulates to input the identification signal with the bus information of the data processing device, The data processing system, wherein the break control circuit outputs a break signal to the data processing device as the interrupt signal when the control state of the data processing device reaches a preset state.
外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示されるフラッシュメモリと接続可能なデータ処理装置であって、
上記バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って上記所定アドレス空間に対して上記フラッシュメモリの動作を指示するためのコマンドをライトするコマンドライトサイクルを生成するバス制御手段と、上記コマンドライトによって指示されたフラッシュメモリの内部動作状態を示す信号の外部入力端子とを含んで、1個の半導体基板に形成され、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第1のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第1のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。
A data processing device incorporating a bus master means capable of using an external bus and being connectable to a flash memory whose operation is instructed by a command,
In response to an instruction to access an external predetermined address space by the bus master means, to instruct the operation of the flash memory to the predetermined address space prior to generation of an external bus access cycle corresponding to the access instruction. A bus control means for generating a command write cycle for writing a command of the type described above, and an external input terminal for a signal indicating the internal operation state of the flash memory designated by the command write, and formed on one semiconductor substrate;
The bus control means includes: an address space determining means for determining an address space corresponding to an access address by the bus master means; an address space specifying means for specifying an address space in which a first command write cycle is to be started; A match determining unit that determines whether the address space determined by the space determining unit matches the address space specified by the address space specifying unit; and an address space determined by the address space determining unit. Timing control means for generating an external bus access cycle and generating the first command write cycle in response to a match determination result by the match determination means.
The data processing apparatus, wherein the address space determining means is allowed to determine a predetermined address space that can be specified by the address space specifying means as another address space according to a value of a rewritable control bit. .
JP10597294A 1994-04-20 1994-04-20 Data processing device and data processing system using the same Expired - Fee Related JP3589699B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10597294A JP3589699B2 (en) 1994-04-20 1994-04-20 Data processing device and data processing system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10597294A JP3589699B2 (en) 1994-04-20 1994-04-20 Data processing device and data processing system using the same

Publications (2)

Publication Number Publication Date
JPH07295922A JPH07295922A (en) 1995-11-10
JP3589699B2 true JP3589699B2 (en) 2004-11-17

Family

ID=14421696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10597294A Expired - Fee Related JP3589699B2 (en) 1994-04-20 1994-04-20 Data processing device and data processing system using the same

Country Status (1)

Country Link
JP (1) JP3589699B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4116829A1 (en) * 2021-07-09 2023-01-11 NXP USA, Inc. Systems and methods for managing variable size load units

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887441A (en) * 1994-09-19 1996-04-02 Fujitsu Ltd Flash memory access system
US7571296B2 (en) * 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
JP2007172129A (en) * 2005-12-20 2007-07-05 Sony Corp Nonvolatile memory access control device and nonvolatile memory control system
JP5104992B2 (en) * 2011-11-25 2012-12-19 セイコーエプソン株式会社 OUTPUT SYSTEM, OUTPUT DEVICE, OUTPUT DEVICE CONTROL METHOD, AND INFORMATION RECORDING MEDIUM
JP6847797B2 (en) * 2017-09-21 2021-03-24 キオクシア株式会社 Semiconductor storage device
CN111796771B (en) * 2020-06-30 2024-01-26 深圳大普微电子科技有限公司 Flash memory controller, solid state disk, controller thereof and flash memory command management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4116829A1 (en) * 2021-07-09 2023-01-11 NXP USA, Inc. Systems and methods for managing variable size load units

Also Published As

Publication number Publication date
JPH07295922A (en) 1995-11-10

Similar Documents

Publication Publication Date Title
US5519847A (en) Method of pipelining sequential writes in a flash memory
US7657696B2 (en) Method to detect NAND-flash parameters by hardware automatically
KR960016397B1 (en) File storaging apparatus and information processing apparatus using the same
US8185728B2 (en) System boot using NAND flash memory and method thereof
JP3809909B2 (en) Synchronous flash memory with status burst output
US5937423A (en) Register interface for flash EEPROM memory arrays
EP1158533B1 (en) Eeprom array with flash-like core
CN100456272C (en) System and method of booting by flaoh memory
US5623620A (en) Special test modes for a page buffer shared resource in a memory device
US6131139A (en) Apparatus and method of simultaneously reading and writing data in a semiconductor device having a plurality of flash memories
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
US7123521B1 (en) Random cache read
US8327161B2 (en) Command decoder for microcontroller based flash memory digital controller system
US5920884A (en) Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data
JP3574078B2 (en) Storage device and storage device control method
US6789179B2 (en) Method and system for fast data access using a memory array
JP2000251035A (en) Memory card
JP4663274B2 (en) MEMORY CONTROLLER, SMART CARD HAVING THE SAME, AND MEMORY DATA READING OPERATION CONTROL METHOD
US20060230225A1 (en) Random access interface in a serial memory device
JP3589699B2 (en) Data processing device and data processing system using the same
EP0398189A2 (en) Noncacheable address random access memory
JP3631209B2 (en) Flash with consistent latency in read processing
JP3725479B2 (en) Interface command architecture for synchronous flash memory
JP4455593B2 (en) Data processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040716

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040818

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees