(57)【要約】【課題】他のメモリと比較してフラッシュメモリの速度が異なることに起因する問題を解決する。【解決手段】本発明は集積回路（ＩＣ）の構造および設計に関し、特に不揮発性のいわゆるフラッシュメモリをＩＣ内に組み込むことまたは集積化することに関する。ＩＣ上の他の構成要素、特にＩＣ上のマイクロプロセッサおよび／または他のメモリと比較して組み込まれたフラッシュメモリの速度が異なることに起因する問題を解決するために、特有の書込みインタフェースがフラッシュメモリに設けられ、これにより、ソフトウェアの観点からはフラッシュメモリが標準メモリのように見える。この書込みインタフェースは、フラッシュメモリ（７）とマイクロプロセッサ（６）との間のレジスタ列（２）を含み、これらのレジスタ列は、書込みコントローラ（１）とフラッシュバスアービタ（８）によって本質的に操作され、原則として状態マシンにより制御される中間バッファリング機構として作用する。【選択図】図１
2004502224.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのマイクロプロセッサと少なくとも一つのメモリとを備える集積回路システムであって、
前記メモリは、フラッシュバスによって動作上前記マイクロプロセッサのデータバスに連結される不揮発性のメモリまたはフラッシュメモリであり、前記フラッシュバスは、前記マイクロプロセッサのバスの幅とは異なる幅を有し、
前記フラッシュメモリに書き込むべきデータをバッファリングする記録手段と、
前記フラッシュメモリへの書込み動作を制御する制御手段と、
をさらに備える集積回路システム。
【請求項２】
前記フラッシュバスは、前記マイクロプロセッサのデータバスの幅ｎよりも広い幅ｍを有する専用バスであり、特に、ｍはｎの倍数であり、
前記記録手段は、ｐ×ｎ＝ｍとなるようにそれぞれがｎビットの幅であるｐ個のレジスタを含む、
請求項１に記載の集積回路システム。
【請求項３】
前記制御手段は、最後の前記レジスタが前記マイクロプロセッサからそのデータを受け取ると直ぐに、前記レジスタの列内にバッファリングされた前記データの前記フラッシュメモリへの自動転送を準備する、
請求項１または２に記載の集積回路システム。
【請求項４】
前記レジスタの列からの前記データの前記フラッシュメモリへの選択的な非自動的な制御された転送は、前記最後のレジスタの状態とは独立に、前記制御手段の制御の下で行われる、
請求項１または２に記載の集積回路システム。
【請求項５】
前記フラッシュバスへのアクセスを仲裁する仲裁手段をさらに備える請求項１乃至４のいずれかまたは２以上に記載の集積回路システム。
【請求項６】
１つまたは２以上の前記レジスタが前記フラッシュメモリへのアドレス範囲へマッピングされ、
前記アドレス範囲内の最上位のアドレスが前記フラッシュメモリをアドレスするために用いられる、
請求項１乃至５のいずれかまたは２以上に記載の集積回路システム。
【請求項７】
フラッシュメモリのロード動作を実行すべきときに、前記マイクロプロセッサからの命令を受け取って出力信号を提供する制御レジスタをさらに備える、請求項１乃至６のいずれかまたは２以上に記載の集積回路システム。
【請求項８】
前記制御手段は、前記フラッシュメモリへの前記データ転送が完了する前に、前記マイクロプロセッサが前記レジスタを更新しようとするときはいつでも、１または２以上の待ち状態を前記マイクロプロセッサのサイクルに導入する、
請求項１乃至７のいずれかまたは２以上に記載の集積回路システム。
【請求項９】
前記レジスタ列からの前記データ転送を前記フラッシュバスの利用に同期させるために、前記仲裁手段と前記制御手段との間でハンドシェーキングの仕組みが実行される、請求項１乃至８のいずれかまたは２以上に記載の集積回路システム。
【請求項１０】
前記制御手段は、４つの状態、特に、アイドル（ＩＤＬＥ）状態、フラッシュバスリクエスト（ＦＢＲＥＱ）状態、ロード（ＬＯＡＤ）状態およびライト（ＷＲＩＴＥ）状態を有する状態マシンである、請求項１乃至９のいずれかまたは２以上に記載の集積回路システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路（ＩＣ）の構造および設計に関し、特に、１または２以上のマイクロプロセッサを有するＩＣ内に不揮発性のメモリまたはフラッシュメモリを組み込みまたは集積化することに関する。不揮発性メモリのマイクロプロセッサとの組込または集積化は、携帯電話、個人のディジタルアシスタント（ｄｉｇｉｔａｌ ａｓｓｉ−ｓｔａｎｔ）内、自動車または他のナビゲーションの目的のためのＧＰＳアプリケーションで利用すべきＩＣ用にしばしば望まれ、または要求すらされる。
【０００２】
【従来の技術】
チップ内にフラッシュメモリを組み込むと、期待される利点がこのような集積化により現われる前に解決すべき一定の課題が生じる。問題の一つは、「必然」的に通常のフラッシュメモリのアクセス時間がＩＣ上の他の構成要素のアクセス時間と大きく異なるということである。
【０００３】
【発明が解決しようとする課題】
フラッシュメモリに特有の問題ある側面は、フラッシュメモリが何らかの電力供給、即ち、ロード（ｌｏａｄ）サイクルとプログラムサイクルを必要とするという点で、書き込みのためのそのハードウェアのインタフェースがＳＲＡＭやＤＲＡＭのインタフェースと異なるということである。従って、フラッシュメモリへの書き込みは、ソフトウェアの観点から他のメモリには見えない。フラッシュメモリに書き込むためには特別のソフトウェア駆動ルーチンを備えなければならない。これらのソフトウェア駆動ルーチンは、残念なことに書き込みの間フラッシュメモリのパフォーマンスに不都合な影響を及ぼす。ここに、本発明は、パフォーマンスを最大にすることを強調しつつ、ＩＣ上のマイクロプロセッサ環境内に組み込まれたフラッシュメモリを改良することにより、解決法を提供するものである。
【０００４】
【課題を解決するための手段】
これは、原則として、他のメモリへの書き込みにとってフラッシュメモリへの書き込みアクセスをある程度見えるようにすることにより達成される。
【０００５】
本発明は、以下の手段により上記のように特定された問題を本質的に解決する。
【０００６】
中間の書き込み保持レジスタの列を設け、ＩＣのマイクロプロセッサからのデータを、フラッシュメモリに転送される前にこれらのレジスタ内に格納（バッファリング）する。
【０００７】
フラッシュメモリのデータ幅（またはそのバスの幅）ｍがマイクロプロセッサのデータ幅（またはそのバスの幅）ｎの倍数であれば、上記転送は、上記マイクロプロセッサが最後の保持レジスタに書き込んだ直後に、自動的に開始される。
【０００８】
上記データ保持レジスタは、アドレスの範囲内でマッピングされる。このことは、上記マイクロプロセッサが上記アドレス範囲内のアドレスのいずれかに書き込めば、上記データ保持レジスタがアクセスされる、ということを意味する。最下位のアドレスビットが個々の保持レジスタを選択し、このビットは上記フラッシュメモリにアドレスとして直ぐに使用される。
【０００９】
上記フラッシュメモリへの上記データ転送が完了する前の第２の時間で上記マイクロプロセッサが上記保持レジスタの一つに書き込もうとすると、上記フラッシュメモリへのデータ転送が完了するまで上記マイクロプロセッサのバスサイクルに待ちサイクルが挿入される。
【００１０】
さらに、または代替的に、最後の保持レジスタが書き込まれる前に、上記マイクロプロセッサが上記書込みデータ保持レジスタから上記フラッシュメモリへの転送を望む場合は、上記マイクロプロセッサによってこの転送を強制することができる。
【００１１】
上述した方法は、フラッシュメモリのデータ幅ｍがマイクロプロセッサのデータ幅ｎの倍数であるシステムに特に有効である。これは、書込みデータ保持レジスタがどうしても必要だからである。もしもｍがｎに等しい場合は、一つのデータ保持レジスタだけが必要である。しかしながら、この場合であっても、いくつかのデータ保持レジスタがあれば、膨大なデータにより上記フラッシュメモリをアクセスできるので、パフォーマンスは向上するであろう。
【００１２】
上述した手段により、フラッシュメモリへの書き込みがＳＲＡＭへの書き込みのように見える。
【００１３】
【発明の実施の形態】
以下、本発明の例示的な実施の一形態を図面とともに詳細に示す。
【００１４】
図１の概略レイアウトは、不可欠の構成要素として、
データバス９とアドレスバス３とを有するマイクロプロセッサ６と、
フラッシュバス４を有するフラッシュメモリ７と、
マイクロプロセッサのデータバス９とフラッシュバス４との間の保持レジスタＲｅｇ０…Ｒｅｇｐの列２と、
フラッシュメモリ書込みコントローラ１と、
フラッシュバスアービタ８と、
コントロールレジスタ５と、
を示す。
【００１５】
上述したように、マイクロプロセッサのデータバス９は、ｎ、即ち、ｎ＝３２の幅を有し、これは、フラッシュバス４の幅ｍ、即ち、ｍ＝１２８よりも狭い。レジスタ列２内の保持レジスタＲｅｇ０…Ｒｅｇｐのそれぞれはまた、ｎ、即ち、ｎ＝３２の幅を有する。本実施形態において、４つの保持レジスタＲｅｇ０…Ｒｅｇ３は、レジスタ列２内に設けられるが、より高速が望まれる場合は、４の倍数を設けてもよい。マイクロプロセッサ６が書込みデータをバス９に送ると、到来するデータを４つの３２ビット保持レジスタＲｅｇ０…Ｒｅｇｐがラッチする。
【００１６】
保持レジスタＲｅｇ０…Ｒｅｇｐは、より上位のアドレスビットがフラッシュメモリ７に直接接続されるようにアドレスされる。
【００１７】
フラッシュメモリ７は、フラッシュバス４を介して保持レジスタ列２に接続される。フラッシュバスに接続される他の要求（ｒｅｑｕｅｓｔｏｒｓ（この図には示さない））がある場合もあるので、アービタ８が必要である。列２の保持レジスタＲｅｇ０…Ｒｅｇｐの内容をフラッシュメモリ７に転送できる前に、要求をフラッシュバスアービタ８に送らなければならない。これは、信号ｆｂｗｒｒｅｑを活性化させることにより書込みコントローラ１によって達成される。アービタ８は、信号ｆｂａｃｋを発することによりフラッシュメモリへのデータ転送を確認する。これは、フラッシュバス４またはメモリ７と書込みコンローラ１との間の一種のハンドシェーキング（ｈａｎｄｓｈａｋｉｎｇ）システムである。
【００１８】
列２の保持レジスタＲｅｇ０…Ｒｅｇｐのアドレスは、フラッシュメモリ７のアドレシングマップ（ａｄｄｒｅｓｓｉｎｇ ｍａｐ）内にある。本実施形態では、アドレシングは順次であると考えられる。このように、Ｒｅｇｐへの書込みの後に、フラッシュメモリ書込みコントローラ１は、次の状態（状態ＦＢＲＥＱ２２、図２参照）に飛び、この状態でフラッシュバス４は書込みを要求され、書込みコンローラ１が信号ｆｂｗｒｒｅｑを発する。その直後に、書込みコンローラ１は、無条件にＬＯＡＤ状態（図２の２３）に飛び、ここで書込みコンローラ１は、フラッシュバスアービタ８がフラッシュメモリ７へのデータ転送を認識することを待つ。このように、自動ロード機能が上述したように実行される。
【００１９】
フラッシュメモリ書込みコンローラ１は、状態マシンと考えることができる。このマシンの状態図を図２に示す。
【００２０】
状態マシンは、主として２つの機能を有する。即ち、第１の機能は、マイクロプロセッサ６から列２の４つのデータ保持レジスタＲｅｇ０…Ｒｅｇｐへの転送を制御することである。これを書込み（ＷＲＩＴＥ）動作と呼ぶ。
【００２１】
第２の機能は、列２のデータ保持レジスタからフラッシュバス４へデータを転送することである。これをＬＯＡＤ機能と呼ぶ。
【００２２】
書込みコントローラ１の様々な状態または動作をそれぞれ以下に簡単に説明する。
【００２３】
書込み動作：
リセット後、メモリ書込みコントローラの状態マシンは、ＩＤＬＥ状態２１にある。マイクロプロセッサがフラッシュメモリチップ選択信号ｄｓｅｌ　ｒｅｇｄａｔａを活性化することによりデータ保持レジスタＲｅｇ０…Ｒｅｇｐをアドレスすると、状態マシンは、ＷＲＩＴＥ状態２４に切替る。引き続く書込みアクセスで（ｄｓｅｌ　ｒｅｇｄａｔａは多数のサイクル用に活性のままである）、状態マシンは、ＩＤＬＥ状態２１にとどまることがある。ＷＲＩＴＥ状態はまた、直ちにＬＯＡＤ状態２３に先行されることもある。
【００２４】
マイクロプロセッサによるデータ保持レジスタＲｅｇ０…Ｒｅｇｐへの書込みアクセスが活性のフラッシュバスロードサイクルの間に到着すると、待ちサイクル（信号ｂｗａｉｔ）がマイクロプロセッサのバスサイクルに挿入される。ロードサイクルが完了すると、ｂｗａｉｔが除去されて書込みサイクルが実行される。即ち、マイクロプロセッサのバスデータがレジスタＲｅｇ０…Ｒｅｇｐに書込まれる。
【００２５】
ロード動作：
状態マシンがＷＲＩＴＥ状態２４にあるものと想定する。ここで、レジスタ列２の最後の保持レジスタ、即ちＲｅｇｐをアドレスした後、状態マシンはＦＢＲＥＱ状態２２に飛び、この状態で書込みの要求がフラッシュバスアービタ８（図１）に送られる。これが行われると直ぐに、状態マシンは無条件でＬＯＡＤ状態２３に切替る。ＬＯＡＤ状態２３において、状態マシンは、フラッシュバスアービタ８がフラッシュメモリ７へのデータ転送を認識することを待つ。フラッシュバスアービタ８がフラッシュバス書込み要求を与えると、信号ｆｂ　ｌｄｃｌとｆ　ｗｅｂとを活性化させ、レジスタからのデータをフラッシュメモリ７に格納する。フラッシュバスアービタ８が信号ｆｂａｃｋをコントローラ１に返すと、残ったそのデータはフラッシュメモリ７に転送され、状態マシンはＩＤＬＥ状態２１とＷＲＩＴＥ状態２４のいずれかに飛ぶ。列２への他の書込みが未処理であるときはＷＲＩＴＥ状態２４に飛ぶ。
【００２６】
非自動ロード：
上述したように、フラッシュメモリ書込みアクセスが順次に発生すると、ロードサイクルは自動的に発生するが、書込みアクセスが続いて発生していなければロードサイクルを強制する必要がある場合がある。これは、コントロールレジスタ５にビットを書込むことにより行われる。書込みコントローラ１に信号ｌｏａｄｒｅｑが発せられてロード動作が実行される。
【００２７】
状態マシン、即ち書込みコントローラ１がＩＤＬＥ状態２１にある間にマイクロプロセッサ６がコントロールレジスタ５に書込む場合、コントロールレジスタは直ちに更新される。コントローラ１がＬＯＡＤ状態２３にある間にマイクロプロセッサ６がコントロールレジスタ５に書込む場合、状態マシンがＬＯＡＤ状態２３を離れるまで待ち状態がマイクロプロセッサのサイクルに挿入される。ロード動作が完了した後でのみ、コントロールレジスタは更新される。
【００２８】
単一の実施形態のみに本発明を示したが、当業者は、本発明の要旨および最初に記載した特許請求の範囲から逸脱することなく上述した原理に従って改良および変形を容易に導くことができる。
【図面の簡単な説明】
【図１】
本発明の第１の実施の形態の詳細なレイアウトを示す図である。
【図２】
図１の書込みコントローラの状態図である。
【符号の説明】
１　書込みコントローラ
２　レジスタ列
３　アドレスバス
４　フラッシュバス
５　コントロールレジスタ
６　マイクロプロセッサ
７　フラッシュメモリ
８　フラッシュバスアービタ
９　データバス
Ｒｅｇ０〜Ｒｅｇｐ　保持レジスタ
【図１】
2004502224.tif 000003
【国際公開パンフレット】
2004502224.tif 000004
2004502224.tif 000005
2004502224.tif 000006
2004502224.tif 000007
2004502224.tif 000008
2004502224.tif 000009
2004502224.tif 000010
2004502224.tif 000011
2004502224.tif 000012
2004502224.tif 000013
【国際調査報告】
2004502224.tif 000014
2004502224.tif 000015