JP2009517741A - マイクロコントローラによるフラッシュメモリデジタルコントローラシステム - Google Patents

マイクロコントローラによるフラッシュメモリデジタルコントローラシステム Download PDF

Info

Publication number
JP2009517741A
JP2009517741A JP2008542476A JP2008542476A JP2009517741A JP 2009517741 A JP2009517741 A JP 2009517741A JP 2008542476 A JP2008542476 A JP 2008542476A JP 2008542476 A JP2008542476 A JP 2008542476A JP 2009517741 A JP2009517741 A JP 2009517741A
Authority
JP
Japan
Prior art keywords
command
microcontroller
module
flash memory
memory
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
Application number
JP2008542476A
Other languages
English (en)
Inventor
コーエン,ダニエル・スコット
ウィッチ,マシュー・トッド
ジオメック,ジェイソン・ジョセフ
ブラカモンテス,ロチェンド
ルー,シュード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of JP2009517741A publication Critical patent/JP2009517741A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

タイムドイベンツに対処するためのマイクロコントローラと、ユーザコマンドを解釈するためのコマンドデコーダと、フラッシュメモリのバースト読み取りに対処するための個別バーストコントローラと、前記フラッシュメモリへのページ書き込みに対処するためのプログラムバッファと、フラッシュコアから前記プログラムバッファへのデータ転送、ならびに前記プログラムバッファから前記フラッシュメモリへのページ書き込みのためのアドレス制御に対処するためのページ転送コントローラと、メモリ管理およびメモリ試験モード信号を格納および調整するためのメモリ管理レジスタブロックと、前記フラッシュメモリ内へアドレスを多重化し、プログラム、消去、および復旧検証を加速するためのメモリプレーンインターフェースと、システムからデータを多重化するためのI/O Muxモジュールと、試験およびデバッグで使用するために前記マイクロコントローラによって読み取りおよび書き込みすることができる汎用I/Oポート(GPIO)と、を含むデジタル制御システム。

Description

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

Claims (36)

  1. マイクロコントローラであって、システムによって受け取られるコマンドが時限コマンドを必要とすると解除されるマイクロコントローラと、
    前記コマンドを処理するための、前記マイクロコントローラに結合されるハードウェアアクセラレータとを備える、デジタルコントローラシステム。
  2. 前記マイクロコントローラは前記時限コマンドに対処する、請求項1に記載のシステム。
  3. ユーザコマンドを検出および管理するためのコマンドデコーダをさらに備え、前記コマンドデコーダは、前記マイクロコントローラとは無関係にユーザコマンドを管理する、請求項1に記載のシステム。
  4. 前記コマンドデコーダは非時限コマンドに対処する、請求項3に記載のシステム。
  5. 前記時限コマンドは、単一周期で実行することができないコマンドを備え、前記時限コマンドが完全に実行されるために一連のイベントが起こることを必要とする、請求項1に記載のシステム。
  6. 前記ハードウェアアクセラレータは、
    バースト読み取りコマンドを解釈するためのバースト読み取りモジュールを備える、請求項1に記載のシステム。
  7. 前記バースト読み取りモジュールは、フラッシュメモリに対応するための複数のカウンタを備え、バースト読み取り機能用のハードウェア加速を提供する働きをする、請求項6に記載のシステム。
  8. 前記バースト読み取りモジュールは、開始アドレスのラッチとデータ有効シグナルの提起との間の初期待ち時間を制御することによって、バースト読み取りデータの初期アクセス時間を制御する、請求項6に記載のシステム。
  9. 前記バースト読み取りモジュールは、停止/ビジー信号を見て、停止前にアドレスカウンタに現在のデータのカウントを終わらせることによって、バーストアドレスがフラッシュメモリ内のビジープレーンに進入することを防ぐ、請求項6に記載のシステム。
  10. 前記ハードウェアアクセラレータは、ページ転送機能のハードウェア加速を提供するためのページ転送モジュールを備える、請求項1に記載のシステム。
  11. 前記ページ転送モジュールは、
    フラッシュメモリおよびプログラムバッファモジュールに対応するためのカウンタと、
    「終了」信号であって、ポーリングされてページ転送が完了した時を決定する「終了」信号とを備える、請求項10に記載のシステム。
  12. 前記ハードウェアアクセラレータは、
    新規パターンをメモリにプログラムするためのプログラムOK機能と、
    ワードを消去するための消去OK機能と、
    ビットの過消去を管理するための復旧しない機能とを備える、請求項1に記載のシステム。
  13. フラッシュメモリにプログラムするためのページバッファとして働くメモリを備えるプログラムバッファモジュールをさらに備える、請求項1に記載のシステム。
  14. 異なるソースからフラッシュメモリモジュールへのアドレスバスの多重化に対処するためのメモリプレーンインターフェースをさらに備える、請求項1に記載のシステム。
  15. フラッシュメモリおよびそのアナログ支援要素上の様々なトリム設定を制御するためのレジスタモジュールをさらに備える、請求項1に記載のシステム。
  16. 前記レジスタモジュールは、値がファームウェア初期設定ルーチン中に読み込まれる複数のレジスタを備える、請求項13に記載のシステム。
  17. 前記複数のレジスタは、
    プログラミングまたは消去エラーが発生する時を設定するためのエラービット、消去コマンドが一時停止されたかどうかを示すための一時停止状態レジスタ、または、休止状態の電源が発生したことを示すためのPOR_initレジスタを備える、請求項16に記載のシステム。
  18. 前記システムからデータを多重化するための入力/出力多重化モジュールをさらに備える、請求項1に記載のシステム。
  19. 前記入力/出力多重化モジュールは、汎用入力/出力を備える、請求項18に記載のシステム。
  20. 前記マイクロコントローラは、前記システムのために特注設計されていない、請求項1に記載のシステム。
  21. マイクロコントローラであって、システムによって受け取られるコマンドが時限コマンドを必要とする場合に解除されるマイクロコントローラと、
    前記コマンドが前記時限コマンドを必要としない場合に、0コマンドを処理するための、前記マイクロコントローラに結合されるハードウェアアクセラレータと、
    ユーザコマンドを検出および管理し、前記コマンドが前記時限コマンドを必要とする時に前記マイクロコントローラを解除するための、前記マイクロコントローラに結合されるコマンドデコーダとを含み、前記マイクロコントローラは前記時限コマンドに対処し、前記コマンドデコーダは非時限コマンドに対処し、前記コマンドデコーダは、前記マイクロコントローラとは無関係にユーザコントローラを管理する、デジタルコントローラシステム。
  22. 前記時限コマンドは、単一周期で実行することができないコマンドを備え、前記時限コマンドが完全に実行されるために一連のイベントが起こることを必要とする、請求項21に記載のシステム。
  23. 前記ハードウェアアクセラレータは、バースト読み取りコマンドを解釈するためのバースト読み取りモジュールを備える、請求項23に記載のシステム。
  24. 前記バースト読み取りモジュールは、フラッシュメモリに対応するための複数のカウンタを備え、バースト読み取り機能用のハードウェア加速を提供する働きをする、請求項23に記載のシステム。
  25. 前記バースト読み取りモジュールは、開始アドレスのラッチとデータ有効シグナルの提
    起との間の初期待ち時間を制御することによって、バースト読み取りデータの初期アクセス時間を制御する、請求項23に記載のシステム。
  26. 前記バースト読み取りモジュールは、停止/ビジー信号を見て、停止前にアドレスカウンタに現在のデータのカウントを終わらせることによって、バーストアドレスがフラッシュメモリ内のビジープレーンに進入することを防ぐ、請求項23に記載のシステム。
  27. 前記ハードウェアアクセラレータは、ページ転送機能の加速を提供するためのページ転送モジュールを備える、請求項21に記載のシステム。
  28. 前記ページ転送モジュールは、
    フラッシュメモリおよびプログラムバッファモジュールに対応するためのカウンタと、
    「終了」信号であって、ポーリングされてページ転送が完了した時を決定する「終了」信号とを備える、請求項27に記載のシステム。
  29. 前記ハードウェアアクセラレータは、
    新規パターンをメモリにプログラムするためのプログラムOK機能と、
    ワードを消去するための消去OK機能と、
    ビットの過消去を管理するための復旧しない機能とを備える、請求項21に記載のシステム。
  30. フラッシュメモリにプログラムするためのページバッファとして働くメモリを備えるプログラムバッファモジュールをさらに備える、請求項21に記載のシステム。
  31. 異なるソースからフラッシュメモリモジュールへのアドレスバスの多重化に対処するためのメモリプレーンインターフェースをさらに備える、請求項21に記載のシステム。
  32. フラッシュメモリおよびそのアナログ支援要素上の様々なトリム設定を制御するためのレジスタモジュールをさらに備える、請求項21に記載のシステム。
  33. 前記レジスタモジュールは、値がファームウェア初期設定ルーチン中に読み込まれる複数のレジスタを備える、請求項32に記載のシステム。
  34. 前記複数のレジスタは、
    プログラミングまたは消去エラーが発生する時を設定するためのエラービット、消去コマンドが一時停止されたかどうかを示すための一時停止状態レジスタ、または、休止状態の電源が発生したことを示すためのPOR_initレジスタを備える、請求項33に記載のシステム。
  35. 前記システムからデータを多重化するための入力/出力多重化モジュールをさらに備える、請求項21に記載のシステム。
  36. 前記入力/出力多重化モジュールは、汎用入力/出力を備える、請求項35に記載のシステム。
JP2008542476A 2005-11-28 2006-11-28 マイクロコントローラによるフラッシュメモリデジタルコントローラシステム Withdrawn JP2009517741A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/288,509 US7600090B2 (en) 2005-11-28 2005-11-28 Microcontroller based flash memory digital controller system
PCT/US2006/045564 WO2007062256A2 (en) 2005-11-28 2006-11-28 Microcontroller based flash memory digital controller system

Publications (1)

Publication Number Publication Date
JP2009517741A true JP2009517741A (ja) 2009-04-30

Family

ID=38067979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008542476A Withdrawn JP2009517741A (ja) 2005-11-28 2006-11-28 マイクロコントローラによるフラッシュメモリデジタルコントローラシステム

Country Status (6)

Country Link
US (2) US7600090B2 (ja)
EP (1) EP1958067A2 (ja)
JP (1) JP2009517741A (ja)
KR (1) KR20080077657A (ja)
TW (1) TW200822136A (ja)
WO (1) WO2007062256A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574611B2 (en) * 2005-11-28 2009-08-11 Atmel Corporation Command decoder for microcontroller based flash memory digital controller system
US7600090B2 (en) 2005-11-28 2009-10-06 Atmel Corporation Microcontroller based flash memory digital controller system
EP2392253B1 (de) * 2007-04-18 2020-06-17 Löwenstein Medical Technology S.A. Vorrichtung und Verfahren zur Aktualisierung von Beatmungsgeräten
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US8527690B2 (en) 2008-06-26 2013-09-03 Microsoft Corporation Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear
US20090327535A1 (en) * 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
US8006004B2 (en) 2008-07-08 2011-08-23 Nuvoton Technology Corp. Non-intrusive debug port interface
KR101583090B1 (ko) * 2009-12-15 2016-01-07 엘지이노텍 주식회사 마이크로 컨트롤러의 데이터 리드 방법
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
US9134918B2 (en) * 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8868852B2 (en) 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9201446B2 (en) * 2012-02-01 2015-12-01 Microchip Technology Incorporated Timebase peripheral
US9110782B2 (en) 2012-04-27 2015-08-18 Freescale Semiconductor, Inc. Emulated electrically erasable memory parallel record management
EP2770313B1 (en) * 2013-02-21 2015-04-08 ST-Ericsson SA Temperature sensing method generating a temperature dependent and a temperature independent output frequencies
US9424176B2 (en) 2013-02-25 2016-08-23 Freescale Semiconductor, Inc. Robust sector ID scheme for tracking dead sectors to automate search and copydown
US9563491B2 (en) 2014-09-12 2017-02-07 Nxp Usa, Inc. High voltage failure recovery for emulated electrically erasable (EEE) memory system
CN106528114B (zh) * 2016-10-25 2022-03-29 北京海誉动想科技股份有限公司 一种安卓固件应用装置和安卓固件升级方法
US10635526B2 (en) 2017-06-12 2020-04-28 Sandisk Technologies Llc Multicore on-die memory microcontroller
US10824376B2 (en) 2017-12-08 2020-11-03 Sandisk Technologies Llc Microcontroller architecture for non-volatile memory
US10622075B2 (en) 2017-12-12 2020-04-14 Sandisk Technologies Llc Hybrid microcontroller architecture for non-volatile memory
US10777240B1 (en) 2019-03-07 2020-09-15 Sandisk Technologies Llc Efficient control of memory core circuits
US10971199B2 (en) 2019-06-20 2021-04-06 Sandisk Technologies Llc Microcontroller for non-volatile memory with combinational logic
US11507498B2 (en) 2020-03-05 2022-11-22 Sandisk Technologies Llc Pre-computation of memory core control signals
US11048443B1 (en) 2020-03-25 2021-06-29 Sandisk Technologies Llc Non-volatile memory interface
US11188268B1 (en) 2020-05-28 2021-11-30 Western Digital Technologies, Inc. Programmable processor in an integrated memory assembly
CN111722855A (zh) * 2020-06-23 2020-09-29 湖南国科微电子股份有限公司 一种基于eMMC的固件烧录系统、方法与集成芯片
JP2022066083A (ja) * 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置
CN114924757B (zh) * 2022-06-10 2023-03-28 北京东土科技股份有限公司 固件烧入方法、装置、控制单元、系统及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072418A (en) * 1989-05-04 1991-12-10 Texas Instruments Incorporated Series maxium/minimum function computing devices, systems and methods
US5734927A (en) * 1995-06-08 1998-03-31 Texas Instruments Incorporated System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
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
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
JP2000194551A (ja) 1998-12-28 2000-07-14 Oki Micro Design Co Ltd フラッシュメモリ書換え回路
US6658540B1 (en) * 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US6246634B1 (en) * 2000-05-01 2001-06-12 Silicon Storage Technology, Inc. Integrated memory circuit having a flash memory array and at least one SRAM memory array with internal address and data bus for transfer of signals therebetween
US6751765B1 (en) * 2000-11-27 2004-06-15 International Business Machines Corporation Method and system for determining repeatable yield detractors of integrated circuits
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
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7600090B2 (en) 2005-11-28 2009-10-06 Atmel Corporation Microcontroller based flash memory digital controller system

Also Published As

Publication number Publication date
EP1958067A2 (en) 2008-08-20
WO2007062256A3 (en) 2009-05-07
KR20080077657A (ko) 2008-08-25
WO2007062256A2 (en) 2007-05-31
US20100017563A1 (en) 2010-01-21
US8316174B2 (en) 2012-11-20
US7600090B2 (en) 2009-10-06
TW200822136A (en) 2008-05-16
US20080040580A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
JP2009517741A (ja) マイクロコントローラによるフラッシュメモリデジタルコントローラシステム
US8327161B2 (en) Command decoder for microcontroller based flash memory digital controller system
TWI684868B (zh) 記憶體控制器及其操作方法以及記憶體系統之控制方法
US11036646B2 (en) Data storage device and method of writing logical-to-physical mapping table thereof
US5787484A (en) System and method which compares data preread from memory cells to data to be written to the cells
EP3422583B1 (en) Systems and methods for providing nonvolatile memory management in wireless phones
US6772276B2 (en) Flash memory command abstraction
KR100444537B1 (ko) 데이타처리장치
US7302518B2 (en) Method and system for managing a suspend request in a flash memory
TWI639086B (zh) 具有可中斷指令序列的記憶體及其操作方法
US20150012687A1 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
JPH10177563A (ja) フラッシュメモリ内蔵マイクロコンピュータ
JP7332083B2 (ja) マルチモード保護メモリ
CN105843766B (zh) 用于配置串行装置的方法及设备
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
TWI668569B (zh) 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元
US11487638B2 (en) Computer program product and method and apparatus for controlling access to flash memory card
US20080034150A1 (en) Data processing circuit
JPH08235073A (ja) マイクロコンピュータ
JP3669625B2 (ja) データ処理システム及びデータ処理システムの動作方法
JP2002229853A (ja) メモリ制御回路
JPH1139150A (ja) マイクロコントローラ
JP2004110407A (ja) シリアルeepromインターフェイス
JP2005202984A (ja) データ処理装置及びシングルチップマイクロコンピュータ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100202