JP2009528633A - マイクロコントローラベースのフラッシュメモリデジタルコントローラのためのファームウェアで拡張可能なコマンド - Google Patents
マイクロコントローラベースのフラッシュメモリデジタルコントローラのためのファームウェアで拡張可能なコマンド Download PDFInfo
- Publication number
- JP2009528633A JP2009528633A JP2008557418A JP2008557418A JP2009528633A JP 2009528633 A JP2009528633 A JP 2009528633A JP 2008557418 A JP2008557418 A JP 2008557418A JP 2008557418 A JP2008557418 A JP 2008557418A JP 2009528633 A JP2009528633 A JP 2009528633A
- Authority
- JP
- Japan
- Prior art keywords
- command
- microcontroller
- commands
- state machine
- digital controller
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
Abstract
メモリコントローラのコマンドセットを拡張するためのシステムおよび方法が提供される。一実現例では、当該方法は、コマンドデコーディング状態マシンを通じて第1の複数のコマンドをデコードするステップと、コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含む。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
Description
発明の分野
この発明は、一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。
この発明は、一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。
発明の背景
メモリシステムおよびメモリ装置(たとえば、デジタルフラッシュメモリ装置)は典型的には、メモリ(たとえば不揮発性フラッシュメモリ)へのデジタル情報の記憶およびそこからのデジタル情報の抽出のためのデジタルコントローラを含む。デジタルフラッシュメモリ装置のような従来のメモリ装置では、このデジタルフラッシュメモリ装置がサポートするコマンドシーケンス(たとえば、読取、書込、コピー、消去など)の多くは通常、デジタルフラッシュメモリ装置が特定され、設計されるときには、既知である。結果として、コマンドシーケンスは典型的にはハードウェアに設定(固定)される(たとえば、コマンドシーケンスは状態マシン内にハードワイヤされるかまたは読取専用メモリ(ROM)に固定される)。したがって、コマンドシーケンスは一般的には、デジタルフラッシュメモリ装置が作製された後では修正され得ない。このようなハードワイヤされた状態マシンでは典型的には、予め定められたシーケンスに対してなされる如何なる変更についても記録することが必要とされ、これは、新しいデジタルフラッシュメモリ装置が作製され、テストされるのを必要とする高価で時間を消費する処理である。
メモリシステムおよびメモリ装置(たとえば、デジタルフラッシュメモリ装置)は典型的には、メモリ(たとえば不揮発性フラッシュメモリ)へのデジタル情報の記憶およびそこからのデジタル情報の抽出のためのデジタルコントローラを含む。デジタルフラッシュメモリ装置のような従来のメモリ装置では、このデジタルフラッシュメモリ装置がサポートするコマンドシーケンス(たとえば、読取、書込、コピー、消去など)の多くは通常、デジタルフラッシュメモリ装置が特定され、設計されるときには、既知である。結果として、コマンドシーケンスは典型的にはハードウェアに設定(固定)される(たとえば、コマンドシーケンスは状態マシン内にハードワイヤされるかまたは読取専用メモリ(ROM)に固定される)。したがって、コマンドシーケンスは一般的には、デジタルフラッシュメモリ装置が作製された後では修正され得ない。このようなハードワイヤされた状態マシンでは典型的には、予め定められたシーケンスに対してなされる如何なる変更についても記録することが必要とされ、これは、新しいデジタルフラッシュメモリ装置が作製され、テストされるのを必要とする高価で時間を消費する処理である。
したがって、必要とされるのは、状態マシンを含む従来のメモリ装置によって実行(または処理)される利用可能なコマンドの数を拡張するためのシステムおよび方法であり、当該拡張されたコマンド(処理時)は、状態マシンが再コード化されることを必要としない。この発明はこのような必要性に応える。
発明の概要
一般的に、この明細書は、コマンドデコーディング状態マシンとマイクロコントローラとを含むデジタルコントローラシステムのための動作方法を記載する。当該方法は、コマンドデコーディング状態マシンを通じて第1の複数のコマンドをデコードするステップと、コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含む。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
一般的に、この明細書は、コマンドデコーディング状態マシンとマイクロコントローラとを含むデジタルコントローラシステムのための動作方法を記載する。当該方法は、コマンドデコーディング状態マシンを通じて第1の複数のコマンドをデコードするステップと、コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含む。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
特定の実現例は以下の特徴の1つ以上を含み得る。マイクロコントローラを立上げ、付加的なコマンドを処理するステップは、マイクロコントローラを立上げ、拡張されたコマンドに関連付けられるオペコードをデコードするステップを含み得る。付加的なコマンドおよび拡張されたコマンドはユーザから受取られ得る。コマンドデコーディング状態マシンは、マイクロコントローラから独立して、コマンドを処理するよう動作可能であり得る。デジタルコントローラシステムはさらに、マイクロコントローラと連携するメモリをさらに含み得る。コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスであり得る。メモリは、フラッシュメモリ、ダ
イナミックRAM(DRAM)、またはスタティックRAM(SRAM)のうちの1つを含み得る。当該方法はさらに、コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、時間決めされたコマンドを処理するステップを含み得る。時間決めされたコマンドは、完全に処理されるのに1クロックサイクルよりも多くを必要とするコマンドであり得る。当該方法はさらに、デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、拡張されたコマンドを用いて、テストモードの間に処理されることになるテストモードコマンドをマイクロコントローラに知らせるステップとを含み得る。
イナミックRAM(DRAM)、またはスタティックRAM(SRAM)のうちの1つを含み得る。当該方法はさらに、コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、マイクロコントローラを立上げ、時間決めされたコマンドを処理するステップを含み得る。時間決めされたコマンドは、完全に処理されるのに1クロックサイクルよりも多くを必要とするコマンドであり得る。当該方法はさらに、デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、拡張されたコマンドを用いて、テストモードの間に処理されることになるテストモードコマンドをマイクロコントローラに知らせるステップとを含み得る。
一般的に、別の局面では、この明細書はデジタルコントローラシステムを記載する。デジタルコントローラシステムは、第1の複数のコマンドをデコードするよう動作可能なコマンドデコーディング状態マシンと、マイクロコントローラとを含む。コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、コマンドデコーディング状態マシンは、マイクロコントローラを立上げ、第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するよう動作可能である。拡張されたコマンドは、処理されることになる付加的なコマンドをマイクロコントローラに知らせるコマンドである。
特定の実現例は以下の特徴の1つ以上を含み得る。デジタルコントローラシステムはさらに、マイクロコントローラによって付加的なコマンドが処理される前に、拡張されたコマンドに関連付けられるオペコードを記憶するよう動作可能であるレジスタをさらに含み得る。デジタルコントローラシステムは、デジタルコントローラシステムがテストモードで動作しているかどうかを示すテストモード信号をさらに含み得る。付加的なコマンドはオペコードを含み得る。デジタルコントローラシステムはさらに、マイクロコントローラによってオペコードが処理される前に、オペコードを記憶するよう動作可能であるレジスタをさらに含み得る。オペコードおよび拡張可能なコマンドはデジタルコントローラシステムによってユーザから受取られ得る。
一般的に、別の局面では、この明細書は、拡張されたコマンドを含む第1の複数のコマンドをデコードするよう動作可能であるコマンドデコーディング状態マシンと、マイクロコントローラによってアクセス可能であり、拡張されたコマンドに関連付けられるオペコードを記憶するための複数のレジスタとを含むコマンドデコーダを記載する。コマンドデコーダは、コマンドデコーディング状態マシンが拡張されたコマンドをデコードする際にマイクロコントローラを立上げるよう動作可能である。拡張されたコマンドは、処理されることになるオペコードをマイクロコントローラに知らせるコマンドである。
特定の実現例は以下の特徴の1つ以上を含み得る。第1の複数のコマンドおよび拡張されたコマンドは、コマンドデコーダの作製時にはコマンドデコーディング状態マシンの中にハードワイヤされ得る。コマンドデコーダは、第1のクロックドメインから、第1のクロックドメインとは異なる第2のクロックドメインに、コマンドデコーダによって受取られるコマンドを同期するよう動作可能である同期論理をさらに含み得る。
実現例は以下の利点の1つ以上を提供し得る。ユーザインターフェイスとして状態マシンを用い、メモリコアに対するプログラミングおよび消去インターフェイスとしてマイクロコントローラ(または、コプロセッサ、マイクロプロセッサ、もしくは他の状態マシン)を用いるという混合型の方策により、プログラムの柔軟性、スピード、および電力の間で折合いがつくことになる。この状態マシンベースのコマンドデコーダは、ユーザコマンドを検知および管理し、(アドレス、データ、オペコード、およびフラグのような)コマンドに関係付けられる情報を管理し、システムクロックを制御し、かつ複雑なコマンド(例えば時間決めされたコマンド)が処理される必要がある際には、マイクロコントローラ
を立上げる手段を提供する。ソフトウェアで拡張可能なコマンドを利用するデジタルコントローラシステムが記載される。一実現例では、拡張されたコマンドは単一の特定のコマンドシーケンスを含む。この単一のコマンドは、コマンドデコーダが別個のオペコードレジスタに記憶する(たとえば8ビットの)オペコードとともに解釈され得る。8ビットのオペコードレジスタを実現することにより、256個までの付加的なユーザコマンドと256個の付加的なテストモードコマンドとがサポートされ得る。ファームウェアを通じてマイクロコントローラを用いるテストモードおよびデバッグ機能は、拡張されたコマンドとデジタルコントローラシステムに関連付けられるテストモードピンとの組み合わせを用いて容易に実現される。テストピンは(一実現例では)顧客に送られる最終のパッケージングされた部品において外に結合されないので、テストモードピンはユーザが誤ってテストモードコマンドを入力するのを防止するよう用いられる。これらテストモードおよびデバッグ機能により、別個のテストコントローラを用いる必要なく、デジタルコントローラは(たとえば製造の間に)テストされることが可能になる。
を立上げる手段を提供する。ソフトウェアで拡張可能なコマンドを利用するデジタルコントローラシステムが記載される。一実現例では、拡張されたコマンドは単一の特定のコマンドシーケンスを含む。この単一のコマンドは、コマンドデコーダが別個のオペコードレジスタに記憶する(たとえば8ビットの)オペコードとともに解釈され得る。8ビットのオペコードレジスタを実現することにより、256個までの付加的なユーザコマンドと256個の付加的なテストモードコマンドとがサポートされ得る。ファームウェアを通じてマイクロコントローラを用いるテストモードおよびデバッグ機能は、拡張されたコマンドとデジタルコントローラシステムに関連付けられるテストモードピンとの組み合わせを用いて容易に実現される。テストピンは(一実現例では)顧客に送られる最終のパッケージングされた部品において外に結合されないので、テストモードピンはユーザが誤ってテストモードコマンドを入力するのを防止するよう用いられる。これらテストモードおよびデバッグ機能により、別個のテストコントローラを用いる必要なく、デジタルコントローラは(たとえば製造の間に)テストされることが可能になる。
さまざまな図面における同様の参照符号は同様の要素を示す。
発明の詳細な説明
この発明は一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。以下の記載は、当業者がこの発明を作製および使用できるよう提供され、特許出願およびその要件の文脈において与えられる。本明細書に記載されるこれらの実現例および包括的な原理ならびに特徴に対するさまざまな修正例は、当業者には容易に明らかとなるであろう。したがって、この発明は、示される実現例に限定されると意図されるのではなく、本明細書に記載される原理および特徴と一致した最も広い範囲に従うと意図される。
この発明は一般的にはデジタルコントローラシステムに関し、より特定的にはマイクロコントローラベースのフラッシュメモリデジタルコントローラシステムに関する。以下の記載は、当業者がこの発明を作製および使用できるよう提供され、特許出願およびその要件の文脈において与えられる。本明細書に記載されるこれらの実現例および包括的な原理ならびに特徴に対するさまざまな修正例は、当業者には容易に明らかとなるであろう。したがって、この発明は、示される実現例に限定されると意図されるのではなく、本明細書に記載される原理および特徴と一致した最も広い範囲に従うと意図される。
図1は、この発明の一実現例に従った、(デジタル)メモリコントローラ102およびメモリ104を含むデジタルコントローラシステム100のブロック図である。メモリ104は、不揮発性フラッシュメモリか、またはたとえばスタティックRAM(SRAM)もしくはダイナミックRAM(DRAM)のような他のメモリであり得る。メモリコントローラ102は、コマンドデコーダ106、マイクロコントローラ108、およびオペコードレジスタ110を含む。
一実現例では、コマンドデコーダ106は、受取ったデータ(たとえばデータ112)に基づき(予め定められた)単純なコマンド(またはコマンドシーケンス)を実行するための状態マシンを含む。例示的な単純なコマンドは、読取、書込、コピー、消去などを含む。したがって、この実現例では、状態マシンが単純なコマンドを実行する際、マイクロコントローラ108は電力を保持するようスリープ状態のままである。一実現例では、コマンドデコーダ106は、ユーザクロック114に従ってユーザからデータ112を受取るためのユーザインターフェイスである。状態マシンを含む従来のメモリコントローラ(またはデジタルコントローラ)とは異なり、メモリコントローラ106はさらにマイクロコントローラ108とオペコードレジスタ110とを含み、これによりメモリコントローラ106が、状態マシンの中にハードワイヤされない付加的なコマンドを処理することが可能になる。マイクロコントローラ(たとえばマイクロコントローラ108)がコマンドデコーダ106に結合されるように示されるが、コプロセッサ、マイクロプロセッサ、または状態マシン(またはマイクロコントローラ、コプロセッサ、マイクロプロセッサ、もしくは状態マシンの任意の組合せ)もここに記載されるマイクロコントローラ108の機能を実行するよう実現され得る。
したがって、一実現例では、コマンドデコーダ106は、メモリコントローラ102を
通じて、処理され得るコマンドの拡張性を与える。デコードされることになるコマンドの多くは通常予め決定され、ハードウェア(たとえばROMまたは状態マシン)内に組込まれるので、ソフトウェアにおいて新しいコマンドを加える能力を有するのが望ましい。一実現例では、1つ以上の拡張されたコマンドの利用を通じて、コマンドデコーダ106によってこのようなコマンドの拡張性が与えられる。ある拡張されたコマンドがコマンドデコーダ106に送られると、(一実現例では)ユーザはさらにオペコードレジスタ110に記憶される対応する(たとえば8ビットの)オペコードを送る。コマンドデコーダ106は次いで、マイクロコントローラ108を立上げ、マイクロコントローラ108に、拡張されたコマンドが存在することを知らせる。マイクロコントローラ108が、拡張されたコマンドをコマンドデコーダ106がデコードしたのを検知すると、マイクロコントローラ108はオペコードレジスタ110に記憶されるオペコードを読取り、当該オペコードを処理(または実行)する。マイクロコントローラ108は、当該オペコードをデコードするように、かつ、たとえばコマンドデコーダ106が設計された時点では想定していなかった命令シーケンスを実行するようにプログラムされ得る。一実現例では、8ビットオペコードは、メモリコントローラ102が作製された後、たとえば状態マシンが設定および固定された後に、256個の付加的なコマンドが加えられ得る可能性を提供する。さらに、一実現例では、メモリコントローラ102が(たとえば)256個までの付加的なテストモードコマンドをサポートするのを可能にするテストモード信号が与えられる。この実現例では、テストモード信号の値は、コマンドデコーダ106がテストモードにあるかどうかを示すよう用いられ得る。より一般的には、オペコードレジスタは、任意のビットサイズのオペコードを記憶するよう構成され得、したがって、256個より多いか、またはそれよりも少ない付加的なコマンド(テストモードコマンドを含む)がサポートされ得る。
通じて、処理され得るコマンドの拡張性を与える。デコードされることになるコマンドの多くは通常予め決定され、ハードウェア(たとえばROMまたは状態マシン)内に組込まれるので、ソフトウェアにおいて新しいコマンドを加える能力を有するのが望ましい。一実現例では、1つ以上の拡張されたコマンドの利用を通じて、コマンドデコーダ106によってこのようなコマンドの拡張性が与えられる。ある拡張されたコマンドがコマンドデコーダ106に送られると、(一実現例では)ユーザはさらにオペコードレジスタ110に記憶される対応する(たとえば8ビットの)オペコードを送る。コマンドデコーダ106は次いで、マイクロコントローラ108を立上げ、マイクロコントローラ108に、拡張されたコマンドが存在することを知らせる。マイクロコントローラ108が、拡張されたコマンドをコマンドデコーダ106がデコードしたのを検知すると、マイクロコントローラ108はオペコードレジスタ110に記憶されるオペコードを読取り、当該オペコードを処理(または実行)する。マイクロコントローラ108は、当該オペコードをデコードするように、かつ、たとえばコマンドデコーダ106が設計された時点では想定していなかった命令シーケンスを実行するようにプログラムされ得る。一実現例では、8ビットオペコードは、メモリコントローラ102が作製された後、たとえば状態マシンが設定および固定された後に、256個の付加的なコマンドが加えられ得る可能性を提供する。さらに、一実現例では、メモリコントローラ102が(たとえば)256個までの付加的なテストモードコマンドをサポートするのを可能にするテストモード信号が与えられる。この実現例では、テストモード信号の値は、コマンドデコーダ106がテストモードにあるかどうかを示すよう用いられ得る。より一般的には、オペコードレジスタは、任意のビットサイズのオペコードを記憶するよう構成され得、したがって、256個より多いか、またはそれよりも少ない付加的なコマンド(テストモードコマンドを含む)がサポートされ得る。
一実現例では、コマンドデコーダ106は以下のタイプのコマンドを検知するよう動作可能である。すなわち、直接的なユーザコマンド、時間決めされたコマンド(拡張されたコマンドを含む)、および中断/再開コマンドである。直接的なユーザコマンドは、マイクロコントローラ108がスリープ状態の間に一般的にコマンドデコーダ106によって処理されるコマンドである。結果として、メモリコントローラ102は、高速かつ高電力効率で、直接的なユーザコマンドを扱うよう動作可能である。時間決めされたコマンドは、1サイクルで実行され得ず、当該コマンドが完全に実行されるには、イベントの連なりの発生が必要となるコマンドである。一実現例では、マイクロコントローラ108が時間決めされたコマンドを処理する。したがって、時間決めされたコマンドを処理するよう、コマンドデコーダ106がマイクロコントローラ108を立上げる。時間決めされたコマンドの例は、メモリ104をプログラミングおよび消去することと、不揮発性ロックビットを設定またはクリアすることと、メモリ104からのページ転送と、さまざまなテストモードとに関連付けられるコマンドおよび拡張されたコマンドを含む。中断コマンドは、現在実行している時間決めされたコマンドに割込むコマンドである。一実現例では、コマンドデコーダ106は、マイクロコントローラ108が時間決めされたコマンドを実行している間、マイクロコントローラ108への割込を生成する。中断コマンドシーケンスは、メモリコントローラ102に関連付けられる割込ハンドラに含まれ得る。再開コマンドは、マイクロコントローラ108が以前に止めたところで、コードの実行を再開し得るようにマイクロコントローラ108を立上げるコマンドである。
図2は、この発明の一実現例に従ったコマンドデコーダ106(図1)のブロック図を示す。図2に示されるように、コマンドデコーダ106は、コマンドデコーディング状態マシン201、中断/再開レジスタ202、マイクロコントローラがアクセス可能なレジスタ203、および同期論理204を含み、それらの機能は、「マイクロコントローラベースのフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ(Command Decoder For Microcontroller Based Flash Memory Digital Controller System)」
という名称を持ち、連続番号が第11/288,753号であり、2005年11月28日に出願され、本願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。さらに同期論理204の機能は、「メモリコントローラにおいて異なるクロックドメイン同士の間でデータを同期するための方法および装置(Method and Apparatus For Synchronizing Data Between Different Clock Domains in a Memory Controller)」という名称を有し、連続番号が第11/206,474号であり、2005年8月17日に出願され、本出願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。
という名称を持ち、連続番号が第11/288,753号であり、2005年11月28日に出願され、本願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。さらに同期論理204の機能は、「メモリコントローラにおいて異なるクロックドメイン同士の間でデータを同期するための方法および装置(Method and Apparatus For Synchronizing Data Between Different Clock Domains in a Memory Controller)」という名称を有し、連続番号が第11/206,474号であり、2005年8月17日に出願され、本出願の譲渡人に譲渡されるとともに、ここに引用により援用される同時係属中の米国特許出願においてさらに詳細に記載される。
一般的には、コマンドデコーディング状態マシン201はユーザコマンドをデコードし、2つの異なるクロックドメイン、すなわち(非同期)ユーザクロック(たとえばユーザクロック114)と、メモリコントローラ102に関連付けられる(同期)デジタルクロックとに従って動作する。ユーザクロックは、ユーザのアクセスシーケンスによって決定されるスピード(または周波数)で実行される。メモリコントローラ102に関連付けられるデジタルクロックは典型的には、ユーザクロックに対して低スピード(または周波数)で実行される。これら2つのクロックドメインにより、メモリコントローラ102は、ユーザにサイクルベースのマイクロコントローラ108からの信号を待たせる必要なく、ユーザが望むスピードでコマンドを受取ることが可能になる。コマンドが中断され、その後、復元される際に、中断/再開レジスタ202は状態情報を記憶する。マイクロコントローラがアクセス可能なレジスタ203は、マイクロコントローラ108(図1)がアクセス可能な複数のレジスタを含む。一実現例では、マイクロコントローラがアクセス可能なレジスタ203は、マイクロコントローラ108が処理することになるオペコードを記憶するためのオペコードレジスタ(たとえば図1のオペコードレジスタ110)を含む。同期論理204はドメイン同士を同期させ、確定的かつ順序だった態様で、ユーザドメインからメモリコントローラドメインへと信号が横断するのを保証する。一実現例では、同期論理204はさらに、たとえば時間決めされたコマンドを処理するようマイクロコントローラ108を立上げる立上げ信号を同期させる。
図3は、この発明の一実現例に従った、デジタルコントローラシステム(たとえば、図1のデジタルコントローラシステム100)の動作の方法300を示す。あるコマンドが、コマンドデコーダ(たとえばコマンドデコーダ106)によって受取られる(ステップ302)。一実現例では、このコマンドは、テストモードコマンド、時間決めされたコマンド、中断/再開コマンド、または直接的なユーザコマンドであり得る。このコマンドがテストモードコマンドであるかどうかについて判定が行なわれる(ステップ304)。このコマンドがテストモードコマンドならば、当該テストモードコマンドはコマンドデコーダによって実行される(ステップ306)。一実現例では、テストモードによって、テストモードコマンドがデコードされる際に、必要なテストモード信号への直接的なアクセスが可能になる。一実現例では、テストモードにより、たとえばマイクロコントローラ108に関連付けられるアドレスおよびデータバス上のRAM、ROM、レジスタへの直接的なアクセスが可能になる。一実現例では、テストモードは、競合を防ぐよう、マイクロコントローラ108がスリープ状態の際にのみアクセスされ得る。
コマンドが(ステップ308において)時間決めされたコマンドであると判断される場合、デジタルコントローラシステムに関連付けられるマイクロコントローラ(たとえばマイクロコントローラ108)が立上げられる(ステップ310)。次いで、マイクロコントローラは当該時間決めされたコマンドを実行(または処理)する(ステップ312)。上述したように、時間決めされたコマンドは拡張されたコマンドを含む。一実現例では、ユーザがある拡張されたコマンドを送ると、当該ユーザはさらにオペコードレジスタ(たとえば、オペコードレジスタ110)に記憶される(たとえば8ビットの)オペコードを
送る。コマンドデコーダはマイクロコントローラを立上げ、次いで、マイクロコントローラはオペコードレジスタに記憶されるオペコードを実行する。
送る。コマンドデコーダはマイクロコントローラを立上げ、次いで、マイクロコントローラはオペコードレジスタに記憶されるオペコードを実行する。
コマンドが(ステップ314において)中断または再開コマンドであると判定されると、マイクロコントローラはそれぞれ割込まれるか、または立上げられる(ステップ316)。したがって、コマンドが中断コマンドならば、マイクロコントローラのコマンド実行は中断される(ステップ318)。同様の態様で、コマンドが再開コマンドならば、マイクロコントローラは立上げられ、コマンド実行を再開する(ステップ318)。コマンドが直接的なユーザコマンドならば、コマンドはコマンドデコーダによって実行される(ステップ320)。
図4は、この発明の一実現例に従った、図1のデジタルコントローラシステム100を通じて処理され得るテストモードコマンドおよび拡張されたコマンドを含むテーブル400を示す。テーブル400は、拡張されたコマンドコードを用いるテストモードコマンドシーケンス(すなわちテストモードコマンド)と、さらに、拡張されたコマンドコードを用いないテストモードコマンドシーケンスとの例を示す。テーブル400から、いくつかのテストモードコマンドシーケンスは、第3のバスサイクル上の拡張されたコマンドコード値にIOを設定することを伴うということがわかり得る。マイクロコントローラ108(図1)は、拡張されたコマンドが受取られたことをCMDCODEレジスタ(図示せず)が示すのを検知すると、アドレスおよびデータレジスタとともに、オペコードレジスタ110(図1)からコードを読出し、すべきことを決定する。オペコードレジスタ110に記憶されるコードは、第3のバスサイクルの間、アドレス上において、ユーザ(たとえばテストモードコマンドの場合はテストエンジニア)によって与えられ得る。たとえば、テスト目的のための拡張されたコマンドを用いる、テーブル400における第1のコマンドは「トリムデフォルトをロードせよ(Load Trim Defaults)」というコマンドである。第3のバスサイクル上において、拡張されたコマンドを示すようECがIO上でドライブされ、アドレスバス上にオペコード0x01が与えられるということが分かる。
拡張されたコマンドを用いるテストモードコマンドの場合、一実現例では、オペコード、アドレス、およびデータに基づくコマンドの実行はマイクロコントローラ108によって取扱われる。一実現例では、それらに関連付けられる特定のコマンド、たとえば「AVRレジスタ読取モードに入れ(Enter AVR Register Read Mode)」または「データSRAM読取モードに入れ(Enter Data SRAM Read Mode)」といったようなもの、を有するテストモードの場合、コマンドデコーダ106は、さまざまなマルチプレクサ(図示せず)を制御する内部フラグを設定し、これによりユーザがレジスタまたはRAMへの直接アクセスを有するのが可能になる。さらに、レジスタへの書込またはSRAMもしくはROMに対する読取および書込の際のような、クロックが必要とされる場合には、クロックパルス生成回路(図示せず)が用いられ、アドレスバス上でのアドレス変更を検知することにより、クロックを作り出す。
この発明は、デジタルコントローラシステムのコマンドセットを拡張するためのシステムおよび方法を提供する。この発明は、示された実現例に基づき記載され、当業者ならば、これら実現例に対する変形例が存在し得るということを容易に認識するであろう。如何なる変形例もこの発明の範囲内である。たとえば、上で論じた方法は、異なる順番で実行され得、それでも望ましい結果を達成する。さらに、オペコードレジスタ110は、任意のビットサイズのオペコードを記憶するよう構成され得る。したがって、特許請求の範囲から逸脱することがなければ、当業者によって多くの修正例がなされ得る。
Claims (22)
- コマンドデコーディング状態マシンとマイクロコントローラとを含むデジタルコントローラシステムのための動作方法であって、
前記コマンドデコーディング状態マシンを通じて第1の複数のコマンドをデコードするステップと、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するステップとを含み、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、方法。 - 前記マイクロコントローラを立上げ、前記付加的なコマンドを処理するステップは、前記マイクロコントローラを立上げ、前記拡張されたコマンドに関連付けられるオペコードをデコードするステップを含む、請求項1に記載の方法。
- 前記付加的なコマンドおよび前記拡張されたコマンドはユーザから受取られる、請求項2に記載の方法。
- 前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立して、コマンドを処理するよう動作可能である、請求項1に記載の方法。
- 前記デジタルコントローラシステムはさらに、前記マイクロコントローラにインターフェイス接続するメモリをさらに含み、前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項1に記載の方法。
- 前記メモリは、フラッシュメモリ、ダイナミックRAM(DRAM)、またはスタティックRAM(SRAM)のうちの1つを含む、請求項5に記載の方法。
- 前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するステップをさらに含み、前記時間決めされたコマンドは、完全に処理されるのに1クロックサイクルよりも多くを必要とするコマンドである、請求項1に記載の方法。
- 前記デジタルコントローラシステムがテストモードで動作していることを示すものを受取るステップと、
前記拡張されたコマンドを用いて、前記テストモードの間に処理されることになるテストモードコマンドを前記マイクロコントローラに知らせるステップとをさらに含む、請求項1に記載の方法。 - 第1の複数のコマンドをデコードするよう動作可能なコマンドデコーディング状態マシンと、
マイクロコントローラとを含み、
前記コマンドデコーディング状態マシンが拡張されたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記第1の複数のコマンドの中のコマンド以外の付加的なコマンドを処理するよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記付加的なコマンドを前記マイクロコントローラに知らせるコマンドである、デジタルコントローラシステム。 - 前記付加的なコマンドはオペコードを含み、前記デジタルコントローラシステムはさらに、前記マイクロコントローラによって前記オペコードが処理される前に、前記オペコードを記憶するよう動作可能であるレジスタをさらに含む、請求項9に記載のデジタルコントローラシステム。
- 前記オペコードおよび前記拡張可能なコマンドは前記デジタルコントローラシステムによってユーザから受取られる、請求項10に記載のデジタルコントローラシステム。
- 前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立してコマンドを処理するよう動作可能である、請求項9に記載のデジタルコントローラシステム。
- 前記デジタルコントローラシステムはさらに、前記マイクロコントローラにインターフェイス接続するメモリをさらに含み、前記コマンドデコーディング状態マシンは、ユーザコマンドおよびユーザデータを受取るためのユーザインターフェイスである、請求項9に記載のデジタルコントローラシステム。
- 前記メモリは、フラッシュメモリ、ダイナミックRAM(DRAM)、またはスタティックRAM(SRAM)のうちの1つを含む、請求項13に記載のデジタルコントローラシステム。
- 前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーディング状態マシンは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全に処理されるのに1クロックサイクルよりも多くを必要とするコマンドである、請求項9に記載のデジタルコントローラシステム。
- 前記デジタルコントローラシステムはテストモードで動作しているかどうかを示すテストモード信号をさらに含む、請求項9に記載のデジタルコントローラシステム。
- コマンドデコーダであって、
拡張されたコマンドを含む第1の複数のコマンドをデコードするよう動作可能であるコマンドデコーディング状態マシンと、
マイクロコントローラによってアクセス可能であり、前記拡張されたコマンドに関連付けられるオペコードを記憶するための複数のレジスタとを含み、
前記コマンドデコーダは、前記コマンドデコーディング状態マシンが前記拡張されたコマンドをデコードする際に前記マイクロコントローラを立上げるよう動作可能であり、前記拡張されたコマンドは、処理されることになる前記オペコードを前記マイクロコントローラに知らせるコマンドである、コマンドデコーダ。 - 前記第1の複数のコマンドおよび前記拡張されたコマンドは、前記コマンドデコーダの作製時には前記コマンドデコーディング状態マシンの中にハードワイヤされる、請求項17に記載のコマンドデコーダ。
- 前記コマンドデコーディング状態マシンは、前記マイクロコントローラから独立して、コマンドを処理するよう動作可能である、請求項17に記載のコマンドデコーダ。
- 前記コマンドデコーディング状態マシンが時間決めされたコマンドをデコードすることに応答して、前記コマンドデコーダは、前記マイクロコントローラを立上げ、前記時間決めされたコマンドを処理するよう動作可能であり、前記時間決めされたコマンドは、完全
に処理されるのに1クロックサイクルよりも多くを必要とするコマンドである、請求項17に記載のコマンドデコーダ。 - 前記マイクロコントローラの処理が割込まれると、前記マイクロコントローラに関連付けられる状態情報を記憶するための1つ以上の中断レジスタをさらに含む、請求項17に記載のコマンドデコーダ。
- 第1のクロックドメインから、前記第1のクロックドメインとは異なる第2のクロックドメインに、前記コマンドデコーダによって受取られるコマンドを同期するよう動作可能である同期論理をさらに含む、請求項21に記載のコマンドデコーダ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/366,919 US7702885B2 (en) | 2006-03-02 | 2006-03-02 | Firmware extendable commands including a test mode command for a microcontroller-based flash memory controller |
PCT/US2007/005448 WO2007103219A2 (en) | 2006-03-02 | 2007-03-02 | Firmware extendable commands for a microcontroller based flash memory digital controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009528633A true JP2009528633A (ja) | 2009-08-06 |
Family
ID=38475430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008557418A Withdrawn JP2009528633A (ja) | 2006-03-02 | 2007-03-02 | マイクロコントローラベースのフラッシュメモリデジタルコントローラのためのファームウェアで拡張可能なコマンド |
Country Status (6)
Country | Link |
---|---|
US (1) | US7702885B2 (ja) |
EP (1) | EP1999593A4 (ja) |
JP (1) | JP2009528633A (ja) |
KR (1) | KR20080104177A (ja) |
CN (1) | CN101395585A (ja) |
WO (1) | WO2007103219A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013025792A (ja) * | 2011-07-14 | 2013-02-04 | Lsi Corp | フレキシブルフラッシュコマンド |
US12062412B2 (en) | 2021-07-21 | 2024-08-13 | Kioxia Corporation | Semiconductor memory device |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101979732B1 (ko) * | 2012-05-04 | 2019-08-28 | 삼성전자 주식회사 | 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템 |
US20140297922A1 (en) * | 2013-03-29 | 2014-10-02 | Nitin V. Sarangdhar | Method and apparatus for managing serial peripheral interface (spi) flash |
US9440086B2 (en) | 2013-09-11 | 2016-09-13 | Medtronic, Inc. | Optimized flash memory device for miniaturized devices |
US10948970B2 (en) * | 2018-03-30 | 2021-03-16 | Dialog Semiconductor B.V. | Low power microcontroller |
CN112925728B (zh) * | 2019-05-05 | 2024-09-06 | 长江存储科技有限责任公司 | 具有序列处理单元的存储器控制系统 |
US11775457B1 (en) * | 2021-02-23 | 2023-10-03 | Xilinx, Inc. | Command pattern sequencer for memory calibration |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0565736B1 (en) * | 1991-10-31 | 1998-06-17 | Sony Corporation | Tape cassette |
US5752066A (en) * | 1992-01-06 | 1998-05-12 | International Business Machines Corporation | Data processing system utilizing progammable microprogram memory controller |
US5353420A (en) * | 1992-08-10 | 1994-10-04 | Intel Corporation | Method and apparatus for decoding conditional jump instructions in a single clock in a computer processor |
US5848247A (en) * | 1994-09-13 | 1998-12-08 | Hitachi, Ltd. | Microprocessor having PC card interface |
JPH08137763A (ja) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | フラッシュメモリ制御装置 |
US5828868A (en) * | 1996-11-13 | 1998-10-27 | Intel Corporation | Processor having execution core sections operating at different clock rates |
US5838692A (en) * | 1996-11-14 | 1998-11-17 | Hewlett-Packard Company | System and method for extracting realtime debug signals from an integrated circuit |
US6154788A (en) * | 1997-04-25 | 2000-11-28 | Simple Technology, Inc. | Multi-function module incorporating flash memory having additional controller adapted to configure the data from the memory that is to be provided to the external source |
US6009496A (en) * | 1997-10-30 | 1999-12-28 | Winbond Electronics Corp. | Microcontroller with programmable embedded flash memory |
US6308255B1 (en) * | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
JP2000194551A (ja) * | 1998-12-28 | 2000-07-14 | Oki Micro Design Co Ltd | フラッシュメモリ書換え回路 |
US6654848B1 (en) * | 2000-09-15 | 2003-11-25 | Advanced Micro Devices, Inc. | Simultaneous execution command modes in a flash memory device |
US7444575B2 (en) * | 2000-09-21 | 2008-10-28 | Inapac Technology, Inc. | Architecture and method for testing of an integrated circuit device |
US6678437B2 (en) * | 2001-03-30 | 2004-01-13 | Analog Devices, Inc. | Method of and architecture for optically switching light communication signals in fiber optic networks and the like |
DE10121935A1 (de) * | 2001-05-05 | 2002-11-07 | Philips Corp Intellectual Pty | Rücksetz-Anordnung für einen Mikrokontroller |
US6754765B1 (en) * | 2001-05-14 | 2004-06-22 | Integrated Memory Logic, Inc. | Flash memory controller with updateable microcode |
US6778436B2 (en) * | 2001-10-10 | 2004-08-17 | Fong Piau | Apparatus and architecture for a compact flash memory controller |
US6859856B2 (en) * | 2001-10-23 | 2005-02-22 | Flex P Industries Sdn. Bhd | Method and system for a compact flash memory controller |
US20040049627A1 (en) * | 2001-11-09 | 2004-03-11 | Flex-P Industries | Method and system for controlling compact flash memory |
US6772276B2 (en) | 2002-01-04 | 2004-08-03 | Intel Corporation | Flash memory command abstraction |
KR100441608B1 (ko) | 2002-05-31 | 2004-07-23 | 삼성전자주식회사 | 낸드 플래시 메모리 인터페이스 장치 |
KR100499686B1 (ko) * | 2002-07-23 | 2005-07-07 | 주식회사 디지털웨이 | 메모리 확장 가능한 휴대용 플래쉬 메모리 장치 |
EP1408405A1 (en) | 2002-10-11 | 2004-04-14 | STMicroelectronics S.r.l. | "A reconfigurable control structure for CPUs and method of operating same" |
US20050210179A1 (en) * | 2002-12-02 | 2005-09-22 | Walmsley Simon R | Integrated circuit having random clock or random delay |
ITRM20030354A1 (it) * | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
US7360130B2 (en) * | 2004-05-24 | 2008-04-15 | Jed Margolin | Memory with integrated programmable controller |
JP3938580B2 (ja) * | 2004-12-21 | 2007-06-27 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム |
-
2006
- 2006-03-02 US US11/366,919 patent/US7702885B2/en active Active
-
2007
- 2007-03-02 CN CNA2007800075063A patent/CN101395585A/zh active Pending
- 2007-03-02 KR KR1020087024311A patent/KR20080104177A/ko not_active Application Discontinuation
- 2007-03-02 EP EP07752166A patent/EP1999593A4/en not_active Withdrawn
- 2007-03-02 JP JP2008557418A patent/JP2009528633A/ja not_active Withdrawn
- 2007-03-02 WO PCT/US2007/005448 patent/WO2007103219A2/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013025792A (ja) * | 2011-07-14 | 2013-02-04 | Lsi Corp | フレキシブルフラッシュコマンド |
US12062412B2 (en) | 2021-07-21 | 2024-08-13 | Kioxia Corporation | Semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
EP1999593A4 (en) | 2009-07-01 |
WO2007103219A2 (en) | 2007-09-13 |
CN101395585A (zh) | 2009-03-25 |
WO2007103219A3 (en) | 2008-07-17 |
US7702885B2 (en) | 2010-04-20 |
KR20080104177A (ko) | 2008-12-01 |
EP1999593A2 (en) | 2008-12-10 |
US20070226476A1 (en) | 2007-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009528633A (ja) | マイクロコントローラベースのフラッシュメモリデジタルコントローラのためのファームウェアで拡張可能なコマンド | |
TWI338835B (en) | Method and apparatus for controlling a data processing system during debug | |
JP2002041489A (ja) | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 | |
KR20080068940A (ko) | 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더 | |
KR20080085914A (ko) | Mmc/sd 기기로부터 호스트 기기를 부팅시키는 방법, mmc/sd 기기로부터 부팅 가능한 호스트 기기 및 호스트 기기가 부팅되는 mmc/sd 기기 방법 | |
KR20080077657A (ko) | 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템 | |
US20070041264A1 (en) | Method and apparatus for synchronizing data between different clock domains in a memory controller | |
US20140149732A1 (en) | System and method for initializing processor cores in a multiprocessor system | |
JP2022501710A (ja) | メモリタイミングパラメータの動的構成 | |
JP2009158032A (ja) | 半導体記憶装置 | |
TW200923784A (en) | Electronic device and method for resuming from suspend-to-ram state thereof | |
JP2006079345A (ja) | マイクロコンピュータ | |
JP2007299227A (ja) | 情報処理装置及び情報処理装置のブート方法 | |
CN113010236B (zh) | 一种程序执行方法、装置、设备及存储介质 | |
EP0359232A2 (en) | Computer system and method for setting recovery time | |
JP2006126938A (ja) | データ転送システム及びそのデータ転送方法 | |
JP2904172B2 (ja) | 論理回路シミュレータ | |
US5301307A (en) | Microprocessor having waiting function | |
JP2004343158A (ja) | コンフィグレーション装置、方法及びプログラム | |
US8443180B2 (en) | Method for operation system startup | |
US6076170A (en) | Method and apparatus for selectively programming access time in a data processor | |
JP2004516545A (ja) | プロセッサのリセット後の命令のロード | |
JP2004185060A (ja) | マイクロコンピュータ | |
JP2007213415A (ja) | メモリ装置 | |
JP3366235B2 (ja) | データ読み出し制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090427 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100511 |