(57)【要約】  タイムドイベンツに対処するためのマイクロコントローラと、ユーザコマンドを解釈するためのコマンドデコーダと、フラッシュメモリのバースト読み取りに対処するための個別バーストコントローラと、前記フラッシュメモリへのページ書き込みに対処するためのプログラムバッファと、フラッシュコアから前記プログラムバッファへのデータ転送、ならびに前記プログラムバッファから前記フラッシュメモリへのページ書き込みのためのアドレス制御に対処するためのページ転送コントローラと、メモリ管理およびメモリ試験モード信号を格納および調整するためのメモリ管理レジスタブロックと、前記フラッシュメモリ内へアドレスを多重化し、プログラム、消去、および復旧検証を加速するためのメモリプレーンインターフェースと、システムからデータを多重化するためのＩ／Ｏ  Ｍｕｘモジュールと、試験およびデバッグで使用するために前記マイクロコントローラによって読み取りおよび書き込みすることができる汎用Ｉ／Ｏポート（ＧＰＩＯ）と、を含むデジタル制御システム。【特許請求の範囲】
【請求項１】
マイクロコントローラであって、システムによって受け取られるコマンドが時限コマンドを必要とすると解除されるマイクロコントローラと、
前記コマンドを処理するための、前記マイクロコントローラに結合されるハードウェアアクセラレータとを備える、デジタルコントローラシステム。
【請求項２】
前記マイクロコントローラは前記時限コマンドに対処する、請求項１に記載のシステム。
【請求項３】
ユーザコマンドを検出および管理するためのコマンドデコーダをさらに備え、前記コマンドデコーダは、前記マイクロコントローラとは無関係にユーザコマンドを管理する、請求項１に記載のシステム。
【請求項４】
前記コマンドデコーダは非時限コマンドに対処する、請求項３に記載のシステム。
【請求項５】
前記時限コマンドは、単一周期で実行することができないコマンドを備え、前記時限コマンドが完全に実行されるために一連のイベントが起こることを必要とする、請求項１に記載のシステム。
【請求項６】
前記ハードウェアアクセラレータは、
バースト読み取りコマンドを解釈するためのバースト読み取りモジュールを備える、請求項１に記載のシステム。
【請求項７】
前記バースト読み取りモジュールは、フラッシュメモリに対応するための複数のカウンタを備え、バースト読み取り機能用のハードウェア加速を提供する働きをする、請求項６に記載のシステム。
【請求項８】
前記バースト読み取りモジュールは、開始アドレスのラッチとデータ有効シグナルの提起との間の初期待ち時間を制御することによって、バースト読み取りデータの初期アクセス時間を制御する、請求項６に記載のシステム。
【請求項９】
前記バースト読み取りモジュールは、停止／ビジー信号を見て、停止前にアドレスカウンタに現在のデータのカウントを終わらせることによって、バーストアドレスがフラッシュメモリ内のビジープレーンに進入することを防ぐ、請求項６に記載のシステム。
【請求項１０】
前記ハードウェアアクセラレータは、ページ転送機能のハードウェア加速を提供するためのページ転送モジュールを備える、請求項１に記載のシステム。
【請求項１１】
前記ページ転送モジュールは、
フラッシュメモリおよびプログラムバッファモジュールに対応するためのカウンタと、
「終了」信号であって、ポーリングされてページ転送が完了した時を決定する「終了」信号とを備える、請求項１０に記載のシステム。
【請求項１２】
前記ハードウェアアクセラレータは、
新規パターンをメモリにプログラムするためのプログラムＯＫ機能と、
ワードを消去するための消去ＯＫ機能と、
ビットの過消去を管理するための復旧しない機能とを備える、請求項１に記載のシステム。
【請求項１３】
フラッシュメモリにプログラムするためのページバッファとして働くメモリを備えるプログラムバッファモジュールをさらに備える、請求項１に記載のシステム。
【請求項１４】
異なるソースからフラッシュメモリモジュールへのアドレスバスの多重化に対処するためのメモリプレーンインターフェースをさらに備える、請求項１に記載のシステム。
【請求項１５】
フラッシュメモリおよびそのアナログ支援要素上の様々なトリム設定を制御するためのレジスタモジュールをさらに備える、請求項１に記載のシステム。
【請求項１６】
前記レジスタモジュールは、値がファームウェア初期設定ルーチン中に読み込まれる複数のレジスタを備える、請求項１３に記載のシステム。
【請求項１７】
前記複数のレジスタは、
プログラミングまたは消去エラーが発生する時を設定するためのエラービット、消去コマンドが一時停止されたかどうかを示すための一時停止状態レジスタ、または、休止状態の電源が発生したことを示すためのＰＯＲ＿ｉｎｉｔレジスタを備える、請求項１６に記載のシステム。
【請求項１８】
前記システムからデータを多重化するための入力／出力多重化モジュールをさらに備える、請求項１に記載のシステム。
【請求項１９】
前記入力／出力多重化モジュールは、汎用入力／出力を備える、請求項１８に記載のシステム。
【請求項２０】
前記マイクロコントローラは、前記システムのために特注設計されていない、請求項１に記載のシステム。
【請求項２１】
マイクロコントローラであって、システムによって受け取られるコマンドが時限コマンドを必要とする場合に解除されるマイクロコントローラと、
前記コマンドが前記時限コマンドを必要としない場合に、０コマンドを処理するための、前記マイクロコントローラに結合されるハードウェアアクセラレータと、
ユーザコマンドを検出および管理し、前記コマンドが前記時限コマンドを必要とする時に前記マイクロコントローラを解除するための、前記マイクロコントローラに結合されるコマンドデコーダとを含み、前記マイクロコントローラは前記時限コマンドに対処し、前記コマンドデコーダは非時限コマンドに対処し、前記コマンドデコーダは、前記マイクロコントローラとは無関係にユーザコントローラを管理する、デジタルコントローラシステム。
【請求項２２】
前記時限コマンドは、単一周期で実行することができないコマンドを備え、前記時限コマンドが完全に実行されるために一連のイベントが起こることを必要とする、請求項２１に記載のシステム。
【請求項２３】
前記ハードウェアアクセラレータは、バースト読み取りコマンドを解釈するためのバースト読み取りモジュールを備える、請求項２３に記載のシステム。
【請求項２４】
前記バースト読み取りモジュールは、フラッシュメモリに対応するための複数のカウンタを備え、バースト読み取り機能用のハードウェア加速を提供する働きをする、請求項２３に記載のシステム。
【請求項２５】
前記バースト読み取りモジュールは、開始アドレスのラッチとデータ有効シグナルの提
起との間の初期待ち時間を制御することによって、バースト読み取りデータの初期アクセス時間を制御する、請求項２３に記載のシステム。
【請求項２６】
前記バースト読み取りモジュールは、停止／ビジー信号を見て、停止前にアドレスカウンタに現在のデータのカウントを終わらせることによって、バーストアドレスがフラッシュメモリ内のビジープレーンに進入することを防ぐ、請求項２３に記載のシステム。
【請求項２７】
前記ハードウェアアクセラレータは、ページ転送機能の加速を提供するためのページ転送モジュールを備える、請求項２１に記載のシステム。
【請求項２８】
前記ページ転送モジュールは、
フラッシュメモリおよびプログラムバッファモジュールに対応するためのカウンタと、
「終了」信号であって、ポーリングされてページ転送が完了した時を決定する「終了」信号とを備える、請求項２７に記載のシステム。
【請求項２９】
前記ハードウェアアクセラレータは、
新規パターンをメモリにプログラムするためのプログラムＯＫ機能と、
ワードを消去するための消去ＯＫ機能と、
ビットの過消去を管理するための復旧しない機能とを備える、請求項２１に記載のシステム。
【請求項３０】
フラッシュメモリにプログラムするためのページバッファとして働くメモリを備えるプログラムバッファモジュールをさらに備える、請求項２１に記載のシステム。
【請求項３１】
異なるソースからフラッシュメモリモジュールへのアドレスバスの多重化に対処するためのメモリプレーンインターフェースをさらに備える、請求項２１に記載のシステム。
【請求項３２】
フラッシュメモリおよびそのアナログ支援要素上の様々なトリム設定を制御するためのレジスタモジュールをさらに備える、請求項２１に記載のシステム。
【請求項３３】
前記レジスタモジュールは、値がファームウェア初期設定ルーチン中に読み込まれる複数のレジスタを備える、請求項３２に記載のシステム。
【請求項３４】
前記複数のレジスタは、
プログラミングまたは消去エラーが発生する時を設定するためのエラービット、消去コマンドが一時停止されたかどうかを示すための一時停止状態レジスタ、または、休止状態の電源が発生したことを示すためのＰＯＲ＿ｉｎｉｔレジスタを備える、請求項３３に記載のシステム。
【請求項３５】
前記システムからデータを多重化するための入力／出力多重化モジュールをさらに備える、請求項２１に記載のシステム。
【請求項３６】
前記入力／出力多重化モジュールは、汎用入力／出力を備える、請求項３５に記載のシステム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリデジタルコントローラシステムに関し、より具体的には、マイクロコントローラによるフラッシュメモリデジタルコントローラシステムに関する。
【背景技術】
【０００２】
不揮発性フラッシュメモリを往復するデジタル情報の格納および検索のためのデジタルコントローラシステムの使用は、当技術分野で周知である。しかし、従来のデジタルコントローラシステムは、柔軟性のない、ハードウェア型状態機械を使用する。状態機械は、アルゴリズムのあらゆる変化に対して再コード化を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記に応じて、改良されたデジタルコントローラシステムの必要性が存在する。改良されたデジタルコントローラシステムは、個別コマンドデコーダおよびバースト読み取りコントローラに結合される標準マイクロコントローラに基づくべきである。本発明はそのような必要性に対応する。
【課題を解決するための手段】
【０００４】
発明の概要
デジタル制御システムであって、タイムドイベンツに対処するためのマイクロコントローラと、ユーザコマンドを解釈するためのコマンドデコーダと、フラッシュメモリのバースト読み取りに対処するための個別バーストコントローラと、前記フラッシュメモリへのページ書き込みに対処するためのプログラムバッファと、フラッシュコアから前記プログラムバッファへのデータ転送、ならびに前記プログラムバッファから前記フラッシュメモリへのページ書き込みのためのアドレス制御に対処するためのページ転送コントローラと、メモリ管理およびメモリ試験モード信号を格納および調整するためのメモリ管理レジスタブロックと、前記フラッシュメモリ内へアドレスを多重化し、プログラム、消去、および復旧検証を加速するためのメモリプレーンインターフェースと、システムからデータを多重化するためのＩ／Ｏ  Ｍｕｘモジュールと、試験およびデバッグで使用するために前記マイクロコントローラによって読み取りおよび書き込みすることができる汎用Ｉ／Ｏポート（ＧＰＩＯ）とを含む。
【発明を実施するための最良の形態】
【０００５】
詳細な説明
本発明は、マイクロコントローラによるデジタルコントローラシステムを提供する。次の説明は、当業者が本発明を作製し使用することができるように提示され、特許出願書およびその要件との関連で提供される。好ましい実施形態に対する様々な変更が当業者にとって容易に明白となり、本書の一般原則は、その他の実施形態に適用することができる。よって、本発明は、示される実施形態に限定されることを目的としないが、本書で説明される原則および特徴と一致する最大範囲に合致することを目的とする。
【０００６】
さらに具体的に本発明の特徴を説明するために、下記の考察と併せて図１乃至２を参照していただきたい。
【０００７】
図１は、本発明によるデジタルコントローラシステムの好ましい実施形態を図示する。図２は、本発明によるデジタルコントローラシステムの好ましい実施形態を、さらに詳細
に図示する。デジタルコントローラシステム１００は、マイクロコントローラ１０７を備える。マイクロプロセッサ１０７とは別に、デジタルコントローラシステム１００は、ページ転送モジュール１０１、プログラムバッファモジュール１０２、メモリプレーンインターフェース１０３、バースト読み取りモジュール１０４、入力／出力（Ｉ／Ｏ）マルチプレクサ（ＭＵＸ）モジュール１０５、コマンドデコーダ１０６、およびレジスタモジュール１０８を備え、その機能は下記でさらに説明する。
【０００８】
好ましい実施形態では、不揮発性フラッシュメモリモジュールは、デジタルコントローラシステム１００に組み込むか、またはその外部にあることが可能である。さらに、好ましい実施形態では、デジタルコントローラシステム１００は、標準マイクロコントローラシステム１０７の周囲に構築されるが、コマンドデコーダ１０６内に構築される追加「知能」を有する。コマンドデコーダ１０６は、ユーザコマンドを検出および管理し、コマンドが複雑な「時限」コマンドを必要するとマイクロコントローラ１０７を解除するための手段を提供する働きをする。バースト読み取りモジュール１０４は、バースト読み取り要求を検出し、それに応じて応答する手段を提供する。「時限」コマンドは、本明細書で使用されるように、一周期で実行することができないコマンドであるが、むしろコマンドが完全に実行されるために一連のイベントが起こることを必要とする。タイムドイベンツの例は、フラッシュメモリのプログラミングおよび消去、不揮発性ロックビットの設定または消去、フラッシュメモリからプログラムバッファへのページ転送、および様々な試験モードおよび拡張コマンドを含む。タイムドイベンツに対処するための標準マイクロコントローラ１０７の使用は、ハードウェア型状態機械によっては提供されない柔軟性を提供する。フラッシュメモリモジュールにインターフェースで連結するためのアルゴリズムを微調整する必要がある場合は、マイクロコントローラのファームウェアを格納するＲＯＭへの簡単なマスク変更によって、より容易に行うことが可能である。
【０００９】
コマンドデコーダ
コマンドデコーダ１０６は、ユーザインターフェースとして働き、コマンドがマイクロコントローラ１０７とは無関係に受け取られて管理されることを可能にする。コマンドデコーダ１０６は、デジタルコントローラシステム１００に対する「交通警官」として働き、合法コマンドに作用して非合法なものを無視する。コマンドが作用される場合、コマンドデコーダ１０６単独によるか、またはマイクロコントローラ１０７を解除することによってのどちらかで行われる。マイクロコントローラ１０７の使用を必要としないコマンドの例は、読み取りコマンド、バースト制御レジスタへの書き込み、またはソフト／ハードロックレジスタである。マイクロコントローラ１０７の使用を必要とするコマンドの例は、プログラムまたは消去、またはその他任意の時限コマンドである。
【００１０】
マイクロコントローラ１０７とは別にコマンドデコーダ１０６を有することにより、いくつかの利点が提供される。
【００１１】
（１）マイクロコントローラ１０７は、進行中のタイムドイベンツがない場合にオフにするか、または休止状態にすることが可能である。このことは、低電力電池式システムにおいて不可欠な電力を節約する。
【００１２】
（２）マイクロコントローラ１０７は、コマンドに取り掛かっている間は、新規のコマンド、コマンド優先順位決定、または管理に携わる必要がない。このことは、コード能率性を提供し、競争力の主要測定基準である、フラッシュメモリの迅速なプログラミングおよび消去にとって決定的なタイムドイベンツのより迅速な処理を可能にする。
【００１３】
（３）インタラプトは、マイクロコントローラ１０７が消去コマンドの処理でビジー状態である間に「消去一時停止」コマンドが出された場合に生成される。
【００１４】
（４）コマンドクロックは、マイクロコントローラクロックから切り離され、デジタルコントローラ／フラッシュモジュールが使用されるシステム１００のクロックと非同期的に、マイクロコントローラ１０７が設定されたスピードで作動することを可能にする。このことは、複数周期のタイムドイベンツが発生する場合でも、ユーザコマンドへの迅速な応答も可能にする。マイクロコントローラ１０７がコマンドを認識するのにある程度時間がかかる可能性がある事実にもかかわらず、準備完了信号は、コマンドデコーダ１０６によって即時に落とすことができる。
【００１５】
（５）ソフトウェア拡張可能コマンドが提供され、その場合、コマンドデコーダ１０６が個別オペコードレジスタに格納するオペコードとともに、「拡張コマンド」と呼ばれる単一コマンドが解釈される。このコマンドが受け取られると、マイクロコントローラ１０７は解除されて、オペコードレジスタを見ることを知る。オペコードの値によっては、ファームウェアがその挙動を適合させる。８ビットオペコードレジスタを使用することによって、この方法は、最大で２５６の追加コマンドを提供する。
【００１６】
（６）マイクロコントローラ１０７は、下記を提供するデジタルコントローラシステム１００への試験インターフェースとして働く。
【００１７】
（ａ）ある時にマイクロコントローラ１０７が何をしているかを判定するために使用することが可能であるマイクロコントローラのプログラムカウンタ（アドレスカウンタ）のユーザ可観測性を提供する。このことは、ファームウェアがハングアップした場合、または断続的なバグが発生した場合に特に役立つ可能性がある。この機能は、起動（初期化）中に無視されるという事実によって制限される。この制限に関する手段は、初期化中に入力をポーリングしてユーザがデバイスを休止状態にしたいかどうかを判定するファームウェアによって提供される。
【００１８】
（ｂ）マイクロコントローラ１０７が休止状態の間、マイクロコントローラのデータバス上の全てのレジスタへのアクセスを提供する。この機能は、問題が検出された場合にシステム１００の状態を判定するのに非常に有用となり得る。このことは、特定試験モード中に、コマンドデコーダ１０６にマイクロコントローラのアドレスおよびデータバスを制御させることによって達成される。このモードは、マイクロコントローラ１０７が休止状態の時しか行うことができない。このことは、バスへのあらゆる競合を防ぐ。マイクロコントローラ１０７を含むブロック内に位置する中央バス多重化ユニットは、単一アドレスバスおよびクロックを出力するので、バス上のレジスタはこのデバッグモードが存在することを意識する必要がない。これらは通常通り、単にクロックおよびアドレスに対応し、真のソースがマイクロコントローラ１０７を通して作動するファームウェアか、コマンドデコーダ１０６を通して作動するユーザかどうかを知らない。
【００１９】
（ｃ）ある時にシステム１００の状態をデバッグする必要があれば、マイクロコントローラ１０７を休止状態にする。
【００２０】
バースト読み取りモジュール
バースト読み取りモジュール１０４は、バースト読み取りコマンドを解釈するための状態機械、およびバースト読み取り機能に対するハードウェア加速を提供する働きをするフラッシュメモリに対応するためのカウンタを含む。バースト読み取り機能は、通常の非同期読み取りよりも有意に高速で動作しなければならないので、これは重要である。バースト読み取りモジュール１０４は、開始アドレスのラッチとデータ有効シグナルの提起との間の初期待ち時間を制御することによって、バースト読み取りデータの初期アクセス時間も制御する。この機能性は、フラッシュメモリへの汎用マイクロプロセッサインターフェ
ースを作り出し、マイクロコントローラ１０７が読み取り操作に関与しなければならなくなることを防ぐ。
【００２１】
バースト読み取りモジュール１０４は、停止／ビジー信号を見て、停止前にアドレスカウンタが現在の６４ビットのデータのカウント終了することを可能にすることによって、バーストアドレスがフラッシュメモリ内のビジープレーンに進入することも防ぐ。好ましい実施形態では、ユーザへの外部インターフェースは、１６ビットデータワードを含むが、高バースト速度を支援するために、６４ビットが一度に読み取られる。４つの１６ビットワードが多重化されている間、次の６４ビットが読み取られている。このことは、初期待ち時間後の読み取り待ち時間を排除し、バースト機能がより高いデータ転送速度で動作することを可能にする。バースト読み取りモジュール１０４は、バースト有効信号およびアドレスをメモリプレーンインターフェース１０３にも提供し、それは順に、発生している操作の種類によって、フラッシュメモリへのアドレスの多重化に対処する。バースト読み取りの場合、バーストアドレスが多重化される。
【００２２】
ページ転送モジュール
ページ転送モジュール１０１は、フラッシュメモリおよびプログラムバッファモジュール１０２に対応するためのカウンタを含む。このことは、ページ転送機能のハードウェア加速を提供し、その場合、データのページはフラッシュメモリからプログラムバッファモジュール１０２へコピーされる。独自のカウンタおよびマイクロコントローラアドレス可能な「終了」信号を有することによって、ファームウェアはページ転送を開始し、そして転送が完了した時を知るために「終了」信号を単にポーリングすることが可能である。このことは、ファームウェア制御アドレス増加およびデータ読み取り／書き込みの多くの周期を節約する。さらに、プログラムバッファモジュール１０２プリセット機能は、データレジスタを既知の値に設定し、そしてデータレジスタが全てのロケーションに書き込まれるにつれて単にページアドレスをカウントすることによって、迅速に行うことが可能である。このことは、貴重なコードスペースおよびファームウェア開発者の努力を節約する。
【００２３】
プログラムバッファモジュール
プログラムバッファモジュール１０２は、フラッシュメモリにプログラムするためのページバッファとして働く１ページ（４Ｋビットまたは２５６の１６ビットワード）バイトアドレス可能ＳＲＡＭを含む。好ましい実施形態では、プログラムバッファモジュール１０２は論理サイズが２５６×１６で、２つの２５６×８ビットＳＲＡＭから物理的に成り、バイトアドレッシングを容易に支援することを可能にする。それは、ユーザによって、コマンドデコーダ１０６によって、またはページ転送モジュール１０１のアドレスカウンタを通してファームウェアによって対応することが可能であり、ユーザおよびファームウェア  の両方によって読み取りおよび書き込みされることを可能にする。それは、どのセグメントに書き込まれたかを追跡する状態レジスタも含む。好ましい実施形態では、１ワードごとに１６ビット、１ページごとに２５６ワード、および１セグメントごとに３２ワードがある。したがって、１ページごとに８セグメントがある。状態レジスタは、３２セグメントのうちの１つを表す各ビットを伴う８ビット幅である。
【００２４】
メモリプレーンインターフェース
メモリプレーンインターフェース１０３は、様々なソースからフラッシュメモリモジュールへのアドレスバスの多重化に対処するので、ユーザ（ランダム読み取りの場合）、バースト読み取りモジュール１０４（バースト読み取りの場合）、ファームウェア（プログラムおよび検証機能に対して）、および／またはページ転送モジュール１０１（フラッシュメモリからプログラムバッファモジュール１０２へデータをコピーするため）によってアクセスすることが可能である。メモリインターフェースを、それ自身の階層的ユニット内に分離すると、高速読み取りのためにバーストアドレスバスを優先させることによって
、かつ非同期性フラッシュメモリの低電力操作にとって重要なアドレスバス上のスキューを最小限化しやすくすることによって最適化される、クリーンアドレスインターフェースを有することが可能となる。
【００２５】
また、メモリプレーンインターフェース１０３は、プログラムおよび消去機能に対するハードウェアアクセラレータとして働く次の３つの機能を実施する、新規の回路を含む。
【００２６】
（１）プログラムＯＫ機能：データがフラッシュメモリに格納されると、同時に再び読み出され、プログラムされているデータと比較される。データが一致しない場合、追加プログラミングパルスを必要とするビットロケーション内にＯのみを含む新規パターンが生成される。このパターンのビット単位のＡＮＤは、「ｐｒｏｇｒａｍ＿ｏｋａｙ」というファームウェア可読レジスタに割り当てられる。ｐｒｏｇｒａｍ＿ｏｋａｙがＬＯＷの場合、新規パターンはメモリにプログラムされなければならない。ｐｒｏｇｒａｍ＿ｏｋａｙがＨＩＧＨの場合、さらなるプログラミングは必要でない。
【００２７】
（２）消去ＯＫ機能：現在のアドレスにおける６４ビットデータのビット単位のＡＮＤは、「ｅｒａｓｅ＿ｏｋａｙ」というファームウェア可読レジスタに格納される。フラッシュメモリ内の消去されたビットが実際にＨＩＧＨと表されるので、このビットは、６４ビットワード内の全てのビットが消去されるかどうかを示す。ｅｒａｓｅ＿ｏｋａｙのＬＯＷ値は、追加消去が必要であることをファームウェアに示す。
【００２８】
（３）復旧しない機能：
（ａ）ｄｏｎ’ｔ＿ｒｅｃｏｖｅｒ＿６４レジスタ。上述のように、好ましい実施形態では、６４ビット（４ワード）が一度に読み取られる。このことは、高速バースト読み取り機能が働くことを可能にする。６４ビット読み取りは任意であり、一度に更なるビットを読み取るために必要とされる追加回路および電力の必要性によってのみ制限されることに注目すべきである。ビット上で消去が実施される場合、続いて復旧操作を行って、ビットが「過剰に」消去されなかったことを確実にしなければならない。全ての過消去ビットは復旧しなければならない（ソフトプログラム化）。
【００２９】
ファームウェアがアドレスを進めていくにつれて、ｄｏｎ’ｔ＿ｒｅｃｏｖｅｒ＿６４レジスタはハードウェアによって設定される。ＨＩＧＨ値は、６４ビットスライス内のビットが消去されないため復旧（ソフトプログラミング）が必要でないことを示す。ＬＯＷ値は、スライス内の少なくとも１ビットが消去状態であるため復旧が必要であることを示す。そしてファームウェアは、この６４ビットスライスを形成する４つの１６ビットワードのアドレスを進めて行き、復旧しないレジスタを調べて実際に復旧を行う場所を絞り込む。
【００３０】
（ｂ）ｄｏｎ’ｔ＿ｒｅｃｏｖｅｒレジスタ：ｄｏｎ’ｔ＿ｒｅｃｏｖｅｒ  ６４レジスタは、６４ビットスライスの内容を調べることによって形成されるが、ｄｏｎ’ｔ＿ｒｅｃｏｖｅｒレジスタは、１６ビットだけによって形成される。一度に復旧することが可能なビットの最小範囲が１６ビットであるため、６４ビットスライスを１６ビットワードにさらに絞り込んで、この範囲で復旧を行うことはコードおよび時間の効率が良い。
【００３１】
レジスタモジュール
レジスタモジュール１０８は、値がファームウェア初期設定ルーチン中に読み込まれ、目的がフラッシュメモリおよびそのアナログ支援要素上の様々なトリム設定を制御または微調整することである、レジスタを含む。様々なメモリ管理信号は、個々のビットまたはこれらのレジスタにおけるビットの組み合わせに由来する。これらのレジスタの一部は試験用である一方で、通常操作用のものもある。例には、プログラムおよび消去中の様々な
ステップの有効化／無効化、読み取りおよびプログラム中に使用される様々な電荷ポンプに対するトリム値、振動子周波数トリム、およびアナログ電圧調整を制御するためのバンドギャップトリムが挙げられる。
【００３２】
レジスタモジュール１０８は、ファームウェアによって使用されるいくつかの状態レジスタまたはフラグも含む。これらは、プログラミングまたは消去エラーが発生すると設定される「エラービット」、消去コマンドが一時停止されたかどうかを示す一時停止状態レジスタ、およびパワーオンリセットが発生したことを示す「ＰＯＲ＿ｉｎｉｔ」レジスタを含む。
【００３３】
ＰＯＲ＿ｉｎｉｔビットは、完全初期化が必要な場合に該部分が電源を入れているか、またはリセットが単に、有意に短い初期設定ルーチンが使用されるユーザ開始リセットから起こったかどうかについて、ファームウェアが決定することを可能にするという利点を提供する。このことはより速い起動を可能にし、より競争力のあるデバイスとする。
【００３４】
一時停止状態レジスタは、消去一時停止および消去再開操作に対する利点を提供する。消去コマンドは、消去されているデータのサイズによって多くのステップを伴うため、コマンドがシーケンスに沿ってどれだけ進行したかを追跡することが有利なので、一時停止コマンドによって中断された場合、ファームウェアは後に、コマンドが再開された時にどこを再び取り上げるべきか知ることが可能である。８ビット一時停止状態レジスタは、この目的に役立つ。ファームウェアは、消去コマンドを経て進行するにつれ、ＳＳＲにおける各ステップを追跡する。消去再開コマンドが出されると、ファームウェアはＳＳＲを見て何がすでに行われたかを知るので、完了したステップを再実行する必要がない。ＰＯＲ＿ｉｎｉｔおよびエラービットレジスタは、コマンドデコーダ１０６からの信号によってクリアされる。
【００３５】
Ｉ／Ｏ  Ｍｕｘモジュール
ファームウェアによってアクセス可能であるＩ／Ｏ  Ｍｕｘモジュール１０５は、システム１００からデータを多重化する。それは、デバッグおよび評価中に利点を提供する汎用Ｉ／Ｏ（ＧＰＩＯ）１０９を備える。好ましい実施形態では、マイクロコントローラのデータバスと適合したであろう完全８ビットＩ／Ｏに対する十分なスペースを許容しなかった金型上のサイズ制限により、４ビットＩ／Ｏが使用される。しかし、ファームウェアはバスの最初の４ビット、そして別の周期上で次の４ビットを出力することが可能である。Ｉ／Ｏは、双方向性であり、ファームウェアによって使用して読み取りならびに書き込みすることが可能である。システム１００には、デバッグおよび評価中にＲＯＭの代わりにＲＡＭからファームウェアを実行するための特殊命令ＳＲＡＭがあるため、ファームウェアまたはハードウェアのデバッグ中に、ファームウェアは必要に応じて変更することが可能である。ＧＰＩＯ１０９は、このプロセス中に計り知れない助力となり得る。
【００３６】
改良されたデジタル制御システムを開示した。該システムは、タイムドイベンツに対処するためのマイクロコントローラと、ユーザコマンドを解釈するためのコマンドデコーダと、フラッシュメモリのバースト読み取りに対処するための個別バーストコントローラと、前記フラッシュメモリへのページ書き込みに対処するためのプログラムバッファと、フラッシュコアから前記プログラムバッファへのデータ転送、ならびに前記プログラムバッファから前記フラッシュメモリへのページ書き込みのためのアドレス制御に対処するためのページ転送コントローラと、メモリ管理およびメモリ試験モード信号を格納および調整するためのメモリ管理レジスタブロックと、前記フラッシュメモリ内へアドレスを多重化し、プログラム、消去、および復旧検証を加速するためのメモリプレーンインターフェースと、システムからデータを多重化するためのＩ／Ｏ  Ｍｕｘモジュールと、試験およびデバッグで使用するために前記マイクロコントローラによって読み取りおよび書き込みす
ることができる汎用Ｉ／Ｏポート（ＧＰＩＯ）とを含む、複数のサブシステムを備える。
【００３７】
本発明は、示される実施形態に従って説明したが、当業者であれば、実施形態に対する変化が存在し得て、そのような変化は本発明の精神および範囲内となることを容易に認識するであろう。それに応じて、添付の請求項の精神および範囲を逸脱しない範囲で、当業者によって多くの変更を行うことができる。
【図面の簡単な説明】
【００３８】
【図１】図１は、本発明によるデジタルコントローラシステムの好ましい実施形態を図示する。
【図２−１】図２は、本発明によるデジタルコントローラシステムの好ましい実施形態を、さらに詳細に図示する。
【図２−２】図２は、本発明によるデジタルコントローラシステムの好ましい実施形態を、さらに詳細に図示する。
【図１】
2009517741.tif 000002
【図２−１】
2009517741.tif 000003
【図２−２】
2009517741.tif 000004