JP3589699B2 - データ処理装置及びこれを用いたデータ処理システム - Google Patents
データ処理装置及びこれを用いたデータ処理システム 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
【産業上の利用分野】
本発明は、データ処理装置にかかり、例えば動作の指示にコマンドを必要とするメモリ例えばフラッシュメモリを接続するマイクロコンピュータなどに適用して利用して有効な技術に関するものである。また、本発明はそのようなデータ処理装置を応用したシステムの評価又はそのシステムのためのソフトウェアのデバッグを行うエミュレータに関する。
【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 エミュレーション用マイクロコンピュータ
Claims (14)
- 外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示される外部回路と接続可能なデータ処理装置であって、バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って、上記所定アドレス空間に対して上記外部回路の動作を指示するためのコマンドをライトする第1のコマンドライトサイクルを生成するバス制御手段を備え、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第1のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第1のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。 - 上記バス制御手段は、第1のコマンドライトサイクルによってライトすべきコマンドを書換え可能に保持するコマンド記憶手段を含んで成るものであることを特徴とする請求項1記載のデータ処理装置。
- 上記バスマスタ手段としてCPUを含み、上記バス制御手段は、制御レジスタ手段と、CPUが該制御レジスタ手段の第1のビットを操作することによって所定のアドレス空間に所定のコマンドデータをライトする第2のコマンドライトサイクルを生成するタイミング制御手段とを更に備えて成るものであることを特徴とする請求項1又は2項記載のデータ処理装置。
- 上記バス制御手段は、第2のコマンドライトサイクルで出力すべきアドレスを保持するアドレス記憶手段を更に備えて成るものであることを特徴とする請求項3記載のデータ処理装置。
- 上記バス制御手段は、CPUが上記制御レジスタ手段の第2のビットを操作することにより、所定の外部端子から入力される信号の変化を待つポーリング制御を行うための外部リードサイクルを生成するものであることを特徴とする請求項3又は4記載のデータ処理装置。
- 外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備えて成るものであることを特徴とする請求項1乃至5の何れか1項記載のデータ処理装置。
- CPUは外部からの所定の割込みに基づき上記バス制御手段による上記第1のコマンドサイクルの生成を禁止させる制御信号を出力するものであることを特徴とする請求項3記載のデータ処理装置。
- 上記バスマスタ手段は、ダイレクトメモリアクセスコントローラであることを特徴とする請求項1乃至6の何れか1項記載のデータ処理装置。
- 上記外部回路はフラッシュメモリであることを特徴とする請求項1乃至8の何れか1項記載のデータ処理装置。
- 上記データ処理装置は、単一の半導体チップ上に形成されていることを特徴とする請求項1乃至9の何れか1項記載のデータ処理装置。
- 請求項1乃至8の何れか1項記載のデータ処理装置と、このデータ処理装置に接続された上記外部回路と、を備えて成るものであることを特徴とするデータ処理システム。
- 上記データ処理装置と上記外部回路とは、別の半導体チップ上に形成されて成るものであることを特徴とする請求項11記載のデータ処理システム。
- 請求項7記載のデータ処理装置と、エミュレータとを備え、
上記データ処理装置は、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備え、
上記エミュレータは、上記データ処理装置に含まれるエミュレーションインタフェースに結合され、トレースメモリとブレーク制御回路を有し、上記トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、上記ブレーク制御回路は上記データ処理装置による制御状態が予め設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものであることを特徴とするデータ処理システム。 - 外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示されるフラッシュメモリと接続可能なデータ処理装置であって、
上記バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って上記所定アドレス空間に対して上記フラッシュメモリの動作を指示するためのコマンドをライトするコマンドライトサイクルを生成するバス制御手段と、上記コマンドライトによって指示されたフラッシュメモリの内部動作状態を示す信号の外部入力端子とを含んで、1個の半導体基板に形成され、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第1のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第1のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10597294A JP3589699B2 (ja) | 1994-04-20 | 1994-04-20 | データ処理装置及びこれを用いたデータ処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10597294A JP3589699B2 (ja) | 1994-04-20 | 1994-04-20 | データ処理装置及びこれを用いたデータ処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07295922A JPH07295922A (ja) | 1995-11-10 |
JP3589699B2 true JP3589699B2 (ja) | 2004-11-17 |
Family
ID=14421696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10597294A Expired - Fee Related JP3589699B2 (ja) | 1994-04-20 | 1994-04-20 | データ処理装置及びこれを用いたデータ処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3589699B2 (ja) |
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 (ja) * | 1994-09-19 | 1996-04-02 | Fujitsu Ltd | フラッシュメモリアクセス方式 |
US7571296B2 (en) * | 2004-11-11 | 2009-08-04 | Nvidia Corporation | Memory controller-adaptive 1T/2T timing control |
JP2007172129A (ja) * | 2005-12-20 | 2007-07-05 | Sony Corp | 不揮発性メモリアクセス制御装置および不揮発性メモリ制御システム |
JP5104992B2 (ja) * | 2011-11-25 | 2012-12-19 | セイコーエプソン株式会社 | 出力システム、出力装置、出力装置の制御方法、および、情報記録媒体 |
JP6847797B2 (ja) * | 2017-09-21 | 2021-03-24 | キオクシア株式会社 | 半導体記憶装置 |
CN111796771B (zh) * | 2020-06-30 | 2024-01-26 | 深圳大普微电子科技有限公司 | 闪存控制器、固态硬盘及其控制器、闪存命令管理方法 |
-
1994
- 1994-04-20 JP JP10597294A patent/JP3589699B2/ja 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 (ja) | 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 (ko) | 화일기억장치 및 그것을 사용한 정보처리장치 | |
US8185728B2 (en) | System boot using NAND flash memory and method thereof | |
JP3809909B2 (ja) | ステータスバースト出力を行うシンクロナスフラッシュメモリ | |
US5937423A (en) | Register interface for flash EEPROM memory arrays | |
CN100456272C (zh) | 利用快闪存储器引导的***和方法 | |
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 | |
US8327161B2 (en) | Command decoder for microcontroller based flash memory digital controller system | |
US8310880B2 (en) | Virtual channel support in a nonvolatile memory controller | |
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 (ja) | 記憶装置と記憶装置制御方法 | |
US20060245270A1 (en) | Random cache read | |
US10140062B1 (en) | Automatic resumption of suspended write operation upon completion of higher priority write operation in a memory device | |
JP2000251035A (ja) | メモリカード | |
JP4663274B2 (ja) | メモリコントローラとそれを備えるスマートカード、およびメモリのデータ読出し動作制御方法 | |
US20060230225A1 (en) | Random access interface in a serial memory device | |
US5210847A (en) | Noncacheable address random access memory | |
JP3589699B2 (ja) | データ処理装置及びこれを用いたデータ処理システム | |
JP3631209B2 (ja) | 読み出し処理におけるレイテンシを一致させたフラッシュ | |
JP3725479B2 (ja) | シンクロナスフラッシュメモリ用のインタフェースコマンドアーキテクチャ | |
JP4455593B2 (ja) | データプロセッサ |
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 |