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

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

Info

Publication number
JP5173818B2
JP5173818B2 JP2008535749A JP2008535749A JP5173818B2 JP 5173818 B2 JP5173818 B2 JP 5173818B2 JP 2008535749 A JP2008535749 A JP 2008535749A JP 2008535749 A JP2008535749 A JP 2008535749A JP 5173818 B2 JP5173818 B2 JP 5173818B2
Authority
JP
Japan
Prior art keywords
flash memory
volatile memory
initialization
soc
memory arrays
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.)
Active
Application number
JP2008535749A
Other languages
English (en)
Other versions
JP2009512076A (ja
Inventor
コンレイ,ケヴィン・エム
Original Assignee
サンディスク・テクノロジーズ・インコーポレーテッド
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 サンディスク・テクノロジーズ・インコーポレーテッド filed Critical サンディスク・テクノロジーズ・インコーポレーテッド
Publication of JP2009512076A publication Critical patent/JP2009512076A/ja
Application granted granted Critical
Publication of JP5173818B2 publication Critical patent/JP5173818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

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 (11)

  1. 中央演算処理装置と、前記中央演算処理装置と別個の組み込み不揮発性メモリサブシステムコントローラと、外部インターフェースとを含むシステムオンチップ(SOC)集積回路からなるデジタルシステムの不揮発性メモリサブシステムを初期化する方法であって、
    前記デジタルシステムの不揮発性メモリサブシステムの初期化シーケンスが、
    前記SOC集積回路の中央演算処理装置をパワーアップするステップと、
    前記中央演算処理装置で、システム読取り専用メモリに格納された少なくとも1つのブートシーケンス命令を実行して、アプリケーションプログラムが常駐しているかどうかを検出するように1つまたは複数の不揮発性メモリアレイに照会するステップと、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記外部インターフェースを介して1つまたは複数の初期化コマンドをダウンロードするステップと、
    前記SOC集積回路の外部インターフェースと前記SOC集積回路の組み込み不揮発性メモリサブシステムコントローラとの間の通信チャネルを開くステップと、
    前記外部インターフェースに印加され、前記通信チャネルを介して前記組込み不揮発性メモリサブシステムコントローラに通信される初期化コマンドに従って、前記デジタルシステム内の前記1つまたは複数の不揮発性メモリアレイを初期化するステップと
    を含む方法。
  2. 前記初期化シーケンスを実行するするステップが、前記SOC集積回路の中央演算処理装置を操作して、システムプログラムメモリに格納された前記1つまたは複数の初期化コマンドを実行するステップを含む請求項1に記載の方法。
  3. 前記1つまたは複数の不揮発性メモリアレイを初期化するステップが、
    ファイルシステムに従って前記1つまたは複数の不揮発性メモリアレイをフォーマットするステップを含む請求項1に記載の方法。
  4. 前記1つまたは複数の不揮発性メモリアレイを初期化するステップが、
    前記中央演算処理装置によって実行可能なアプリケーションソフトウェアプログラムを前記1つまたは複数の不揮発性メモリアレイにロードするステップをさらに含む請求項に記載の方法。
  5. 前記1つまたは複数の不揮発性メモリアレイを初期化するステップが、
    アプリケーションデータを前記1つまたは複数の不揮発性メモリアレイに事前ロードするステップをさらに含む請求項に記載の方法。
  6. 前記1つまたは複数の不揮発性メモリアレイを初期化するステップが、
    前記組込み不揮発性メモリサブシステムコントローラ用のシステムファームウェアを更新するステップを含む請求項1に記載の方法。
  7. 前記1つまたは複数の初期化コマンドをダウンロードするステップが、
    前記1つまたは複数の初期化コマンドをシステムランダムアクセスメモリに格納するステップを含み、
    前記不揮発性メモリサブシステムの初期化シーケンスを実行するステップが、
    前記システムランダムアクセスメモリから前記1つまたは複数の初期化コマンドを取り出すステップと、
    取り出した前記1つまたは複数の初期化コマンドを実行するステップとを含む請求項2に記載の方法。
  8. アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していると判定したことに応答して、前記アプリケーションプログラムを前記中央演算処理装置で実行するステップをさらに含む請求項に記載の方法。
  9. 前記1つまたは複数の不揮発性メモリアレイが1つまたは複数のフラッシュメモリアレイを含む請求項1に記載の方法。
  10. 前記外部インターフェースにホストシステムを接続するステップをさらに含み、
    前記初期化するステップが、ホストシステムによって前記外部インターフェースを介して実施される請求項1に記載の方法。
  11. 中央演算処理装置と、前記中央演算処理装置と別個の組み込み不揮発性メモリサブシステムコントローラと、外部インターフェースとを含むシステムオンチップ(SOC)集積回路からなるデジタルシステムの不揮発性メモリサブシステムを初期化するシステムであって、
    前記デジタルシステムの不揮発性メモリサブシステムの初期化システムが、
    前記SOC集積回路の中央演算処理装置をパワーアップする手段と、
    前記中央演算処理装置で、システム読取り専用メモリに格納された少なくとも1つのブートシーケンス命令を実行して、アプリケーションプログラムが常駐しているかどうかを検出するように1つまたは複数の不揮発性メモリアレイに照会する手段と、
    アプリケーションプログラムが前記1つまたは複数の不揮発性メモリアレイ内に常駐していないと判定したことに応答して、前記外部インターフェースを介して1つまたは複数の初期化コマンドをダウンロードする手段と、
    前記SOC集積回路の外部インターフェースと前記SOC集積回路の組み込み不揮発性メモリサブシステムコントローラとの間の通信チャネルを開く手段と、
    前記外部インターフェースに印加され、前記通信チャネルを介して前記組込み不揮発性メモリサブシステムコントローラに通信される初期化コマンドに従って、前記デジタルシステム内の前記1つまたは複数の不揮発性メモリアレイを初期化する手段と、
    を含むシステム。
JP2008535749A 2005-10-13 2006-10-12 組込みコントローラを介するフラッシュストレージの初期化 Active JP5173818B2 (ja)

Applications Claiming Priority (3)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2009512076A JP2009512076A (ja) 2009-03-19
JP5173818B2 true JP5173818B2 (ja) 2013-04-03

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 After (1)

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

Country Status (7)

Country Link
US (2) US7640424B2 (ja)
EP (2) EP1938200B1 (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 (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US20080071973A1 (en) * 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
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 マイクロコントローラおよびその制御方法
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
US11237956B2 (en) * 2007-08-13 2022-02-01 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US9824006B2 (en) * 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
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プラットフォームズ株式会社 ディスクアレイコントローラ、ストレージシステム、方法、及び、プログラム
WO2018038703A1 (en) * 2016-08-22 2018-03-01 Hewlett-Packard Development Company, L.P. Connected devices information
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 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
CN113228189B (zh) * 2021-03-30 2024-09-03 长江存储科技有限责任公司 具有嵌入式固件修复机制的存储器件
US11967391B2 (en) * 2021-08-06 2024-04-23 SK Hynix Inc. System and method for testing multicore SSD firmware based on preconditions generation
US11922049B2 (en) * 2021-08-20 2024-03-05 Micron Technology, Inc. Trim values for multi-plane operations

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
DE69033438T2 (de) 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
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
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5712180A (en) 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
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
JP3727485B2 (ja) * 1999-04-02 2005-12-14 シャープ株式会社 不揮発性メモリ内蔵マイクロコンピュータ
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
JP2004530958A (ja) 2000-11-28 2004-10-07 フォースパス インコーポレイテッド 無線アプリケーションを保持および配信する方法およびシステム
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

Also Published As

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

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
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
US7890732B2 (en) Memory card and semiconductor device
US9063848B2 (en) NAND flash memory system architecture
US20060075395A1 (en) Flash card system
US8386694B2 (en) Memory device, its access method, and memory system
US7783857B2 (en) Data management apparatus and method, non-volatile memory, storage device having the non-volatile memory and data processing system
US11042365B2 (en) Firmware updating method and electronic device using the same
KR20070077463A (ko) 컴퓨터 시스템 초기화 방법과 초기화 코드 로딩 방법 및dram 디바이스와 이를 포함하는 내장형 시스템
KR20080084082A (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
JPWO2008117520A1 (ja) メモリコントローラ、不揮発性メモリシステムおよびホスト装置
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
WO2000067132A1 (en) Combination ata/linear flash memory device
CN114237514A (zh) 区块管理方法、存储器控制器和存储器存储装置
CN112988076A (zh) 快闪存储器控制方法、存储装置及控制器
CN112394883A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
CN110764947A (zh) 数据写入方法以及存储控制器
CN112540932A (zh) 存储控制器以及写入辅助方法
CN115145488A (zh) 部分抹除管理方法、存储装置及存储器控制电路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120213

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120229

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120920

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121227

R150 Certificate of patent or registration of utility model

Ref document number: 5173818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250