(57)【特許請求の範囲】
【請求項１】
メモリ装置をブートするためのメモリ装置上に格納されたファームウェアに代わり、ホスト装置の揮発性メモリに記憶されたホスト記憶ファームウェアを選択的に適用する方法であって、
メモリ装置をブートするためのインストラクションを、当該メモリ装置のコントローラによりアクセス可能な不揮発性メモリを含むメモリ装置において受け取る処理と、
前記メモリ装置をブートするためのインストラクションを受け取るのに応答して、前記メモリ装置が前記ホスト記憶ファームウェアを取得する準備ができていることを前記ホスト装置に送信する処理と、
ホスト装置からの前記ホスト記憶ファームウェアを前記メモリ装置によって取得する処理であって、ホスト装置は、前記メモリ装置とは別個のもので、前記メモリ装置に通信結合され、そして前記ホスト記憶ファームウェアは、前記ホスト装置の揮発性メモリ内に格納されている複数の異なるホストファームウェアの一つであり、且つ、メモリ装置上に格納されたファームウェアに代わり、前記メモリ装置をブートするために用いられる当該処理と、
前記ホスト装置の揮発性メモリから得られる前記ホスト記憶ファームウェアを使用して前記メモリ装置をブートする処理であって、前記メモリ装置は、前記ホスト装置とは別個にブートし、そして前記ホスト装置は、前記メモリ装置のメモリコントローラとの通信により得られる前記不揮発性メモリ内のデータ又はインストラクションを使用して動作を実行する当該処理と、
を含む方法。
【請求項２】
メモリ装置をブートするための前記インストラクションは、前記ホスト装置から受け取られ、そして前記メモリ装置が前記ホスト装置からのホスト記憶ファームウェアを使用してブートすると共に、前記メモリ装置の前記不揮発性メモリに記憶されたファームウェアから、ブートするインストラクションを無効にするよう命令する、請求項１に記載の方法。
【請求項３】
前記メモリ装置が前記ホスト装置からのホスト記憶ファームウェアを使用してブートした後に、前記ホスト記憶ファームウェアを使用して前記メモリ装置において１つ以上の動作を実行することを更に含む、請求項１に記載の方法。
【請求項４】
前記ホスト記憶ファームウェアは、前記コントローラが前記不揮発性メモリにおいて読み取り、書き込み及び消去動作を実行するようにさせるインストラクションを有する動作ファームウェアを含み、そして前記メモリ装置において実行される１つ以上の動作は、読み取り、書き込み及び消去動作の１つ以上を含む、請求項３に記載の方法。
【請求項５】
前記動作ファームウェアは、更に、前記コントローラが前記不揮発性メモリにおいてメモリ管理動作を実行するようにさせるインストラクションを含む、請求項４に記載の方法。
【請求項６】
前記メモリ管理動作の１つ以上は、ウェアレベリング動作を含む、請求項５に記載の方法。
【請求項７】
前記ホスト記憶ファームウェアは、前記コントローラが前記メモリ装置においてデバッグ動作を実行するようにさせるインストラクションを有するデバッグファームウェアを含み、
前記メモリ装置において実行される１つ以上の動作は、前記デバッグ動作の１つ以上を含む、請求項３に記載の方法。
【請求項８】
前記ホスト記憶ファームウェアは、前記コントローラが、少なくとも前記不揮発性メモリを含むメモリ装置のコンポーネントのインストール及び動作をテストするようにさせるインストラクションを有する製造ファームウェアを含み、前記メモリ装置において実行される１つ以上の動作は、前記メモリ装置の１つ以上のコンポーネントのインストール及び動作をテストするための１つ以上の動作を含む、請求項３に記載の方法。
【請求項９】
前記不揮発性メモリは、フラッシュメモリを含む、請求項１に記載の方法。
【請求項１０】
メモリ装置をブートするためのメモリ装置上に格納されたファームウェアに代わり、ホスト装置の揮発性メモリに記憶されたホスト記憶ファームウェアを選択的に適用する方法であって、
ホスト装置からの複数のホスト記憶ファームウェアより選択した一つを使用してブートするようにメモリ装置に命令するブートコマンドをホスト装置によりメモリ装置に与える処理であって、前記ホスト装置は、メモリ装置とは別個のもので、メモリ装置に通信結合され、そしてメモリ装置は、不揮発性メモリを含み、そして選択された前記ホスト記憶ファームウェアは、前記ホスト装置のブートアップ中に前記ホスト装置の揮発性メモリ内にロードされ、且つ、メモリ装置上に格納されたファームウェアに代わり、前記メモリ装置をブートするために用いられる当該処理と、
前記メモリ装置が前記ホスト装置から、選択された前記ホスト記憶ファームウェア受け取る準備ができたという指示を前記ホスト装置において受け取る処理と、
前記指示を受け取るのに応答して、前記ホスト装置により前記メモリ装置へファームウェアを送出する処理であって、前記メモリ装置へファームウェアを送出すると、前記メモリ装置は、選択された前記ホスト記憶ファームウェアを使用してブートするようにされ、前記メモリ装置は、前記ホスト装置とは別個にブートする当該処理と、
を含む方法。
【請求項１１】
前記ホスト記憶ファームウェアは、前記メモリ装置のコントローラが前記メモリ装置の前記不揮発性メモリにおいて読み取り、書き込み及び消去動作を実行するようにさせるインストラクションを有する動作ファームウェアを含む、請求項１０に記載の方法。
【請求項１２】
前記複数のホスト記憶ファームウェアは、前記メモリ装置のコントローラが前記メモリ装置においてデバッグ動作を実行するようにさせるインストラクションを有するデバッグファームウェアを含む、請求項１０に記載の方法。
【請求項１３】
前記複数のホスト記憶ファームウェアは、前記メモリ装置のコントローラが、少なくとも前記不揮発性メモリを含むメモリ装置のコンポーネントのインストール及び動作をテストするようにさせるインストラクションを有する製造ファームウェアを含む、請求項１０に記載の方法。
【請求項１４】
前記ホスト装置に対してアクセスできる複数のメモリ装置のうちの１つに記憶されたデータにアクセスする要求に応答して、その要求されたデータが前記メモリ装置に記憶されていることを決定し、
前記要求されたデータが前記メモリ装置に記憶されているという決定に応答して、前記メモリ装置に前記ブートコマンドが与えられる、請求項１０に記載の方法。
【請求項１５】
不揮発性メモリと、
メモリ装置をホスト装置に通信結合するホストインターフェイスとを備え、
前記ホスト装置は、当該ホスト装置の揮発性メモリに記憶されたファームウェアを含み、且つ、前記不揮発性メモリ及びメモリコントローラをＯＮ及びＯＦＦに動作させ、
前記不揮発性メモリがＯＦＦに動作されているときでさえ、前記不揮発性メモリによる使用のために、前記揮発性メモリ内に前記ファームウェアを維持し、
前記メモリコントローラは、前記不揮発性メモリにおいてメモリ動作を実行するように構成され且つ前記ホストインターフェイスを通して前記ホスト装置と通信するようにされ、
前記メモリコントローラは、更に、
前記ホスト装置から前記ホストインターフェイスを通して前記メモリ装置をブートするインストラクションを受け取り、
前記ブートするインストラクションを受け取るのに応答して、前記メモリ装置が前記ホスト記憶ファームウェアを取得する準備ができていることを前記ホスト装置に送信し、
前記ホスト装置から前記ファームウェアを取得し、そして
前記ホスト装置からのファームウェアを使用して前記メモリ装置をブートする、
ように構成され、前記メモリ装置は、前記ホスト装置とは別個にブートし、そして前記ホスト装置は、前記ホストインターフェイスを経て前記メモリ装置のメモリコントローラとの通信により得られる前記不揮発性メモリ内のデータ又はインストラクションを使用して動作を実行するようにされた、メモリ装置。
【請求項１６】
前記ファームウェアは、前記メモリコントローラが前記不揮発性メモリにおいて読み取り、書き込み及び消去動作を実行するようにさせるインストラクションを有する動作ファームウェアを含む、請求項１５に記載のメモリ装置。
【請求項１７】
前記動作ファームウェアは、更に、前記メモリコントローラが前記不揮発性メモリにおいてメモリ管理動作を実行するようにさせるインストラクションを有する、請求項１６に記載のメモリ装置。
【請求項１８】
前記ファームウェアは、前記メモリコントローラが前記メモリ装置においてデバッグ動作を実行するようにさせるインストラクションを有するデバッグファームウェアを含む、請求項１５に記載のメモリ装置。
【請求項１９】
前記ファームウェアは、前記メモリコントローラが、少なくとも前記不揮発性メモリを含むメモリ装置のコンポーネントのインストール及び動作をテストするようにさせるインストラクションを有する製造ファームウェアを含む、請求項１５に記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストからフラッシュメモリを伴う装置のようなメモリ装置をブートすることに係る。
【背景技術】
【０００２】
フラッシュメモリ（例えば、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ）のような種々の形式の不揮発性メモリ（ＮＶＭ）は、大量記憶装置として使用することができる。例えば、消費者向け電子装置（例えば、ポータブルメディアプレーヤ）は、フラッシュメモリを使用して、音楽、ビデオ、画像、及び他のメディア又はタイプの情報を含むデータを記憶する。
【０００３】
メモリ装置は、該装置にローカル記憶された情報からブートするように構成される。例えば、メモリコントローラ（１つ以上のプロセッサ／マイクロプロセッサを伴う）を含むメモリ装置は、該メモリ装置のＮＶＭに記憶されたファームウェアを使用してブートすることができる。別の例では、「ロー(raw)」メモリ装置（メモリコントローラを含まないメモリ装置）は、該メモリ装置のＮＶＭに記憶されたトリム値を使用してブートすることができる。トリム値は、ローメモリ装置のレジスタにロードされ、そしてタイミング、パルスカウント、及び／又は印加電圧レベルのようなローメモリ装置の種々の動作を制御するためにローメモリ装置上の回路により使用される。
【発明の概要】
【０００４】
本書は、一般的に、ホスト装置からメモリ装置をブートする技術について述べる。ホスト装置は、１つ以上のメモリ装置のためのブート情報（例えば、ファームウェア、トリム値）を記憶し、そしてそのようなブート情報を、ホスト装置とメモリ装置との間の１つ以上の通信チャンネル（例えば、バス）を経てメモリ装置へ送ることができる。ブート情報は、メモリ装置をブートするための指示に応答して又はそのような指示に関連してホスト情報によりメモリ装置へ送られる。例えば、ホスト装置は、ブートコマンドをメモリ装置へ送り、その後に、メモリ装置がブート情報を受け取る準備ができたことを指示するメモリ装置からの信号に応答してメモリ装置へブート情報を送ることができる。別の例では、電源オフされたメモリ装置は、電源オンしてブートするようメモリ装置を促す信号を受け取ることができる。そのような指示に応答して、メモリ装置は、ホスト装置からのブート情報を要求し受け取ることができる。
【０００５】
１つの具現化において、方法は、メモリ装置をブートするためのインストラクションをメモリ装置において受け取ることを含み、メモリ装置は、メモリ装置のコントローラによりアクセス可能な不揮発性メモリを備え、そしてメモリ装置をブートするためのインストラクションを受け取るのに応答して、ホスト装置からのファームウェアをメモリ装置により取得することを更に含み、ホスト装置は、メモリ装置とは個別のもので、メモリ装置に通信結合される。又、この方法は、ホスト装置からのファームウェアを使用してメモリ装置をブートすることも含み、メモリ装置は、ホスト装置とは個別にブートし、そしてホスト装置は、不揮発性メモリに記憶された及びメモリ装置のメモリコントローラとの通信により得たデータ又はインストラクションを使用して動作を実行する。
【０００６】
別の具現化において、方法は、ホスト装置からのファームウェアを使用してブートするようにメモリ装置に命令するブートコマンドをホスト装置によりメモリ装置へ送ることを含み、ホスト装置は、メモリ装置とは個別のもので、メモリ装置に通信結合され、そしてメモリ装置は、不揮発性メモリを含む。又、この方法は、メモリ装置がホスト装置からのファームウェアを受け取る準備ができたという指示をホスト装置において受け取り、そしてその指示を受け取るのに応答して、ホスト装置によりファームウェアをメモリ装置へ送ることを含み、メモリ装置へファームウェアを送ることで、メモリ装置がファームウェアを使用してブートするようにさせ、メモリ装置は、ホスト装置とは個別にブートする。
【０００７】
別の具現化において、メモリ装置は、不揮発性メモリと、メモリ装置をホスト装置に通信結合するホストインターフェイスと、不揮発性メモリにおいてメモリ動作を実行するように構成され且つホストインターフェイスを通してホスト装置と通信するようにされたメモリコントローラとを備えている。メモリコントローラは、更に、ホスト装置からホストインターフェイスを通してメモリ装置をブートするインストラクションを受け取り、そのインストラクションを受け取るのに応答して、ホスト装置からファームウェアを取得し、そしてホスト装置からのファームウェアを使用してメモリ装置をブートするように構成され、メモリ装置は、ホスト装置とは個別にブートし、そしてホスト装置は、不揮発性メモリに記憶された及びホストインターフェイスを経てメモリ装置のメモリコントローラとの通信により得たデータ又はインストラクションを使用して動作を実行する。
【０００８】
別の具現化において、システムは、不揮発性メモリと、この不揮発性メモリにおいてメモリ動作を実行しそしてホストインターフェイスを通してホスト装置と通信するように構成されたメモリコントローラとを備えている。メモリコントローラは、更に、ホスト装置からホストインターフェイスを通してメモリ装置をブートするためのインストラクションを受け取り、そのインストラクションを受け取るのに応答して、ホスト装置からファームウェアを取得し、そしてホスト装置からのファームウェアを使用してメモリ装置をブートするように構成され、メモリ装置は、ホスト装置とは個別にブートし、そしてホスト装置は、不揮発性メモリに記憶された及びホストインターフェイスを経てメモリ装置のメモリコントローラとの通信により得たデータ又はインストラクションを使用して動作を実行する。
【０００９】
本明細書に述べる要旨の特定の実施形態は、次の効果の１つ以上を実現するために具現化される。メモリ装置のＮＶＭの消耗を減少することができる。例えば、メモリ装置は、電力消費を減少するために著しい頻度でオン及びオフにトグルし（例えば、使用しないときにオフにトグルし）、これは、装置を電源オンして装置をブートするたびにメモリ装置のブート情報を記憶するＮＶＭの部分にアクセスするようにさせる。このような頻繁なアクセスは、ＮＶＭを消耗させ、ＮＶＭの寿命を短縮させる。メモリ装置のＮＶＭからではなくホスト装置からブート情報を得ることにより、メモリ装置のＮＶＭの消耗を減少し、そしてメモリ装置のＮＶＭの寿命を延長することができる。
【００１０】
メモリ装置がブートする速度を高めて、メモリ装置に記憶されたデータにアクセスする遅延を最小にすることができる。例えば、メモリ装置のブート情報は、ホスト装置のＮＶＭに記憶され、そしてホスト装置が（例えば、それ自身のブート情報を使用して）ブートするときにホスト装置の揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））へロードされる。メモリ装置がオン及びオフにトグルされる間に、ホスト装置は、ブート情報を維持し、そしてブート情報をその揮発性メモリからメモリ装置へ送ることができる。ホスト装置の揮発性メモリからメモリ装置へのブート情報のこの転送は、メモリ装置がメモリ装置に対してローカルなＮＶＭからブート情報を読み取る場合より高速である。
【００１１】
メモリ装置の利用可能な記憶容量を増加すると共に、ホスト装置及び複数のメモリ装置を含むシステムの総記憶容量を増加することができる。例えば、メモリ装置のＮＶＭからホスト装置へブート情報を移動することにより、ブート情報を記憶していたメモリ装置のＮＶＭの記憶スペースは、他の情報（例えば、データ）を記憶するのに利用できるようになる。別の例では、複数のメモリ装置の各々がブート情報のローカルコピーを記憶するのではなく、ホスト装置が、複数のメモリ装置に共通のブート情報の単一コピーを記憶することができる。複数のメモリ装置にわたるブート情報の冗長な記憶を回避することにより、複数のメモリ装置を伴うシステムの総記憶容量を増加することができる。
【００１２】
メモリ装置が動作する仕方の更新及び変更は、ホスト装置によりメモリ装置に送られるブート情報を更新／変更することにより容易に行うことができる。例えば、メモリ装置でエラーに遭遇した場合には、ホスト装置は、エラーに遭遇したときに使用される動作ファームウェアではなく、（ホストによりメモリ装置へ送られる）デバッグファームウェアを使用して、メモリ装置をリブートさせることができる。デバッグファームウェアは、メモリ装置が種々のデバッグ動作を実行し（例えば、エラーログを発生し、エラーの原因を識別し）、そして取得したデバッグ情報をホスト装置へ送るようにさせる。ホスト装置は、種々の形式のファームウェア（例えば、動作ファームウェア、デバッグファームウェア、製造ファームウェア）を記憶し、そしてメモリ装置の状態（例えば、エラー遭遇、新たなハードウェアの最近のインストール、通常の動作）に基づいてどのファームウェアをメモリ装置へ送るか切り換えることができる。
【００１３】
添付図面を参照して、１つ以上の実施形態を以下に詳細に述べる。本発明の他の特徴、目的及び効果は、以下の説明、添付図面及び特許請求の範囲から明らかとなるであろう。種々の図面において同じ要素は同じ参照記号で示されている。
【図面の簡単な説明】
【００１４】
【図１Ａ】メモリコントローラを含むＮＶＭパッケージへブート情報をファームウェアの形態で送るように構成されたホスト装置を備えた規範的システムを示す図である。
【図１Ｂ】メモリコントローラを含まないＮＶＭパッケージへブート情報をファームウェアの形態で送るように構成されたホスト装置を備えた規範的システムを示す図である。
【図２】種々のＮＶＭパッケージへブート情報を送るように構成されたホストコントローラを伴うメモリ装置を備えた規範的システムを示す図である。
【図３】ホストからメモリ装置をブートするための規範的プロセスを示すフローチャートである。
【図４】ホストからメモリ装置をブートするための規範的プロセスを示すフローチャートである。
【発明を実施するための形態】
【００１５】
ホスト装置は、ブート情報（例えば、ファームウェア又はトリム値）を記憶し、そして通信チャンネル（例えば、バス）を経てホスト装置に接続された１つ以上のメモリ装置へブート情報を送ることができる。メモリ装置のブート情報は、メモリ装置が電源オンされ及び／又はホスト装置からブートコマンドを受け取るのに応答して発生されるメモリ装置ブートインストラクション又は要求に関連して又はそれに応答して、メモリ装置へ送られる。ホスト装置は、メモリ装置の動作中に揮発性メモリにメモリ装置のブート情報を維持し（例えば、ホスト装置がブートするときにＮＶＭから揮発性メモリへブート情報をロードすることにより）、そして揮発性メモリからメモリ装置へブート情報を送ることができる。ブート情報は、ローメモリ装置（例えば、メモリコントローラをもたないメモリ装置）及び／又はメモリコントローラを含むメモリ装置へ送ることができる。ホスト装置は、動作ブート情報（例えば、読み取り、書き込み及び消去動作を行うのに使用される）、デバッグブート情報（例えば、デバッグ動作を行うのに使用される）、及び／又は製造ブート情報（例えば、メモリ装置のコンポーネントのインストール及び動作をテストするのに使用される）を含む種々の形式のブート情報を記憶してメモリ装置へ送ることができる。
【００１６】
図１Ａは、メモリコントローラを含むＮＶＭパッケージ１０４へブート情報をファームウェアの形態で送るように構成されたホスト装置１０２を備えた規範的システム１００を示す図である。例えば、この規範的システム１００に示すように、ホスト装置１０２は、ＮＶＭパッケージ１０４のためのファームウェア１０６を送ることができる。ＮＶＭパッケージ１０４は、ファームウェア１０６を受け取る前に、受け取る間に、及び／又は受け取るのに応答して、ホスト装置１０２へ状態メッセージ１０８を送出することができる。例えば、ＮＶＭパッケージ１０４は、ブート中であることを状態メッセージ１０８において指示し、そしてそれに応答してファームウェア１０６を受け取る。別の例では、ＮＶＭパッケージ１０４は、ホスト装置１０２からブートのためのコマンドを受け取った後にファームウェア１０６を受け取る準備ができたことを指示する。更に別の例では、ＮＶＭパッケージ１０４は、ファームウェア１０６の種々の部分が状態メッセージ１０８を通して受け取られることを指示する。
【００１７】
ホスト装置１０２は、ポータブルメディアプレーヤ、セルラー電話、ポケットサイズのパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、及び／又はタブレットコンピューティングシステムのような種々のホスト装置及び／又はシステムのいずれかである。ＮＶＭパッケージ１０４は、ＮＶＭを含み、そしてボールグリッドアレイパッケージ又は他の適当な形式の集積回路（ＩＣ）パッケージである。ＮＶＭパッケージ１０４は、ホスト装置１０２との接続１１０（例えば、バス）を通してホスト装置１０２からファームウェアを得ることができる。ＮＶＭパッケージ１０４は、ホスト装置１０２の一部分でもよいし、及び／又はそれとは個別のものでもよい。
【００１８】
ホスト装置１０２は、ＮＶＭパッケージ１０４からデバッグ情報を得るためにＮＶＭパッケージ１０４と対話するように構成されたホストコントローラ１１２を備えている。このホストコントローラ１１２は、ソフトウェア及び／又はファームウェアインストラクションの実行に基づいて動作を実行するように構成された１つ以上のプロセッサ及び／又はマイクロプロセッサを含む。それに加えて及び／又はそれとは別に、ホストコントローラ１１２は、種々の動作を実行するように構成された特定用途向け集積回路（ＡＳＩＣ）のようなハードウェアベースのコンポーネントを含む。ホストコントローラ１１２により実行される動作は、ＮＶＭパッケージ１０４をいつ電源オン及びオフするか、ＮＶＭパッケージ１０４をいつブートするか、ＮＶＭパッケージ１０４へ送るファームウェアの形式を決定すること、及びファームウェア１０６をＮＶＭパッケージ１０４へ送ることを含む。例えば、ホストコントローラ１１２は、ＮＶＭパッケージ１０４にブートコマンドを送り、そしてＮＶＭパッケージ１０４がファームウェア１０６を受け取る準備ができたことを指示する状態メッセージ１０８に応答して、ファームウェア１０６をＮＶＭパッケージ１０４へ送ることができる。ホストコントローラ１１２は、ＮＶＭパッケージ１０４へ送信される情報（例えば、コマンド、ファームウェア１０６）を、ホスト装置１０２とＮＶＭパッケージ１０４との間に使用される通信プロトコルに基づいてフォーマットすることができる。
【００１９】
ホスト装置１０２は、ＮＶＭパッケージ１０４へ（ファームウェア１０６として）送られる種々の形式のファームウェア１１６−１２０を記憶するメモリ１１４（揮発性メモリ及び／又はＮＶＭ）を備えている。例えば、ホスト装置１０２は、ホスト装置１０２がブートするときにホスト装置１０２のＮＶＭから揮発性メモリへファームウェア１１６−１２０をロードすることができる。ホスト装置１０２は、ホスト装置１０２及びＮＶＭパッケージ１０４の動作中にファームウェア１１６−１２０を揮発性メモリに維持することができる。ホスト装置１０２は、ファームウェア１１６−１２０を揮発性メモリからＮＶＭパッケージ１０４へ送ることができる。他の具現化において、ファームウェア１１６−１２０は、ホスト装置１０２のＮＶＭに記憶され、そしてＮＶＭパッケージ１０４をブートするために必要に応じてホスト装置１０２のＮＶＭから読み出される。ファームウェア１１６−１２０は、ブート動作（例えば、メモリダイを初期化し、ＮＶＭパッケージ１０４を動作するインストラクションを揮発性メモリにロードする）、及び／又は後ブート動作（例えば、読み取り／書き込み／消去動作、デバッグ動作）を実行するためにＮＶＭパッケージ１０４によって実行することができる。
【００２０】
例えば、ホスト装置１０２によりＮＶＭパッケージ１０４へ転送されるファームウェア１０６は、実行時に、ＮＶＭパッケージ１０４を動作するインストラクションを、ＮＶＭパッケージ１０４で実行するために揮発性メモリへロードさせるというインストラクションを伴うブートローダーを含む。別の例では、ホスト装置１０２によりＮＶＭパッケージ１０４へ転送されるファームウェア１０６は、ＮＶＭパッケージ１０４を動作するインストラクションを含み、そしてＮＶＭパッケージ１０４のブート処理の一部分として（例えば、ブートローダー動作により）揮発性メモリへロードされる。
【００２１】
図１Ａは、動作ファームウェア１１６、デバッグファームウェア１１８、及び製造ファームウェア１２０を含むものとして規範的ファームウェア１１６−１２０を示している。動作ファームウェア１１６は、ＮＶＭパッケージ１０４が、ホスト装置１０２により要求される読み取り、書き込み及び消去動作のような「通常」のメモリ動作を実行するようにさせる。又、動作ファームウェア１１６は、ＮＶＭパッケージ１０４が、ウェアレベリング又はエラー修正のようなメモリ管理動作を実行するようにさせる。デバッグファームウェア１１８は、ＮＶＭパッケージが、データエラー源を突き止め及びエラーログを発生するといったデバッグ動作を実行するようにさせる。製造ファームウェア１２０は、メモリダイ、Ｉ／Ｏ信号及びセンサ（例えば、温度センサ）のようなＮＶＭパッケージ１０４の種々のコンポーネントのインストール及び動作をテストする。他の形式のファームウェアも考えられる。例えば、同じファームウェアの異なるバージョンがホスト装置１０２によって記憶されて、ＮＶＭパッケージ１０４へ送られてもよい（例えば、ファームウェアバージョン１．１及びファームウェアバージョン１．２）。
【００２２】
ホスト装置１０２は、接続１１０を経てＮＶＭパッケージ１０４と通信することができる。ホスト装置１０２とＮＶＭパッケージ１０４との間の接続１１０は、固定（例えば、固定の通信チャンネル）、及び／又は取り外し可能（例えば、ユニバーサルシリアルバス（ＵＳＢ）ポート）である。ＮＶＭパッケージ１０４との対話は、ＮＶＭパッケージ１０４にコマンド（例えば、ブートコマンド、読み取りコマンド、書き込みコマンド）を与えること、及びブート情報、例えば、ファームウェア１０６を送信することを含む。
【００２３】
ＮＶＭパッケージ１０４は、ホストインターフェイス１２２及びメモリコントローラ１２４を使用して接続１１０を経てホスト装置１０２と対話することができる。ホストコントローラ１１２と同様に、メモリコントローラ１２４は、ソフトウェア及び／又はファームウェアインストラクションの実行に基づいて動作を実行するように構成された１つ以上のプロセッサ及び／又はマイクロプロセッサ１２６を備えている。それに加えて及び／又はそれとは別に、メモリコントローラ１２４は、種々の動作を実行するように構成されたＡＳＩＣのようなハードウェアベースのコンポーネントを含む。メモリコントローラ１２４は、ホスト装置１０２からのファームウェア１０６を使用してＮＶＭパッケージ１０４をブートするような種々の動作を実行することができる。
【００２４】
エラー修正及びウェアレベリングのような種々のメモリ管理機能は、ホストコントローラ１１２及びメモリコントローラ１２４により、単独で又は組み合わせて、実行することができる。メモリコントローラ１２４が少なくとも幾つかのメモリ管理機能を実行するように構成される具現化では、ＮＶＭパッケージ１０４を、「管理ＮＶＭ」（又はＮＡＮＤフラッシュメモリのための「管理ＮＡＮＤ」）と称することができる。これは、ＮＶＭパッケージ１０４に対して外部のホストコントローラ１１２がＮＶＭパッケージ１０４のためのメモリ管理機能を実行する「ローＮＶＭ」（又はＮＡＮＤフラッシュメモリのための「ローＮＡＮＤ」）と対照的である。
【００２５】
メモリコントローラ１２４は、揮発性メモリ１２８及びＮＶＭ１３２を備えている。揮発性メモリ１２８は、キャッシュメモリ及び／又はＲＡＭを含む種々の揮発性メモリ形式のいずれかである。揮発性メモリ１２８は、メモリ動作を実行し、及び／又はＮＶＭから読み取られ及び／又はＮＶＭへ書き込まれるデータを一時的に記憶するためにメモリコントローラ１２４により使用される。例えば、揮発性メモリ１２８は、接続１１０を経てホスト装置１０２へ受け取られるファームウェア１０６のようなファームウェア１３０を記憶し、そしてそのファームウェア１３０を使用して、ＮＶＭパッケージ１０４における動作（例えば、読み取り／書き込み動作、デバッグ動作）を実行することができる。
【００２６】
ＮＶＭ１３２は、システム情報（例えば、デバッグログ）を持続的に記憶し及び／又は揮発性メモリ１２８に適合しないことのあるファームウェアのような情報を一時的に記憶するためにメモリコントローラ１２４により使用できるシステムメモリである。ＮＶＭ１３２は、適切な特権をもつ特定のシステム動作しかＮＶＭ１３２にアクセスできないように、書き込み、読み取り及び／又は消去制限される。例えば、ＮＶＭ１３２は、特定の物理的アドレスに記憶されるインストラクションであって、メモリコントローラ１２４により受け取られるブート信号（例えば、ホスト装置１０２からのブートコマンド、その前の非通電状態から電力の受けること）に応答して揮発性メモリ１２８へロードされそしてプロセッサ／マイクロプロセッサ１２６によって実行されるインストラクションを含む。対照的に、ホスト装置１０２から受け取られる書き込みコマンドの一部分として実行される動作に関連したＮＶＭ１３２へのアクセスは、許可されない。別の例では、ホスト装置１０２から受け取られるファームウェア１０６のある部分は、ＮＶＭ１３２に記憶され、そして必要に応じて揮発性メモリ１２８へロードされる。ＮＶＭ１３２は、種々のＮＶＭ（例えば、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ）のいずれかである。又、ある具現化において、ＮＶＭ１３２は、ＮＶＭパッケージ１０４のためのファームウェアを持続的にローカル記憶する。このような具現化では、ＮＶＭパッケージ１０４は、ローカル記憶されたファームウェアをデフォールトにより使用することができ、そしてホスト装置１０２は、ＮＶＭ１０４に「ホストからのブート」コマンドを与えることによりこのデフォールト設定を無効にすることができる。
【００２７】
メモリコントローラ１２４は、共有内部バス１３４を使用して、持続的データ記憶に使用されるＮＶＭにアクセスする。規範的システム１００では、そのようなＮＶＭは、ＮＶＭ１３８ａ−ｎを含む複数のメモリダイ１３６ａ−ｎを含むものとして示されている。メモリダイは、集積回路（ＩＣ）ダイのような種々のメモリダイである。ＮＶＭパッケージ１０４に関して単一の共有バス１３４しか示されていないが、ＮＶＭパッケージは、２つ以上の共有内部バスを含むことができる。各内部バスは、複数のメモリダイ１３６ａ−ｎに関して示したように、複数のメモリダイ（例えば、２、３、４、８、３２、等）に接続することができる。メモリダイ１３６ａ−ｎは、積層のような種々の構成で物理的に配置することができる。ＮＶＭ１３８ａ−ｎは、フローティングゲート又は電荷トラップ技術に基づくＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、強誘電体ＲＡＭ（ＦＲＡＭ（登録商標））、磁気抵抗ＲＡＭ（ＭＲＡＭ）、位相変化メモリ（ＰＣＭ）、又はその組合せのような種々のＮＶＭのいずれかである。メモリコントローラ１２４は、ＮＶＭパッケージ１０４をブートするためにホスト装置１０２により与えられるファームウェア１３０を使用してＮＶＭ１３８ａ−ｎに対して種々の動作（例えば、読み取り／書き込み動作、デバッグ動作、製造テスト動作）を実行することができる。
【００２８】
図１Ｂは、メモリコントローラを含まないＮＶＭパッケージ１５４へブート情報をファームウェアの形態で送るように構成されたホスト装置１５２を備えた規範的システム１５０を示す図である。例えば、規範的システム１５０に示されたように、ホスト装置１５２は、ＮＶＭパッケージ１５４のためのトリム値１５６を与えることができる。ＮＶＭパッケージ１５４は、トリム値１５６を受け取る前に、受け取る間に、及び／又は受け取るのに応答して、ホスト装置１５２へ状態メッセージ１５８を送出する。例えば、ＮＶＭパッケージ１５４は、ブート中であることを状態メッセージ１５８において指示し、そしてそれに応答してトリム値１５６を受け取る。別の例では、ＮＶＭパッケージ１５４は、ホスト装置１５２からブートのためのコマンドを受け取った後にトリム値１５６を受け取る準備ができたことを指示する。更に別の例では、ＮＶＭパッケージ１５４は、トリム値１５６の種々の部分が状態メッセージ１５８を通して受け取られることを指示する。
【００２９】
ホスト装置１５２は、ポータブルメディアプレーヤ、セルラー電話、ポケットサイズのパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、及び／又はタブレットコンピューティング装置のような種々のホスト装置及び／又はシステムのいずれかである。ＮＶＭパッケージ１５４は、ＮＶＭを含み、そしてボールグリッドアレイパッケージ又は他の適当な形式の集積回路（ＩＣ）パッケージである。ＮＶＭパッケージ１５４は、ホスト装置１５２との接続１６０（例えば、バス）を通してホスト装置１５２からファームウェアを得ることができる。ＮＶＭパッケージ１５４は、ホスト装置１５２の一部分でもよいし、及び／又はそれとは個別のものでもよい。
【００３０】
ホスト装置１５２は、ＮＶＭパッケージ１５４からデバッグ情報を得るためにＮＶＭパッケージ１５４と対話するように構成されたホストコントローラ１６２を備えている。このホストコントローラ１６２は、ソフトウェア及び／又はファームウェアインストラクションの実行に基づいて動作を実行するように構成された１つ以上のプロセッサ及び／又はマイクロプロセッサを含む。それに加えて及び／又はそれとは別に、ホストコントローラ１６２は、種々の動作を実行するように構成されたＡＳＩＣのようなハードウェアベースのコンポーネントを含む。ホストコントローラ１６２により実行される動作は、ＮＶＭパッケージ１５４をいつ電源オン及びオフするか、ＮＶＭパッケージ１５４をいつブートするか、ＮＶＭパッケージ１５４へ送るファームウェアの形式を決定すること、及びトリム値１５６をＮＶＭパッケージ１５４へ送ることを含む。例えば、ホストコントローラ１６２は、ＮＶＭパッケージ１５４にブートコマンドを送り、そしてＮＶＭパッケージ１５４がトリム値１５６を受け取る準備ができたことを指示する状態１５８に応答して、トリム値１５６をＮＶＭパッケージ１５４へ送ることができる。ホストコントローラ１６２は、ＮＶＭパッケージ１５４へ送信される情報（例えば、コマンド、トリム値１５６）を、ホスト装置１５２とＮＶＭパッケージ１５４との間に使用される通信プロトコルに基づいてフォーマットすることができる。
【００３１】
ホスト装置１５２は、ＮＶＭパッケージ１５４へ送られるトリム値１６６を記憶するメモリ１６４（例えば、揮発性メモリ及び／又はＮＶＭ）を備えている。例えば、ホスト装置１５２は、ホスト装置１５２がブートするときにホスト装置１５２のＮＶＭから揮発性メモリへトリム値１６６をロードすることができる。ホスト装置１５２は、ホスト装置１５２及びＮＶＭパッケージ１５４の動作中にトリム値１６４を揮発性メモリに維持することができる。ホスト装置１５２は、トリム値１６６を揮発性メモリからＮＶＭパッケージ１５４へ送ることができる。他の具現化において、トリム値１６６は、ホスト装置１５２のＮＶＭに記憶され、そしてＮＶＭパッケージ１５４をブートするために必要に応じてホスト装置１５２のＮＶＭから読み出される。
【００３２】
トリム値１６６は、メモリ動作（例えば、読み取り、書き込み、消去）を実行しそしてホスト装置１５２と対話するようにＮＶＭパッケージ１５４を構成するのに使用される種々の値を含む。例えば、トリム値１６６は、メモリ動作を実行しそしてホスト装置１５２と通信するためにＮＶＭパッケージ１５４により使用されるタイミング及び電圧レベルを調整する値を含む。例えば、トリム値１６６は、揮発性メモリへロードされたときに、ＮＶＭパッケージ１５４のコンポーネントにより使用されて、ＮＶＭの読み取り及び／又はプログラミングのような動作を実行するための所定のデータ値である。例えば、トリム値１６６は、ＮＶＭパッケージ１５４におけるＮＶＭのデータサンプリングに使用されるプログラミング電圧レベル及び／又はプログラミングパルス巾を定義することができる。ブート中に、トリム値１６６は、ＮＶＭパッケージ１５４のＮＶＭを含めて、ＮＶＭパッケージ１５４の種々のコンポーネントを初期化するのに使用され、ＮＶＭパッケージ１５４がＮＶＭへのデータの書き込み及び／又は読み取りを容易に行えるようにする。
【００３３】
ホスト装置１５２は、接続１６０を経てＮＶＭパッケージ１５４と通信することができる。ホスト装置１５２とＮＶＭパッケージ１５４との間の接続１６０は、固定（例えば、固定の通信チャンネル）、及び／又は取り外し可能（例えば、ユニバーサルシリアルバス（ＵＳＢ）ポート）である。ＮＶＭパッケージ１５４との対話は、ＮＶＭパッケージ１５４にコマンド（例えば、ブートコマンド、読み取りコマンド、書き込みコマンド）を与えること、及びブート情報、例えば、トリム値１５６を送信することを含む。
【００３４】
ＮＶＭパッケージ１５４は、ホストインターフェイス１６８及びコントロール回路１７０を使用して接続１６０を経てホスト装置１５２と対話することができる。コントロール回路１７０は、少なくとも、ホスト装置１５２からホストインターフェイス１６８を経て受け取ったコマンド（例えば、読み取り、書き込み）を実行するように構成される。コントロール回路１７０は、ＩＣ及びＡＳＩＣのような種々のハードウェアコンポーネントを通して具現化することができる。コントロール回路１７０は、ホスト装置１５２から受け取ったコマンド（例えば、制御信号）を実行するように構成されたコマンド実行ロジック１７２を含む。コマンド実行ロジック１７２は、レジスタ１７４のコンテンツに少なくとも一部分基づいてコマンドを実行することができる。レジスタ１７４は、ホスト装置１５２から受け取ったトリム値１７６がロードされる。それに加えて及び／又はそれとは別に、トリム値１５６もＮＶＭパッケージ１５４のＮＶＭにより使用される。例えば、トリム値１５６は、コントロール回路１７０に記憶され、そしてローＮＡＮＤダイのようなＮＶＭへ送られる。トリム値１５６は、ＮＶＭのデータサンプリングを制御し、例えば、ＮＶＭに対する電圧レベル及びタイミングを制御するのに使用される。
【００３５】
レジスタ１７４は、コマンド実行ロジック１７２によってアクセスされ（コマンド実行ロジック１７２の一部分として及び／又はそれとは個別に）、そしてデータ、アドレス、インストラクション、条件及び状態情報を記憶する等の種々の容量で使用される。ＮＶＭパッケージ１５４がブートしている間に、レジスタ１７４に（ホスト装置１５２から受け取った）トリム値１７６をロードすることができる。
【００３６】
ホストコントローラ１６２は、図１Ａを参照して上述したようにメモリコントローラ１２４がＮＶＭパッケージ１０４に対して実行するところのＮＶＭパッケージ１５４のための種々の動作を実行することができる。例えば、ホストコントローラ１６２は、ＮＶＭパッケージ１５４のためのメモリ管理動作、例えば、ウェアレベリングを実行することができる。システム１５０は、「ローＮＶＭ」（又はＮＡＮＤフラッシュメモリのための「ローＮＡＮＤ」）と称される。
【００３７】
コントロール回路１７２は、共有内部バス１７８を使用して、持続的データ記憶に使用されるＮＶＭにアクセスする。規範的なシステム１５０では、そのようなＮＶＭは、ＮＶＭ１８２ａ−ｎを含む複数のメモリ第１８０ａ−ｎを含むものとして示されている。このメモリダイは、集積回路（ＩＣ）ダイのような種々のメモリダイである。ＮＶＭパッケージ１５４に関して単一の共有バス１７８しか示されていないが、ＮＶＭパッケージは、２つ以上の共有内部バスを含むことができる。各内部バスは、複数のメモリダイ１８０ａ−ｎに関して示したように、複数のメモリダイ（例えば、２、３、４、８、３２、等）に接続することができる。メモリダイ１８０ａ−ｎは、積層のような種々の構成で物理的に配置することができる。ＮＶＭ１８２ａ−ｎは、フローティングゲート又は電荷トラップ技術に基づくＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＦＲＡＭ（登録商標）、ＭＲＡＭ、ＰＣＭ、又はその組合せのような種々のＮＶＭのいずれかである。コントロール回路１７０は、ＮＶＭパッケージ１５４をブートするためにホスト装置１５２により与えられるトリム値１７６を使用してＮＶＭ１８２ａ−ｎに対して動作（例えば、読み取り／書き込み動作）を実行することができる。
【００３８】
システム１００及び１５０は、別々に説明するが、これら２つのシステムからの特徴を結合した他のシステムも考えられる。例えば、メモリコントローラ１２４を含むＮＶＭパッケージ１０４にファームウェア１０６を送るのに加えて、ホスト装置１０２は、ＮＶＭパッケージ１５４の種々のコンポーネントを構成するためにＮＶＭパッケージ１５４にトリム値（例えば、トリム値１５６）を与えるようにも構成できる。
【００３９】
図２は、種々のＮＶＭパッケージへブート情報を送るように構成されたホストコントローラ２０４を伴うメモリ装置２０２を備えた規範的システム２００を示す図である。メモリ装置２０２は、ポータブルメディアプレーヤ、セルラー電話、ポケットサイズのパーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングシステム、及び／又は取り外し可能／ポータブル記憶装置（例えば、フラッシュメモリカード、ＵＳＢフラッシュメモリドライブ）のような種々のメモリ装置のいずれかである。
【００４０】
規範的なメモリ装置２０２は、ホストコントローラ２０４及びＮＶＭ２０６を備えている。ホストコントローラ２０４は、図１Ａ−Ｂを参照して上述したホストコントローラ１１２及び／又はホストコントローラ１６２と同様である。ホストコントローラ２０４は、１つ以上のプロセッサ２０８、揮発性メモリ２１０、及びＮＶＭ２１２を備えている。プロセッサ２０８は、マイクロプロセッサ、中央処理ユニット（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）又はその組合せのような種々のプロセッサのいずれかである。揮発性メモリ２１０は、ＲＡＭ及びキャッシュメモリのような種々の揮発性メモリのいずれかである。揮発性メモリ２１０は、ＮＶＭ２０６に記憶されたデータを検索しそして処理するといった種々の動作を実行するためにプロセッサ２０８により使用される。ＮＶＭ２１２は、フラッシュメモリ（例えば、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ）のような種々のＮＶＭのいずれかである。ＮＶＭ２１２は、ファームウェア２１４及び／又はトリム値２１６のようなブート情報を持続的に記憶することができる。ファームウェア２１４は、図１Ａを参照して上述したファームウェア１１６−１２０と同様であり、そしてトリム値２１６は、図１Ｂを参照して上述したトリム値１６６と同様である。ファームウェア２１４及び／又はトリム値２１６は、（例えば、ホストコントローラ２０４がブートするときに）揮発性メモリ２１０へロードされ、そして必要に応じて揮発性メモリ２１０からＮＶＭ２０６へ送られる。
【００４１】
ＮＶＭ２０６は、１つ以上のＮＶＭパッケージ２１８ａ−ｂを含むことができる。ＮＶＭパッケージ２１８ａ−ｂは、各々、図１Ａ−Ｂを参照して上述したＮＶＭパッケージ１０４及び／又はＮＶＭパッケージ１５４と同様である。例えば、ＮＶＭパッケージ２１８ａ−ｂは、各々、ＮＶＭを伴う複数のメモリダイ（例えば、メモリダイ１３６ａ−ｎ及びＮＶＭ１３８ａ−ｎ）、１つ以上のメモリコントローラ（例えば、メモリコントローラ１２４）、及び／又はファームウェア２１４及び／又はトリム値２１６を使用してブートされるコントロール回路（例えば、コントロール回路１７０）を含む。ＮＶＭ２０６は、いかなる数のＮＶＭパッケージ（例えば、２、３、４、８、１６、等）を含んでもよい。
【００４２】
図１Ａ−Ｂを参照して上述したように、ＮＶＭの管理は、ホストコントローラ２０４及び／又はＮＶＭパッケージ２１８ａ−ｂのコントローラによって実行することができる。例えば、ホストコントローラ２０４は、ＮＶＭパッケージ２１８ａ−ｂに異なるファームウェア及び／又はトリム値を与えることによってＮＶＭパッケージ２１８ａ−ｂの動作を調整するように構成される。ＮＶＭパッケージ２１８ａ−ｂのコントローラがメモリ管理動作（例えば、エラー修正、ウェアレベリング、等）の少なくとも一部分を制御する具現化では、ＮＶＭパッケージ２１８ａ−ｂは、「管理(managed)」ＮＶＭであると考えられる。
【００４３】
又、システム２００は、メモリ装置２０２に（直接的及び／又は間接的に）通信接続される外部装置２２０を含むものとして示されている。外部装置２２０とメモリ装置２０２との間の通信は、２つの装置間のデータ及び／又はインストラクションの伝送を含む。外部装置２２０は、デスクトップコンピュータ、ラップトップコンピュータ、サーバーシステム、及びメディアコンピューティング装置（例えば、メディアサーバー、テレビ、ステレオシステム）を含む種々の電子装置のいずれかである。メモリ装置２０２は、外部装置インターフェイス２２２（例えば、ワイヤレスチップ、ＵＳＢインターフェイス、等）を使用する物理的及び／又はワイヤレス接続を通して外部装置２２０と通信することができる。
【００４４】
例えば、ある具現化では、メモリ装置２０２は、ポータブルメディアプレーヤであり、そして外部装置２２０は、物理的接続（例えば、ＵＳＢケーブル）を経てメディアファイル（例えば、オーディオファイル、ビデオファイル、等）を互いに送信できるデスクトップコンピュータである。
【００４５】
外部装置２２０は、ＮＶＭ２０６のための更新された及び／又は新規なファームウェア及び／又はトリム値をメモリ装置２０２に与える。例えば、メモリ装置２０２は、ファームウェア２１４及び／又はトリム値２１６の更新バージョンが外部装置２２０から得られるかどうか周期的にチェックするように構成される（及び／又は外部装置２２０は、ファームウェア２１４及び／又はトリム値２１６のバージョンをチェックし、そして更新されたブート情報を、それが得られるときに、メモリ装置２０２に与える）。
【００４６】
ファームウェア２１４及び／又はトリム値２１６は、ＮＶＭパッケージ２１８ａ−ｂの各々により使用される。例えば、ファームウェア２１４及び／又はトリム値２１６の単一のコピーをＮＶＭ２１２に記憶して、ＮＶＭパッケージ２１８ａ−ｂのような複数のＮＶＭパッケージにわたって使用することができる。
【００４７】
図３は、ホストからメモリ装置をブートするための規範的プロセス３００を示すフローチャートである。このプロセス３００は、図１Ａを参照して上述したＮＶＭパッケージ１０４、図１Ｂを参照して上述したＮＶＭパッケージ１５４、及び／又は図２を参照して上述したメモリ装置２０２を含む種々のメモリ装置によって実行される。
【００４８】
プロセス３００は、メモリ装置をブートする指示をメモリ装置において受け取ることを含む（３０２）。そのような指示は、例えば、ＮＶＭパッケージ１０４及び／又はＮＶＭメモリパッケージ１５４のようなメモリ装置が受け取る種々の信号及び／又はコマンドを含む。例えば、ホスト装置（例えば、ホスト装置１０２及び／又はホスト装置１５２）から受け取られるチップイネーブルアサーション信号が、ブートの指示である。別の例では、メモリ装置が非通電状態から電源オンされることが、メモリ装置をブートする指示として働く。別の例では、ホスト（例えば、ホスト装置１０２及び／又はホスト装置１５２）から受け取られるブートコマンドが、メモリ装置をブートする指示である。ある具現化において、メモリ装置は、再ブートすべきことを決定する。例えば、ＮＶＭパッケージ１０４のメモリコントローラ１２４は、特定形式のエラーに遭遇した後に再ブートし、そしてそれ自身ブートの指示を与えるべきであると決定する。
【００４９】
ブートの指示を受け取るのに応答して、メモリ装置は、ホスト装置からブート情報を得ることができる（３０４）。ブート情報は、ファームウェア（例えば、ファームウェア１０６）及び／又はトリム値（例えば、トリム値１５６）を含めて、メモリ装置をブートしそして動作するのに使用される種々の情報を含む。ブート情報を得ることは、メモリ装置がブート情報を受け取る準備ができたという指示（例えば、状態指示子１０８）をホスト装置に与え、ホスト装置からブート情報を各部分（例えば、データチャンク）において受け取り、そして各部分がメモリ装置によって首尾良く受け取られたという確認（例えば、状態指示子１０８）をホスト装置に与えることを含む。
【００５０】
メモリ装置は、ホスト装置から受け取ったブート情報を使用してブートすることができる（３０６）。例えば、メモリコントローラ１２４は、ホスト装置１０２から受け取ったファームウェア１３０を揮発性メモリ１２８へロードし、そしてファームウェア１３０を使用してＮＶＭパッケージ１０４をブートするように進むことにより、ＮＶＭパッケージ１０４をブートすることができる。別の例では、ホスト装置１５２から受け取ったトリム値１７６をレジスタ１７４へロードし、そしてＮＶＭパッケージ１５４をブートすることができる。
【００５１】
メモリ装置をブートした後、ホスト装置からのブート情報を使用して１つ以上のメモリ動作を実行することができる（３０８）。例えば、メモリコントローラ１２４は、ファームウェア１３０により与えられ及び／又はホスト装置１０２により指令されるメモリ動作を実行することができる。例えば、動作ファームウェア１１６がＮＶＭパッケージ１０４に与えられる場合には、メモリコントローラ１２４は、標準的なメモリ動作（例えば、読み取り、書き込み、消去）を実行し、そしてある具現化では、ウェアレベリング及びエラー修正のようなメモリ管理動作を実行することができる。別の例において、デバッグファームウェア１１８がＮＶＭパッケージ１０４に与えられる場合には、メモリコントローラは、デバッグログを発生しそして記憶するようなデバッグ動作を実行することができる。更に別の例において、製造ファームウェア１２０がＮＶＭパッケージ１０４に与えられる場合には、メモリコントローラ１２４は、ＮＶＭパッケージ１０４の種々のコンポーネント（例えば、ＮＶＭ１３８ａ−ｎ、ホストインターフェイス１２２、プロセッサ／マイクロプロセッサ１２６）が適切にインストールされて、各技術的仕様に従って動作するかどうか決定するためにテスト動作を実行することができる。別の例において、コントロール回路１７０は、レジスタ１７４に含まれたトリム値１７６を使用してホスト装置１５２によりＮＶＭパッケージ１５４へ送られたコマンドを実行することができる。
【００５２】
メモリ装置は、メモリ動作が完了すると、電源オフされる（３１０）。例えば、ホスト装置（例えば、ホスト装置１０２及び／又は１５２）は、クリップイネーブルデアサート信号をメモリ装置に与え及び／又はメモリ装置に供給される電力をオフにトグルすることにより、メモリ装置（例えば、ＮＶＭパッケージ１０４及び／又は１５４）をパワーダウンさせる。別の例では、メモリ装置（例えば、ＮＶＭパッケージ１０４）は、装置がアイドル状態でスレッシュホールド長さの時間が経過した後に、メモリ装置をパワーダウンすることを決定する。
【００５３】
プロセス３００は、連続的に繰り返すことができ、これは、メモリ装置が種々の電力及び／又は動作状態間を連続的に移行するときにメモリ装置がホスト装置からのブート情報を使用して再ブートできることを意味する。例えば、メモリ装置は、それが使用されていないときメモリ装置による電力消費を減少する（そしておそらくはバッテリ寿命を延長する）ためにパワーダウンされる。メモリ装置は、頻繁にパワーダウン及びパワーアップされることがある。オフ状態からオン状態へのこれらの移行の各々は、ホストから得られるブート情報を使用してメモリ装置をブートさせる。
【００５４】
図４は、ホストからメモリ装置をブートするための規範的プロセス４００を示すフローチャートである。このプロセス４００は、図１Ａを参照して上述したホスト装置１０２、図１Ｂを参照して上述したホスト装置１５２、及び／又は図２を参照して上述したメモリ装置２０２のような種々のホスト装置によって実行することができる。
【００５５】
ある具現化においては、プロセス４００は、メモリ装置からブート情報の要求を受け取ることにより開始される（４０２）。例えば、ＮＶＭパッケージ１０４は、ブート情報の要求をファームウェアの形態でホスト装置１０２に与えることができる。
【００５６】
ある具現化においては、プロセス４００は、メモリ装置へのアクセスが要求され及びメモリ装置が電源オフであることを決定することにより、開始される（４０４）。例えば、ホスト装置１０２は、ある範囲の論理的アドレスに関する読み取り要求を受け取り（又はデータを読み取る要求を識別し）、その範囲の論理的アドレスがＮＶＭパッケージ１０４に対応することを決定し、そしてＮＶＭパッケージ１０４が電源オフであることを決定する。そのような決定に基づいて、メモリ装置へブートコマンドを送ることができる（４０６）。例えば、ホスト装置１０２は、「ホストからブートする」コマンドをＮＶＭパッケージ１０４へ送ることができる。そのようなコマンドを送るのに応答して、ホスト装置は、メモリ装置がブート情報を受け取る準備ができたという指示が受け取られる（４０８）まで、メモリ装置へブート情報を送るのを待機する。
【００５７】
メモリ装置にブート情報を送ることができる（４１０）。例えば、ホスト装置１０２は、ファームウェア１１６−１２０の１つ以上をＮＶＭパッケージ１０４へ送ることができる。別の例では、ホスト装置１５２は、トリム値１６６をＮＶＭパッケージ１５４へ送ることができる。ブート情報は、ホスト装置の揮発性メモリから送ることができる。
【００５８】
ブート情報がメモリ装置へ送られると、ホストは、１つ以上のコマンドをメモリ装置に与え、及び／又はメモリ装置からの応答を待機する（４１２）。例えば、ホスト装置１０２がデバッグファームウェア１１８をＮＶＭパッケージ１０４へ送る場合に、ホスト装置１０２は、ＮＶＭパッケージ１０４が特定のデバッグ情報を収集してホスト装置１０２へ送るようにさせる１つ以上のコマンドを発生し、そしてデバッグ情報がホスト装置１０２へ送られるのを待機する。別の例では、ホスト装置１５２は、送られたトリム値１５６を使用してＮＶＭパッケージ１５４が首尾良くブートされた後にＮＶＭパッケージ１５４へ読み取りコマンドを送り、そしてＮＶＭパッケージ１５４からのその要求されたデータを待機する。
【００５９】
メモリ装置へ送られるべきコマンド及び／又はメモリ装置から受け取るべき要求された情報がそれ以上ない場合には、ホストは、メモリ装置をパワーダウンさせる（４１４）。例えば、ホスト装置１０２は、チップイネーブルデアサート信号をＮＶＭパッケージ１０４に送り、ＮＶＭパッケージ１０４をパワーダウンさせる。
【００６０】
プロセス４００は、ホスト装置１０２及び／又はホスト装置１５２のようなホスト装置によって繰り返すことができる。例えば、ホスト装置１０２は、ＮＶＭパッケージ１０４が何らかのタスク（例えば、データの検索、データの記憶、コンポーネントのテスト、デバッグ情報の識別）を行うことがホスト装置１０２により要求されたときにはホスト装置１０２からのブート情報を使用してＮＶＭパッケージ１０４がブートを行うようにさせ、そしてそれが要求されないときには電力消費を減少するためにＮＶＭパッケージ１０４がパワーダウンするようにさせる。
【００６１】
本書に述べる要旨及び動作の実施形態は、本書に開示する構造及びその構造的等効物を含めて、デジタル電子回路、或いはソフトウェア、ファームウェア又はハードウェアにおいて、或いはそれらの１つ以上の組合せにおいて具現化することができる。本書に述べる要旨の実施形態は、データ処理装置により実行するために又はデータ処理装置の動作を制御するためにコンピュータ記憶媒体にエンコードされた１つ以上のコンピュータプログラム、即ちコンピュータプログラムインストラクションの１つ以上のモジュールとして具現化することができる。それとは別に又はそれに加えて、プログラムインストラクションは、人為的に発生される伝播信号、例えば、マシン発生される電気的、光学的又は電磁信号にエンコードされ、その信号は、データ処理装置で実行するために適当な受信装置へ送信される情報をエンコードするために発生される。コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダム又はシリアルアクセスメモリアレイ又は装置、或いはそれらの１つ以上の組合せであり、或いはそれに含まれるものである。更に、コンピュータ記憶媒体は、伝播信号でないが、コンピュータ記憶媒体は、人為的に発生される伝播信号にエンコードされるコンピュータプログラムインストラクションのソース又は行先である。又、コンピュータ記憶媒体は、１つ以上の個別の物理的コンポーネント又は媒体（例えば、複数のＣＤ、ディスク、又は他の記憶装置）であるか又はそれに含まれる。
【００６２】
本書に述べる動作は、１つ以上のコンピュータ読み取り可能な記憶装置に記憶されるか又は他のソースから受け取られたデータに対してデータ処理装置により実行される動作として具現化することができる。
【００６３】
「データ処理装置」という語は、一例として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、或いはそれらの複数又は組み合わせを含めて、あらゆる種類のデータ処理装置、デバイス及びマシンを包含する。装置は、特殊目的のロジック回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）を含む。又、装置は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットホームランタイム環境、バーチャルマシン、或いはそれらの１つ以上の組合せを構成するコードも含む。装置及び実行環境は、ウェブサービス、分散型コンピューティング及びグリッドコンピューティングインフラストラクチャーのような種々の異なるコンピューティングモデルインフラストラクチャーを実現することができる。
【００６４】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られている）は、コンパイル又は解釈型言語や、宣言又は手続き型言語を含む任意の形態のプログラミング言語で書き込むことができ、そしてスタンドアローンプログラム、或いはモジュール、コンポーネント、サブルーチン、オブジェクト、又はコンピューティング環境に使用するのに適した他のユニットを含む任意の形態で配備することができる。コンピュータプログラムは、ファイルシステムのファイルに対応してもよいが、必要ではない。又、プログラムは、他のプログラム又はデータ（例えば、マークアップ言語ドキュメントに記憶される１つ以上のスクリプト）を保持するファイルの一部分、当該プログラム専用の単一ファイル、或いは複数の整合されたファイル（例えば、１つ以上のモジュール、サブプログラム、又はコードの部分を記憶するファイル）に記憶することができる。コンピュータプログラムは、１つのサイトに位置されるか又は複数のサイトにわたって分散されて通信ネットワークにより相互接続された１つのコンピュータ又は複数のコンピュータにおいて実行されるように配備することができる。
【００６５】
本書に述べるプロセス及びロジックの流れは、入力データに対して動作して出力を発生することによりアクションを実行するために１つ以上のコンピュータプログラムを実行する１つ以上のプログラム可能なプロセッサにより実行することができる。又、このプロセス及びロジックの流れは、特殊目的のロジック回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）により実行することができ、又、装置は、そのようなものとして具現化することができる。
【００６６】
コンピュータプログラムを実行するのに適したプロセッサは、例えば、汎用及び特殊目的の両マイクロプロセッサ、及び任意の種類のデジタルコンピュータの１つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリメモリ又はランダムアクセスメモリ又はその両方からインストラクション及びデータを受け取る。コンピュータの本質的な要素は、インストラクションに基づいてアクションを実行するためのプロセッサと、インストラクション及びデータを記憶するための１つ以上のメモリ装置である。一般的に、コンピュータは、データを記憶するための１つ以上の大量記憶装置、例えば、磁気ディスク、磁気光学ディスク又は光学ディスクも備え、或いはそこからデータを受け取り又はそこへデータを転送し或いはその両方を行うように作動的に結合される。しかしながら、コンピュータは、そのような装置をもつ必要はない。更に、コンピュータは、別の装置、例えば、幾つか挙げると、移動電話、パーソナルデジタルアシスタント（ＰＤＡ）、移動オーディオ又はビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム（ＧＰＳ）受信器、或いはポータブル記憶装置（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュ装置）に埋め込むことができる。コンピュータプログラムインストラクション及びデータを記憶するのに適した装置は、不揮発性メモリ、媒体及びメモリ装置のあらゆる形態を含み、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭのような半導体メモリデバイス；フラッシュメモリデバイス；例えば、内部ハードディスク又は取り外し可能なディスクのような磁気ディスク；磁気光学ディスク；並びにＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む。プロセッサ及びメモリは、特殊目的のロジック回路によって補足されてもよいし、又はそこに合体されてもよい。
【００６７】
同様に、動作は、図面中に特定の順序で示されたが、そのような動作を図示された特定の順序又は逐次の順序で実行し、或いは望ましい結果を得るために図示された全ての動作が実行されることが必要であると解釈されるべきではない。ある環境においては、マルチタスク及び並列処理が好都合である。更に、上述した実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離が必要であると理解されてはならず、そしてここに述べるプログラムコンポーネント及びシステムは、一般的に、単一のソフトウェア製品に一体化されてもよいし又は複数のソフトウェア製品にパッケージされてもよいことを理解されたい。
【００６８】
以上、本発明の要旨の特定の実施形態を説明した。特許請求の範囲内で他の実施形態も考えられる。更に、ホストからブーティングする他のメカニズムを使用してもよい。あるケースでは、特許請求の範囲に述べたアクションを異なる順序で実行しても、依然、望ましい結果を得ることができる。更に、添付図面に示すプロセスは、望ましい結果を得るために、必ずしも、図示された特定の順序又は逐次の順序を必要としない。ある具現化においては、マルチタスク及び並列処理が好都合である。
【符号の説明】
【００６９】
１００：システム
１０２：ホスト装置
１０４：不揮発性メモリ（ＮＶＭ）パッケージ
１０６：ファームウェア
１０８：状態メッセージ
１１０：接続（バス）
１１２：ホストコントローラ
１１４：メモリ
１１６：動作ファームウェア
１１８：デバッグファームウェア
１２０：製造ファームウェア
１２２：ホストインターフェイス
１２４：メモリコントローラ
１２６：プロセッサ／マイクロプロセッサ
１２８：揮発性メモリ
１３０：ファームウェア
１３２：ＮＶＭ
１３６ａ−ｎ：メモリダイ
１３８ａ−ｎ：ＮＶＭ
１５０：システム
１５２：ホスト装置
１５４：不揮発性メモリ（ＮＶＭ）パッケージ
１５６：トリム値
１５８：状態メッセージ
１６２：ホストコントローラ
１６４：メモリ
１６６：トリム値
１６８：ホストインターフェイス
１７０：コントロール回路
１７２：コマンド実行ロジック
１７４：レジスタ
１７６：トリム値
１８０ａ−ｎ：メモリダイ
１８２ａ−ｎ：ＮＶＭ
【図１Ａ】
0005701259.tif 000002
【図１Ｂ】
0005701259.tif 000003
【図２】
0005701259.tif 000004
【図３】
0005701259.tif 000005
【図４】
0005701259.tif 000006