JP3589699B2 - Data processing device and data processing system using the same - Google Patents
Data processing device and data processing system using the same Download PDFInfo
- 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
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
[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
[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-
[0027]
The single-
The single-
[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
[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
[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
[0033]
When the built-in
[0034]
When the reset state is released, the
[0035]
[0036]
The
[0037]
FIG. 2 shows an example of an address map of the
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
[0038]
The access method for each area is specified by five 8-bit registers BSWCR, ASTCR, WSCRA-B, MPXCR, and CMDCR included in the
Each bit of each register controls an area corresponding to a number. These correspondences are shown in the figure. For example,
These registers can always be read / written by the
[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
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
[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
[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
[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
[0046]
If there is any other content to be processed by the
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
[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
[0052]
FIG. 5 shows an example of a system using the single-
Although not particularly limited, the system shown in FIG. 1 is a printer control system, and includes a single-
[0053]
The single-
[0054]
For example, in the system shown in FIG. 5, the
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
The
[0056]
The address is input to all of the
[0057]
The upper data buses D15 to D8 are connected to the
[0058]
The output terminal RD * of the read signal is connected to the input terminal OE * of the output enable signal of the
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
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
The output terminal CAS * of the column address strobe signal of the
Further, the output terminal RDY / BUSY # of the ready / busy signal of the
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
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
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
[0061]
(2) 16-bit bus in
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
[0062]
(3) 16-bit bus in
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
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
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
[0065]
FIG. 16 is a block diagram showing an example of the
The
[0066]
The bus right arbitration circuit 42 controls which of the
[0067]
The selection circuit 43 selects a bus control signal output from the
[0068]
The
The control circuit 41 determines which area is selected based on the output of the
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
[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
[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
[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
[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
[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
[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
Further, the vector address used at the time of exception processing of the microcomputer may be fixed in the address space of the
Therefore, when accessing the
[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
[0092]
When the control bit CS0C is cleared to "0", when the
When the control bit CS0C is set to "1", when the
Regardless of the state of the control bit CS0C, at the time of
[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
[0094]
In such a system, immediately after the reset, the operation is first started by the program on the
[0095]
Due to the characteristics of the
[0096]
Such processing is enabled because the
Note that the above-described transfer to the
[0097]
FIG. 24 is a block diagram when the
The
[0098]
The
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
[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
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
[0102]
The
[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
[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
[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
[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
(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
(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
(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
FIG. 7 is an example bus cycle timing diagram of a 16-bit bus in
FIG. 8 is an example bus cycle timing diagram of a write operation in a 16-bit bus of
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
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
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
FIG. 12 is an example bus cycle timing chart of a read operation in a 16-bit bus and two-state access in
FIG. 13 is an example bus cycle timing diagram of a write operation in a 16-bit bus and two-state access in
FIG. 14 is an example bus cycle timing diagram of an 8-bit bus in
FIG. 15 is an example bus cycle timing diagram of a write operation in an 8-bit bus and three-state access in
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のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。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. .
上記データ処理装置は、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備え、
上記エミュレータは、上記データ処理装置に含まれるエミュレーションインタフェースに結合され、トレースメモリとブレーク制御回路を有し、上記トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、上記ブレーク制御回路は上記データ処理装置による制御状態が予め設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものであることを特徴とするデータ処理システム。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. .
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)
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)
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 |
-
1994
- 1994-04-20 JP JP10597294A patent/JP3589699B2/en not_active Expired - Fee Related
Cited By (1)
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 |