JP2012234568A - 組込みコントローラを介するフラッシュストレージの初期化 - Google Patents

組込みコントローラを介するフラッシュストレージの初期化 Download PDF

Info

Publication number
JP2012234568A
JP2012234568A JP2012177054A JP2012177054A JP2012234568A JP 2012234568 A JP2012234568 A JP 2012234568A JP 2012177054 A JP2012177054 A JP 2012177054A JP 2012177054 A JP2012177054 A JP 2012177054A JP 2012234568 A JP2012234568 A JP 2012234568A
Authority
JP
Japan
Prior art keywords
flash memory
subsystem controller
interface
processing unit
central processing
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.)
Pending
Application number
JP2012177054A
Other languages
English (en)
Inventor
M Conley Kevin
コンレイ,ケヴィン・エム
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of JP2012234568A publication Critical patent/JP2012234568A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Abstract

【課題】フラッシュメモリサブシステムがその中に組み込まれるシステム・オン・チップに結合された、フラッシュメモリを含むデジタルシステムを提供する。
【解決手段】システム・オン・チップ40は、フラッシュメモリテスト装置などのホストシステムを接続することのできる、ユニバーサルシリアルバス(USB)やIEEE1394インターフェースなどの標準外部インターフェースのサポートを含む。フラッシュメモリの初期化は、ホストシステムと組込みフラッシュメモリサブシステムコントローラ49の間の通信チャネルを開くことによって実施される。次いで、ホストシステムは、フラッシュメモリアレイのフォーマット、アプリケーションプログラムのロードなどのフラッシュメモリサブシステムの初期化を通信チャネルを介して実施することができる。
【選択図】図7

Description

本発明は、フラッシュメモリシステムの分野でのものであり、より詳細には、統合デジタルシステムに対して使用されるフラッシュメモリの初期化を対象とする。
一般に「フラッシュ」メモリと呼ばれる不揮発性固体メモリ技術の人気は、近年著しく上昇した。フラッシュメモリは通常、従来型EEPROMデバイスのようなチップ全体または比較的大きいブロックとしてではなく、比較的小さいブロックとして消去および再書込みすることのできる電気的消去可能半導体メモリを指す。フラッシュメモリは、格納データの不揮発性(すなわち、電源の取外し後のデータ保持)が不可欠であるが、再書込みの頻度が比較的低い応用例に対して特に普及している。フラッシュメモリの一般的な応用例は、ポータブルオーディオプレーヤ、携帯電話ハンドセット内の電話番号および電話活動の「SIM」カードストレージ、コンピュータおよびワークステーション用の「サムキー(thumbkey)」取外し可能記憶装置、デジタルカメラ用の記憶装置などを含む。
典型的な従来型フラッシュメモリ製品は、実質上、1つまたは複数のデバイスの形態のフラッシュメモリストレージ資源(または「アレイ」)と、フラッシュメモリ製品に対してメモリコントローラとして働く集積回路とを含む1つまたは複数の集積回路からなる「チップセット」として構成される。フラッシュメモリアレイは、個々のメモリセルにランダムにアクセスすることのできる、いわゆるNORフラッシュメモリとして構成することができ、またはメモリのページまたはブロックの順次アクセスが必要とされる、いわゆるNANDフラッシュメモリとして構成することができる。当技術分野で周知のように、こうしたフラッシュメモリ構成のそれぞれは利点と欠点を有する。例えば、NORフラッシュメモリは小容量コードストレージに対して特に有利であり、一方NANDフラッシュメモリは、オーディオプレーヤやデジタルカメラなどの大容量データストレージに対して特に有利である。近年、特にNANDフラッシュメモリにおいて、各フラッシュメモリセルがマルチビットデータ値(通常は4つの可能な状態のうちの1つとして格納される2ビット値)を格納することのできるマルチレベルセル(MLC)フラッシュメモリの使用が普及している。
ある典型的な構成によれば、カード上に取り付けられたフラッシュメモリ資源およびサブシステムコントローラとを含むフラッシュメモリサブシステムとしてフラッシュメモリが製造および販売される。そのようなサブシステムの例は、周知のCOMPACT FLASH(CF)カード、Secure Digital(SD)カード、およびMULTIMEDIAカードを含む。図1に、例示的な従来型フラッシュメモリシステム2をブロック図形式で示す。この構成では、複数のフラッシュメモリ装置(「アレイ」)12が、フラッシュメディアインターフェースFMIによってサブシステムコントローラ10に接続され、フラッシュメディアインターフェースFMIは通常、サブシステムコントローラ10から物理アドレス信号および制御信号を通信し、デバイス12との間で双方向にデータを通信するバスである。サブシステムコントローラ10はインターフェースバスIFによってコネクタCに接続される。当技術分野で周知であるように、カメラ、コンピュータ、オーディオプレーヤなどのホスト装置にコネクタCによってフラッシュメモリシステム2を挿入または接続することができる。コネクタCおよびインターフェースバスIFは、フラッシュメモリシステム2がそれに従って構築および実現される特定の規格に従って構成される(例えば、CFカード、SDカード、またはMULTIMEDIAカード)。
他の周知の構成(例えばSMART MEDIAカード)では、フラッシュメモリシステムはサブシステムコントローラを含まない。そのような構成では、類推のために図1を参照すると、フラッシュメディアインターフェースFMIが、フラッシュメモリシステムの外部に位置するコントローラ、例えばフラッシュメモリを使用するホスト装置(例えばカメラ)に含まれるコントローラに接続される。
通常、従来型フラッシュメモリアレイは、カードにアセンブリされるまでは、(恐らくは、チップテストレベルで確立される不良ブロックのマーキングを除いて)フォーマットまたは初期化されない。フラッシュメモリ初期化は通常、ファイルシステムに従ってアレイをフォーマットすること、使用時に物理的不良メモリ位置を避けるように不良マップを生成すること、メモリアレイの低レベルユーザエリアフォーマット、フラッシュメモリシステムを使用するシステムによって実行することのできるアプリケーションソフトウェアのディスクイメージをロードすること、サブシステムコントローラが実装されるシステムでは、ファームウェアおよび動作パラメータをダウンロードすること、局部発振器周波数をトリミングすることなどの機能を含む。初期化プロセスの結果は、ホストシステムから論理アドレスに対応する物理位置でデータを書き込むことができ、読み取ることのできるフラッシュメモリシステムである。さらに、万一物理メモリの一部が不良となった場合、または追加のディスクイメージデータをアドオンアプリケーションに関して格納すべきである場合に、フラッシュメモリシステムの構成を動作中に更新することもできることが企図される。
一般に、フラッシュメモリ資源の初期化は通常、フラッシュメモリシステム製造業者により、通常はフラッシュメモリ装置12およびサブシステムコントローラ10が従来の方式で最終的システムボードに取り付けられ、したがって相互接続された後に実施される。例示として図2に示されるように、フラッシュメモリシステム2の製造後に、フラッシュメモリシステム2は、コネクタCおよびテストケーブルDUT_CBLを介してテスタTSTRに接続される。テスタTSTRは、テストケーブルDUT_CBLおよびコネクタCを介してフラッシュメモリシステム2と通信し、フラッシュメモリシステム2内の電気的接続の継続が保証され、コネクタCの端子の適切なDC挙動が保証され、フラッシュメモリ装置12の初期化の前に実行することのできる一定の基本機能テストが実施される。さらに、当技術分野で周知のように、テスタTSTRは通常、そのフラッシュメモリ装置12を含むフラッシュメモリシステム2の機能をテストし、フラッシュメモリシステム2を初期化するために、フラッシュメモリシステム2、具体的にはコントローラ10に診断コマンドを印加することができる。上述のように、フラッシュメモリシステム2の従来の初期化は、フラッシュメモリ装置12のフラッシュメモリ資源をフォーマットおよび構成すること、フラッシュメモリ装置12の物理的不良メモリ位置を検出してログを取ること、制御プログラム(「ファームウェア」)をコントローラ10(例えば、コントローラ10内に組み込まれたNORフラッシュメモリ)にロードすること、および所期のアプリケーションでの使用に適するように、DOSまたはディスクイメージの形態でアプリケーションソフトウェアをフラッシュメモリ装置12にロードすることを含む。そのようなアプリケーションソフトウェアの例は、コントローラ10で実行することができるデータ暗号化ソフトウェア、消耗レベリング(wear leveling)アルゴリズムなどを含む。
しかし、最近では、フラッシュメモリストレージは、いわゆる「システム・オン・チップ」または「SOC」によって制御されるものを含む、多くの新しい応用例と共に使用することが望ましくなった。企図されるこうしたSOC応用例では、単一の集積回路が、中央演算処理装置(CPU)、そのシステムメモリ(RAMおよびROM)、標準インターフェース機能(例えばUSB、シリアルI/Oなど)、およびシステムで有用な他のペリフェラルを統合する。現在構成されているように、フラッシュメモリを使用するコンシューマ装置用のSOCアーキテクチャは、その不揮発性再書込み可能ストレージ機能の利点を活用するために、SOCからフラッシュメモリ装置への外部インターフェースと共に、フラッシュメモリサブシステムコントローラもSOCに統合する。図3に、これから説明する、フラッシュメモリを使用するSOCベースのアーキテクチャのそのような従来型構成を示す。
図3に示されるように、SOC20は、1つまたは複数のNANDフラッシュメモリ装置として通常は構成されるフラッシュメモリ35(当然ながら、代わりにNORフラッシュメモリを使用することもできる)と従来型フラッシュメモリインターフェースNAND_IFによってインターフェースする。この構成では、フラッシュメモリサブシステムコントローラ29が、図1で上述したようにフラッシュメモリサブシステムの一部としてではなく、SOC20内に実現される。SOC20は、実際はシステム・オン・チップ(system−on−a−chip)であり、したがってCPU22と、図3に示されるようにCPU22が従来型バスCPU_BUSによって接続されるシステムROM24、システムRAM26、標準インターフェース30(例えばUSB、SCSI、RS−232、または他のインターフェース)などの様々なシステム機能を含む。SOC20内に他のペリフェラルも含めることができ、そのペリフェラルは、バスブリッジ28およびペリフェラルバスPER_BUSを介してCPU22と通信する。図3の例でのそのような1つのペリフェラルはサブシステムコントローラ29であり、サブシステムコントローラ29はペリフェラルバスPER_BUSとサブシステムコントローラ29との間で信号を変換する標準インターフェース27A、27BによってペリフェラルバスPER_BUSに結合され、この変換は、全体的な再設計を必要とすることなく従来型サブシステムコントローラ29をSOC29内に容易に実装することを可能にする。したがって、SOC22は、ディスクストレージと同様に、フラッシュメモリ35を不揮発性ストレージとして使用する形で容易に動作することができる。例えば、フラッシュメモリ35上にアプリケーションプログラムを維持することができるものとしての、バルクデータストレージを維持することができる。例えば、アプリケーションプログラムがより大規模なシステム内のディスクストレージから呼び出され、ロードされるのとほぼ同様に、フラッシュメモリ35上に格納されたアプリケーションプログラムを、サブシステムコントローラ29(およびバスPER_BUS、CPU_BUS、ならびに様々なインターフェースおよびブリッジ)を介してシステムRAM26にロードし、CPU22で実行することができる。同様に、CPU22により、サブシステムコントローラ29によってフラッシュメモリ35からデータを格納し、データにアクセスすることができる。
遺憾ながら、従来型初期化方法は、サブシステムコントローラ29がフラッシュメモリから分離され、SOC20内に実施されるこの構成でのフラッシュメモリ35を容易に初期化することができない。具体的には、フラッシュメモリ35のいくつかの部分は、対応するサブシステムコントローラ(サブシステムコントローラ29など)によるアクセスを除いてアクセス可能ではなく、初期化プロセスに関係するのは、フラッシュメモリ35のこうした「システム」部分である。しかし、初期化の前に、図3の従来型SOC構成では、サブシステムコントローラ29はフラッシュメモリ35の初期化のためにアクセス可能ではない。図3は、本発明に関連して推測される、SOC構成でのフラッシュメモリ35の初期化に対する力任せ手法を示し、それによって、テスタTSTRが特殊バスSPC_BUSを介してフラッシュメモリ35の特別に設計されたインターフェースに接続し、このインターフェースを介して診断コマンドを実行し、初期化を実施する。しかし、この推測される手法は、特別なテストハードウェア(テスタTSTRおよび特殊バスSPC_BUS)の作成、ならびにフラッシュメモリ35への特殊インターフェースの作成を必要とし、そのどちらもシステムの製造および生産にかなりのコストを増し加え、システムを構成および初期化することのできる柔軟性を限定する。
別の背景として、米国特許第6009496号は、組込みフラッシュメモリを備えるマイクロコントローラアーキテクチャを説明しており、そのマイクロコントローラアーキテクチャでは、オンボードマイクロプロセッサが、オンボード読取り専用メモリに格納された再プログラミング制御ルーチンを実行して、組込みフラッシュメモリを再プログラムする。この米国特許第6009496号はまた、新たに製造したときにマイクロコントローラシステムを手動でこの再プログラミングモードに設定することができ、その場合にはマイクロプロセッサがオンボードROMからの再プログラミング制御ルーチンを実行して、外部インターフェースを介して受信したデータで組込みフラッシュメモリをプログラムすることも開示している。
したがって、本発明の目的は、統合フラッシュメモリサブシステムコントローラを有するシステム・オン・チップ(SOC)型システム用のフラッシュメモリサブシステムを初期化する方法およびシステムを提供することである。
本発明の別の目的は、そのような初期化のために従来型テストハードウェアを利用することのできる方法およびシステムを提供することである。
本発明の別の目的は、そのような初期化を実現するためにSOCハードウェアを根本的に再構成する必要のない方法およびシステムを提供することである。
本発明の他の目的および利点は、以下の明細書を図面と共に参照した当業者には明らかとなるであろう。
SOCの標準外部インターフェースが外部テストハードウェアにアクセス可能にされるシステム・オン・チップ(SOC)アーキテクチャとして本発明を実装することができる。外部テストハードウェアからSOCのシステムメモリにダウンロードされ、またはシステムROM内に既に存在する実行可能初期化プログラムが、CPUによる実行時に、外部テストハードウェアとSOC内のフラッシュメモリサブシステムコントローラとの間の通信チャネルを開く。この通信チャネルは、外部テストハードウェアがサブシステムコントローラを介してフラッシュメモリの初期化を実施し、SOCで使用するためにフラッシュメモリを準備し、SOCアプリケーションプログラムをフラッシュメモリ上にロードすることなどを可能にする。
本発明をその好ましい実施形態に関連して、すなわち、テストハードウェアを利用して、デジタルオーディオプレーヤ(DAP)などのフラッシュメモリサブシステムコントローラを含むシステム・オン・チップ(SOC)で使用するためにフラッシュメモリを初期化するシステムおよび方法として実装されたものとして説明する。そのような構成で使用されるときに本発明が特に有益となることが企図されるので、本発明のこの特定の例示的実装が選択される。しかし、本発明の利点がフラッシュメモリシステムの他のアーキテクチャおよび実装にも適用できることも企図される。したがって、以下の説明が例示としてのみ与えられるのであって、特許請求された本発明の真の範囲を限定するものではないことを理解されたい。
図4に、デジタルシステム60を参照しながら、本発明の好ましい実施形態の例示的実装を示す。この例でのシステム60は、それが含む特定のペリフェラルを仮定すると、デジタルオーディオプレーヤ(DAP)に対応する。もちろん、システム60が実行するシステムソフトウェアおよびシステム60のペリフェラルの構成によって主に決定されるいくつかの機能のうちの任意の1つに対してシステム60を意図することができることを、本明細書を参照した当業者は容易に理解されよう。そのような他のデジタルシステムの例は、ワイヤレス電話ハンドセットなどの通信システム、ワイヤレスEメールシステム(例えばBLACKBERRY装置)、デジタルオーディオレコーダ、電子計算器、在庫制御または配送ビジネスで有用となるようなハンドヘルドコンピューティングシステム(すなわち「パームトップ」装置)などを含む。本発明の好ましい実施形態によれば、デジタルシステム60は、システム・オン・チップ(「SOC」)40に基づき、SOC40は、ほぼすべての基本システム機能を単一の集積回路内に実施する。この例でのSOC40は、デジタルシステム60のメインコンピューティング構成要素である中央演算処理装置(CPU)42を含む。好ましくは、CPU42は、例えばシステムROM44、システムRAM46(SOC40がブートアップされた後に)、およびその初期化の後にフラッシュメモリ55内に格納されるソフトウェア命令を実行することによって動作する汎用または応用例特有のマイクロプロセッサまたはマイクロコンピュータである。本発明に関連して、CPU42によって実施される機能が、SOC40内の様々なバスを介して通信されるコマンド、または機能に対する制御信号線(図4には図示せず)によるSOC40内の様々な他の機能の制御を含むことが企図される。
この例示的アーキテクチャでは、CPU42が、システムバスCPU_BUSによってシステム読取り専用メモリ(ROM)44およびシステムランダムアクセスメモリ(RAM)46に接続される。システムROM44およびシステムRAM46を実現するのに使用される特定のサイズ、アーキテクチャ、および技術は、SOC40を統合するのに利用可能な技術、ならびに所望の性能および信頼性の特徴に依存する。本明細書を参照した当業者がそれぞれの特定の装備に対してこうしたメモリ機能を容易に実現できるであろうことが企図される。この例示的アーキテクチャでは、システムバスCPU_BUS上には標準インターフェース50およびバスブリッジ48を含む他の機能も常駐する。
標準インターフェース50は、一方の側のCPU42およびシステムバスCPU_BUSの他のレジデントと、他方の側の外部装置またはシステムとの間の通信のサポートのための必要な信号変換、バッファリング、ならびに他の機能を実現する従来型インターフェース機能である。標準インターフェース50は、業界標準インターフェースプロトコルに従って構築され、動作することが好ましいという意味で「標準」である。そのようなインターフェースプロトコルの例は、ユニバーサルシリアルバス(USB)1.1および2.0インターフェース、IEEE1394(または「Firewire」)インターフェース、周知のRS−232などのシリアルインターフェース、SCSIインターフェースなどを含む。システム60の現代の実装では、デジタルオーディオプレーヤに対応するときは特に、標準インターフェース50は通常、USBまたはIEEE1394インターフェース規格に従う。DAP技術分野で周知のように、ホストコンピュータとDAPとの間のオーディオファイル(さらに最近では写真および他のデータ)の同期、ならびに場合によってはDAP内の電池の充電が、通常はUSB2.0またはIEEE1394インターフェースを介して実施される。図4の例では、標準インターフェース50は、USB2.0インターフェースであり、したがってUSB接続USB_2によってホストシステムHOSTに接続される。
上記で触れ、図4で示したように、バスブリッジ48もシステムバスCPU_BUS上に常駐する。バスブリッジ48は、この例ではシステムバスCPU_BUSをペリフェラルバスPER_BUSに結合する従来型バスインターフェースである。SOC40の外部の様々なペリフェラルが、適切な外部コネクタおよび回路板導線によってペリフェラルバスPER_BUS上に常駐する。DAPに対応する、システム60のこの例では、ペリフェラルバスPER_BUSのレジデントは、SDフラッシュメモリインターフェース51、LCDディスプレイ53、キー、ボタン、スイッチなどの様々な入力要素55、およびオーディオ出力インターフェース57を含む。
本発明の好ましい実施形態によれば、標準インターフェース機能47AもペリフェラルバスPER_BUS上に常駐する。インターフェース機能47Aは、フラッシュメモリサブシステムコントローラ49と共に実現され、またはフラッシュメモリサブシステムコントローラ49の一部として実現されるインターフェース機能47Bと通信する。本発明のこの実施形態によれば、標準インターフェース機能47A、47B、およびサブシステムコントローラ49はすべてSOC40に統合される。サブシステムコントローラ49の構築および設計を容易にするために、標準インターフェース47Bは、(例えば図1に示される)従来型フラッシュメモリシステムで使用される従来型Secure Digital(SD)インターフェースに対応することができ、この場合、標準インターフェース機能47Aは、SDインターフェースから図示されるペリフェラルバスPER_BUSに信号を変換するための従来型トランスレータ機能である。この構成では、サブシステムコントローラ49および標準インターフェース47BをSOC40に統合するのに、追加の回路設計が必要であるとしてもわずかである。別法として、もちろん、ペリフェラルバスPER_BUSと直接的にインターフェースするようにサブシステムコントローラ49を構築することもでき、または代替実施形態ではさらに、システムバスCPU_BUSと直接的にインターフェースする(したがってバスブリッジ48の仲介機能が回避される)ように構築することもできる。上記およびその他のアーキテクチャ上の変形形態が本明細書を参照した当業者には明らかとなるであろうことが企図される。
本発明のこの実施形態でSOC40内に統合されるサブシステムコントローラ49は、フラッシュメモリインターフェースNAND_IFに接続され、フラッシュメモリインターフェースNAND_IFにはフラッシュメモリ55が接続される(または接続可能である)。SOC40内の統合サブシステムコントローラ49はしばしば「組込み」コントローラとも呼ばれる。フラッシュメモリインターフェースNAND_IFは、従来型フラッシュメモリインターフェースバスまたは構造となることが企図され、したがって、アドレス信号をフラッシュメモリ55に搬送する導線、1つまたは複数のチップ選択制御線、読取りおよび書込みストローブまたはクロック線、および双方向データバスを含む。一般的なフラッシュメモリ構成では、アドレスおよびデータ信号は、インターフェース回路およびシステムボードエリアを節約するために、共通の線の組(「アドレス/データ線」)にわたって時間多重化される。
好ましくは、本発明のこの実施形態でのサブシステムコントローラ49は、例えば、インターフェースNAND_IFを介する、関連するフラッシュメモリ55からのデータの読取りおよび関連するフラッシュメモリ55へのデータの書込みの制御、誤り訂正コード化の実施、(CPU42からの)論理アドレスの(フラッシュメモリ55内の)物理アドレスへのマッピング、フラッシュメモリ55内の不良メモリセルのマッピングの初期化および維持、消耗レベリングの実施などを含む、従来型フラッシュメモリ制御機能を実施する。したがって、当技術分野で周知のように、好ましくは、サブシステムコントローラ49は、マイクロコントローラやマイクロプロセッサなどの論理機能と、その実行可能ソフトウェア命令、およびフラッシュメモリ55のマッピングおよび構成に関するシステム情報を格納するためのそれ自体の内部メモリ(揮発性、不揮発性、またはその両方)とを含むように構築される。当技術分野で周知の典型的なサブシステムコントローラの構成および機能の一例が、本願の譲受人に譲渡され、参照により本明細書に組み込まれる米国特許第6426893号に記載されている。図4およびこの説明から明らかなように、サブシステムコントローラ49がSOC40内で実現され、SOC40に統合されることを除いて、そのような従来のオペレーションおよび構成を本発明のこの好ましい実施形態によるサブシステムコントローラ49と共に使用できることが企図される。この例示的アーキテクチャ、ならびに特定のシステム構成に対して適切な他の同等のアーキテクチャによるサブシステムコントローラ49およびその機能を、過度な実験なしに本明細書を参照した当業者がそのように容易に実現することができることが企図される。
任意選択で、上記で参照した米国特許第6426893で想定される単一のマイクロプロセッサまたはマイクロコントローラを使用するのではなく、マルチプロセッサアーキテクチャに従ってサブシステム49を実現することができる。例えば、1次CPUと類似の構成のフラッシュプロセッサ(すなわち同種マルチプロセッサ環境)、または異なるアーキテクチャ(すなわち異機種マルチプロセッサ環境)のフラッシュプロセッサと共に1次CPUを実装することができる。どちらの場合も、フラッシュプロセッサは、すべてのフラッシュアクセスオペレーションの管理、および消耗レベリング、誤り訂正などの補助機能を含む、フラッシュメモリ55の管理専用のシステム資源(メモリなど)を備える。1次CPUは、ホストアプリケーションを実行し、ホストとの通信を管理し、リアルタイムオペレーティングシステムおよびファイルシステムと共にサブシステムコントローラ49に関するサポート環境を管理するアプリケーションプロセッサとして働く専用資源を備えることができる。追加のオプションは、アプリケーションプロセッサおよびフラッシュプロセッサ、または1次CPUと組み合わせて、データ暗号化および暗号化解除などの計算上複雑なオペレーションを実施するスレーブデジタル信号プロセッサ(DSP)として働くDSPを設けることである。
本発明のこの実施形態によるシステム60のフラッシュメモリ55は、当技術分野で周知のようにブロック消去可能となるように、したがって実装するシステムによって望まれるように再書込み可能となるように各アレイ内に配置されたフラッシュ電気消去可能およびプログラム可能読取り専用メモリ(EEPROM)セルの1つまたは複数のアレイに対応する。本発明のこの好ましい実施形態では、フラッシュメモリ55を構成する1つまたは複数のアレイ内の個々のメモリセルに対して使用される特定のメモリ技術は、各アレイ内にNANDまたはNOR型フラッシュメモリとして構成されたバイナリまたはマルチレベルセル(MLC)型でよい。システム60がDAPであるこの特定の例示的実装では、MLC NANDフラッシュメモリ技術が主にシリアルにアクセスされるデータのバルクストレージに対して好ましいことになることが企図される。データの書込み、データのフラッシュ消去、論理−物理アドレスマッピング、および消耗レベリングの管理のためのブロックおよびページとしての、本発明のこの実施形態によるフラッシュメモリ55を構成する1つまたは複数のフラッシュメモリアレイの配置は、いくつかのそのような配置のうちの任意の1つに従うことができる。本発明によるシステム60内のフラッシュメモリ55として実現するのに適した内部アーキテクチャおよびサポート回路の例が、すべて本願の譲受人に譲渡され、この参照により本明細書に組み込まれる米国特許第5172338号、第5602987号、第5315541号、第5200959号、第5270979号、第5428621号、第5663901号、第5532962号、第5430859号、第5712180号、第6151248号、第6222762号、および第6426893号に記載されている。
上記で議論したように、システム60の製造中のある時点で、フラッシュメモリ55を使用することができるようにフラッシュメモリ55を初期化することが必要である。フラッシュメモリ初期化は通常、ファイルシステムに従ってフラッシュメモリ55をフォーマットする機能、不良メモリ位置が使用のためにマッピングされないように不良メモリ位置を検出する機能、初期論理−物理アドレスメモリマップを生成する機能、消耗レベリングブックキーピングおよびアルゴリズムを実施する機能などを含む。例えばサブシステムコントローラ49のシステムファームウェアおよび動作パラメータをダウンロードし、局部発振器周波数をトリミングするために、サブシステムコントローラ49自体の初期化も実施することができる。さらに、フラッシュメモリ55およびシステム60に関する特定の応用例に応じて、フラッシュメモリ55の初期化は、システム60のCPU42によって後で実行するために実行可能アプリケーションソフトウェアをフラッシュメモリ55にロードすること、この実行可能アプリケーションソフトウェアのためのアプリケーションデータ(例えば、DAPとしてのシステム60に対してMP3オーディオファイル)をフラッシュメモリ55に事前ロードすることも含むことができる。
本発明の好ましい実施形態によれば、システム60は、この場合はUSB2.0インターフェースである標準インターフェース50を介してホストシステムHOSTがフラッシュメモリ55の初期化を実施することを可能にする。もちろん、上述のように、別法としてこの標準インターフェースは、IEEE1394(Firewire)インターフェースなどの異なる規格に従うこともできる。製造の状況では、ホストシステムHOSTは、Tanisys Technologyから市販されているテスト装置などの製造テスト装置、または製造業者で使用される代替の独自のフラッシュメモリテスト装置となることが企図される。フラッシュメモリ55のこの初期化をシステム60の組立て完了後に(すなわち、ディスプレイ53、オーディオ出力57、含まれる入力要素55などのペリフェラルと共に)、または最終組立ての前のフラッシュメモリ55へのSOC40の接続の直後に実施できることが企図される。
あるいは、ホストシステムHOSTが従来型標準インターフェース(例えばUSB2.0)を介してSOC40と通信していることを考慮して、ホストシステムHOSTがフラッシュメモリ初期化を実施するための適切なアプリケーションでプログラムされた従来型パーソナルコンピュータまたはワークステーションでよいことが企図される。この代替実施形態ではさらに、ホストシステムHOSTによって実施されるフラッシュメモリ初期化を製造中(すなわち、フラッシュメモリ55の「最初の」初期化のために)のみで実施する必要はなく、例えば、フラッシュメモリ55内の「ファームウェア」として格納されたシステム60用の実行可能アプリケーション、または実際に、サブシステムコントローラ49によって実行可能なファームウェアシステムソフトウェア(やはりフラッシュメモリ55に格納することができる)をアップグレードするために、システムの使用および配置の後でも実施できることが企図される。
次に図5を参照して、本発明の好ましい実施形態によるフラッシュメモリ55の初期化を実施する際のホストシステムHOSTと組み合わせたSOC40の動作をこれから詳細に説明する。この例では、SOC40はこの初期化が開始するときにはまだパワーアップされない。上述のように、製造の特定のステージに応じて、様々な周辺装置をまだペリフェラルバスPER_BUSに接続する必要はないが、望むなら1つまたは複数の周辺装置をそのように接続することができる。この初期化プロセスが開始するときにはやはり、後のプロセスで停止または待ち状態を回避するために、フラッシュメモリ55がインターフェースNAND_IFによってSOC40に接続されることが好ましい。プロセス70では、ホストシステムHOSTが、図4の例でのバスUSB_2を介して標準インターフェース50に接続される。ホストシステムHOSTはもちろん、以下で説明する方式で初期化を実施するための必要なソフトウェア命令でプログラムされる。本明細書を参照した当業者がそのような初期化プログラムを容易に導出できることが企図され、実際に、以下で説明するオペレーションを実施するためのわずかな修正のみが行われた従来型フラッシュメモリ初期化プログラムがホストシステムHOST内に常駐することができることが企図される。
プロセス72では、CPU42を含むSOC40がパワーアップされる。パワーアップ時に、SOC40などのシステムについて従来通り、システムROM44内に常駐するブートシーケンスがまずCPU42によって実行され(図5のプロセス74)、従来型スタートアップ命令およびリセット命令がCPU42によって実行され、その動作が開始される。本発明のこの好ましい実施形態によれば、システムROM44内に格納されたブートシーケンスは実行可能命令を含み、この実行可能命令により、CPU42はフラッシュメモリ55に照会して、パワーアップまたはリセット時に実行可能アプリケーションを探し、以下で説明するように、その照会オペレーションの後に条件付き命令が続く。したがって、実行されるブートシーケンス(プロセス74)の一部として、CPU42は、判定75を実行して、実行可能アプリケーションコードがフラッシュメモリ55内に常駐するかどうかを判定する。
図6は、本発明の好ましい実施形態による判定75に関連して使用される、初期化されたときのフラッシュメモリ55の例示的論理メモリマップである。図示されるように、フラッシュメモリ55は、論理ブロックアドレス(LBA)0000から最大LBA値maxLBAにわたる論理メモリスペースに対応する物理容量を含む。この論理メモリスペースは主にユーザデータに充てられ、ユーザデータにはLBA0000から最大LBAmaxUserLBAまでのメモリスペースが割り当てられる。この例では、フラッシュメモリ55内のメモリスペースの最上位の1Mバイトは、maxUserLBAのLBAから、アドレスmaxUserLBA+1Mに等しい最大LBA値maxLBAにわたってアプリケーションファームウェアプログラム格納のために予約される。好ましくは、LBA値maxUserLBAより上のメモリスペースはユーザにとってアクセス可能とはならず、それに対するアクセスはサブシステムコントローラ49によってブロックされる。図6に示されるように、本発明のこの好ましい実施形態によれば、アプリケーションファームウェアの2つのコピーが、フラッシュメモリ55の初期化後にフラッシュメモリスペースの最上位部分に格納される。アプリケーションファームウェアコピーAは、フラッシュメモリ55内のLBA値maxUserLBA+512kとLBA値maxLBAの間のメモリスペース内に常駐し、アプリケーションファームウェアコピーBは、LBA値maxUserLBAとLBA値maxUserLBA+512kの間のメモリスペース内に常駐する。本発明のこの実施形態によれば、ファームウェアコピーAおよびBは同一のものとし、アプリケーションファームウェアの冗長コピーとして働く。
本発明の好ましい実施形態によれば、CPU42は、LBAアドレスmaxUserLBAより上のフラッシュメモリ55に照会することによってシステムROM44からブートシーケンスを実行する。LBAmaxUserLBAとmaxLBAの間のスペースがアプリケーションファームウェアの有効なコピーであるコピーAまたはコピーBを含む場合、判定76はYESであり、プロセス76でアプリケーションファームウェアが実行される。次いで、SOC40およびシステム60の通常のシステム動作(ペリフェラルが存在する範囲で)が、プロセス74で見つかったアプリケーションプログラムに従って開始される。アプリケーションファームウェアの有効性は、各コピーについての従来の周期的冗長性チェックサム(CRC)値の評価によって判定され、一方のコピーが有効であり、他方のコピーが壊れている場合、好ましくは、冗長性のために、有効なコピーがフラッシュメモリ55内の他方のコピーの位置にコピーされる。
一方、LBAmaxUserLBAとmaxLBAの間のメモリスペースがブランクである場合、またはアプリケーションファームウェアの有効なコピーを含まない場合(例えば、CRCが両方のコピーに関して失敗した場合)、判定75はNOの結果を返し、アプリケーションファームウェアが存在しないことを示す。これはもちろん、フラッシュメモリ55の初期化の前のケースである。
具体的には保守またはファームウェアアップグレード操作でアプリケーションプログラムがフラッシュメモリ55内に存在するかどうかを判定75が判定する代わりに、アプリケーションプログラムが既にフラッシュメモリ55内に常駐する場合を考慮して、判定75が異なる基準に基づくことも企図される。当技術分野で周知のように、スタートアップ時にキーの特別な組合せを押下することなどにより、一般にはシステムのパワーサイクリングと組み合わせて、システムのファームウェアアップグレードを実施することができる。
本発明のこの好ましい実施形態によれば、判定75からのNOの結果、またはそのような他の基準が満たされたことに応答して、CPU42は、プロセス80に対応する、システムROM44からの命令のシーケンスを実行し、プロセス80では、いくつかの「パススルー」コマンドロジックがイネーブルされ、その結果、コマンドが標準インターフェース50を介してSOC40によって受信され、実行のためにサブシステムコントローラ49に「パススルー」される。この例では、こうしたパススルーコマンドは、低レベルフラッシュメモリデバイスドライバにより、サブシステムコントローラ49で実行するために標準インターフェース50を介して受信された要求をフォーマットするようにCPU42に命令するSCSI(Small Computer Serial Interface)拡張コマンドの形式である。実際には、パススルーコマンドロジックは、CPU42によって実行され、そのSCSIコマンドインタプリタとその低レベルデバイスドライバとをインターフェースする1つのグルーロジックコードである。
あるいは、この初期化シーケンスをホストシステムHOSTからシステムRAM46にダウンロードし、CPU42で実行して、アプリケーションファームウェアの存在を判定するようにフラッシュメモリ55に照会し、次いで通信チャネルを確立することができる。この代替実施形態ではさらに、その初期化状態を判定するようにCPU42がフラッシュメモリ55に照会する命令はシステムROM内に存在することができ、次いで、初期化が必要である場合、初期化シーケンスの残りがホストシステムHOSTからシステムRAM46にダウンロードされる。ダウンロードされる初期化シーケンスコードまたは常駐初期化シーケンスコードの上記およびその他の組合せが、特定の応用例のために選択された特定の適合と共に、本明細書を参照した当業者には明らかとなるであろうことが企図される。
CPU42がSCSIパススルーコマンドロジックをイネーブルするとき、プロセス82で、通信チャネルがホストシステムHOSTとサブシステムコントローラ49の間で開かれる。この通信チャネルは、システム60で使用されるものと同様であることが企図され、DAPとして構成されたとき、ホストコンピュータとフラッシュメモリの間で音楽ファイルの同期が実施される。実際には、プロセス82で、CPU42が実質上、ホストシステムHOSTとサブシステムコントローラ49の間の直接通信経路を確立することが企図され、その結果、CPU42によるかなりの実行を必要とすることなく、コマンドおよびデータがこの経路を介して転送される。図7に、本発明のこの好ましい実施形態によるプロセス82でSOC40内のCPU42によって確立される、ホストシステムHOSTとフラッシュメモリ55の間のこの通信チャネルを示す。
もちろん、この動作でのCPU42の関与の範囲はSOC40の特定のアーキテクチャに依存する。しかし、図2に関して上記で説明したように、初期化中に従来型テスト装置と従来型フラッシュメモリシステムの間の通信と同様の方式で、この通信チャネルがフラッシュメモリ55の初期化のためにホストシステムHOSTとサブシステムコントローラ49の間の通信を可能にすることが好ましく、この構成は、ホストシステムHOSTの初期化ハードウェアおよびソフトウェアを、従来型フラッシュメモリ製造装置および処理で既に実現されているのと同様にすることを可能にする。
プロセス82で通信チャネルが開かれたことに続いて、プロセス84で、ホストシステムHOSTは、チャネル(図7)を介して初期化コマンドおよびデータをサブシステムコントローラ49に転送する。当技術分野で周知のように、こうした初期化コマンドは、サブシステムコントローラ49に、通常のオペレーションでは普通ならアクセス可能ではないフラッシュメモリ55のシステムメモリ位置にアクセスさせる、必要な診断命令などを含む。
例えば、通信チャネルが上述のSCSIパススルーコマンド拡張によって実施された場合、CPU42によって解釈されるべきパススルーコマンドは非常に限定される。
すべてのメディアタイプについて:
Check Media Card Type(Command Code D0h)(SD/MMCまたはCF Mediaタイプをチェックするため)
SD/MMC Mediaについて:
Media Card SD Execute Command(Command Code D1h)
Media Card SD Host Control Command(Command Code D2h)
CF Mediaについて:
Media Card CF Send Command(Command Code D1h)
Media Card CF Data Command(Command Code D2h)
Media Card CF Status Command(Command Code D3h)
チェックメディアカードタイプコマンドは、フラッシュメモリ55のメディアタイプを識別するようにサブシステムコントローラ49に照会し、さらにSOC40のパススルーコマンドの実行をイネーブルまたはディスエーブルする(すなわち、ディスエーブルされたとき、コマンドコードD1hなどはパススルーコマンドとして解釈されない)。
SD/MMCメディアの例では、イネーブルされたとき、ホストシステムHOSTがMedia Card SD Executeコマンド(D1h)を発行したときに、CPU42は、対応するネイティブコマンドをサブシステムコントローラ49に対して発行する。ホストシステムHOSTからのExecuteコマンドは、データ転送の方向(フラッシュメモリ55に対して、またはフラッシュメモリ55から)、コマンドのタイプ、コマンドを修飾する引数などを含む引数を含むことができる。Executeコマンドの受信時に、CPU42は、対応するネイティブコマンドをサブシステムコントローラ49に送り、ホストシステムHOSTとフラッシュメモリサブシステムの間のデータ転送のためのバッファとして働く。Media Card SD ホスト制御コマンドを使用して、フラッシュメモリサブシステムに対するオペレーションの頻度などのいくつかの属性を示すことができ、待ち状態、ブロック長、および他の制御属性をホストに示すことができる。CFメディアの例では、Sendコマンドは、後続のデータコマンドでアクセスすべきフラッシュメモリ55の特定のセクタ位置、シリンダ位置、および装置位置を示し、それが、ホストシステムHOSTからフラッシュメモリ55にデータを送り、またはフラッシュメモリ55からホストシステムHOSTにデータを送るためのネイティブコマンドとしてCPU42によってサブシステムコントローラ49に転送される。CFステータスコマンドは単に、サブシステムコントローラ49のステータスレジスタからステータス情報を取り出すためにホストシステムHOSTによって発行されるコマンドである。
上記の背景技術で米国特許第6009496号に関して触れたように、従来型マイクロコントローラアーキテクチャは、オンボードマイクロプロセッサを使用して、組込みフラッシュメモリをプログラムする際に再プログラミング制御ルーチンを実行する。本発明のこの実施形態に従って使用されるパススルーコマンドおよびコマンドロジックは、従来の方式に比べて特に有利である。こうしたコマンドは、フラッシュメモリサブシステムの制御を実施する際に、ホストシステムHOSTにそのような制御を実施することを可能にする代わりにCPU42の役割を最小限に抑えるからである。さらに、比較的小さいコマンドセットは、CPU42に対するオーバヘッドを低減し、新しいメモリカードタイプに対するコマンドの拡張を可能にする。
本発明のこの実施形態によれば、プロセス86で、ホストシステムHOSTによって発行されるこうしたパススルーコマンドのシーケンスが、サブシステムコントローラ49を介してフラッシュメモリ55を初期化する。当技術分野で周知であり、かつ上述のように、初期化プロセス86は、所望のファイルシステムおよび構造に従ってフラッシュメモリ55をフォーマットすること、不良メモリ位置を検出およびマッピングすること、論理−物理アドレスマッピング構造およびマッピング自体を確立すること、およびフラッシュメモリ55内のメモリセルの最大の耐用寿命を保証するための適切な消耗レベリングアルゴリズムをサブシステムコントローラ49に提供することなどのオペレーションを含む。この時点で、システムファームウェア、動作パラメータ、局部発振器周波数などもサブシステムコントローラ49自体の中で初期化することができる。さらに、やはり上述のように、フラッシュメモリ55の初期化が、CPU42によってそのシステムオペレーションで使用するための、フラッシュメモリ55へのアプリケーションソフトウェアのロードも含み(例えば、図6の例でのLBAアドレスmaxUserLBAより上のメモリスペースにロードされた冗長コピーAおよびBとして)、恐らくはアプリケーションデータ(例えば、DAPとして構成されたシステム60の場合、MP3オーディオファイル、JPEG写真ファイルなど)のフラッシュメモリ55への事前ロードも含むことが企図される。そのようなプログラムコードおよびデータのロードおよび事前ロードは、もちろん、上述のフラッシュメモリ55のフォーマットおよび他のシステム初期化に続くことになる。
初期化プロセス86、および恐らくはフラッシュメモリ55のそのような機能テストおよびデータ検証の完了に続いて、そのような初期化でのホストシステムHOSTの動作が完了する。次いで、ホストシステムHOSTは、Check Media Card Typeコマンド(D0h)を発行することによってパススルーコマンド機能をディスエーブルし、プロセス88で、システムバスCPU_BUSを解放する。次いで、望まれる範囲または可能な範囲のSOC40およびシステム60の動作(ペリフェラル機能の存在に応じて)が、望みの通りに続行することができる。初期化の状況、例えばSOC40またはシステム60の製造中では、CPU42は、単にアイドル状態またはオフ状態に入ることができる。初期化がファームウェア更新または他の保守オペレーションに対応する場合、CPU42は、その代わりにリセットまたはリブートすることができ、その通常オペレーションに従ってフラッシュメモリ55からのアプリケーションプログラムの実行を開始する(すなわち判定75がYES)。本明細書を参照した当業者が望みの通りに次のオペレーションのシーケンスを容易に実施するであろうことが企図される。
上述のように、上述のアーキテクチャおよび方法に対する様々な代替実施形態が、本発明としての使用および本発明に関連しての使用に適している。例えば、フラッシュメモリコントローラ回路を含む、システム・オン・チップまたは他の大規模システム統合の特定のアーキテクチャは、特定の応用例に応じて非常に広範に変化することができる。例えば、本発明の好ましい実施形態のバス構造およびインターフェース構成は、システム設計者の望む通りに任意の数の代替形態を取ることができる。同様に、そのような統合システムの特定の応用例は、上述の例示的DAPを超えて、ほんの数例を挙げれば、汎用または特殊目的コンピューティングシステム、ポータブルオーディオおよびビデオプレーヤおよびレコーダ、ワイヤレス(または有線)電話ハンドセットおよびシステム、在庫または配送制御のために使用されるようなポータブル特殊目的システムなどのシステムを含む多数の形態のうちの任意の1つを取ることもできる。フラッシュメモリ資源の初期化に関係する特定のタスクは、本発明の好ましい実施形態に関連して上記で説明したものよりも多くのタスクまたは少ないタスク(あるいは実際には完全に異なるタスク)を含むことができる。上記およびその他の代替実施形態が、特許請求された本発明の範囲内にあることを、本明細書を参照した当業者は容易に理解するであろうことが企図される。
本発明の好ましい実施形態によれば、フラッシュメモリ資源は、システム・オン・チップアーキテクチャを利用する高度に統合されたデジタルシステムで、フラッシュメモリの初期化のための特別なインターフェースおよびテスト装置を設けるかなりのコストを招くことなく、プログラムおよびデータのディスク代用品および他の不揮発性バルクストレージとして有用なものとなる可能性がある。むしろ、本発明によれば、従来型ホストコンピュータまたはテスト装置は、システム・オン・チップによって既に提供されている従来型標準インターフェース技術を使用して、統合フラッシュメモリサブシステムコントローラと通信することができ、フラッシュメモリ資源を効率的かつ容易に初期化する。本発明の結果として開発時間および製造費用が最小限に抑えられると共に、最終的システムの構築、動作、および管理での多大の柔軟性が得られる。
本発明をその好ましい実施形態に従って説明したが、もちろん、本発明の利点および特典を得る、こうした実施形態の修正形態および代替実施形態が、本明細書および図面を参照した当業者には明らかとなるであろうことが企図される。そのような修正形態および代替実施形態が本明細書で特許請求される本発明の範囲内にあることが企図される。
従来型フラッシュメモリサブシステムのブロック形式の電気的図である。 図1のフラッシュメモリサブシステムを初期化する従来型システムのブロック形式の電気的図である。 フラッシュメモリを使用し、フラッシュメモリを初期化する従来型の望ましくない方式を含む、推測されるシステム・オン・チップ(SOC)のブロック形式の電気的図である。 システム・オン・チップ(SOC)アーキテクチャに従って構築され、フラッシュメモリを初期化する資源を含む本発明の好ましい実施形態によるフラッシュメモリを使用するデジタルシステムのブロック形式の電気的図である。 本発明の好ましい実施形態によるフラッシュメモリ資源の初期化を実施する際の図4のシステムの動作を示す流れ図である。 本発明の好ましい実施形態による、図4のシステムのフラッシュメモリ資源内のユーザメモリスペースおよび予約済みメモリスペースを示すメモリマップ図である。 本発明の好ましい実施形態による、ホストシステムとフラッシュメモリ資源およびサブシステムコントローラとの間のシステム・オン・チップを介して通信チャネルを開くことを示す図4のシステムのブロック形式の電気的図である。

Claims (13)

  1. 中央演算処理装置と、メモリサブシステムコントローラと、外部インターフェースと を備えるシステムオンチップ(SOC)集積回路と、及び
    前記メモリサブシステムコントローラに結合された1つまたは複数の不揮発性メモリアレイと、
    を備えるデジタルシステムであって、
    前記中央演算処理装置が、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐しているかどうかを判定するように前記1つまたは複数の不揮発性メモリアレイに照会し、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記中央演算処理装置に初期化命令を前記外部インターフェースを介して前記メモリサブシステムコントローラへダウンロードさせ、前記1つまたは複数の不揮発性メモリアレイを初期化するための初期化命令を実行するようにプログラムされるデジタルシステム。
  2. 前記中央演算処理装置に結合され、ダウンロードした前記実行可能命令を格納するシステムランダムアクセスメモリをさらに備える請求項1に記載のデジタルシステム。
  3. ダウンロードした前記実行可能命令が、前記外部インターフェースと前記メモリサブシステムコントローラとの間の通信チャネルを開くために中央演算処理装置によって実行可能な1つまたは複数の命令のシーケンスを含む請求項2に記載のデジタルシステム。
  4. 前記中央演算処理装置に結合され、前記中央演算処理装置によって実行可能なブートシーケンス命令を格納するシステム読取り専用メモリであって、前記ブートシーケンス命令が、アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐しているかどうかを判定するように前記1つまたは複数の不揮発性メモリアレイに照会する命令を含むシステム読取り専用メモリをさらに備える請求項1に記載のデジタルシステム。
  5. 前記ブートシーケンス命令が、アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記外部インターフェースを介して実行可能命令をダウンロードする命令をさらに含む請求項4に記載のデジタルシステム。
  6. 前記中央演算処理装置がさらに、アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記システム読取り専用メモリから前記初期化命令を取り出すようにプログラムされる請求項4に記載のデジタルシステム。
  7. 前記外部インターフェースが、業界標準インターフェースプロトコルに従って構築される請求項1に記載のデジタルシステム。
  8. 前記1つまたは複数の不揮発性メモリアレイが1つまたは複数のフラッシュメモリアレイを含む請求項1に記載のデジタルシステム。
  9. 前記システム集積回路が、
    前記中央演算処理装置に前記メモリサブシステムコントローラを結合するシステムバスと、
    前記メモリサブシステムコントローラのインターフェースに前記システムバスを結合するインターフェース回路であって、前記メモリサブシステムコントローラの前記インターフェースが標準フラッシュメモリインターフェースに対応するインターフェース回路と
    をさらに備える請求項8に記載のデジタルシステム。
  10. 前記システム集積回路に結合された少なくとも1つのペリフェラル機能をさらに備える請求項1に記載のシステム。
  11. 前記少なくとも1つのペリフェラル機能が、
    オーディオ出力インターフェースを含む請求項10に記載のシステム。
  12. 前記少なくとも1つのペリフェラル機能が、
    ユーザ入力要素と、
    ディスプレイと
    を含む請求項10に記載のシステム。
  13. 中央演算処理装置と、メモリサブシステムコントローラと、外部インターフェースとを備えるシステムオンチップ(SOC)集積回路と、及び
    前記メモリサブシステムコントローラに結合された1つまたは複数の不揮発性メモリアレイと、
    を備えるデジタルシステムにおける前記中央演算処理装置をプログラムする方法であって、
    前記中央演算処理装置が、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐しているかどうかを判定するように前記1つまたは複数の不揮発性メモリアレイに照会し、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記中央演算処理装置に初期化命令を前記外部インターフェースを介して前記メモリサブシステムコントローラへダウンロードさせ、前記1つまたは複数の不揮発性メモリアレイを初期化するための初期化命令を実行するようにプログラムされる方法。
JP2012177054A 2005-10-13 2012-08-09 組込みコントローラを介するフラッシュストレージの初期化 Pending JP2012234568A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/250,094 US7640424B2 (en) 2005-10-13 2005-10-13 Initialization of flash storage via an embedded controller
US11/250,094 2005-10-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008535749A Division JP5173818B2 (ja) 2005-10-13 2006-10-12 組込みコントローラを介するフラッシュストレージの初期化

Publications (1)

Publication Number Publication Date
JP2012234568A true JP2012234568A (ja) 2012-11-29

Family

ID=37897344

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008535749A Active JP5173818B2 (ja) 2005-10-13 2006-10-12 組込みコントローラを介するフラッシュストレージの初期化
JP2012177054A Pending JP2012234568A (ja) 2005-10-13 2012-08-09 組込みコントローラを介するフラッシュストレージの初期化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008535749A Active JP5173818B2 (ja) 2005-10-13 2006-10-12 組込みコントローラを介するフラッシュストレージの初期化

Country Status (7)

Country Link
US (2) US7640424B2 (ja)
EP (2) EP2053501A3 (ja)
JP (2) JP5173818B2 (ja)
KR (1) KR20080075110A (ja)
CN (1) CN101313287B (ja)
TW (1) TWI408597B (ja)
WO (1) WO2007044926A2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071973A1 (en) * 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
TWI321279B (en) * 2005-07-20 2010-03-01 Incomm Technologies Co Ltd Memory device and associated method
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
JP2008204582A (ja) * 2007-02-22 2008-09-04 Elpida Memory Inc 不揮発性ram
US20080294838A1 (en) * 2007-05-25 2008-11-27 Agere Systems Inc. Universal boot loader using programmable on-chip non-volatile memory
US7624211B2 (en) * 2007-06-27 2009-11-24 Micron Technology, Inc. Method for bus width negotiation of data storage devices
JP2009037456A (ja) 2007-08-02 2009-02-19 Nec Electronics Corp マイクロコントローラおよびその制御方法
US9824006B2 (en) 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US11237956B2 (en) * 2007-08-13 2022-02-01 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US7925877B2 (en) * 2007-09-27 2011-04-12 Texas Instruments Incorporated Method, system and apparatus for providing a boot loader of an embedded system
US20090088876A1 (en) * 2007-09-28 2009-04-02 Conley Kevin M Portable, digital media player and associated methods
US7870446B2 (en) * 2008-02-29 2011-01-11 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
CN101571807A (zh) * 2008-04-28 2009-11-04 鸿富锦精密工业(深圳)有限公司 具有固件的系统及其启动方法
US8302182B2 (en) * 2008-09-01 2012-10-30 Mediatek Inc. Embedded system with authentication, and associated authentication method
WO2010059146A1 (en) * 2008-11-24 2010-05-27 Hewlett-Packard Development Company L.P. Wear leveling memory cells
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8788850B1 (en) * 2009-01-22 2014-07-22 Marvell International Ltd. Systems and methods for using a security circuit to monitor a voltage of an integrated circuit to counter security threats to the integrated circuit
US8176232B2 (en) * 2009-05-11 2012-05-08 Micron Technology, Inc. Dedicated interface to factory program phase-change memories
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
CN101996168B (zh) * 2009-08-25 2013-08-07 中兴通讯股份有限公司 格式化闪存的方法和装置
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US9239806B2 (en) * 2011-03-11 2016-01-19 Micron Technology, Inc. Systems, devices, memory controllers, and methods for controlling memory
US9082474B2 (en) 2011-04-21 2015-07-14 Micron Technology, Inc. Method and apparatus for providing preloaded non-volatile memory content
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
CN102622249B (zh) * 2012-03-05 2015-12-02 山东华芯半导体有限公司 一种防止cpu自锁的安全启动方法
CN103376948B (zh) * 2012-04-30 2016-08-31 联发科技股份有限公司 触控器芯片、电子装置以及控制触摸屏的方法
CN104871145A (zh) * 2012-12-20 2015-08-26 马维尔国际贸易有限公司 网络设备中的存储器共享
KR20140083530A (ko) * 2012-12-26 2014-07-04 삼성전자주식회사 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
US9231921B2 (en) * 2013-08-20 2016-01-05 Janus Technologies, Inc. System and architecture for secure computer devices
US9632702B2 (en) 2014-10-15 2017-04-25 International Business Machines Corporation Efficient initialization of a thinly provisioned storage array
CN104572180B (zh) * 2014-12-19 2018-06-26 沈阳东软医疗系统有限公司 一种嵌入式设备的固件升级方法及嵌入式系统
US9734117B2 (en) * 2015-01-26 2017-08-15 Western Digital Technologies, Inc. Data storage device and method for integrated bridge firmware to be retrieved from a storage system on chip (SOC)
US10218166B2 (en) 2015-03-03 2019-02-26 Sandisk Technologies Llc System and method for dynamic monitoring of controller current consumption
KR20160109207A (ko) * 2015-03-10 2016-09-21 삼성전자주식회사 메모리의 초기화 및 펌 웨어의 업데이트를 위한 방법 및 전자 장치
KR102298661B1 (ko) 2015-04-30 2021-09-07 삼성전자주식회사 저장 장치 및 그것의 초기화 방법
CN104965660B (zh) * 2015-06-09 2018-05-18 山东超越数控电子有限公司 一种在平板上实现三态键的方法
JP2017138781A (ja) * 2016-02-03 2017-08-10 Necプラットフォームズ株式会社 ディスクアレイコントローラ、ストレージシステム、方法、及び、プログラム
EP3433751A4 (en) * 2016-08-22 2019-12-11 Hewlett-Packard Development Company, L.P. INFORMATION OF CONNECTED DEVICES
US10223094B2 (en) * 2016-09-30 2019-03-05 Intel Corporation Initializing a system on a chip
CN109690465B (zh) * 2016-12-07 2020-10-09 华为技术有限公司 一种存储设备管理方法及用户终端
CN107678686B (zh) * 2017-09-19 2020-07-14 山东存储之翼电子科技有限公司 基于硬件实现闪存的ftl功能的方法及其数据存储装置
WO2020039298A1 (en) * 2018-08-11 2020-02-27 Inventrom Private Limited System and method for updating flash memory of microcontroller
KR102601143B1 (ko) * 2018-10-29 2023-11-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11157624B2 (en) * 2019-08-14 2021-10-26 Silicon Motion, Inc. Scheme of using electronic device to activate mass production software tool to initialize memory device including flash memory controller and flash memory
US11237838B2 (en) 2020-01-02 2022-02-01 Western Digital Technologies, Inc. Storage system and method for enabling a direct accessible boot block in a memory die
US11144223B2 (en) * 2020-01-21 2021-10-12 Silicon Motion, Inc. Flash memory initialization scheme for writing boot up information into selected storage locations averagely and randomly distributed over more storage locations and correspondingly method for reading boot up information from selected storage locations
US11483137B2 (en) 2020-01-22 2022-10-25 Micron Technology, Inc. Dynamic command extension for a memory sub-system
CN111782290B (zh) * 2020-06-02 2023-10-27 青岛信芯微电子科技股份有限公司 一种数据处理方法及设备
US11714925B2 (en) * 2020-12-09 2023-08-01 Micron Technology, Inc. Assuring integrity and secure erasure of critical security parameters
KR20220101502A (ko) 2021-01-11 2022-07-19 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
WO2022204911A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory device with embedded firmware repairing mechanism
US11922049B2 (en) 2021-08-20 2024-03-05 Micron Technology, Inc. Trim values for multi-plane operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293367A (ja) * 1999-04-02 2000-10-20 Sharp Corp 不揮発性メモリ内蔵マイクロコンピュータ

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5175831A (en) * 1989-12-05 1992-12-29 Zilog, Inc. System register initialization technique employing a non-volatile/read only memory
US5270979A (en) * 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) * 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5712180A (en) * 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5428621A (en) * 1992-09-21 1995-06-27 Sundisk Corporation Latent defect handling in EEPROM devices
JPH06139131A (ja) * 1992-10-30 1994-05-20 Toshiba Corp メモリカード装置
JP3290041B2 (ja) * 1995-02-17 2002-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 多層プリント基板、多層プリント基板の製造方法
JPH10116187A (ja) * 1996-10-11 1998-05-06 Mitsubishi Electric Corp マイクロコンピュータ
US6247084B1 (en) * 1997-10-08 2001-06-12 Lsi Logic Corporation Integrated circuit with unified memory system and dual bus architecture
US6009496A (en) * 1997-10-30 1999-12-28 Winbond Electronics Corp. Microcontroller with programmable embedded flash memory
US6286097B1 (en) * 1998-08-06 2001-09-04 Via Technologies, Inc. Computer chipset for accessing a conventional read only memory (ROM)
US6401198B1 (en) * 1999-03-09 2002-06-04 Texas Instruments Incorporated Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
US6487655B1 (en) * 1999-04-29 2002-11-26 Intel Corporation Computer system formed with a processor and a system board provided with complementary initialization support
US6151248A (en) * 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
US6434697B1 (en) * 1999-10-06 2002-08-13 Micron Technology, Inc. Apparatus for savings system configuration information to shorten computer system initialization time
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
TW460786B (en) * 1999-12-09 2001-10-21 Via Tech Inc System to reprogram the content value of the flash memory of the peripheral device and the method thereof
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6920553B1 (en) * 2000-04-28 2005-07-19 Intel Corporation Method and apparatus for reading initial boot instructions from a bootable device connected to the USB port of a computer system
US6675255B1 (en) * 2000-06-30 2004-01-06 Micron Technology, Inc. Device initialize command for a synchronous memory
US6785765B1 (en) 2000-06-30 2004-08-31 Micron Technology, Inc. Status register to improve initialization of a synchronous memory
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
WO2002044892A2 (en) 2000-11-28 2002-06-06 4Thpass Inc. Method and system for maintaining and distributing wireless applications
US6877063B1 (en) * 2000-12-22 2005-04-05 Xilinx, Inc. Multiple memory aliasing for a configurable system-on-chip
CN1122281C (zh) * 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
US6658633B2 (en) * 2001-10-03 2003-12-02 International Business Machines Corporation Automated system-on-chip integrated circuit design verification system
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US7234052B2 (en) * 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
US6795872B2 (en) * 2002-05-09 2004-09-21 Renesas Technology America, Inc. Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed
US20040139307A1 (en) * 2003-01-09 2004-07-15 Barnett Philip C. Method and apparatus for initializing a semiconductor circuit from an external interface
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2005085080A (ja) * 2003-09-10 2005-03-31 Matsushita Electric Ind Co Ltd データ記録装置
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
TWI240203B (en) * 2004-02-25 2005-09-21 Via Tech Inc A device which updates firmware by a memory card
US7406559B2 (en) * 2004-08-23 2008-07-29 Macronix International Co., Ltd. In-circuit programming architecture with processor, delegable flash controller, and code generator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293367A (ja) * 1999-04-02 2000-10-20 Sharp Corp 不揮発性メモリ内蔵マイクロコンピュータ

Also Published As

Publication number Publication date
EP1938200B1 (en) 2013-11-20
WO2007044926A2 (en) 2007-04-19
TW200745932A (en) 2007-12-16
EP2053501A3 (en) 2009-09-16
US9245634B2 (en) 2016-01-26
EP2053501A2 (en) 2009-04-29
WO2007044926A3 (en) 2007-05-31
CN101313287B (zh) 2013-05-08
CN101313287A (zh) 2008-11-26
TWI408597B (zh) 2013-09-11
US20100070693A1 (en) 2010-03-18
JP2009512076A (ja) 2009-03-19
US20070088940A1 (en) 2007-04-19
JP5173818B2 (ja) 2013-04-03
KR20080075110A (ko) 2008-08-14
EP1938200A2 (en) 2008-07-02
US7640424B2 (en) 2009-12-29

Similar Documents

Publication Publication Date Title
JP5173818B2 (ja) 組込みコントローラを介するフラッシュストレージの初期化
US7676640B2 (en) Flash memory controller controlling various flash memory cells
US8145831B2 (en) Memory system and controller with mode for direct access memory
US7908466B2 (en) Method and apparatus for booting a microprocessor system using boot code stored on a serial flash memory array having a random-access interface
US7890732B2 (en) Memory card and semiconductor device
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
US6754765B1 (en) Flash memory controller with updateable microcode
US20060075395A1 (en) Flash card system
US8386694B2 (en) Memory device, its access method, and memory system
US20110066837A1 (en) Single-Chip Flash Device with Boot Code Transfer Capability
US10860247B2 (en) Data writing method and storage controller
US20060184724A1 (en) NAND flash memory system architecture
KR20070077463A (ko) 컴퓨터 시스템 초기화 방법과 초기화 코드 로딩 방법 및dram 디바이스와 이를 포함하는 내장형 시스템
KR20080084082A (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
JPWO2008117520A1 (ja) メモリコントローラ、不揮発性メモリシステムおよびホスト装置
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
WO2000067132A1 (en) Combination ata/linear flash memory device
KR20110078171A (ko) 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법
CN114237514A (zh) 区块管理方法、存储器控制器和存储器存储装置
KR100705341B1 (ko) 병렬형 플래시 인터페이스를 갖는 직렬형 플래시 메모리장치를 업데이트하는 방법
CN112540932A (zh) 存储控制器以及写入辅助方法
CN115145488A (zh) 部分抹除管理方法、存储装置及存储器控制电路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130425

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131002