(57)【要約】  メモリコントローラのコマンドセットを拡張するためのシステムおよび方法が提供される。一実現例では、当該方法は、コマンドデコーディング状態マシンを通じて第１の複数のコマンドをデコードするステップと、コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含む。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
2009528633.tif 000002
【特許請求の範囲】
【請求項１】
コマンドデコーディング状態マシンとマイクロコントローラとを含むデジタルコントローラシステムのための動作方法であって、
前記コマンドデコーディング状態マシンを通じて第１の複数のコマンドをデコードするステップと、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含み、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、方法。
【請求項２】
前記マイクロコントローラを立上げ、前記付加的なコマンドを処理するステップは、前記マイクロコントローラを立上げ、前記拡張されたコマンドに関連付けられるオペコードをデコードするステップを含む、請求項１に記載の方法。
【請求項３】
前記付加的なコマンドおよび前記拡張されたコマンドはユーザから受取られる、請求項２に記載の方法。
【請求項４】
前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立して、コマンドを処理するよう動作可能である、請求項１に記載の方法。
【請求項５】
前記デジタルコントローラシステムはさらに、前記マイクロコントローラにインターフェイス接続するメモリをさらに含み、前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項１に記載の方法。
【請求項６】
前記メモリは、フラッシュメモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のうちの１つを含む、請求項５に記載の方法。
【請求項７】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するステップをさらに含み、前記時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項１に記載の方法。
【請求項８】
前記デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、
前記拡張されたコマンドを用いて、前記テストモードの間に処理されることになるテストモードコマンドを前記マイクロコントローラに知らせるステップとをさらに含む、請求項１に記載の方法。
【請求項９】
第１の複数のコマンドをデコードするよう動作可能なコマンドデコーディング状態マシンと、
マイクロコントローラとを含み、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、デジタルコントローラシステム。
【請求項１０】
前記付加的なコマンドはオペコードを含み、前記デジタルコントローラシステムはさらに、前記マイクロコントローラによって前記オペコードが処理される前に、前記オペコードを記憶するよう動作可能であるレジスタをさらに含む、請求項９に記載のデジタルコントローラシステム。
【請求項１１】
前記オペコードおよび前記拡張可能なコマンドは前記デジタルコントローラシステムによってユーザから受取られる、請求項１０に記載のデジタルコントローラシステム。
【請求項１２】
前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立してコマンドを処理するよう動作可能である、請求項９に記載のデジタルコントローラシステム。
【請求項１３】
前記デジタルコントローラシステムはさらに、前記マイクロコントローラにインターフェイス接続するメモリをさらに含み、前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項９に記載のデジタルコントローラシステム。
【請求項１４】
前記メモリは、フラッシュメモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のうちの１つを含む、請求項１３に記載のデジタルコントローラシステム。
【請求項１５】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項９に記載のデジタルコントローラシステム。
【請求項１６】
前記デジタルコントローラシステムはテストモードで動作しているかどうかを示すテストモード信号をさらに含む、請求項９に記載のデジタルコントローラシステム。
【請求項１７】
コマンドデコーダであって、
拡張されたコマンドを含む第１の複数のコマンドをデコードするよう動作可能であるコマンドデコーディング状態マシンと、
マイクロコントローラによってアクセス可能であり、前記拡張されたコマンドに関連付けられるオペコードを記憶するための複数のレジスタとを含み、
前記コマンドデコーダは、前記コマンドデコーディング状態マシンが前記拡張されたコマンドをデコードする際に前記マイクロコントローラを立上げるよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記オペコードを前記マイクロコントローラに知らせるコマンドである、コマンドデコーダ。
【請求項１８】
前記第１の複数のコマンドおよび前記拡張されたコマンドは、前記コマンドデコーダの作製時には前記コマンドデコーディング状態マシンの中にハードワイヤされる、請求項１７に記載のコマンドデコーダ。
【請求項１９】
前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立して、コマンドを処理するよう動作可能である、請求項１７に記載のコマンドデコーダ。
【請求項２０】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーダは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全
に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項１７に記載のコマンドデコーダ。
【請求項２１】
前記マイクロコントローラの処理が割込まれると、前記マイクロコントローラに関連付けられる状態情報を記憶するための１つ以上の中断レジスタをさらに含む、請求項１７に記載のコマンドデコーダ。
【請求項２２】
第１のクロックドメインから、前記第１のクロックドメインとは異なる第２のクロックドメインに、前記コマンドデコーダによって受取られるコマンドを同期するよう動作可能である同期論理をさらに含む、請求項２１に記載のコマンドデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明は、一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。
【背景技術】
【０００２】
発明の背景
メモリシステムおよびメモリ装置（たとえば、デジタルフラッシュメモリ装置）は典型的には、メモリ（たとえば不揮発性フラッシュメモリ）へのデジタル情報の記憶およびそこからのデジタル情報の抽出のためのデジタルコントローラを含む。デジタルフラッシュメモリ装置のような従来のメモリ装置では、このデジタルフラッシュメモリ装置がサポートするコマンドシーケンス（たとえば、読取、書込、コピー、消去など）の多くは通常、デジタルフラッシュメモリ装置が特定され、設計されるときには、既知である。結果として、コマンドシーケンスは典型的にはハードウェアに設定（固定）される（たとえば、コマンドシーケンスは状態マシン内にハードワイヤされるかまたは読取専用メモリ（ＲＯＭ）に固定される）。したがって、コマンドシーケンスは一般的には、デジタルフラッシュメモリ装置が作製された後では修正され得ない。このようなハードワイヤされた状態マシンでは典型的には、予め定められたシーケンスに対してなされる如何なる変更についても記録することが必要とされ、これは、新しいデジタルフラッシュメモリ装置が作製され、テストされるのを必要とする高価で時間を消費する処理である。
【０００３】
したがって、必要とされるのは、状態マシンを含む従来のメモリ装置によって実行（または処理）される利用可能なコマンドの数を拡張するためのシステムおよび方法であり、当該拡張されたコマンド（処理時）は、状態マシンが再コード化されることを必要としない。この発明はこのような必要性に応える。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
発明の概要
一般的に、この明細書は、コマンドデコーディング状態マシンとマイクロコントローラとを含むデジタルコントローラシステムのための動作方法を記載する。当該方法は、コマンドデコーディング状態マシンを通じて第１の複数のコマンドをデコードするステップと、コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含む。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
【課題を解決するための手段】
【０００５】
特定の実現例は以下の特徴の１つ以上を含み得る。マイクロコントローラを立上げ、付加的なコマンドを処理するステップは、マイクロコントローラを立上げ、拡張されたコマンドに関連付けられるオペコードをデコードするステップを含み得る。付加的なコマンドおよび拡張されたコマンドはユーザから受取られ得る。コマンドデコーディング状態マシンは、マイクロコントローラから独立して、コマンドを処理するよう動作可能であり得る。デジタルコントローラシステムはさらに、マイクロコントローラと連携するメモリをさらに含み得る。コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスであり得る。メモリは、フラッシュメモリ、ダ
イナミックＲＡＭ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のうちの１つを含み得る。当該方法はさらに、コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、時間決めされたコマンドを処理するステップを含み得る。時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドであり得る。当該方法はさらに、デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、拡張されたコマンドを用いて、テストモードの間に処理されることになるテストモードコマンドをマイクロコントローラに知らせるステップとを含み得る。
【０００６】
一般的に、別の局面では、この明細書はデジタルコントローラシステムを記載する。デジタルコントローラシステムは、第１の複数のコマンドをデコードするよう動作可能なコマンドデコーディング状態マシンと、マイクロコントローラとを含む。コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、コマンドデコーディング状態マシンは、マイクロコントローラを立上げ、第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するよう動作可能である。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
【０００７】
特定の実現例は以下の特徴の１つ以上を含み得る。デジタルコントローラシステムはさらに、マイクロコントローラによって付加的なコマンドが処理される前に、拡張されたコマンドに関連付けられるオペコードを記憶するよう動作可能であるレジスタをさらに含み得る。デジタルコントローラシステムは、デジタルコントローラシステムがテストモードで動作しているかどうかを示すテストモード信号をさらに含み得る。付加的なコマンドはオペコードを含み得る。デジタルコントローラシステムはさらに、マイクロコントローラによってオペコードが処理される前に、オペコードを記憶するよう動作可能であるレジスタをさらに含み得る。オペコードおよび拡張可能なコマンドはデジタルコントローラシステムによってユーザから受取られ得る。
【０００８】
一般的に、別の局面では、この明細書は、拡張されたコマンドを含む第１の複数のコマンドをデコードするよう動作可能であるコマンドデコーディング状態マシンと、マイクロコントローラによってアクセス可能であり、拡張されたコマンドに関連付けられるオペコードを記憶するための複数のレジスタとを含むコマンドデコーダを記載する。コマンドデコーダは、コマンドデコーディング状態マシンが拡張されたコマンドをデコードする際にマイクロコントローラを立上げるよう動作可能である。拡張されたコマンドは、処理されることになるオペコードをマイクロコントローラに知らせるコマンドである。
【０００９】
特定の実現例は以下の特徴の１つ以上を含み得る。第１の複数のコマンドおよび拡張されたコマンドは、コマンドデコーダの作製時にはコマンドデコーディング状態マシンの中にハードワイヤされ得る。コマンドデコーダは、第１のクロックドメインから、第１のクロックドメインとは異なる第２のクロックドメインに、コマンドデコーダによって受取られるコマンドを同期するよう動作可能である同期論理をさらに含み得る。
【００１０】
実現例は以下の利点の１つ以上を提供し得る。ユーザインターフェイスとして状態マシンを用い、メモリコアに対するプログラミングおよび消去インターフェイスとしてマイクロコントローラ（または、コプロセッサ、マイクロプロセッサ、もしくは他の状態マシン）を用いるという混合型の方策により、プログラムの柔軟性、スピード、および電力の間で折合いがつくことになる。この状態マシンベースのコマンドデコーダは、ユーザコマンドを検知および管理し、（アドレス、データ、オペコード、およびフラグのような）コマンドに関係付けられる情報を管理し、システムクロックを制御し、かつ複雑なコマンド（例えば時間決めされたコマンド）が処理される必要がある際には、マイクロコントローラ
を立上げる手段を提供する。ソフトウェアで拡張可能なコマンドを利用するデジタルコントローラシステムが記載される。一実現例では、拡張されたコマンドは単一の特定のコマンドシーケンスを含む。この単一のコマンドは、コマンドデコーダが別個のオペコードレジスタに記憶する（たとえば８ビットの）オペコードとともに解釈され得る。８ビットのオペコードレジスタを実現することにより、２５６個までの付加的なユーザコマンドと２５６個の付加的なテストモードコマンドとがサポートされ得る。ファームウェアを通じてマイクロコントローラを用いるテストモードおよびデバッグ機能は、拡張されたコマンドとデジタルコントローラシステムに関連付けられるテストモードピンとの組み合わせを用いて容易に実現される。テストピンは（一実現例では）顧客に送られる最終のパッケージングされた部品において外に結合されないので、テストモードピンはユーザが誤ってテストモードコマンドを入力するのを防止するよう用いられる。これらテストモードおよびデバッグ機能により、別個のテストコントローラを用いる必要なく、デジタルコントローラは（たとえば製造の間に）テストされることが可能になる。
【００１１】
さまざまな図面における同様の参照符号は同様の要素を示す。
【発明を実施するための最良の形態】
【００１２】
発明の詳細な説明
この発明は一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。以下の記載は、当業者がこの発明を作製および使用できるよう提供され、特許出願およびその要件の文脈において与えられる。本明細書に記載されるこれらの実現例および包括的な原理ならびに特徴に対するさまざまな修正例は、当業者には容易に明らかとなるであろう。したがって、この発明は、示される実現例に限定されると意図されるのではなく、本明細書に記載される原理および特徴と一致した最も広い範囲に従うと意図される。
【００１３】
図１は、この発明の一実現例に従った、（デジタル）メモリコントローラ１０２およびメモリ１０４を含むデジタルコントローラシステム１００のブロック図である。メモリ１０４は、不揮発性フラッシュメモリか、またはたとえばスタティックＲＡＭ（ＳＲＡＭ）もしくはダイナミックＲＡＭ（ＤＲＡＭ）のような他のメモリであり得る。メモリコントローラ１０２は、コマンドデコーダ１０６、マイクロコントローラ１０８、およびオペコードレジスタ１１０を含む。
【００１４】
一実現例では、コマンドデコーダ１０６は、受取ったデータ（たとえばデータ１１２）に基づき（予め定められた）単純なコマンド（またはコマンドシーケンス）を実行するための状態マシンを含む。例示的な単純なコマンドは、読取、書込、コピー、消去などを含む。したがって、この実現例では、状態マシンが単純なコマンドを実行する際、マイクロコントローラ１０８は電力を保持するようスリープ状態のままである。一実現例では、コマンドデコーダ１０６は、ユーザクロック１１４に従ってユーザからデータ１１２を受取るためのユーザインターフェイスである。状態マシンを含む従来のメモリコントローラ（またはデジタルコントローラ）とは異なり、メモリコントローラ１０６はさらにマイクロコントローラ１０８とオペコードレジスタ１１０とを含み、これによりメモリコントローラ１０６が、状態マシンの中にハードワイヤされない付加的なコマンドを処理することが可能になる。マイクロコントローラ（たとえばマイクロコントローラ１０８）がコマンドデコーダ１０６に結合されるように示されるが、コプロセッサ、マイクロプロセッサ、または状態マシン（またはマイクロコントローラ、コプロセッサ、マイクロプロセッサ、もしくは状態マシンの任意の組合せ）もここに記載されるマイクロコントローラ１０８の機能を実行するよう実現され得る。
【００１５】
したがって、一実現例では、コマンドデコーダ１０６は、メモリコントローラ１０２を
通じて、処理され得るコマンドの拡張性を与える。デコードされることになるコマンドの多くは通常予め決定され、ハードウェア（たとえばＲＯＭまたは状態マシン）内に組込まれるので、ソフトウェアにおいて新しいコマンドを加える能力を有するのが望ましい。一実現例では、１つ以上の拡張されたコマンドの利用を通じて、コマンドデコーダ１０６によってこのようなコマンドの拡張性が与えられる。ある拡張されたコマンドがコマンドデコーダ１０６に送られると、（一実現例では）ユーザはさらにオペコードレジスタ１１０に記憶される対応する（たとえば８ビットの）オペコードを送る。コマンドデコーダ１０６は次いで、マイクロコントローラ１０８を立上げ、マイクロコントローラ１０８に、拡張されたコマンドが存在することを知らせる。マイクロコントローラ１０８が、拡張されたコマンドをコマンドデコーダ１０６がデコードしたのを検知すると、マイクロコントローラ１０８はオペコードレジスタ１１０に記憶されるオペコードを読取り、当該オペコードを処理（または実行）する。マイクロコントローラ１０８は、当該オペコードをデコードするように、かつ、たとえばコマンドデコーダ１０６が設計された時点では想定していなかった命令シーケンスを実行するようにプログラムされ得る。一実現例では、８ビットオペコードは、メモリコントローラ１０２が作製された後、たとえば状態マシンが設定および固定された後に、２５６個の付加的なコマンドが加えられ得る可能性を提供する。さらに、一実現例では、メモリコントローラ１０２が（たとえば）２５６個までの付加的なテストモードコマンドをサポートするのを可能にするテストモード信号が与えられる。この実現例では、テストモード信号の値は、コマンドデコーダ１０６がテストモードにあるかどうかを示すよう用いられ得る。より一般的には、オペコードレジスタは、任意のビットサイズのオペコードを記憶するよう構成され得、したがって、２５６個より多いか、またはそれよりも少ない付加的なコマンド（テストモードコマンドを含む）がサポートされ得る。
【００１６】
一実現例では、コマンドデコーダ１０６は以下のタイプのコマンドを検知するよう動作可能である。すなわち、直接的なユーザコマンド、時間決めされたコマンド（拡張されたコマンドを含む）、および中断／再開コマンドである。直接的なユーザコマンドは、マイクロコントローラ１０８がスリープ状態の間に一般的にコマンドデコーダ１０６によって処理されるコマンドである。結果として、メモリコントローラ１０２は、高速かつ高電力効率で、直接的なユーザコマンドを扱うよう動作可能である。時間決めされたコマンドは、１サイクルで実行され得ず、当該コマンドが完全に実行されるには、イベントの連なりの発生が必要となるコマンドである。一実現例では、マイクロコントローラ１０８が時間決めされたコマンドを処理する。したがって、時間決めされたコマンドを処理するよう、コマンドデコーダ１０６がマイクロコントローラ１０８を立上げる。時間決めされたコマンドの例は、メモリ１０４をプログラミングおよび消去することと、不揮発性ロックビットを設定またはクリアすることと、メモリ１０４からのページ転送と、さまざまなテストモードとに関連付けられるコマンドおよび拡張されたコマンドを含む。中断コマンドは、現在実行している時間決めされたコマンドに割込むコマンドである。一実現例では、コマンドデコーダ１０６は、マイクロコントローラ１０８が時間決めされたコマンドを実行している間、マイクロコントローラ１０８への割込を生成する。中断コマンドシーケンスは、メモリコントローラ１０２に関連付けられる割込ハンドラに含まれ得る。再開コマンドは、マイクロコントローラ１０８が以前に止めたところで、コードの実行を再開し得るようにマイクロコントローラ１０８を立上げるコマンドである。
【００１７】
図２は、この発明の一実現例に従ったコマンドデコーダ１０６（図１）のブロック図を示す。図２に示されるように、コマンドデコーダ１０６は、コマンドデコーディング状態マシン２０１、中断／再開レジスタ２０２、マイクロコントローラがアクセス可能なレジスタ２０３、および同期論理２０４を含み、それらの機能は、「マイクロコントローラベースのフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ（Command Decoder For Microcontroller Based Flash Memory Digital Controller System）」
という名称を持ち、連続番号が第１１／２８８，７５３号であり、２００５年１１月２８日に出願され、本願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。さらに同期論理２０４の機能は、「メモリコントローラにおいて異なるクロックドメイン同士の間でデータを同期するための方法および装置（Method and Apparatus For Synchronizing Data Between Different Clock Domains in a Memory Controller）」という名称を有し、連続番号が第１１／２０６，４７４号であり、２００５年８月１７日に出願され、本出願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。
【００１８】
一般的には、コマンドデコーディング状態マシン２０１はユーザコマンドをデコードし、２つの異なるクロックドメイン、すなわち（非同期）ユーザクロック（たとえばユーザクロック１１４）と、メモリコントローラ１０２に関連付けられる（同期）デジタルクロックとに従って動作する。ユーザクロックは、ユーザのアクセスシーケンスによって決定されるスピード（または周波数）で実行される。メモリコントローラ１０２に関連付けられるデジタルクロックは典型的には、ユーザクロックに対して低スピード（または周波数）で実行される。これら２つのクロックドメインにより、メモリコントローラ１０２は、ユーザにサイクルベースのマイクロコントローラ１０８からの信号を待たせる必要なく、ユーザが望むスピードでコマンドを受取ることが可能になる。コマンドが中断され、その後、復元される際に、中断／再開レジスタ２０２は状態情報を記憶する。マイクロコントローラがアクセス可能なレジスタ２０３は、マイクロコントローラ１０８（図１）がアクセス可能な複数のレジスタを含む。一実現例では、マイクロコントローラがアクセス可能なレジスタ２０３は、マイクロコントローラ１０８が処理することになるオペコードを記憶するためのオペコードレジスタ（たとえば図１のオペコードレジスタ１１０）を含む。同期論理２０４はドメイン同士を同期させ、確定的かつ順序だった態様で、ユーザドメインからメモリコントローラドメインへと信号が横断するのを保証する。一実現例では、同期論理２０４はさらに、たとえば時間決めされたコマンドを処理するようマイクロコントローラ１０８を立上げる立上げ信号を同期させる。
【００１９】
図３は、この発明の一実現例に従った、デジタルコントローラシステム（たとえば、図１のデジタルコントローラシステム１００）の動作の方法３００を示す。あるコマンドが、コマンドデコーダ（たとえばコマンドデコーダ１０６）によって受取られる（ステップ３０２）。一実現例では、このコマンドは、テストモードコマンド、時間決めされたコマンド、中断／再開コマンド、または直接的なユーザコマンドであり得る。このコマンドがテストモードコマンドであるかどうかについて判定が行なわれる（ステップ３０４）。このコマンドがテストモードコマンドならば、当該テストモードコマンドはコマンドデコーダによって実行される（ステップ３０６）。一実現例では、テストモードによって、テストモードコマンドがデコードされる際に、必要なテストモード信号への直接的なアクセスが可能になる。一実現例では、テストモードにより、たとえばマイクロコントローラ１０８に関連付けられるアドレスおよびデータバス上のＲＡＭ、ＲＯＭ、レジスタへの直接的なアクセスが可能になる。一実現例では、テストモードは、競合を防ぐよう、マイクロコントローラ１０８がスリープ状態の際にのみアクセスされ得る。
【００２０】
コマンドが（ステップ３０８において）時間決めされたコマンドであると判断される場合、デジタルコントローラシステムに関連付けられるマイクロコントローラ（たとえばマイクロコントローラ１０８）が立上げられる（ステップ３１０）。次いで、マイクロコントローラは当該時間決めされたコマンドを実行（または処理）する（ステップ３１２）。上述したように、時間決めされたコマンドは拡張されたコマンドを含む。一実現例では、ユーザがある拡張されたコマンドを送ると、当該ユーザはさらにオペコードレジスタ（たとえば、オペコードレジスタ１１０）に記憶される（たとえば８ビットの）オペコードを
送る。コマンドデコーダはマイクロコントローラを立上げ、次いで、マイクロコントローラはオペコードレジスタに記憶されるオペコードを実行する。
【００２１】
コマンドが（ステップ３１４において）中断または再開コマンドであると判定されると、マイクロコントローラはそれぞれ割込まれるか、または立上げられる（ステップ３１６）。したがって、コマンドが中断コマンドならば、マイクロコントローラのコマンド実行は中断される（ステップ３１８）。同様の態様で、コマンドが再開コマンドならば、マイクロコントローラは立上げられ、コマンド実行を再開する（ステップ３１８）。コマンドが直接的なユーザコマンドならば、コマンドはコマンドデコーダによって実行される（ステップ３２０）。
【００２２】
図４は、この発明の一実現例に従った、図１のデジタルコントローラシステム１００を通じて処理され得るテストモードコマンドおよび拡張されたコマンドを含むテーブル４００を示す。テーブル４００は、拡張されたコマンドコードを用いるテストモードコマンドシーケンス（すなわちテストモードコマンド）と、さらに、拡張されたコマンドコードを用いないテストモードコマンドシーケンスとの例を示す。テーブル４００から、いくつかのテストモードコマンドシーケンスは、第３のバスサイクル上の拡張されたコマンドコード値にＩＯを設定することを伴うということがわかり得る。マイクロコントローラ１０８（図１）は、拡張されたコマンドが受取られたことをＣＭＤＣＯＤＥレジスタ（図示せず）が示すのを検知すると、アドレスおよびデータレジスタとともに、オペコードレジスタ１１０（図１）からコードを読出し、すべきことを決定する。オペコードレジスタ１１０に記憶されるコードは、第３のバスサイクルの間、アドレス上において、ユーザ（たとえばテストモードコマンドの場合はテストエンジニア）によって与えられ得る。たとえば、テスト目的のための拡張されたコマンドを用いる、テーブル４００における第１のコマンドは「トリムデフォルトをロードせよ（Load Trim Defaults）」というコマンドである。第３のバスサイクル上において、拡張されたコマンドを示すようＥＣがＩＯ上でドライブされ、アドレスバス上にオペコード０ｘ０１が与えられるということが分かる。
【００２３】
拡張されたコマンドを用いるテストモードコマンドの場合、一実現例では、オペコード、アドレス、およびデータに基づくコマンドの実行はマイクロコントローラ１０８によって取扱われる。一実現例では、それらに関連付けられる特定のコマンド、たとえば「ＡＶＲレジスタ読取モードに入れ（Enter AVR Register Read Mode）」または「データＳＲＡＭ読取モードに入れ(Enter Data SRAM Read Mode)」といったようなもの、を有するテストモードの場合、コマンドデコーダ１０６は、さまざまなマルチプレクサ（図示せず）を制御する内部フラグを設定し、これによりユーザがレジスタまたはＲＡＭへの直接アクセスを有するのが可能になる。さらに、レジスタへの書込またはＳＲＡＭもしくはＲＯＭに対する読取および書込の際のような、クロックが必要とされる場合には、クロックパルス生成回路（図示せず）が用いられ、アドレスバス上でのアドレス変更を検知することにより、クロックを作り出す。
【００２４】
この発明は、デジタルコントローラシステムのコマンドセットを拡張するためのシステムおよび方法を提供する。この発明は、示された実現例に基づき記載され、当業者ならば、これら実現例に対する変形例が存在し得るということを容易に認識するであろう。如何なる変形例もこの発明の範囲内である。たとえば、上で論じた方法は、異なる順番で実行され得、それでも望ましい結果を達成する。さらに、オペコードレジスタ１１０は、任意のビットサイズのオペコードを記憶するよう構成され得る。したがって、特許請求の範囲から逸脱することがなければ、当業者によって多くの修正例がなされ得る。
【図面の簡単な説明】
【００２５】
【図１】この発明の一実現例に従った、コマンドデコーダおよびマイクロコントローラを含むデジタルコントローラシステムのブロック図である。
【図２】この発明の一実現例に従った、図１のコマンドデコーダのブロック図である。
【図３】この発明の一実現例に従った、図１のデジタルコントローラシステムの動作の方法を示す図である。
【図４】この発明の一実現例に従った、図１のデジタルコントローラシステムによって実行され得るテストモードコマンドおよび拡張されたコマンドを含むテーブルを示す図である。
【図１】
2009528633.tif 000003
【図２】
2009528633.tif 000004
【図３】
2009528633.tif 000005
【図４】
2009528633.tif 000006
【手続補正書】
【提出日】平成21年4月27日(2009.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリにインターフェイス接続するデジタルコントローラシステムのための動作方法であって、前記デジタルコントローラシステムはコマンドデコーディング状態マシンとマイクロコントローラとを含み、前記方法は、
前記コマンドデコーディング状態マシンを通じて第１の複数のコマンドの１つ以上をデコードし、前記メモリ上で前記第１の複数のコマンドの前記１つ以上を実行するステップを含み、前記マイクロコントローラは、前記メモリ上での前記第１の複数のコマンドの前記１つ以上の実行の間、スリープ状態のままであり、前記方法はさらに、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップを含み、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、方法。
【請求項２】
前記マイクロコントローラを立上げ、前記付加的なコマンドを処理するステップは、前記マイクロコントローラを立上げ、前記拡張されたコマンドに関連付けられるオペコードをデコードするステップを含む、請求項１に記載の方法。
【請求項３】
前記付加的なコマンドおよび前記拡張されたコマンドはユーザから受取られる、請求項２に記載の方法。
【請求項４】
前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立して、コマンドを処理するよう動作可能であり、これは、読取コマンド、書込コマンド、コピーコマンド、または消去コマンドのうちの１つ以上を前記メモリ上で前記マイクロコントローラから独立して行うことを含む、請求項１に記載の方法。
【請求項５】
前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項１に記載の方法。
【請求項６】
前記メモリは、フラッシュメモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のうちの１つを含む、請求項５に記載の方法。
【請求項７】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するステップをさらに含み、前記時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項１に記載の方法。
【請求項８】
前記デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、
前記拡張されたコマンドを用いて、前記テストモードの間に処理されることになるテストモードコマンドを前記マイクロコントローラに知らせるステップとをさらに含む、請求項１に記載の方法。
【請求項９】
メモリにインターフェイス接続するよう構成されるデジタルコントローラシステムであって、
マイクロコントローラと、
第１の複数のコマンドの１つ以上をデコードし、前記メモリ上で前記第１の複数のコマンドの前記１つ以上を実行するよう動作可能なコマンドデコーディング状態マシンとを含み、前記マイクロコントローラは、前記メモリ上での前記第１の複数のコマンドの前記１つ以上の実行の間、スリープ状態のままであり、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記第１の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、デジタルコントローラシステム。
【請求項１０】
前記付加的なコマンドはオペコードを含み、前記デジタルコントローラシステムはさらに、前記マイクロコントローラによって前記オペコードが処理される前に、前記オペコードを記憶するよう動作可能であるレジスタをさらに含む、請求項９に記載のデジタルコントローラシステム。
【請求項１１】
前記オペコードおよび前記拡張可能なコマンドは前記デジタルコントローラシステムによってユーザから受取られる、請求項１０に記載のデジタルコントローラシステム。
【請求項１２】
前記コマンドデコーディング状態マシンは、読取コマンド、書込コマンド、コピーコマンド、または消去コマンドを前記メモリ上で前記マイクロコントローラから独立して処理するよう動作可能である、請求項９に記載のデジタルコントローラシステム。
【請求項１３】
前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項９に記載のデジタルコントローラシステム。
【請求項１４】
前記メモリは、フラッシュメモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）のうちの１つを含む、請求項１３に記載のデジタルコントローラシステム。
【請求項１５】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項９に記載のデジタルコントローラシステム。
【請求項１６】
前記デジタルコントローラシステムはテストモードで動作しているかどうかを示すテストモード信号をさらに含む、請求項９に記載のデジタルコントローラシステム。
【請求項１７】
デジタルコントローラシステム内で実現されるよう構成されるコマンドデコーダであって、前記デジタルコントローラシステムはメモリとインターフェース接続しており、前記コマンドデコーダは、
拡張されたコマンドを含む第１の複数のコマンドのうちの１つ以上をデコードするよう動作可能であるコマンドデコーディング状態マシンと、
マイクロコントローラによってアクセス可能であり、前記拡張されたコマンドに関連付けられるオペコードを記憶するための複数のレジスタとを含み、
前記コマンドデコーダは、前記コマンドデコーディング状態マシンが前記拡張されたコマンドをデコードする際に前記マイクロコントローラを立上げるよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記オペコードを前記マイクロコントローラに知らせるコマンドである、コマンドデコーダ。
【請求項１８】
前記第１の複数のコマンドおよび前記拡張されたコマンドは、前記コマンドデコーダの作製時には前記コマンドデコーディング状態マシンの中にハードワイヤされる、請求項１７に記載のコマンドデコーダ。
【請求項１９】
前記コマンドデコーディング状態マシンは、読取コマンド、書込コマンド、コピーコマンド、または消去コマンドを前記メモリ上で前記マイクロコントローラから独立して処理するよう動作可能である、請求項１７に記載のコマンドデコーダ。
【請求項２０】
前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーダは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全に処理されるのに１クロックサイクルよりも多くを必要とするコマンドである、請求項１７に記載のコマンドデコーダ。
【請求項２１】
前記マイクロコントローラの処理が割込まれると、前記マイクロコントローラに関連付けられる状態情報を記憶するための１つ以上の中断レジスタをさらに含む、請求項１７に記載のコマンドデコーダ。
【請求項２２】
第１のクロックドメインから、前記第１のクロックドメインとは異なる第２のクロックドメインに、前記コマンドデコーダによって受取られるコマンドを同期するよう動作可能である同期論理をさらに含む、請求項２１に記載のコマンドデコーダ。
【国際調査報告】
2009528633.tif 000007