(57)【要約】  マイクロコントローラに基づフラッシュメモリデジタルコントローラシステムくのために使用されるコマンドデコーダは、ユーザからのコマンドを解釈し、コマンドの優先順位およびコマンドモードを管理するための主要ユーザインターフェースとして機能するコマンドデコーダ等、複数のサブシステムを含む。また、コマンドデコーダは、プログラムバッファ、バースト読み込みモジュール、レジスタクロック、マイクロコントローラ等の他のサブシステムによって使用されるアドレス、データ、オペコード、および種々のフラグレジスタを含む重要な情報を格納する。さらに、コマンドデコーダは、クロック同期論理を含み、マイクロコントローラのスリープ機能を制御し、テストモードコントローラとして機能する。
2009517742.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを復号化するためのコマンド復号化状態機械と、
前記コマンドに関する情報を格納するための、マイクロコントローラによってアクセス可能な複数のレジスタと、
起動信号と、
を含む、コマンドデコーダであって、
前記起動信号は、前記コマンドが時限コマンドを要求すると前記マイクロコントローラに送信され、前記コマンドは、前記マイクロコントローラが起動すると前記マイクロコントローラに転送される、コマンドデコーダ。
【請求項２】
前記コマンドデコーダは、前記マイクロコントローラから独立してユーザコマンドを管理する、請求項１に記載のコマンドデコーダ。
【請求項３】
前記コマンド復号化状態機械は、非時限コマンドを処理し、前記マイクロコントローラは、前記コマンドが前記時限コマンドを要求する場合に、前記の同期により起動され、前記マイクロコントローラは、使用されない場合はスリープ状態に入る、請求項１に記載のコマンドデコーダ。
【請求項４】
前記時限コマンドは、単一サイクルでは実行不可能なコマンドを含み、前記時限コマンドが完全に実行されるために一連のイベントが生じることを要求する、請求項３に記載のコマンドデコーダ。
【請求項５】
前記コマンドが一時停止され、後に再開される場合の状態情報を格納するための一時停止／再開レジスタをさらに含む、請求項１に記載のコマンドデコーダ。
【請求項６】
前記コマンド復号化状態機械は、複数のクロックドメインを管理するための同期論理をさらに含む、請求項１に記載のコマンドデコーダであって、前記複数のクロックドメインは、
ユーザのアクセス順序によって決定される速度で作動するユーザクロックと、
デジタルコントローラシステムクロックと、
を含み、ユーザコマンドは、前記デジタルコントローラシステムクロックに基づく信号を待たずに、前記ユーザクロック速度によって受け付けられる、請求項１に記載のコマンドデコーダ。
【請求項７】
前記コマンドデコーダは、テストモードコマンドが受信されるとテストモード制御を提供し、前記テストモードコマンドは解釈され、前記テストモードコマンドに従って、必要なテストモード信号が制御される、請求項１に記載のコマンドデコーダ。
【請求項８】
前記コマンドデコーダは、ソフトウェア内に新規コマンドを追加するための手段を含む、請求項１に記載のコマンドデコーダ。
【請求項９】
前記コマンドデコーダは、ユーザから論理アドレスを取得し、前記論理アドレスを前記マイクロコントローラのアドレス空間内の対応する物理的位置に再マッピングするように動作し得る、請求項１に記載のコマンドデコーダ。
【請求項１０】
マイクロコントローラと、
前記マイクロコントローラに連結したコマンドデコーダと、
を含む、デジタルコントローラシステムであって、前記コマンドデコーダは、
コマンドを復号化するためのコマンド復号化状態機械と、
前記コマンドに関する情報を格納するための、前記マイクロコントローラによってアクセス可能な複数のレジスタと、
起動信号と、
を含み、前記起動信号は、前記コマンドが時限コマンドを要求すると前記マイクロコントローラに送信され、前記コマンドは、前記マイクロコントローラが起動すると前記マイクロコントローラに転送される、デジタルコントローラシステム。
【請求項１１】
前記コマンドデコーダは、前記マイクロコントローラから独立してユーザコマンドを管理する、請求項１０に記載のシステム。
【請求項１２】
前記コマンド復号化状態機械は、非時限コマンドを処理し、前記マイクロコントローラは、前記コマンドが前記時限コマンドを要求する場合に起動され、前記マイクロコントローラは、使用されない場合はスリープ状態に入る、請求項１０に記載のシステム。
【請求項１３】
前記時限コマンドは、単一サイクルでは実行不可能なコマンドを含み、前記時限コマンドが完全に実行されるために一連のイベントが生じることを要求する、請求項１２に記載のシステム。
【請求項１４】
前記コマンドが一時停止され、後に再開される場合の状態情報を格納するための一時停止／再開レジスタをさらに含む、請求項１０に記載のシステム。
【請求項１５】
前記コマンド復号化状態機械は、複数のクロックドメインを管理するための同期論理をさらに含む、請求項１０に記載のシステムであって、前記複数のクロックドメインは、
ユーザのアクセス順序によって決定される速度で作動するユーザクロックと、
デジタルコントローラシステムクロックと、
を含み、ユーザコマンドは、前記デジタルコントローラシステムクロックに基づく信号を待たずに、前記ユーザクロック速度によって受け付けられる、請求項１０に記載のシステム。
【請求項１６】
前記コマンドデコーダは、テストモードコマンドが受信されるとテストモード制御を提供し、前記テストモードコマンドは解釈され、前記テストモードコマンドに従って、必要なテストモード信号が制御される、請求項１０に記載のシステム。
【請求項１７】
前記コマンドデコーダは、ソフトウェア内に新規コマンドを追加するための手段を含む、請求項１０に記載のシステム。
【請求項１８】
前記コマンドデコーダは、ユーザから論理アドレスを取得し、前記論理アドレスを前記マイクロコントローラのアドレス空間内の対応する物理的位置に再マッピングするように動作し得る、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の属する技術分野
本発明は、フラッシュメモリデジタルコントローラシステムに関し、より具体的には、マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムに関する。
【背景技術】
【０００２】
発明の背景
不揮発性フラッシュメモリモジュールとの間のデジタル情報の格納および取得のためのデジタルコントローラシステムの使用は、当技術分野で周知である。しかしながら、従来のデジタルコントローラシステムは、一般にハードウェアに組込まれた状態機械を使用し、概して柔軟性がない。そのようなハードウェアに組み込まれている機械は、一般にコマンドの復号化の際の何らかの変更に対し再コード化が必要となる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従って、改良されたマイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムの必要性が存在する。改良型システムには、コマンドの柔軟な管理と、マイクロコントローラの負荷を軽減し、速度の改善および省電力を提供することが可能なコマンドデコーダが含まれるべきである。本発明は、そのような必要性に対処する。
【課題を解決するための手段】
【０００４】
発明の概要
本発明は、マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのために使用されるコマンドデコーダを提供する。デジタルコントローラは、ユーザからのコマンドを解釈し、コマンドの優先順位およびコマンドモードを管理する主要ユーザインターフェースとして機能するコマンドデコーダ等、複数のサブシステムを備える。また、コマンドデコーダは、プログラムバッファ、バースト読み込みモジュール、レジスタクロック、マイクロコントローラ等の他のサブシステムによって使用されるアドレス、データ、オペコード、および種々のフラグレジスタを含む重要な情報を格納する。さらに、コマンドデコーダは、クロック同期論理を含み、マイクロコントローラのスリープ機能を制御し、テストモードコントローラとして機能する。
【発明を実施するための最良の形態】
【０００５】
発明の詳細な説明
本発明は、マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダを提供する。後述の説明は、当業者が本発明を作製および使用可能となるように提示され、特許用途およびその要件に関連して提供される。好適な実施形態に対する種々の修正は、当業者には容易に明らかとなり、本願の一般的原理は、他の実施形態に適用され得る。従って、本発明は、示される実施形態に制限されるものではなく、本願に記載の原理および特徴と一致する最大限の範囲が認められると解釈される。
【０００６】
本発明の特徴をより具体的に説明するため、以下の説明と照らして図１から３を参照されたい。
【０００７】
本発明によるコマンドデコーダは、不揮発性フラッシュメモリモジュールとの間のデジタル情報の格納および取得のためのデジタルコントローラシステムのユーザインターフェース、コマンドインタプリタ、およびシステムマネージャを提供する。具体的には、コマンドデコーダは、例えば、標準８ビットのマイクロコントローラの周辺に構築された、非同期ユーザドメインと同期デジタルコントローラシステムとの間のブリッジとして作用するデジタル状態機械を含む。コマンドデコーダは、ユーザコマンドの検出および管理、コマンド関連情報の管理、システムクロックの制御、およびコマンドが複合「時限」コマンドを要求する場合のマイクロコントローラの起動を提供する。本明細書で使用される時限コマンドは、１つのサイクルで実行することはできず、むしろ、コマンドが完全に実行されるために一連のイベントが生じることを要求するコマンドである。マイクロコントローラは、時限イベントに関わるステップを実施するために使用される。時限イベントの例として、フラッシュメモリのプログラミングおよび消去、不揮発性ロックビットの設定または消去、フラッシュメモリからプログラムバッファへのページ転送、種々のテストモードおよび拡張コマンドを含む。
【０００８】
図１は、本発明によるコマンドデコーダを含むデジタルコントローラシステムの好適な実施形態を示す。デジタルコントローラシステム１００は、標準マイクロコントローラ１０７を含む。マイクロコントローラ１０７とは別に、デジタルコントローラシステム１００は、ページ転送モジュール１０１、プログラムバッファモジュール１０２、メモリプレーンインターフェース１０３、バースト読み込みモジュール１０４、入出力（Ｉ／Ｏ）マルチプレクサ（ＭＵＸ）モジュール１０５、コマンドデコーダ１０６、およびレジスタモジュール１０８を含み、その機能は、［  ］に出願され、本願の譲受人に譲受された、同時係属出願である米国特許出願第［  ］号「マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステム」に記載されており、参照されることによって本願に組込まれる。
【０００９】
図２は、本発明によるコマンドデコーダ１０６（図１）の好適な実施形態を示す。図２に示すように、コマンドデコーダ１０６は、コマンド復号化状態機械２０１、一時停止／再開レジスタ２０２、マイクロコントローラアクセス可能レジスタ２０３、および同期論理２０４を含む。コマンド復号化状態機械２０１は、ユーザコマンドを復号化し、２つのクロックドメイン、ユーザクロック、およびシステムクロックを提供する。ユーザクロック（ＵｓｅｒＣｌｏｃｋ）は、ユーザのアクセス順序によって決定される速度で実行される。システムクロック（ＤｉｇＣｌｋ）は、デジタルコントローラシステムのシステムクロックにより動作する。２つのクロックドメインによって、デジタルコントローラシステム１００が、サイクルに基づいたマイクロコントローラ１０７信号を待たずに、ユーザの所望の速度でコマンドを受け付けることが可能になる。一時停止／再開レジスタ２０２は、コマンドが一時停止され、後に再開される場合に状態情報を格納する。レジスタ２０３は、さらに以下に説明される機能のために、マイクロコントローラよるアクセス可能である。同期論理２０４は、ドメインと同期し、決定論的かつ規則的方法でユーザからフラッシュコントローラへ信号が確実に伝達されるようにする。同期論理２０４はまた、コマンドが時限コマンドを要求する場合に、起動信号をマイクロコントローラ１０７に同期させる。
コマンドデコーダ１０６は、以下の課題を解決する。
【００１０】
コマンドデコーダ１０６は、高速可変データ速度ユーザシステムを、低速固定サイクル時間のマイクロコントローラに基づくフラッシュメモリコントローラにインターフェースさせる。これは、ハードウェアに実装される高速状態機械、つまり、コマンドデコーダ状態機械２０１を使用して行われれ、該コマンドデコーダ状態機械２０１は、２つのクロックドメインを含み、１つはユーザのアクセス順序によって決定される速度で実行され（ＵｓｅｒＣｌｏｃｋ）、他方はデジタルコントローラのシステムクロック（ＤｉｇＣｌｋ）
により動作する。これによって、デジタルコントローラシステム１００が、マイクロコントローラ１０７に基づいたサイクル信号を待たずに、ユーザの所望の速度でコマンドを受け付けることが可能になる。さらに、デジタルコントローラシステム１００が、ただマイクロコントローラのみにに基づく解決法の使用では容易に行うことができない「レディ」（ＲＤＹ／ＢＳＹ）信号の形態で、直接のフィードバックをユーザに提供することが可能となる。レディ信号は、ユーザクロックドメイン内で消去され、ＤｉｇＣｌｋドメイン内のファームウェアによって設定される。ユーザがデバイスＩ／Ｏ上で確認できるレディ信号の発生は、内部ＲＤＹＢＳＹレジスタ、ｓｙｎｃ−ｄｏｎｅ信号、およびｅｎｄｃｍｄ信号の関数である。これによって、ファームウェアによってＲＤＹＢＳＹレジスタが設定されてから、デバイスが付加的コマンドに対し作動可能状態になったことがユーザに通知されるまでの間のＤｉｇＣｌｋサイクルがさらに可能となる。これらの付加的サイクルは、必要に応じてファームウェアに付加的消去サイクルを可能とさせ、マイクロコントローラ１０７を正常にスリープ状態にすることが可能とするのに有益である。
【００１１】
一実施形態では、コマンドデコーダ１０６は、固定速度デジタルコントローラを不明速度または可変速度ユーザシステムにインターフェースする場合に発生する、複雑な非同期クロックドメインの問題を解決する。本課題は、コマンドデコーダ１０６を、ドメインを同期させ、決定論的かつ規則的方法でユーザからフラッシュコントローラへ信号が確実に伝達されるように関与させることによって解決される。同期論理２０４は、同期論理２０４（一実施形態において）がマイクロコントローラ１０７のＲＤＹＢＳＹレジスタとスリープ機能との両方に緊密に連動するという点においてほかとは異なる方法である。マイクロコントローラ１０７は、新規「時限イベント」コマンドが復号化され、デジタルドメインに同期されるまでスリープモードから復帰しない。この時点で、ｓｅｌ＿ｄｉｇｃｌｋ信号が「高」になり、マイクロコントローラ１０７を起動する。ここでファームウェアは、デジタルドメイン、ならびにユーザアドレス、ユーザデータ、およびオペコードレジスタからＣＭＤＣＯＤＥレジスタを安全に読み込むことが可能になる。
【００１２】
一実施形態では、コマンドデコーダ１０６は、コマンドデコーダ１０６を、ハードウェアに実装された状態機械として、常に「オン」し、監視役として機能させ、スリープ機構の使用を通して、必要な場合により高い電力のマイクロコントローラ１０７を起動させることによって、電力管理の課題を解決する。
【００１３】
一実施形態では、コマンドデコーダ１０６は、マイクロコントローラ１０７がスリープ状態の間のアクセスのためにクロック信号を要求する周辺機器およびメモリのクロックを発生することによってクロック制御の課題を解決する。また、コマンドデコーダ１０６は、システムクロックをオン／オフにする際、コントローラの（例えば、発振器が「低」の間にクロックをオン／オフにする）態様でそれを行なうことによって、それに伴う誤作動を防止する。ｓｅｌ＿ｄｉｇｃｌｋ信号は、システム１００のＣＰＵモジュール内で使用され、ＤｉｇＣｌｋ信号をマイクロコントローラ１０７にゲートする。
【００１４】
一実施形態では、コマンドデコーダ１０６は、以下によってコマンド管理の課題を解決する。（１）マイクロコントローラ１０７によるアクセスのために、レジスタ２０３内にアドレスおよびオペコード情報を格納する、（２）システム１００の状態に基づいて一定のコマンドをブロックまたは許容するコマンド優先度を制御する、（３）必要に応じてマイクロコントローラ１０７にたいしてインタラプトを生成し、マイクロコントローラ１０７からのインタラプトのＡＣＫ（確認応答）を処理する、（４）コマンドが一時停止され、後に再開される場合に、一定の状態情報を格納および復元する。格納および復元される状態情報は、復元されるコマンドの「コマンドコード」、ならびにコマンドの対応するアドレスおよびデータを含む。これは、一時停止／再開レジスタ２０２として、図２に見ることができる。ＣＭＤＣＯＤＥレジスタ、ｕｓｒＡｄｒ、およびｕｓｒＤａｔａレジスタ
は、合法な再開コマンドが受信された場合に、これらの保存されたレジスタから復元される。
【００１５】
一実施形態では、コマンドデコーダ１０６は、テストモードコマンドを中断し、そのようなコマンドが復号化された場合に、必要なテストモード信号を制御することによって、テストモード制御の課題を解決する。これらのテストモードによって、そのようなコマンドが復号化される場合に、必要なテストモード信号に直接アクセスすることが可能になる。これらのテストモードによって、マイクロコントローラのアドレスおよびデータバス上のＲＡＭ、ＲＯＭ、また、レジスタに直接アクセスすることが可能になる。従って、本特徴は、マイクロコントローラ１０７のスリープ機能と緊密に連動する。これらのモードは、競合を防ぐため、マイクロコントローラ１０７がスリープ状態の場合のみアクセス可能である。ハードウェアは、マイクロコントローラ１０７がスリープ状態になるまで、アクセスを阻止する。特別なスリープコマンドによって、ユーザは、初期設定時を除き、随時マイクロコントローラ１０７をスリープ状態することが可能になる。ファームウェアを構築して、デバイスが起動を停止し、スリープ状態に入るべきであることを示す、ピン（ＧＰＩＯ（汎用Ｉ／Ｏ）ピン等）を起動中にポーリングすることによって、本制限を回避することができる。
【００１６】
特別なテストモードは、以下を含む。（１）デバッグおよび評価の際に使用するために、マイクロコントローラのプログラムカウンタ（ファームウェアＲＯＭのアドレス）をシステム出力上で観察可能にする能力、（２）デジタルコントローラシステム１００を構成するすべての内蔵メモリに直接読み込みおよび書き込みを行う能力、（３）マイクロコントローラのデータバス上のすべてのレジスタに直接読み込みおよび書き込みを行う能力、（４）テストモードの間、特定のユーザコマンドに基づいてマイクロコントローラ１０７をスリープ状態にする能力、（５）「拡張コマンド」を解釈する間、テストモードピンの状態を検索する能力。
【００１７】
一実施形態では、コマンドデコーダ１０６は、コマンドの拡張性の課題を解決する。復号化されるコマンドの多くは、システム１００が構築され、ハードウェアに組込まれた時点に基づいて決定されるため、ソフトウェア内に新規コマンドを追加する能力を有することが望ましい。そのような拡張性は、「拡張コマンド」と呼ばれるコマンドの使用を通してコマンドデコーダ１０６によって提供される。「拡張コマンド」が送信されると、ユーザも同様に、コマンドデコーダ１０６によってオペコードレジスタに格納される（例えば、８ビットの）オペコードを送信する。次いで、コマンドデコーダ１０６は、マイクロコントローラ１０７を起動させ、コマンドが存在することを通知する。ファームウェアは、コマンドが「拡張コマンド」であることを確認すると、オペコードレジスタを読み込み、オペコードの値に基づいて処理することを認識している。これによって、システム１００の製造後追加され得る２５６もの付加的コマンドの可能性が提供される。さらに、テストモード信号の値を検索することによって、システム１００は、最大２５６の付加的テストモードコマンドに対応することが可能となる。
【００１８】
一実施形態では、コマンドデコーダ１０６は、以下の３種類のコマンドの検出に関与する。
【００１９】
１．直接ユーザコマンド：この場合、コマンドデコーダ１０６は、コマンドによって要求されるレジスタ、信号、またはメモリに直接アクセスする。アクセスは瞬時に実行され、マイクロコントローラ１０７はスリープ状態のままである。
【００２０】
２．マイクロコントローラ／ファームウェアの使用を要求する時限イベント：この場合、コマンドデコーダ１０６は、ＲＤＹ信号を解除し、マイクロコントローラ１０７を起動
させる。マイクロコントローラ１０７が起動すると、マイクロコントローラ１０７は、単に、中断されていた時点のファームウェアコードの実行を開始する。従って、図３に示されるように、本スキームは、主要ルーチンがＣＭＤＣＯＤＥレジスタをポーリングする単純ループとなるように、ファームウェアを構築することが要求される。次いで、ＣＭＤＣＯＤＥレジスタの値に基づく適切な機能またはサブルーチンが呼び出される。ルーチンを処理する動作が終了すると、主要ループに戻り、最終（または、ほぼ最終）ステップである、ＲＤＹを「高」に設定することによって、スリープ状態に入る。
【００２１】
３．現在実行中の時限イベントを中断するための一時停止コマンド。この場合、コマンドデコーダ１０６は、マイクロコントローラ１０７に対してインタラプトを生成する。一時停止コマンドシーケンスは、ファームウェアのインタラプトハンドラ内に含まれる。
【００２２】
ユーザインターフェースとして機能する別個のコマンドデコーダ１０６によって、コマンドはマイクロコントローラ１０７から独立して受信および管理されることが可能になる。コマンドデコーダ１０６は、システムのためのトラフィック整理役として機能し、合法コマンドにたいして動作し、違法なコマンドは無視する。コマンドデコーダ１０６単独、またはマイクロコントローラ１０７の起動のいずれかによって、コマンドが作動する。マイクロコントローラ１０７の使用を要求しないコマンドの一例として、読み込みコマンド、またはバースト制御レジスタへの書き込み、あるいはソフト／ハードロックレジスタへの書き込みがある。マイクロコントローラ１０７の使用を要求するコマンドの一例として、プログラムまたは消去、あるいは他の「時限」コマンドがある。
【００２３】
本スタンドアロン型コマンドデコーダ１０６は、以下の利点を提供する。
（１）緊密に連動した同期、スリープ、およびレディ／ビジー制御によって、複雑な複数のクロックによるユーザインターフェースに対する優れた解決法が提供される。
【００２４】
（ａ）複合型デジタルフラッシュメモリコントローラシステム１００を有することを可能にし、それによって単純コマンドを処理するための専用の状態機械の速度の利点を断念せずに、複雑なマルチサイクルイベントコマンドは、マイクロコントローラ１０７によって提供される柔軟性によって処理可能となる。また、複合型システムによって、コマンドの解釈および単純コマンドの実行のために、より低電力の状態機械を使用することが可能になり、従って、必要な時のみマイクロコントローラ１０７を使用することによって、電力が節約される。
【００２５】
（ｂ）マイクロコントローラ１０７がコマンドを作動している間、マイクロコントローラ１０７が新規コマンド、コマンドの優先順位付け、または管理に関与する必要がないように、コマンドデコーダ１０６は、マイクロコントローラ１０７の負荷を軽減する。これによって、コード効率が提供され、競争力の主要な測定基準となる、フラッシュメモリの迅速なプログラミングおよび消去に重要な時限イベントのより迅速な処理が可能となる。
【００２６】
（ｃ）コマンドデコーダ１０６によって、進行中の時限イベントがない場合に、マイクロコントローラ１０７を停止（スリープ状態にする）することが可能になる。これによって、電力が節約され、低電力バッテリによって作動するシステムには不可欠となる。
【００２７】
（２）書き込み動作のアドレスを格納し、それを読み込みコマンドのアドレスと比較することによって、フラッシュメモリの同時読み込みおよび書き込み能力に対応する。コマンドデコーダ１０６は、内在するフラッシュメモリのマルチプレーンアーキテクチャを認識しており、１つのプレーンの書き込み中に別のプレーンの読み込みを可能にする。コマンドデコーダ１０６は、どのプレーンにおいてどの動作が実行されているのかを識別し、それによって読み込みを実行または阻止し、ユーザに読み込みデータの代わりに状態情報
（ポーリング状態を含む）を提供するよう作用することができる。
【００２８】
（３）マイクロコントローラ１０７が消去コマンドを処理中の間に、「消去一時停止」コマンドが発行される場合、インタラプトを生成し、マルチステップ消去プロシージャの正確な時点から再開することができるように、一時停止された消去ルーチンの進行を追跡する。
【００２９】
コマンドデコーダ１０６は、また、後に再開コマンドが実行される際に復元されるコマンドコード、データ、およびアドレスをレジスタ内に格納することによって、コマンドの状態を保存することができる。これは、消去コマンドが以前に一時停止されたことを示すフラグと、一時停止された動作に関する付加的状態情報を格納する一時停止状態レジスタ（ＳＳＲ）（任意に、異なるブロックに置かれる）と併せて、有効な再開コマンドが復号化されると、中断された時点からファームウェアを正常に回復することを可能にする。
【００３０】
一時停止状態レジスタによって、消去一時停止および消去再開動作のための利点が提供される。消去コマンドは、消去されるデータのサイズ（消去コマンドの種類）によって、多くのステップを伴うため、コマンドが一時停止コマンドによって中断された場合に、コマンドが再開されると、ファームウェアが回復時点を後に認識することができるように、コマンドが進行したシーケンスの進度を記録することは有利である。（例えば、８ビットの）一時停止状態レジスタは、本目的に適う。ファームウェアの進行に伴い、消去コマンドはＳＳＲ内の各ステップを記録する。消去再開コマンドが発行されると、ファームウェアはＳＳＲを検索し、それまでに終了したステップを認識し、終了したステップを再実行する必要がないようにする。
【００３１】
（４）コマンドクロックをマイクロコントローラクロックから分離し、デジタルコントローラフラッシュモジュールが使用されるシステムのクロックに同期しない設定速度で、マイクロコントローラ１０７を実行可能にする。また、これによって、マルチサイクル時限イベントが生じる場合でも、ユーザコマンドに即応することが可能となる。これによって、マイクロコントローラ１０７がコマンドを認識するまでに時間を要するにもかかわらず、コマンドデコーダ１０６によって即座にレディ信号を解除することが可能になる。
【００３２】
ユーザと同期フラッシュメモリコントローラとの間のインターフェースとしてコマンドデコーダ１０６を使用するさらに別の利点は、すべてのクロックドメイン転送を１カ所で管理することができることである。これによって、ユーザクロックとシステムクロックとの間のより簡素化されたインターフェースを可能にし、相互の確実な信号の送信が容易となる。また、クロックツリーの実現をより単純にし、システム上でのタイミングの統合および確認において使用されるタイミング制約を簡素化する。総体的に、より信頼性のあるシステムが可能になる。
【００３３】
（５）ソフトウェア拡張可能コマンドを提供し、それによって「拡張コマンド」と呼ばれる単一コマンドが、コマンドデコーダ１０６が別個のオペコードレジスタに格納するオペコードとともに解釈される。
【００３４】
このコマンドが受信されると、マイクロコントローラ１０７の目が覚まされ、オペコードレジスタを検索するよう認識する。オペコードの値によって、ファームウェアは、その動作を適応する。例えば、８ビットオペコードレジスタおよびテストモード信号を使用して、最大２５６の付加的ユーザコマンドおよび２５６の付加的テストモードコマンドが提供される。
【００３５】
（６）デジタルコントローラシステム１００に対するテストインターフェースとして機
能し、以下を提供する。
【００３６】
（ａ）所定の時点でマイクロコントローラ１０７が何を行っているのかを判断するために使用され得る、マイクロコントローラのプログラムカウンタ（アドレスカウンタ）のユーザによる観察可能性。これは、ファームウェアのハングアップまたは一時的バグが生じた場合には、特に有益となり得る。
【００３７】
（ｂ）マイクロコントローラ１０７がスリープ状態にある間の、マイクロコントローラのデータバス上のすべてのレジスタへのアクセス。この特徴は、問題が検出される場合に、システムの状態の判断時の評価およびデバッグの際に非常に有益となり得る。これは、コマンドデコーダ１０６に、特定のテストモード時にマイクロコントローラのアドレスおよびデータバスを制御させることによって達成される。一実施形態では、本モードは、マイクロコントローラ１０７がスリープ状態にある場合のみ可能となる。これによって、バス上の競合が防止される。マイクロコントローラ１０７を含むブロック内に位置する中央バス多重化装置は、バス上のレジスタが本デバッグモードの存在を認識する必要がないように、単一アドレスバスおよびクロックを出力する。レジスタは、真のソースがマイクロコントローラ１０７を通して作用するファームウェアなのか、コマンドデコーダ１０６を通して作用するユーザであるのかを認識せずに、通常通りクロックおよびアドレスに単に応答する。
【００３８】
（ｃ）アドレス空間の再マッピングを提供する。これによって、ユーザによってアクセス可能であり、製品仕様書に記載の特定のアドレスに置かれるべきレジスタと、マイクロコントローラ１０７のアドレス空間内に存在すべきそれらの同一レジスタとの間にシームレスな境界が形成される。フラッシュメモリ製品仕様書に記載のマイクロコントローラのアドレスにレジスタを配置することは、システム設計者にとって不必要かつ煩わしい制約である。さらに、モードまたはアドレス指定されるブロック／セクタ／プレーンに応じて、同一アドレスに２つ以上の実際のレジスタを配置することが望ましい。メモリ再マッピングスキームを使用することによって、コマンドデコーダ１０６がユーザから論理アドレスを取得し、マイクロコントローラのアドレス空間内の物理的位置に再マッピングすることが可能になる。
【００３９】
（ｄ）デジタルメモリコントローラ内のすべてのＲＡＭおよびＲＯＭへのアクセス。これによって、通常およびテストモードの両方で、プログラムバッファへの直接読み込みおよび書き込みが可能になり、マイクロコントローラのデータＲＡＭおよび命令ＲＡＭの直接読み込みおよび書き込みを可能とする。ＲＯＭは、読み込み可能であるが、書き込みはできない。
【００４０】
（ｅ）マイクロコントローラ１０７が実行中の間、システム１００の状態をデバッグする必要がある場合に、マイクロコントローラ１０７をスリープ状態にする。
【００４１】
（ｆ）多くのモードに対する単一「終了」コマンドによって、ファームウェアを簡素化する。一実施形態では、１つの終了コマンドによって、以下のモードが終了される。レジスタ読み込みモード、マイクロコントローラレジスタ読み込みモード、ポーリングモード、命令ＳＲＡＭ読み込みモード、データＳＲＡＭ読み込みモード、ページ（プログラム）バッファＳＲＡＭ読み込みモード、ＲＯＭ読み込みモード、ＰＣ（プログラムカウンタ）読み込みモード。
【００４２】
（７）制御信号を他のサブシステムに提供する。
（ａ）ユーザモード：どのアドレス、データ、または他の信号をブロックに多重化すべきかを他のブロックに示す。
【００４３】
（ｉ）ＲＥＡＤ：フラッシュメモリコアの通常のユーザ読み込み
（ｉｉ）ＲＥＧ：マイクロコントローラのレジスタのユーザ読み込み
（ｉｉｉ）ＩＳＲＡＭ：テストモードにおける命令ＳＲＡＭへの読み込み／書き込み
（ｉｖ）ＤＳＲＡＭ：テストモードにおけるマイクロコントローラのデータＲＡＭへの読み込み／書き込み
（ｖ）ＰＳＲＡＭ：テストモードにおけるプログラムバッファＲＡＭへの読み込み／書き込み
（ｖｉ）ＲＯＭ：テストモードにおける主要命令ＲＯＭの読み込み
（ｖｉｉ）ＰＣ：テストモードにおけるデバッグおよび評価のため、データＩ／Ｏによるマイクロコントローラのプログラムカウンタの読み出し
（ｂ）レディ／ビジーフラグ：システムが新規コマンドを受け付ける準備ができているか、コマンドの処理中であるかを示し、同期およびスリープ論理の不可欠な要素である。一実施形態では、レディ／ビジーフラグは、トップレベルＩ／Ｏ信号およびポーリングモードにおけるデータ出力を通してユーザに提供されるが、意思決定のための他のサブシステムでも利用可能である。また、レディ／ビジーフラグは、デバイスをスリープ状態にするためにも使用される。ファームウェアおよび他のサブシステムは、レディ／ビジーレジスタへの書き込みアクセスを有しており、「高」（レディ）に設定することによって、デバイスをスリープ状態にすることができる。「低」に設定すると、デバイスが起動される。
【００４４】
（ｃ）ＭＳＲ消去信号：ＭＳＲ（メモリ状態レジスタ）は、プログラムバッファモジュール内に配置され、ページのどのセクタがプログラムされているかを示す。コマンドデコーダ１０６は、「ＰＢ消去フラグ」コマンドがユーザによって発行されると、ＭＳＲを消去する信号を送信する。
【００４５】
（ｄ）「ビジー状態中のプレーン０読み込み」信号／「ビジー状態中のプレーン１読み込み」信号：コマンドデコーダ１０６のこの出力は、ユーザがビジー状態のプレーンから読み込みを行おうとしていることを示す。「時限イベント」が他のプレーンで実行されている間に、ユーザが１つのプレーンからの読み込みが可能となるように、フラッシュメモリは、複数のプレーンから成る。アクティブ状態のイベント（コマンド）を有するプレーンは、「ビジー状態」である。ユーザがビジー状態のプレーンから読み込みを行おうとすると、「ビジー状態中の読み込み」信号が設定され、適宜作動することができるように、他のサブシステムに出力される。例えば、Ｉ／Ｏ  ＭＵＸモジュール１０５は、ポーリングモードがアクティブな場合、ビジー状態中の読み込み信号もアクティブであり、ユーザは、現在のコマンドの状態に関する一定のデータを提供される必要があることを認識している。また、バースト読み込みモジュール１０４は、この情報を使用して、ビジー状態のプレーンを読み込もうとしているのかを判断するが、この場合、正常に停止することが必要となる。
【００４６】
（ｅ）コンプリメントビット：ファームウェアワード／バイトまたは単一パルスプログラムコマンドを実行する間、ビジー状態のプレーンから読み込みを試みる場合、書き込まれるデータの補数がユーザに提供される必要がある。コマンドデコーダ１０６は、プログラムされるワードまたはバイトの値を認識し、ユーザに出力され得るように、その補数をＩ／Ｏ  ＭＵＸモジュール１０５に提供するという独特の位置にある。
【００４７】
（ｆ）ポーリングモード信号：ポーリングモードレジスタは、コマンドデコーダ１０６内に置かれるが、「ビジー状態中の読み込み」信号がアクティブな場合にどのデータをユーザに提供するかを決定する際に、Ｉ／Ｏ  ＭＵＸモジュール１０５で使用される。その結果、ポーリングモード信号は、Ｉ／Ｏ  ＭＵＸサブシステムに出力として提供される。
【００４８】
（ｇ）「ポーリング終了モード」信号：エラービットレジスタは、レジスタモジュール１０８と呼ばれるサブシステムに置かれる。このビットは、ポーリングモードが「オン」の場合に、アクティブ状態の間およびアクティブ状態後に、コマンドのエラー状態を格納する。ユーザがポーリングモードを終了すると（ユーザコマンド）、コマンドデコーダ１０６は、レジスタモジュール１０８がエラービットを消去することが可能なように、ポーリングモードを終了していることを示す信号をレジスタモジュール１０８に送信する。
【００４９】
（ｈ）Ｉｎｉｔフラグ：Ｉｎｉｔフラグは、デバイスが初期化されていることを示すレジスタである。Ｉｎｉｔフラグは、デバイスがユーザまたは電力入力によってリセットされる場合に、「高」に設定され、ファームウェアが初めてレディ／ビジーフラグを「高」に設定するまで「高」のままである。Ｉｎｉｔフラグは、いくつかの理由で有益である。一実施形態では、Ｉｎｉｔフラグは、初期設定の間の主要ユーザアドレスバス上でのアドレス変更を阻止するために使用される。これは、すべての初期設定が終了する前に起動される電荷ポンプによって生じうる部分へのダメージを防ぐ。Ｉｎｉｔフラグは、デバイスがユーザまたは電力入力によってリセットされたかを示す値を格納するレジスタモジュール１０８内のＰＯＲ＿ＬＡＴレジスタをクロックするために使用される。この知識は、完全な初期化起動ルーチンまたは短縮ルーチンを実行するかを決定する際に、ファームウェアにとって重要である。必要とする時間が大幅に短縮され、より競合的部分の迅速さを助長するため、ユーザリセットの際は、短縮ルーチンが優先される。これは、当該部分がリセットされる場合に、ファームウェアが起動ルーチンを実行できるように、起動状態において初期化されることを確実にするために、コマンドデコーダ１０６によって使用される。
【００５０】
（ｉ）「デジタルクロック選択」信号：マイクロコントローラ１０７に対するクロックをゲートするために使用され、それによってデバイスの低電力モードを制御する。また、デジタルクロックを解除し、マイクロコントローラ１０７をスリープ状態にすることによって、競合を生じさせずに、コマンドデコーダ１０６がマイクロコントローラのデータおよびアドレスバスの制御をすることが可能となる。これは、データバス上のレジスタへアクセスするテストモードの際に重要である。
【００５１】
本発明は、示される実施形態に従って説明されたが、実施形態の変形例が有り得、それらの変形例は、本発明の精神および範囲内であることは、当業者には容易に理解されるであろう。従って、添付の請求項の精神および範囲から逸脱することなく、多くの修正が当業者によって行われ得る。
【図面の簡単な説明】
【００５２】
【図１】本発明による、コマンドデコーダを含むデジタルコントローラシステムの好適な実施形態を示す。
【図２】本発明による、図１のコマンドデコーダの好適な実施形態を示す。
【図３】本発明の一実施形態による、マイクロコントローラの使用を要求する時限イベントのスキームを示す。
【図１】
2009517742.tif 000003
【図２】
2009517742.tif 000004
【図３】
2009517742.tif 000005
【手続補正書】
【提出日】平成20年8月6日(2008.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コマンドを復号化するためのコマンド復号化状態機械と、
前記コマンドに関する情報を格納するための、マイクロコントローラによってアクセス可能な複数のレジスタと、
起動信号と、
を含む、コマンドデコーダであって、
前記起動信号は、前記コマンドが時限コマンドを要求すると前記マイクロコントローラに送信され、前記コマンドは、前記マイクロコントローラが起動すると前記マイクロコントローラに転送される、コマンドデコーダ。
【請求項２】
前記コマンドデコーダは、前記マイクロコントローラから独立してユーザコマンドを管理する、請求項１に記載のコマンドデコーダ。
【請求項３】
前記コマンド復号化状態機械は、非時限コマンドを処理し、前記マイクロコントローラは、前記コマンドが前記時限コマンドを要求する場合に起動され、前記マイクロコントローラは、使用されない場合はスリープ状態に入る、請求項１に記載のコマンドデコーダ。
【請求項４】
前記時限コマンドは、単一サイクルでは実行不可能なコマンドを含み、前記時限コマンドが完全に実行されるために一連のイベントが生じることを要求する、請求項３に記載のコマンドデコーダ。
【請求項５】
前記コマンドが一時停止され、後に再開される場合の状態情報を格納するための一時停止／再開レジスタをさらに含む、請求項１に記載のコマンドデコーダ。
【請求項６】
前記コマンド復号化状態機械は、複数のクロックドメインを管理するための同期論理をさらに含む、請求項１に記載のコマンドデコーダであって、前記複数のクロックドメインは、
ユーザのアクセス順序によって決定される速度で作動するユーザクロックと、
デジタルコントローラシステムクロックと、
を含み、ユーザコマンドは、前記デジタルコントローラシステムクロックに基づく信号を待たずに、前記ユーザクロック速度によって受け付けられる、請求項１に記載のコマンドデコーダ。
【請求項７】
前記コマンドデコーダは、テストモードコマンドが受信されるとテストモード制御を提供し、前記テストモードコマンドは解釈され、前記テストモードコマンドに従って、必要なテストモード信号が制御される、請求項１に記載のコマンドデコーダ。
【請求項８】
前記コマンドデコーダは、ソフトウェア内に新規コマンドを追加するための手段を含む、請求項１に記載のコマンドデコーダ。
【請求項９】
前記コマンドデコーダは、ユーザから論理アドレスを取得し、前記論理アドレスを前記マイクロコントローラのアドレス空間内の対応する物理的位置に再マッピングするように動作し得る、請求項１に記載のコマンドデコーダ。
【請求項１０】
マイクロコントローラと、
前記マイクロコントローラに連結したコマンドデコーダと、
を含む、デジタルコントローラシステムであって、前記コマンドデコーダは、
コマンドを復号化するためのコマンド復号化状態機械と、
前記コマンドに関する情報を格納するための、前記マイクロコントローラによってアクセス可能な複数のレジスタと、
起動信号と、
を含み、前記起動信号は、前記コマンドが時限コマンドを要求すると前記マイクロコントローラに送信され、前記コマンドは、前記マイクロコントローラが起動すると前記マイクロコントローラに転送される、デジタルコントローラシステム。
【請求項１１】
前記コマンドデコーダは、前記マイクロコントローラから独立してユーザコマンドを管理する、請求項１０に記載のシステム。
【請求項１２】
前記コマンド復号化状態機械は、非時限コマンドを処理し、前記マイクロコントローラは、前記コマンドが前記時限コマンドを要求する場合に起動され、前記マイクロコントローラは、使用されない場合はスリープ状態に入る、請求項１０に記載のシステム。
【請求項１３】
前記時限コマンドは、単一サイクルでは実行不可能なコマンドを含み、前記時限コマンドが完全に実行されるために一連のイベントが生じることを要求する、請求項１２に記載のシステム。
【請求項１４】
前記コマンドが一時停止され、後に再開される場合の状態情報を格納するための一時停止／再開レジスタをさらに含む、請求項１０に記載のシステム。
【請求項１５】
前記コマンド復号化状態機械は、複数のクロックドメインを管理するための同期論理をさらに含む、請求項１０に記載のシステムであって、前記複数のクロックドメインは、
ユーザのアクセス順序によって決定される速度で作動するユーザクロックと、
デジタルコントローラシステムクロックと、
を含み、ユーザコマンドは、前記デジタルコントローラシステムクロックに基づく信号を待たずに、前記ユーザクロック速度によって受け付けられる、請求項１０に記載のシステム。
【請求項１６】
前記コマンドデコーダは、テストモードコマンドが受信されるとテストモード制御を提供し、前記テストモードコマンドは解釈され、前記テストモードコマンドに従って、必要
なテストモード信号が制御される、請求項１０に記載のシステム。
【請求項１７】
前記コマンドデコーダは、ソフトウェア内に新規コマンドを追加するための手段を含む、請求項１０に記載のシステム。
【請求項１８】
前記コマンドデコーダは、ユーザから論理アドレスを取得し、前記論理アドレスを前記マイクロコントローラのアドレス空間内の対応する物理的位置に再マッピングするように動作し得る、請求項１０に記載のシステム。
【国際調査報告】
2009517742.tif 000006