(57)【要約】      （修正有）【課題】入出力装置へのファームウェアイメージのダウンロードおよび記憶能力を提供する記憶デバイスである入出力装置の製造試験の制御を可能にする記憶デバイスファームウェア、製造用ソフトウェアツール及び技術を提供する。【解決手段】ダウンロードされたファームウェアイメージの実行は、入出力装置の入出力コントローラが、１若しくはそれ以上の選択されたタイプのフラッシュ・メモリ・デバイスを用いた動作によって記憶能力を提供する。選択されたタイプは、入出力コントローラがファームウェアイメージのうちの適切なものを実行することによって共に動作することのできる複数のフラッシュメモリのタイプの中から選択される。任意選択で、製造試験は、入出力装置の記憶能力を試験することを含む。技術は、ＳＳＤ製造自己試験機能をさらに含む。【選択図】図６
2018060575.tif 000002
【特許請求の範囲】
【請求項１】
方法は、以下を含む：
ホストから一つ以上の命令を受け取って、記憶装置を介して、記憶装置のインタフェー
スはホストに連結した。そして、命令がさもなければ、記憶装置によって、できるログ情
報の記憶を主な活動とする記憶装置の記憶空間に格納されるホストによって、目指した、
イベントに応答してコマンドの実行を開始するためにインジケータを受信すること、そし
て、イベントに応答して命令を実行すること。
【請求項２】
更に成り立っている請求項１の方法、
暗号化されたファームウェア貯蔵所からの一つ以上の画像としてファームウェアの解読を
可能にする暗号鍵、記憶装置に含まれる記憶装置コントローラの演算処理装置によって、
実行可能な画像、コマンドの実行を可能にしている画像、記憶装置参照設計に従って建設
されている記憶機器を提供すること、
アクセスを暗号化されたファームウェア貯蔵所に提供すること、
そこにおいて、コマンドは、記憶装置の製造セルフテストを含む、そして、記憶装置は、
コンポーネントのリストから選択されるコンポーネントから成る、リスト・ファームウェ
アと互換性を持つコンポーネント、記憶装置コントローラおよび記憶装置参照設計である
。
【請求項３】
そこにおいて、請求項１の方法、
記憶装置は、記憶装置コントローラと記憶媒体とを具備している。
記憶機器は、参照設計および候補記憶媒体デバイスのリストに従って建設される、
記憶媒体は、リストから選択される素子から成る、
ファームウェアと連動する記憶装置コントローラは、参照設計およびリストのいかなる
部材を介しても記憶デバイスを実施することを可能にされる、
ファームウェアと連動する記憶装置コントローラは、実行することを実行することを可能
にされる。そして、実行することは、記憶装置の製造セルフテストを実行する。
【請求項４】
請求項１の方法（実行することによってもたらされる一つ以上の結果を格納することを
更に含む）。
【請求項５】
請求項１（インジケータがホストから、そして、記憶インタフェースを介してある）の
方法。
【請求項６】
請求項１（記憶空間がさもなければ自己監視分析を主な活動として、技術（スマートな
）ログを報告している）の方法。
【請求項７】
請求項６（スマートなログが第１のスマートなログである。そして、一つ以上を格納す
ることを更に含むことが第２のスマートなログを実行することで結果としてなる）の方法
。
【請求項８】
請求項１（イベントとすぐに、イベントが次のパワーオン・イベントおよびスタートか
ら成る複数のイベントのうちの１つである）の方法。
【請求項９】
請求項１（記憶装置が記憶媒体から成る）の中で方法、命令は一連の一つ以上の種類の
動作から成る。そして、動作のいかなる一つ以上も記憶媒体のいかなる一つ以上の書込も
、消去および点検を特定することから成る。
【請求項１０】
記憶装置は、以下から成る：
第１および第２の部分を有するログ記憶空間、
ファームウェア、
ファームウェアの命令を実行することを可能にされる演算処理装置、
記憶インタフェースに連結するホストから、第１部分に格納される一つ以上のコマンド
の実行を開始するためにインジケータを受信することを可能にされる記憶インタフェース
、
そこにおいて、演算処理装置によるファームウェアの一つ以上のルーチンの実行は、イ
ンジケータを受信して、全てまたは第２部分を実行することのいかなる部分によってもで
きる一つ以上の結果を格納することに応答して命令を実行することを可能にする。
【請求項１１】
そこにおいて、請求項１０の記憶装置：
記憶装置は、記憶装置コントローラと記憶媒体とを具備している、
記憶機器は、参照設計および候補記憶媒体デバイスのリストに従って建設される、
記憶媒体は、リストから選択される素子から成る、
ファームウェアと連動する記憶装置コントローラは、参照設計およびリストのいかなる
部材を介しても記憶デバイスを実施することを可能にされる、
ファームウェアと連動する記憶装置コントローラは、実行することを実行することを可
能にされる。そして、実行することは、記憶装置の製造セルフテストを実行する。
【請求項１２】
請求項１０の記憶装置、そこにおいて、ファームウェア、演算処理装置、記憶インタフ
ェースおよびログ記憶空間は固体ディスク（ＳＳＤ）に含む、そして、記憶インタフェー
スはシリアル先端技術取付け（サタ）インタフェースを含む。
【請求項１３】
最初にスマートなものは記録する１０（。そこにおいて、記憶空間が最初に成るログお
よび分析および報道技術（スマートな）が記録する第２の自己監視）が第１部分および第
２のスマートなログから成るというクレームの記憶装置は、第２部分から成る。
【請求項１４】
請求項１０の記憶装置、命令が、いかなる一つ以上からも成るの記憶命令、消去記憶命
令、記憶インタフェース・バーンイン命令、遅延命令、応力モード命令、ループ命令およ
び条件付きコマンドを書き込む。
【請求項１５】
記憶媒体から更に成っている請求項１０の記憶装置、そして、コマンドは一連の一つ以
上の種類の動作を含む、そして、動作のいかなる一つ以上も記憶媒体のいかなる一つ以上
の書込も、消去および点検を特定することから成る。
【請求項１６】
記憶装置原因の演算処理装置によって、動作を実行する演算処理装置を実行するときに
、一組の命令を有する有形の計算機可読の媒体は、そこにおいて、それを保存した：
ホストから一つ以上の命令を受け取ることを管理することは記憶装置の記憶インタフェー
スを介して記憶装置に連結した。そして、命令がさもなければ、記憶装置によって、でき
るログ情報の記憶を主な活動とする記憶装置の一部の記憶空間に格納されるホストによっ
て、目指した、
インジケータをイベントに応答してコマンドの実行を開始すると認めること、そして、
イベントに応答して命令を実行すること。
【請求項１７】
そこにおいて、請求項１６の有形の計算機可読の媒体：
記憶装置は、記憶装置コントローラと記憶媒体とを具備している。
記憶装置コントローラと互換性を持つファームウェアには、命令の一組が具備されてい
る、
記憶機器は、参照設計および候補記憶媒体デバイスのリストに従って建設される、
記憶媒体は、リストから選択される素子から成る、
ファームウェアと連動する記憶装置コントローラは、参照設計およびリストのいかなる
部材を介しても記憶デバイスを実施することを可能にされる、
ファームウェアと連動する記憶装置コントローラは、実行することを実行することを可
能にされる命令、そして、実行する、命令記憶装置の製造セルフテストを実行する。
【請求項１８】
請求項１６（記憶空間が第１の自己監視分析および報道技術（スマートな）ログおよび
第２のスマートなログから成る）の中で有形の計算機可読の媒体、第１のスマートなログ
は、部分から成る。そして、実行する、命令第２のスマートなログに格納される一つ以上
の結果を生じる。
【請求項１９】
請求項１６（記憶装置が記憶媒体から成る）の中で有形の計算機可読の媒体、命令は一
連の一つ以上の種類の動作から成る。そして、動作のいかなる一つ以上も記憶媒体のいか
なる一つ以上の書込も、消去および点検を特定することから成る。
【請求項２０】
システムは、以下から成る：
記憶装置によって、そして、記憶装置の記憶インタフェースを介して、記憶装置のログ
記憶空間の第１部分に格納される一つ以上の命令を実行し始めるためにインジケータを受
信するための手段、
受信のための手段に応答する命令を実行するための手段、そして、ログ記憶空間の第２
部分において、一つ以上の結果を格納するための手段は、全てまたはいかなる部分によっ
ても実行するための手段を生産した。
【請求項２１】
記憶媒体から更に成っている請求項２０のシステム、そして、コマンドは一連の一つ以
上の種類の動作を含む、そして、動作のいかなる一つ以上も記憶媒体のいかなる一つ以上
の書込も、消去および点検を特定することから成る。
【請求項２２】
方法であって、
入出力装置コントローラと互換性のあるファームウェアを提供する工程と、
入出力装置の基準設計を提供する工程と、
不揮発性メモリデバイスのリストを提供する工程であって、前記リストは複数の不揮発
性メモリデバイス製造者からの不揮発性メモリデバイスを含むものである、前記リストを
提供する工程と、
製造用ソフトウェアツールを提供する工程であって、当該ソフトウェアツールは、
前記ファームウェアを前記入出力装置の製造インスタンス（ｍａｎｕｆａｃｔｕｒｉ
ｎｇ  ｉｎｓｔａｎｃｅ）にダウンロードすることが可能であり、さらに、
前記入出力装置の前記製造インスタンスに、前記入出力装置の製造自己試験および前
記入出力装置の前記製造インスタンスのフラッシュメモリの試験のうちの１若しくはそれ
以上を実行させることが可能なものである、
前記製造用ソフトウェアツールを提供する工程と
を有し、
前記入出力装置コントローラは前記ファームウェアと協動して、前記入出力装置の基準
設計および前記リスト内の前記不揮発性メモリデバイスのうちの任意のデバイスによって
前記入出力装置を実装することが可能なものである
方法。
【請求項２３】
請求項２２記載の方法において、前記入出力装置はソリッドステートディスク（ＳＳＤ
）を有し、前記入出力装置コントローラはＳＳＤコントローラを有し、前記基準設計はＳ
ＳＤ基準設計を有するものである方法。
【請求項２４】
請求項２３記載の方法において、
前記ＳＳＤは、複数のクラスのＳＳＤのうちの第１の特定のクラスのＳＳＤであり、
前記ＳＳＤコントローラは前記ファームウェアと協動して、さらに、前記ＳＳＤ基準設
計および前記リスト内の前記不揮発性メモリデバイスのうちの任意のデバイスによって少
なくとも１つの第２の特定のクラスのＳＳＤを実装することが可能なものであり、
前記ＳＳＤのクラスは、エンタープライズクラスのＳＳＤ、クラウドクラスのＳＳＤ、
産業クラスのＳＳＤ、およびクライアントクラスのＳＳＤを有するものである方法。
【請求項２５】
方法であって、
複数のファームウェアイメージへのアクセスを可能にする工程と、
製造用ソフトウェアツールと通信する工程であって、当該ソフトウェアツールは、
前記ファームウェアイメージのうちの１若しくはそれ以上を入出力装置にダウンロー
ドすることが可能であり、さらに、
前記入出力装置の製造試験を制御することが可能なものである
前記製造用ソフトウェアツールと通信する工程と
を有し、
前記入出力装置は記憶能力を提供する記憶デバイスであり、
前記ダウンロードされたファームウェアイメージを実行することにより、前記入出力装
置の入出力コントローラが、少なくとも一部的に１若しくはそれ以上の選択された種類の
フラッシュ・メモリ・デバイスを用いた動作によって前記記憶能力を提供することが可能
となるものであり、
前記選択された種類は、前記入出力コントローラが前記ファームウェアイメージのうち
の適切な１若しくはそれ以上を実行することによって動作可能な複数のフラッシュメモリ
の種類の中から選択されるものである
方法。
【請求項２６】
請求項２５記載の方法において、前記製造試験は、前記記憶能力の１若しくはそれ以上
の記憶能力試験を含むものである方法。
【請求項２７】
請求項２６記載の方法において、前記記憶能力試験のうちの少なくとも１つは、前記１
若しくはそれ以上の選択された種類のフラッシュ・メモリ・デバイスの１若しくはそれ以
上のフラッシュメモリ試験を含むものである方法。
【請求項２８】
請求項２５記載の方法において、前記ファームウェアイメージは保護されたファームウ
ェアイメージを含み、前記アクセスを可能にする工程は認証されたアクセスを可能にする
工程を有するものである方法。
【請求項２９】
請求項２８記載の方法において、前記ファームウェアイメージのうちの少なくとも一部
は暗号化されており、前記認証されたアクセスを可能にする工程は、前記暗号化されたフ
ァームウェアイメージのうちの１若しくはそれ以上の部分を解読することを可能にする１
若しくはそれ以上の暗号鍵を提供する工程を有するものである方法。
【請求項３０】
請求項２５記載の方法において、前記フラッシュメモリの種類は、複数の互いに異なる
記憶容量を有するフラッシュメモリ構成部品を有するものである方法。
【請求項３１】
請求項２５記載の方法において、前記フラッシュメモリの種類は、複数の製造プロセス
によって製造されたフラッシュメモリ構成部品を有するものである方法。
【請求項３２】
請求項２５（フラッシュメモリ・種類が複数の操作用パラメータを有するフラッシュメ
モリ・コンポーネントから成る）の方法。
【請求項３３】
方法は、以下を含む：
複数のファームウェア画像にアクセスを要請すること、
入出力デバイスにファームウェア画像の一つ以上をダウンロードすることを可能にされ
て、入出力デバイスの製造試験を制御することを更に可能にされる製造用ソフトウェアツ
ールを作動すること、
入出力デバイスはどこで貯蔵能を提供している記憶装置である、ダウンロードされたフ
ァームウェア画像の実行は入出力デバイスのＩ／Ｏコントローラが一つ以上の選択された
種類のフラッシュメモリ装置を有する動作を経て少なくとも貯蔵能を一つには提供するこ
とを可能にする。そして、選択された種類は、Ｉ／Ｏコントローラがファームウェア画像
の適当な一つ以上の実行を経て作動できる複数のフラッシュメモリ・種類から選択される
。
【請求項３４】
請求項３３（製造試験が貯蔵能の一つ以上の貯蔵能試験から成る）の方法。
【請求項３５】
請求項３４（貯蔵能試験で少なくとも一つのものは一つ以上の選択された種類のフラッ
シュメモリ装置の一つ以上のフラッシュメモリ試験から成る）の方法。
【請求項３６】
ファームウェア最も少なく画像のいくつかの３３（要求元アクセスが認証されたアクセ
スを要請することから成る）が暗号化されて、認証されたアクセスが暗号化されたファー
ムウェア画像の一つ以上の部分を解読することを可能にする一つ以上の暗号鍵を提供して
成る要求元であるというクレームの方法。
【請求項３７】
請求項３３（フラッシュメモリ・タイプが複数の異なった記憶容量を有するフラッシュ
メモリ・コンポーネントから成る）の方法。
【請求項３８】
請求項３３（フラッシュメモリ・タイプが複数の生産工程により製造されるフラッシュ
メモリ・コンポーネントから成る）の方法。
【請求項３９】
請求項３３（フラッシュメモリ・タイプが複数の操作用パラメータを有するフラッシュ
メモリ・コンポーネントから成る）の方法。
【請求項４０】
システムは、以下から成る：
要請されたアクセスを経てアクセス可能な複数のファームウェア画像、
伝達されて、入出力デバイスにファームウェア画像の一つ以上をダウンロードすること
を可能にされて、入出力デバイスの製造試験を制御することを更に可能にされることに適
している製造用ソフトウェアツール、
入出力デバイスはどこで貯蔵能を提供している記憶装置である、ダウンロードされたフ
ァームウェア画像の実行は入出力デバイスのＩ／Ｏコントローラが一つ以上の選択された
タイプのフラッシュメモリ装置を有する動作を経て少なくとも貯蔵能を一つには提供する
ことを可能にする。そして、選択されたタイプは、Ｉ／Ｏコントローラがファームウェア
画像の適当な一つ以上の実行を経て作動できる複数のフラッシュメモリ・タイプから選択
される。
【請求項４１】
請求項４０（製造試験が貯蔵能の一つ以上の貯蔵能試験から成る）のシステム。
【請求項４２】
請求項４１（貯蔵能試験で少なくとも一つのものは一つ以上の選択されたタイプのフラ
ッシュメモリ装置の一つ以上のフラッシュメモリ試験から成る）のシステム。
【請求項４３】
請求項４０（コミュニケーションが少なくともネットワークを介して一つにはある）の
システム。
【請求項４４】
ファームウェア最も少なく画像のいくつかの４０（要請されたアクセスが認証されたア
クセスから成る）が暗号化されるというクレームのシステム、そして、認証されたアクセ
スは、暗号化されたファームウェア画像の一つ以上の部分を解読することを可能にする一
つ以上の暗号鍵を提供することから成る。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の参照
本出願の優先権利益の主張を、（それがある場合には、適宜）添付の出願データシート
、請求、または送達状において行う。本出願の種類によって許容される範囲内で、本出願
はこの参照によりあらゆる目的で以下の出願を組み込むものであり、以下の出願はすべて
、発明がなされた時点において本出願と所有者を同じくするものである。
【０００２】
２０１２年３月３０日付で出願された、Ｋａｒｌ  Ｄａｖｉｄ  ＳＣＨＵＨを筆頭発明
者とする、「Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｉｓｋ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｓｅｌ
ｆ  Ｔｅｓｔ」という名称の、米国非仮出願（整理番号第ＳＦ−１１−２１号および出願
番号第１３／４３６６３９号）、ならびに  ２０１１年１１月１４日付で出願された、Ｔ
ｈａｄ  ＯＭＵＲＡを筆頭発明者とする、「Ｖｉｒｔｕａｌ  Ｄｒｉｖｅ  Ｍａｎｕｆａ
ｃｔｕｒｉｎｇ  Ｍｏｄｅｌ」という名称の、米国仮出願（整理番号第ＳＦ−１１−１７
号および出願番号第６１／５５９２０１号）。
【０００３】
不揮発性記憶の技術および製造における前進が、使用のコスト、収益性、性能、効率、
および有用性の改善を提供するために必要とされている。
【背景技術】
【０００４】
公知である、または周知であるものとして明記されない限り、コンテキスト、定義、ま
たは比較を目的とするものを含む本明細書における技法および概念の言及は、そのような
技法または概念が以前から公知であり、あるいは先行技術の一部であることの容認と解釈
すべきではない。特許、特許出願、および出版物を含む、本明細書で引用されるあらゆる
参照文献は（それがある場合には）、具体的に組み込まれているか否かを問わず、あらゆ
る目的で、この参照によりその全体が本明細書に組み込まれるものである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は多くの方法で実施されてよく、例えば、プロセス、製造品、装置、システム、
組成物、ならびに、コンピュータ可読記憶媒体（ディスクといった光学的大容量記憶装置
および／または磁気的大容量記憶装置、フラッシュストレージといった不揮発性記憶を有
する集積回路など）や、プログラム命令が光通信リンクまたは電子通信リンク上で送られ
るコンピュータネットワークといったコンピュータ可読媒体として実施されてよい。詳細
な説明では、上記の分野における使用のコスト、収益性、性能、効率、および有用性の改
善を可能にする本発明の１若しくはそれ以上の実施形態の説明を行う。詳細な説明は、詳
細な説明の残りの部分の理解を容易にするための概説を含む。概説は、本明細書で説明す
る概念に従うシステム、方法、製造品、およびコンピュータ可読媒体の１若しくはそれ以
上の例示的実施形態を含む。結論の項でより詳細に論じるように、本発明は、発行される
特許請求の範囲内のあらゆる可能な改変形態および変形形態を包含するものである。
【図面の簡単な説明】
【０００６】
【図１Ａ】図１Ａは、仮想ドライブ製造モデル（Ｖｉｒｔｕａｌ  Ｄｒｉｖｅ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｍｏｄｅｌ：ＶＤＭＭ）およびＳＳＤ製造自己試験（ＳＳＤ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｓｅｌｆ  Ｔｅｓｔ：ＭＳＴ）を用いた使用に適合するＳＳＤコントローラを含むソリッドステートディスク（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｉｓｋ：ＳＳＤ）の実施形態の選択された詳細を示す図である。
【図１Ｂ】図１Ｂは、図１ＡのＳＳＤの１若しくはそれ以上のインスタンスを含むシステムの様々な実施形態の選択された詳細を示す図である。
【図２】図２は、論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）の論理ページ番号（Ｌｏｇｉｃａｌ  Ｐａｇｅ  Ｎｕｍｂｅｒ：ＬＰＮ）部分のマッピングの実施形態の選択された詳細を示す図である。
【図３】図３は、読み取り単位の量として測った長さを総体として有する、様々な読み取り単位数として編成された読み取りデータを生成するための読み取り単位アドレスのところの不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）へのアクセスの実施形態の選択された詳細を示す図である。
【図４Ａ】図４Ａは、読み取り単位の実施形態の選択された詳細を示す図である。
【図４Ｂ】図４Ｂは、読み取り単位の別の実施形態の選択された詳細を示す図である。
【図５】図５は、いくつかのフィールドを有するヘッダの実施形態の選択された詳細を示す図である。
【図６】図６は、仮想ドライブ製造モデルの実施形態の選択された詳細を示す流れ図である。
【図７Ａ】図７Ａは、仮想ドライブ製造モデルに従ったＳＳＤの（大量）生産（またはプロトタイプ構築）の実施形態の選択された詳細を示す概念図である。
【図７Ｂ】図７Ｂは、仮想ドライブ製造モデルに従ったＳＳＤの（大量）生産（またはプロトタイプ構築）のためのシステムの実施形態の選択された詳細を示す図である。
【図７Ｃ】図７Ｃは、仮想ドライブ製造モデルに従ったＳＳＤのファームウェア更新の実施形態の選択された詳細を示す概念図である。
【図７Ｄ】図７Ｄは、仮想ドライブ製造モデルに従ったＳＳＤのファームウェア更新のためのシステムの実施形態の選択された詳細を示す図である。
【図８】図８は、第１レベルマップ（Ｆｉｒｓｔ−Ｌｅｖｅｌ  Ｍａｐ：ＦＬＭ）および１若しくはそれ以上の第２レベルマップ（Ｓｅｃｏｎｄ−Ｌｅｖｅｌ  Ｍａｐ：ＳＬＭ）ページを有する２レベルマップによるＬＢＡのＮＶＭに記憶された論理ブロック（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ：ＬＢｓ）へのマッピングの実施形態の選択された詳細を示す図である。
【図９Ａ】図９Ａは、ＳＳＤ  ＭＳＴフローの実施形態の選択された詳細を示す図である。
【図９Ｂ】図９Ｂは、１若しくはそれ以上のＳＳＤ上で１若しくはそれ以上のＭＳＴを行うためのシステムの実施形態の選択された詳細を示す図である。
【図１０】図１０は、ＭＳＴコマンドならびに関連付けられたパラメータ対の数およびパラメータ識別子／値対の実施形態の選択された詳細を示す図である。
【図１１】図１１は、ＭＳＴで使用可能な様々なコマンドの実施形態の選択された詳細を示す図である。
【図１２】図１２は、ＭＳＴの一例の選択された詳細を示す図である。
【図１３】図１３Ａ〜図１３Ｄは、具体的な使用シナリオでのドライブ書き込みコマンドの実施の実施形態の選択された詳細を示す図である。
【図１４】図１４は、ＭＳＴ結果ログの実施形態の選択された詳細を示す図である。                          図面の参照符号の一覧
【表１】
2018060575.tif 000003
2018060575.tif 000004
2018060575.tif 000005
2018060575.tif 000006
2018060575.tif 000007
2018060575.tif 000008
【発明を実施するための形態】
【０００７】
本発明の１若しくはそれ以上の実施形態の詳細な説明を、以下で、本発明の選択された
詳細を図示する添付の図を併用して行う。本発明を実施形態との関連で説明する。実施形
態は、本明細書では、単なる例示であると理解されるものであり、本発明は、明確に、本
明細書中の実施形態のいずれか若しくは全部に、またはいずれか若しくは全部によって限
定されるものではなく、本発明は、多数の代替形態、改変形態、および均等物を包含する
ものである。説明が単調にならないように、様々な言葉によるラベル（最初の、最後の、
ある一定の、様々な、別の、他の、特定の、選択の、いくつかの、目立ったなど）が実施
形態のセットを区別するために適用される場合がある。本明細書で使用する場合、そのよ
うなラベルは、明確に、質を伝えるためのものでも、いかなる形の好みや先入観を伝える
ためのものでもなく、単に、別々のセットを都合よく区別するためのものにすぎない。開
示するプロセスのいくつかの動作の順序は本発明の範囲内で変更可能である。多様な実施
形態がプロセス、システム、および／またはプログラム命令の各特徴の差異を説明するの
に使用される場合は常に、所定の、または動的に決定される基準に従って、複数の多様な
実施形態にそれぞれ対応する複数の動作モードの１つの静的選択および／または動的選択
を行う他の実施形態が企図されている。以下の説明では、本発明の十分な理解を提供する
ために、多数の具体的詳細を示す。それらの詳細は例として示すものであり、本発明は、
それらの詳細の一部または全部がなくても、特許請求の範囲に従って実施されうる。わか
りやすくするために、本発明に関連した技術分野で公知の技術資料は、本発明が不必要に
曖昧になることのないように詳細に説明していない。
【０００８】
概説
この概説は、詳細な説明のより迅速な理解を助けるために含まれるにすぎず、本発明は
、（それがある場合には、明示的な例を含む）この概説で提示される概念だけに限定され
るものではなく、どんな概説の段落も、必然的に、主題全体の縮約された見方であり、網
羅的な、または限定的な記述であることを意味するものではない。例えば、以下の概説は
、スペースおよび編成によりある一定の実施形態だけに限定される概要情報を提供するも
のである。特許請求の範囲が究極的にそこに導かれることになる実施形態を含む多くの他
の実施形態があり、それらを本明細書の残りの部分にわたって論じる。
【０００９】
頭字語
以下で定義する様々な省略形（頭字語など）の少なくともいくつかは、本明細書で使用
するある一定の要素を指すものである。
【００１０】
【表２】
2018060575.tif 000009
2018060575.tif 000010
2018060575.tif 000011
2018060575.tif 000012
【００１１】
ＳＳＤ  ＭＳＴ機能は、ＳＳＤ製造者が、ＳＳＤのための試験を定義、作成し、ＳＳＤ
の生産インスタンス上で試験を実行し、試験の完了後に実行した結果を集約することを可
能にする。製造者は、ＳＳＤの内部動作（例えば、試験の各要素がＳＳＤによってどのよ
うにして実施されるか）の具体的知識なしで試験を作成し、対象とする生産および／また
は品質保証要件に従って試験をカスタマイズする。試験は、任意選択で、製造者が定義す
るように、試験パラメータ、順序、および終了基準のうちの１若しくはそれ以上を組み入
れる。試験は、（例えば、ＡＴＡ  ＳＭＡＲＴプロトコルといったストレージ・インター
フェース・プロトコルによって起動されるような）ＳＳＤによって実施される任意選択の
既定の、かつ／または組み込み式の試験に加えて行われるものである。
【００１２】
試験の定義および作成は、テストスクリプトを生成すること、およびスクリプトを生産
ＳＳＤ上へロードすることを含む。実行は、生産ＳＳＤの電源を投入し、生産ＳＳＤがロ
ードされたスクリプトを自己実行することを含む。電源投入および自己実行は、例えば、
スクリプトをロードしたホストに接続されている間に、スクリプトをＳＳＤにロードする
ことはできないが、ＳＳＤに電力を提供することが可能なラックに接続されている間に、
または電力を提供することが可能なある他の構成部品に接続されている間に行われる。ラ
ックは、任意選択で、相対的に多数の生産用ＳＳＤの費用効率的な並列試験を可能にする
ために低価格化される。結果集約は、自己実行の結果（イベントログや不良ブロック情報
など）を読み取ること、および生産ＳＳＤを顧客使用に備えることを含む。使用に備える
ことは、生産ＳＳＤをセキュア消去すること、結果の一部（イベントログなど）をクリア
すること、および結果の一部（不良ブロック情報など）をそのままにしておくことを含む
。
【００１３】
ＳＳＤは、（例えば、ホストがＳＳＤの「入力」ＳＭＡＲＴログを書き込むことによっ
て）試験を受け取り、（例えば、ファームウェアが入力ＳＭＡＲＴログからコマンドを読
み取ることによって）試験のコマンドを実行し、（例えば、ファームウェアがＳＳＤの「
出力」ＳＭＡＲＴログに書き込むことによって）結果を提供することができるようになっ
ている。ＳＳＤは、ハードウェア、ソフトウェア、およびファームウェアのうちの任意の
１若しくはそれ以上によって、受け取り、実行、および提供を行うことができるようにな
っている。コマンドは、ドライブ書き込み、ドライブ消去、ＳＡＴＡ  ＰＨＹバーンイン
、遅延、およびストレスモードを含む。コマンド（「プリミティブ」ともいう）のうちの
任意の１若しくはそれ以上が、例えばコマンドの動作を指定するための、０以上のパラメ
ータを有する。
【００１４】
ある実施形態および／または使用シナリオでは、ＳＳＤ  ＭＳＴ機能は、ＳＳＤ仮想製
造モデルと併用される。場合によっては、ＳＳＤ  ＭＳＴ機能は、（例えば、仮想ドライ
ブ製造モデルを使用するシステムベンダのコンテキストでは）ＳＳＤを製造しているシス
テムベンダによって使用される。
【００１５】
仮想ドライブ製造モデルは、システムベンダが、記憶デバイスの製造のための、メモリ
デバイスといった選択される材料を直接調達することを可能にする。直接調達は、システ
ムベンダが記憶デバイスベンダから（選択される材料を使用した）記憶デバイスを調達す
る技法と比べて、選択される材料にかかるマージンマークアップ（マージン上乗せなど）
を省く。メモリデバイス以外の、選択される材料の他の例には、電源、温度センサ、ケー
シング、プリント回路基板、および受動部品が含まれる。具体例として、選択される材料
は、フラッシュ・メモリ・デバイスなどのＮＶＭといったメモリデバイスであり、記憶デ
バイスはＳＳＤである。設計業者は、ＳＳＤコントローラおよび関連付けられたファーム
ウェアを、基準設計、ＳＳＤコントローラと共に基準設計において使用するための、推奨
され、かつ／またはサポートされるフラッシュ・メモリ・デバイスのリスト、および、任
意選択で、ＳＳＤコントローラを使用して構築される記憶デバイスの大量生産を可能にす
る製造用ソフトウェアと共に実施する。設計業者は、任意選択で、かつ／または選択的に
、システムベンダが、ＳＳＤコントローラ、ファームウェア、リストのうちフラッシュ・
メモリ・デバイス、および他の材料を使用して、基準設計に従ったＳＳＤの大量生産を直
接（または間接的に）行うことを可能にするために、システムベンダに、販促品、エンジ
ニアリング情報、エンジニアリングサンプル、製造用ソフトウェア、および／または試験
／資格サービスを提供する。
【００１６】
様々な実施形態および／または使用シナリオにおいて、設計業者によって実施されるＳ
ＳＤコントローラおよび／またはファームウェアは、複数のフラッシュ・メモリ・ベンダ
からのフラッシュ・メモリ・デバイスと共に動作することができるようになっている。複
数のフラッシ・メモリ・ベンダからのフラッシュ・メモリ・デバイスを用いた動作は、例
えば、使用されるフラッシュ・メモリ・デバイスに従って、インターフェースプロトコル
、読み取り、書き込み、および／若しくは消去の技法、パラメータ、ならびに／または特
性の運用を変えることによって可能となる。複数のフラッシ・メモリ・ベンダからのフラ
ッシュ・メモリ・デバイスを用いた動作は、さらに、別の例では、様々な誤り回復符号に
従ってフラッシュ・メモリ・デバイスを管理する管理アルゴリズムによって可能となる。
【００１７】
様々な実施形態および／または使用シナリオにおいて、設計業者によって実施されるＳ
ＳＤコントローラおよび／またはファームウェアは、様々なサイズの量のホストＬＢを用
いて動作することができるようになっており、例えば、企業および／またはクラウド使用
シナリオのための様々なＬＢサイズを用いて動作するＳＳＤ製品、ならびに、例えば、産
業および／またはクライアント使用シナリオのための単一ＬＢサイズを用いて動作するＳ
ＳＤ製品を使用可能にする。様々な実施形態および／または使用シナリオにおいて、設計
業者によって実施されるＳＳＤコントローラおよび／またはファームウェアは、例えば、
企業、クラウド、産業、および／またはクライアントでの各使用シナリオのためといった
様々な容量のＳＳＤを実施することができるようになっている。
【００１８】
ある実施形態では、ＳＳＤといった入出力装置がＳＳＤコントローラを含む。ＳＳＤコ
ントローラは、ＳＳＤのホストインターフェースとＮＶＭとの間のブリッジとして働き、
ＳＳＤのホストインターフェースを介してコンピューティングホストから送られたホスト
プロトコルのコマンドを実行する。コマンドの少なくとも一部がＳＳＤに、コンピューテ
ィングホストから送られたデータおよびコンピューティングホストに送られるデータを用
いて、それぞれ、ＮＶＭの書き込みおよび読み取りを行うよう指図する。別の実施形態で
は、ＳＳＤコントローラは、マップを使用してホストプロトコルのＬＢＡとＮＶＭ内の物
理的記憶アドレスとの間の変換を行うことができるようになっている。別の実施形態では
、マップの少なくとも一部分が、（コンピューティングホストからは見えない）入出力装
置の専用記憶に使用される。例えば、コンピューティングホストからアクセスできないＬ
ＢＡの一部分が、入出力装置によって、ログ、統計、または他の専用データへのアクセス
を管理するのに使用される。
【００１９】
様々な実施形態によれば、マップは、１レベルマップ、２レベルマップ、マルチレベル
マップ、直接マップ、連想マップ、およびホストプロトコルのＬＢＡをＮＶＭ内の物理的
記憶アドレスと関連付ける他の手段のうちの１若しくはそれ以上である。例えば、ある実
施形態では、２レベルマップは、ＬＢＡの第１の関数を、複数の第２レベル・マップ・ペ
ージのうちの１つのＮＶＭ内のそれぞれのアドレスと関連付ける第１レベルマップを含み
、第２レベル・マップ・ページの各々は、ＬＢＡの第２の関数をＬＢＡに対応するデータ
のＮＶＭ内のそれぞれのアドレスと関連付ける。別の実施形態では、ＬＢＡの第１の関数
およびＬＢＡの第２の関数の例は、第２レベル・マップ・ページの各々に含まれる固定数
のエントリによって除算されるときに得られる商および余りである。複数の第２レベル・
マップ・ページをまとめて第２レベルマップと呼ぶ。本明細書では、マップの１若しくは
それ以上のエントリという場合、それは、１レベルマップ、２レベルマップの第１レベル
、２レベルマップの第２レベル、マルチレベルマップの任意のレベル、またはエントリを
有する任意の他の種類のマップを含む、任意の種類のマップの１若しくはそれ以上のエン
トリをいう。
【００２０】
様々な実施形態によれば、第２レベルマップ（またはマルチレベルマップの低レベル）
のマップページの各々は、マップページの他のものと同数のエントリを含む、マップペー
ジの少なくとも他のいくつかと異なる数のエントリを含む、マップページの他のものと同
じ粒度のエントリを含む、マップページの他のものと異なる粒度のエントリを含む、すべ
て同じ粒度ものであるエントリを含む、複数の粒度のものであるエントリを含む、マップ
ページの内容の書式および／またはレイアウトを指定するそれぞれのヘッダを含む、なら
びにマップページのエントリを表す任意の他の書式、レイアウト、または編成を有する、
のうちの１若しくはそれ以上である。例えば、第１の第２レベル・マップ・ページは、１
エントリ当たり４ＫＢの粒度の仕様を有し、第２の第２レベル・マップ・ページは、１エ
ントリ当たり８ＫＢの粒度、および第１の第２レベル・マップ・ページの半数だけのエン
トリの仕様を有する。
【００２１】
別の実施形態では、高レベルマップのエントリは、対応する低レベル・マップページの
書式および／またはレイアウト情報を含む。例えば、第１レベルマップ内のエントリの各
々は、関連付けられた第２レベル・マップ・ページ内のエントリについての粒度仕様を含
む。
【００２２】
ある実施形態では、マップは複数のエントリを含み、エントリの各々は、１若しくはそ
れ以上のＬＢＡを、ＬＢＡのデータが記憶されているＮＶＭ内のそれぞれの位置を選択的
に含む情報と関連付ける。例えば、ＬＢＡは５１２Ｂのセクタを指定し、マップ内の各エ
ントリは、ＬＢＡの並んだ８セクタ（４ＫＢ）領域と関連付けられている。
【００２３】
様々な実施形態によれば、マップのエントリの情報は、ＮＶＭ内の位置、ＮＶＭ内の読
み取り単位のアドレス、ＮＶＭに記憶された関連付けられたＬＢＡのデータを獲得するた
めに読み取るべき読み取り単位の数、ＮＶＭに記憶された関連付けられたＬＢＡのデータ
のサイズであって、任意選択で、かつ／または選択的に１バイトより大きい粒度を有する
サイズ、関連付けられたＬＢＡのデータが切り捨てられているといった理由で、関連付け
られたＬＢＡのデータがＮＶＭに存在しないという表示、関連付けられたＬＢＡのデータ
の属性、および関連付けられたＬＢＡのデータの任意の他のメタデータ、属性、または性
質のうちの１若しくはそれ以上を含む。
【００２４】
ある実施形態では、ＮＶＭ内のアドレスは、アドレスのうちの１つを表すのに必要とさ
れるビット数を低減させるために領域へグループ化される。例えば、入出力装置のＬＢＡ
が６４領域に分割され、ＮＶＭが、ＬＢＡ領域の各々に１つずつ、６４領域に分割される
場合には、特定のＬＢＡと関連付けられたマップエントリは、必要とするアドレスビット
数が６少なくて済む。というのは、ＮＶＭ内の領域のうちの１つが特定のＬＢＡの領域に
よって決定されうるからである。様々な実施形態によれば、ＬＢＡの領域とＮＶＭの領域
との間の関連付けは、同等性、１対１数値関数といった直接的関連付け、表ルックアップ
、動的マッピング、および２セットの数を関連付ける任意の他の方法のうちの１若しくは
それ以上によるものである。
【００２５】
様々な実施形態では、ＮＶＭ内の位置は、複数の読み取り単位のうちの１つのアドレス
、ならびに読み取り単位での長さおよび／または範囲を含む。長さは、ＮＶＭに記憶され
た複数のデータ項目のうちの特定の１つのサイズであり、マップのエントリと関連付けら
れた特定のデータ項目は長さを含む。様々な実施形態によれば、長さは、１バイト、１よ
り大きいバイト、１読み取り単位、読み取り単位の指定された小部分、データ項目のうち
の１つの最大許容圧縮率に従った粒度、および記憶使用量を追跡するのに使用される任意
の他の粒度のうちの１若しくはそれ以上の粒度を有する。範囲は、特定のデータ項目のそ
れぞれの部分を記憶する、整数の読み取り単位といった読み取り単位の数である。別の実
施形態および／または使用シナリオでは、読み取り単位の範囲内の最初の読み取り単位お
よび／または読み取り単位の範囲内の最後の読み取り単位は、任意選択で、かつ／または
選択的に、データ項目のうちの複数のデータ項目の一部または全部を記憶する。ある実施
形態および／または使用シナリオでは、長さおよび／または範囲は、例えば、長さ（長さ
および／または範囲が符号化されるコンテキストではサイズともいう）を範囲からのオフ
セットとして記憶することによって、符号化されて記憶される。ある実施形態および／ま
たは使用シナリオでは、長さおよび／または範囲の未使用の符号化が、関連付けられたデ
ータ項目がＮＶＭに存在するかどうかについての指示といった追加情報を符号化する。
【００２６】
ＮＶＭ内の位置をアドレスおよび長さとして符号化することにより、ＮＶＭに記憶され
るデータを、様々なサイズのものとすることが可能になる。例えば、第１の４ＫＢ領域は
４００Ｂのサイズまで圧縮されており、全体として単一の読み取り単位に記憶されており
（例えば、１つの読み取り単位の範囲を有し）、１つの読み取り単位の長さを有し、他方
、第２の４ＫＢ領域は圧縮不能であり、全体として１より大の読み取り単位内に記憶され
ており（例えば、１より大の読み取り単位の範囲を有し）、１より大の読み取り単位の長
さを有する。別の例では、第３の２ＫＢ領域は１ＫＢのサイズまで圧縮されており、２つ
の読み取り単位にまたがって記憶されており（例えば、２つの読み取り単位の範囲を有し
）、１つの読み取り単位の長さを有し、他方、第４の１ＫＢ領域は圧縮不能であるが、１
つの読み取り単位内に記憶されており（例えば、１つの読み取り単位の範囲を有し）、１
つの読み取り単位の長さを有する。別の実施形態では、ＬＢＡの領域と関連付けられた記
憶の読み取り単位での長さおよび／または範囲を有することにより、ＬＢＡの領域のデー
タを取り出すのにＮＶＭの必要な部分だけを読み取ることが可能になる。
【００２７】
ある実施形態では、マップのエントリの各々は、エントリと関連付けられたＬＢＡの領
域の属性を指定する、メタデータともいう情報を含む。別の実施形態では、メタデータの
少なくとも一部は、例えば、領域の複数のＬＢＡの各々について別々のメタデータ仕様を
有することによって、領域の粒度より細かい粒度ものである。
【００２８】
ある実施形態では、ＮＶＭ内の様々なサイズの量の圧縮データにアクセスすることによ
り、ある使用シナリオでは記憶効率が改善される。例えば、ＳＳＤコントローラは、コン
ピューティングホストから（例えばディスク書き込みコマンドに関連した）（圧縮されて
いない）データを受け取り、データを圧縮し、データをフラッシュメモリへ記憶する。コ
ンピューティングホストからの（例えばディスク読み取りコマンドに関連した）その後の
要求に応答して、ＳＳＤコントローラはフラッシュメモリから圧縮データを読み取り、圧
縮データを解凍し、解凍されたデータをコンピューティングホストに提供する。圧縮デー
タは、様々なサイズの量に従ってフラッシュメモリに記憶され、各量のサイズは、例えば
、圧縮アルゴリズム、動作モード、様々なデータに関する圧縮有効性により変動する。Ｓ
ＳＤコントローラは、一部は、含まれるマップ表を調べて（１つまたは複数の）ヘッダが
フラッシュメモリのどこに記憶されているか確認することによってデータを解凍する。Ｓ
ＳＤコントローラは、適切な（圧縮）データがフラッシュメモリのどこに記憶されている
か確認するためにフラッシュメモリから得た（１つまたは複数の）ヘッダをパースする。
ＳＳＤコントローラは、コンピューティングホストに提供すべき解凍データを生成するた
めに、フラッシュメモリからの適切なデータを解凍する。本出願では、「解凍する（ｕｎ
ｃｏｍｐｒｅｓｓ）」（およびその変形）は、「伸張する（ｄｅｃｏｍｐｒｅｓｓ）」（
およびその変形）と同義である。
【００２９】
様々な実施形態では、ＳＳＤコントローラは、コンピューティングホストとインターフ
ェースするためのホストインターフェースと、フラッシュメモリといったＮＶＭとインタ
ーフェースするためのインターフェースと、各インターフェースを制御し、圧縮および解
凍と共に、低レベル冗長性および／または誤り訂正、高レベル冗長性および／または誤り
訂正、ならびに独立シリコン素子を用いた動的高レベル冗長性モード管理を行う（かつ／
または行うことの様々な態様を制御する）ための回路とを含む。
【００３０】
様々な実施形態によれば、あるホストインターフェースは、ＵＳＢインターフェース規
格、ＣＦインターフェース規格、ＭＭＣインターフェース規格、ｅＭＭＣインターフェー
ス規格、サンダーボルトインターフェース規格、ＵＦＳインターフェース規格、ＳＤイン
ターフェース規格、メモリ・スティック・インターフェース規格、ｘＤピクチャ・カード
・インターフェース規格、ＩＤＥインターフェース規格、ＳＡＴＡインターフェース規格
、ＳＣＳＩインターフェース規格、ＳＡＳインターフェース規格、およびＰＣＩｅインタ
ーフェース規格のうちの１若しくはそれ以上に準拠する。様々な実施形態によれば、コン
ピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコン
ピュータ、ストレージサーバ、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージア
プライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブ
ックコンピュータ、タブレット機器またはタブレットコンピュータ、ウルトラブックコン
ピュータ、電子読み取り装置（ｅ−ｒｅａｄｅｒなど）、ＰＤＡ、ナビゲーションンシス
テム、（ハンドヘルド型）ＧＰＳ機器、自動通信路制御システム、自動車媒体制御システ
ムまたはコンピュータ、プリンタ、コピー機またはファックス機またはオールインワン機
器、ＰＯＳ機器、金銭登録機、メディアプレーヤ、テレビ、メディアレコーダ、ＤＶＲ、
ディジタルカメラ、セルラハンドセット、コードレス電話機ハンドセット、および電子ゲ
ームのうちの全部または任意の部分である。ある実施形態では、インターフェースホスト
（ＳＡＳ／ＳＡＴＡブリッジなど）は、コンピューティングホストおよび／またはコンピ
ューティングホストへのブリッジとして動作する。
【００３１】
様々な実施形態では、ＳＳＤコントローラは、１若しくはそれ以上のプロセッサを含む
。プロセッサは、ＳＳＤコントローラの動作を制御し、かつ／または行うためにファーム
ウェアを実行する。ＳＳＤコントローラは、コマンドおよび／または状況ならびにデータ
を送り、受け取るためにコンピューティングホストと通信する。コンピューティングホス
トは、オペレーティングシステム、ドライバ、およびアプリケーションのうちの１若しく
はそれ以上を実行する。コンピューティングホストによるＳＳＤコントローラとの通信は
、任意選択で、かつ／または選択的に、ドライバおよび／またはアプリケーションによる
ものである。第１の例では、ＳＳＤコントローラへのすべての通信がドライバによるもの
であり、アプリケーションは、ドライバに高レベルコマンドを提供し、ドライバがそれを
ＳＳＤコントローラのための特定のコマンドに変換する。第２の例では、ドライバはバイ
パスモードを実施し、アプリケーションは、ドライバを介してＳＳＤコントローラに特定
のコマンドを送ることができるようになっている。第３の例では、ＰＣＩｅ  ＳＳＤコン
トローラが１若しくはそれ以上の仮想機能（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎｓ：ＶＦ
ｓ）をサポートし、アプリケーションが、一度構成されると、ドライバをバイパスしてＳ
ＳＤコントローラを直接通信することを可能にする。
【００３２】
様々な実施形態によれば、あるＳＳＤは、ＨＤＤ、ＣＤドライブ、ＤＶＤドライブとい
った磁気的不揮発性記憶および／または光学的不揮発性記憶によって使用されるフォーム
ファクタ、電気的インターフェース、および／またはプロトコルに準拠する。様々な実施
形態では、ＳＳＤは、０以上のパリティ符号、０以上のＲＳ符号、０以上のＢＣＨ符号、
０以上のビタビ符号または他のトレリス符号、および０以上のＬＤＰＣ符号の様々な組み
合わせを使用する。
【００３３】
例示的実施形態
発明を実施するための形態の概説を終えるにあたり、以下に、例示的実施形態をまとめ
て示す。これらの例示的実施形態は、少なくとも一部は「ＥＣ」（Ｅｘａｍｐｌｅ  Ｃｏ
ｍｂｉｎａｔｉｏｎｓ：ＥＣｓ）として明示的に列挙されたものを含み、本明細書で説明
する概念に従った様々な種類の実施形態の詳細な説明を提供するものである。これらの例
は、相互排他的であることも、網羅的であることも、限定的であることも意図されておら
ず、本発明は、これらの例示的実施形態だけに限定されるものではなく、発行される特許
請求の範囲およびこれの均等物の範囲内のすべての可能な改変形態および変形形態を包含
するものである。
【００３４】
ＥＣ１）システムであって、
暗号鍵を提供することにより、ファームウェア（ＦＷ）を暗号化ファームウェアリポジ
トリからの１若しくはそれ以上のイメージとして解読することを可能にする手段であって
、前記イメージは、入出力装置の基準設計に従って構築された入出力装置に含まれる入出
力装置コントローラと互換性があるものである、前記暗号鍵を提供する手段と、
前記暗号化ファームウェアリポジトリへのアクセスを提供する手段と
を有し、
入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リストは、
前記ファームウェア、前記入出力装置コントローラ、および前記入出力装置の基準設計と
互換性のある構成部品を含むものである
システム。
【００３５】
ＥＣ２）ＥＣ１記載のシステムにおいて、前記暗号鍵を提供する手段は、前記ファーム
ウェアをイメージとして解読するために、事業体（ｂｕｓｉｎｅｓｓ）に対して前記暗号
鍵を利用可能にする手段を含み、前記アクセスを提供する手段は、前記暗号化ファームウ
ェアリポジトリを事業体対して利用可能にする手段を有するシステム。
【００３６】
ＥＣ３）システムであって、
暗号化ファームウェア（ＦＷ）リポジトリへのアクセスを提供して、暗号鍵により、フ
ァームウェアを当該暗号化ファームウェアリポジトリからの１若しくはそれ以上のイメー
ジとして解読することを可能にする手段であって、前記イメージは、入出力装置の基準設
計に従って構築された入出力装置に含まれる入出力装置コントローラと互換性があるもの
である、前記アクセスを提供する手段と、
前記ファームウェア、前記入出力装置コントローラ、および前記入出力装置の基準設計
と互換性のある構成部品のリストを提供する手段と
を有し、
前記入出力装置は、前記リストの中から選択される構成部品を有するものである
システム。
【００３７】
ＥＣ４）ＥＣ３記載のシステムにおいて、前記アクセスを提供する手段は事業体が解読
を行うことを可能にするシステム。
【００３８】
ＥＣ５）システムであって、
エージェントに入出力装置の基準設計を提供する手段と、
前記エージェントに構成部品のリストへのアクセスを提供する手段と、
前記エージェントに、
暗号化ファームウェア（ＦＷ）リポジトリへのアクセス、
前記ファームウェアを前記暗号化ファームウェアリポジトリからの１若しくはそれ以
上のイメージとして解読することを可能にする暗号鍵、
入出力装置コントローラであって、前記イメージは、当該入出力装置コントローラお
よび入出力装置の基準設計と互換性があるものである、前記入出力装置コントローラ、な
らびに、
入出力装置のプロトタイプインスタンスおよび／または製造インスタンスにイメージ
のうちの１つをダウンロードすることが可能な製造用ソフトウェアツール
のうちの任意の１若しくはそれ以上を提供する手段と
を有し、
前記リスト中の部品の各々は、前記イメージ、前記入出力装置コントローラ、および前
記入出力装置の基準設計と互換性を有し、
前記３つの手段による提供によって、前記エージェントは、前記リストの中から選択さ
れる構成部品に従った入出力装置を生産することが可能となるものである
システム。
【００３９】
ＥＣ６）ＥＣ５記載のシステムにおいて、エージェントは事業体を含むシステム。
【００４０】
ＥＣ７）システムであって、
入出力装置の基準設計に従って構築された入出力装置コントローラを含む入出力装置に
、入出力装置コントローラと互換性のあるファームウェア（ＦＷ）をダウンロードする手
段と、
ファームウェアをパーソナル化する手段と
を有し、
入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リストは、
ファームウェア、入出力装置コントローラ、および入出力装置の基準設計と互換性のある
構成部品であり、
ファームウェアは、暗号鍵を使用して暗号化ファームウェアリポジトリから解読される
１若しくはそれ以上のイメージのうちの１つである
システム。
【００４１】
ＥＣ８）システムであって、
暗号鍵を受け取る手段と、
ファームウェア（ＦＷ）を少なくとも一部的に受け取った暗号鍵によって、暗号化ファ
ームウェアリポジトリからの１若しくはそれ以上のイメージとしての解読する手段であっ
て、前記イメージは、入出力装置の基準設計に従って構築され、入出力装置コントローラ
を含む入出力装置と互換性があるものである、前記解読する手段と
を有し、
前記入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リスト
は、ファームウェア、入出力装置コントローラ、および入出力装置の基準設計と互換性の
ある構成部品である
システム。
【００４２】
ＥＣ９）ＥＣ１、ＥＣ３、ＥＣ５、ＥＣ７、またはＥＣ８記載のシステムにおいて、さ
らに、
同じ事業実体が、入出力装置の基準設計、入出力装置コントローラ、リスト、暗号化フ
ァームウェアリポジトリ、および暗号鍵を利用可能にする手段を含むものであるシステム
。
【００４３】
ＥＣ１０）ＥＣ１、ＥＣ３、ＥＣ５、ＥＣ７、またはＥＣ８記載のシステムにおいて、
さらに、
同じ事業実体が、入出力装置の基準設計、入出力装置コントローラ、リスト、暗号化フ
ァームウェアリポジトリ、および暗号鍵のうちの任意の１若しくはそれ以上を利用可能に
する手段を含むものであるシステム。
【００４４】
ＥＣ１１）ＥＣ９またはＥＣ１０記載のシステムにおいて、利用可能にする手段のうち
の任意の、またはすべての部分が、少なくとも一部は、
電子メール、
１若しくはそれ以上の拡張可能なマークアップ言語（ＸＭＬ）注釈付き仕様および／ま
たはＸＭＬベースの形式、
１若しくはそれ以上のサーバ間トランザクション、
インターネットを使用した事業体間自動化システム、
多層化インターネット商取引ベースサーバの任意の１若しくはそれ以上の層、
１若しくはそれ以上のウェブサーバ、データベースサーバ、および／またはアプリケー
ションサーバ、ならびに
１若しくはそれ以上のウェブ、データベース、および／またはアプリケーションのスク
リプト、プログラム、および／またはアプリケーション
のうちの任意の１若しくはそれ以上によって実施されるシステム。
【００４５】
ＥＣ１２）ＥＣ１、ＥＣ３、ＥＣ５、ＥＣ７、またはＥＣ８記載のシステムにおいて、
選択される構成部品は、複数の不揮発性メモリデバイス製造者からの不揮発性メモリデバ
イスを含むシステム。
【００４６】
ＥＣ１３）ＥＣ１２記載のシステムにおいて、入出力装置はソリッドステートディスク
（ＳＳＤ）を有し、入出力装置コントローラはＳＳＤコントローラを有し、入出力装置の
基準設計はＳＳＤ基準設計を有し、不揮発性メモリデバイスはソリッドステート・メモリ
・デバイスを有し、不揮発性メモリデバイス製造者はソリッドステート・メモリ・デバイ
ス製造者を含むシステム。
【００４７】
ＥＣ１４）方法であって、
暗号鍵を提供することにより、ファームウェア（ＦＷ）を暗号化ファームウェアリポジ
トリからの１若しくはそれ以上のイメージとして解読することを可能にする工程であって
、前記イメージは、入出力装置の基準設計に従って構築された入出力装置に含まれる入出
力装置コントローラと互換性があるものである、前記暗号鍵を提供する工程
を有し、
前記入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リスト
は、前記ファームウェア、前記入出力装置コントローラ、および前記入出力装置の基準設
計と互換性のある構成部品を含むものである
方法。
【００４８】
ＥＣ１５）ＥＣ１４記載の方法において、前記暗号鍵を提供する工程は、前記ファーム
ウェアをイメージとしての解読するために事業体対して前記暗号鍵を利用可能にする工程
を含む方法。
【００４９】
ＥＣ１６）方法であって、
暗号化ファームウェア（ＦＷ）リポジトリへのアクセスを提供して、暗号鍵により、フ
ァームウェアを当該記暗号化ファームウェア（ＦＷ）リポジトリからの１若しくはそれ以
上のイメージとして解読する工程であって、イメージが、入出力装置の基準設計に従って
構築された入出力装置に含まれる入出力装置コントローラと互換性があるものである、提
供する工程
を有し、
入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リストは、
ファームウェア、入出力装置コントローラ、および入出力装置の基準設計と互換性のある
構成部品である
方法。
【００５０】
ＥＣ１７）ＥＣ１６記載の方法において、暗号化ファームウェアへのアクセスを提供す
る工程は、事業体がイメージとしてのファームウェアを暗号鍵によって解読することを可
能にするために暗号化ファームウェアを事業体が利用できるようにする工程を含む方法。
【００５１】
ＥＣ１８）方法であって、
エージェントに要素を提供する工程であって、当該要素は、
暗号化ファームウェア（ＦＷ）リポジトリへのアクセス、
暗号化ファームウェアリポジトリからの１若しくはそれ以上のイメージとしてのファ
ームウェアを解読することを可能にする暗号鍵、
入出力装置の基準設計、
入出力装置コントローラであって、前記イメージは、当該入出力装置コントローラお
よび前記入出力装置の基準設計と互換性があるものである、前記入出力装置コントローラ
、ならびに
前記イメージ、前記入出力装置コントローラ、および前記入出力装置の基準設計と互
換性のある構成部品のリストへのアクセス、
前記入出力装置のプロトタイプインスタンスおよび／または製造インスタンスにイメ
ージのうちの１つをダウンロードすることが可能な製造用ソフトウェアツール
のうちの任意の１若しくはそれ以上を含むものである、前記要素を提供する工程
を有し、
前記提供される要素は、前記エージェントが、前記リストの中から選択される構成部品
に従った入出力装置を生産することを可能にするものである
方法。
【００５２】
ＥＣ１９）ＥＣ１８記載の方法において、エージェントは事業体を含む方法。
【００５３】
ＥＣ２０）方法であって、
入出力装置の基準設計に従って構築された入出力装置コントローラを含む入出力装置に
、入出力装置コントローラと互換性のあるファームウェア（ＦＷ）をダウンロードする工
程
を有し、
前記入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リスト
は、前記ファームウェア、前記入出力装置コントローラ、および前記入出力装置の基準設
計と互換性のある構成部品であり、
前記ファームウェアは、暗号鍵を使用して暗号化ファームウェアリポジトリから解読さ
れる１若しくはそれ以上のイメージのうちの１つである
方法。
【００５４】
ＥＣ２１）方法であって、
少なくとも一部的に暗号鍵を使用して、ファームウェアを暗号化ファームウェア（ＦＷ
）リポジトリからの１若しくはそれ以上のイメージとして解読する工程であって、当該イ
メージは、入出力装置の基準設計に従って構築され、入出力装置コントローラを含む入出
力装置と互換性があるものである、前記解読する工程
を有し、
前記入出力装置は、構成部品のリストの中から選択される構成部品を有し、当該リスト
は、前記ファームウェア、前記入出力装置コントローラ、および前記入出力装置の基準設
計と互換性のある構成部品である
方法。
【００５５】
ＥＣ２２）ＥＣ１４、ＥＣ１６、ＥＣ１８、ＥＣ２０、またはＥＣ２１記載の方法にお
いて、入出力装置の基準設計、入出力装置コントローラ、リスト、暗号化ファームウェア
リポジトリ、および暗号鍵は、同じ事業実体によって利用可能にされる方法。
【００５６】
ＥＣ２３）ＥＣ１４、ＥＣ１６、ＥＣ１８、ＥＣ２０、またはＥＣ２１記載の方法にお
いて、入出力装置の基準設計、入出力装置コントローラ、リスト、暗号化ファームウェア
リポジトリ、および暗号鍵のうちの任意の１若しくはそれ以上が、同じ事業実体によって
利用可能にされる方法。
【００５７】
ＥＣ２４）ＥＣ２２または２３記載の方法において、利用可能にすることの任意の、ま
たはすべての部分が、少なくとも一部は、
電子メール、
１若しくはそれ以上の拡張可能なマークアップ言語（ＸＭＬ）注釈付き仕様および／ま
たはＸＭＬベースの形式、
１若しくはそれ以上のサーバ間トランザクション、
インターネットを使用した事業体間自動化システム、
多層化インターネット商取引ベースサーバの任意の１若しくはそれ以上の層、
１若しくはそれ以上のウェブサーバ、データベースサーバ、および／またはアプリケー
ションサーバ、ならびに
１若しくはそれ以上ウェブ、データベース、および／またはアプリケーションのスクリ
プト、プログラム、および／またはアプリケーション
のうちの任意の１若しくはそれ以上によるものである方法。
【００５８】
ＥＣ２５）ＥＣ１４、ＥＣ１６、ＥＣ１８、ＥＣ２０、またはＥＣ２１記載の方法にお
いて、選択される構成部品は、複数の不揮発性メモリデバイス製造者からの不揮発性メモ
リデバイスを含む方法。
【００５９】
ＥＣ２６）ＥＣ２５記載の方法において、入出力装置はソリッドステートディスク（Ｓ
ＳＤ）を有し、入出力装置コントローラはＳＳＤコントローラを有し、入出力装置の基準
設計はＳＳＤ基準設計を有し、不揮発性メモリデバイスはソリッドステート・メモリ・デ
バイスを有し、不揮発性メモリデバイス製造者はソリッドステート・メモリ・デバイス製
造者を含む方法。
【００６０】
ＥＣ２７）方法であって、
入出力装置コントローラと互換性のあるファームウェア（ＦＷ）をエージェント対して
利用可能にする工程と、
前記エージェントに入出力装置の基準設計を提供する工程と、
前記エージェントに不揮発性メモリデバイスのリストを提供する工程であって、当該リ
ストは、複数の不揮発性メモリデバイス製造者からの不揮発性メモリデバイスを含むもの
である、前記基準設計を提供する工程と
を有し、
前記入出力装置コントローラはファームウェアと協動して、前記入出力装置の基準設計
、および前記リスト内の不揮発性メモリデバイスのうち任意のデバイスによって前記入出
力装置を実装することが可能なものである
方法。
【００６１】
ＥＣ２８）ＥＣ２７記載の方法において、前記エージェントは事業体であり、ファーム
ウェアを利用できるようにする工程は、事業体にファームウェアの使用許諾を与える工程
を含む方法。
【００６２】
ＥＣ２９）ＥＣ２８記載の方法において、さらに、
事業体に入出力装置コントローラを販売する工程を含むものである方法。
【００６３】
ＥＣ３０）ＥＣ２９記載の方法において、入出力装置はソリッドステートディスク（Ｓ
ＳＤ）を有し、入出力装置コントローラはＳＳＤコントローラを有し、入出力装置の基準
設計はＳＳＤ基準設計を有し、不揮発性メモリデバイスはソリッドステート・メモリ・デ
バイスを有し、不揮発性メモリデバイス製造者はソリッドステート・メモリ・デバイス製
造者を含む方法。
【００６４】
ＥＣ３１）ＥＣ３０記載の方法において、ソリッドステート・メモリ・デバイスはフラ
ッシュ・メモリ・デバイスを有し、ソリッドステート・メモリ・デバイス製造者はフラッ
シュ・メモリ・デバイス製造者を含む方法。
【００６５】
ＥＣ３２）ＥＣ３１記載の方法において、さらに、
事業体が、リストのフラッシュ・メモリ・デバイスの中から選択される多量のフラッシ
ュ・メモリ・デバイスを購入する工程であって、多量がＳＳＤの大量生産を可能にするの
に十分な量である、購入する工程を含むものである方法。
【００６６】
ＥＣ３３）ＥＣ３２記載の方法において、事業体はシステムベンダであり、販売する動
作、使用許諾を与える動作、および２つの提供する動作は設計業者によって行われる方法
。
【００６７】
ＥＣ３４）ＥＣ３３記載の方法において、システムベンダと設計業者とは互いに異なる
会社である方法。
【００６８】
ＥＣ３５）ＥＣ３３記載の方法において、システムベンダと設計業者とは同じ会社の部
分である方法。
【００６９】
ＥＣ３６）ＥＣ３１記載の方法において、さらに、
事業体に、１若しくはそれ以上のプロトタイプＳＳＤの検証および／または特徴付けの
結果を提供する工程であって、プロトタイプＳＳＤが、ＳＳＤ基準設計に従ったＳＳＤコ
ントローラおよびファームウェアのインスタンスを使用して構築されるものである、提供
する工程をさらに含むものである方法。
【００７０】
ＥＣ３７）ＥＣ３１記載の方法において、さらに、
事業体に、１若しくはそれ以上のプロトタイプＳＳＤの１若しくはそれ以上の信頼性実
証試験（ＲＤＴ）の結果を提供する工程であって、プロトタイプＳＳＤが、ＳＳＤ基準設
計に従ったＳＳＤコントローラおよびファームウェアのインスタンスを使用して構築され
るものである、提供する工程をさらに含むものである方法。
【００７１】
ＥＣ３８）ＥＣ３７記載の方法において、事業体はシステムベンダであり、販売する動
作、使用許諾を与える動作、および３つの提供する動作は設計業者によって行われる方法
。
【００７２】
ＥＣ３９）ＥＣ３１記載の方法において、さらに、
事業体に、１若しくはそれ以上のプロトタイプＳＳＤの１若しくはそれ以上の設計検証
試験（ＤＶＴ）の結果を提供する工程であって、プロトタイプＳＳＤが、ＳＳＤ基準設計
に従ったＳＳＤコントローラおよびファームウェアのインスタンスを使用して構築される
ものである、提供する工程を含むものである方法。
【００７３】
ＥＣ４０）ＥＣ３９記載の方法において、事業体はシステムベンダであり、販売する動
作、使用許諾を与える動作、および３つの提供する動作は設計業者によって行われる方法
。
【００７４】
ＥＣ４１）ＥＣ３１記載の方法において、さらに、
基準設計に従って事業体によって直接、または間接的に製造される、ファームウェアと
ＳＳＤコントローラとを含む複数のＳＳＤのうちの故障したＳＳＤについての故障解析を
提供する工程を含むものである方法。
【００７５】
ＥＣ４２）ＥＣ４１記載の方法において、事業体はシステムベンダであり、販売する工
程、使用許諾を与える工程、および３つの提供する工程は設計業者によって行われる方法
。
【００７６】
ＥＣ４３）ＥＣ３１記載の方法において、事業体は第１の事業体であり、さらに、
第２の事業体に製造用ソフトウェアツールを提供する工程であって、製造用ソフトウェ
アツールがＳＳＤの製造インスタンスにファームウェアをダウンロードすることができる
ようになっているものである、提供する工程を含むものである方法。
【００７７】
ＥＣ４４）ＥＣ４３記載の方法において、第１の事業体はシステムベンダであり、販売
する動作、使用許諾を与える動作、および３つの提供する動作は設計業者によって行われ
る方法。
【００７８】
ＥＣ４５）ＥＣ４３記載の方法において、製造用ソフトウェアツールは、さらに、ＳＳ
Ｄの製造インスタンスに、製造自己試験およびＳＳＤの製造インスタンスのフラッシュメ
モリの試験のうちの１若しくはそれ以上を行うよう指図することができるようになってい
る方法。
【００７９】
ＥＣ４６）ＥＣ４３記載の方法において、第１の事業体と第２の事業体とは同じ会社の
ものである方法。
【００８０】
ＥＣ４７）ＥＣ４３記載の方法において、第１の事業体と第２の事業体とは互いに異な
る会社のものである方法。
【００８１】
ＥＣ４８）ＥＣ２５または２８記載の方法において、入出力装置の基準設計は、入出力
装置コントローラ、不揮発性メモリデバイスのうちの１若しくはそれ以上、１若しくはそ
れ以上の電源、１若しくはそれ以上の温度センサ、１若しくはそれ以上のケーシング、１
若しくはそれ以上のプリント回路基板、１若しくはそれ以上の受動部品、およびファーム
ウェアのうちの１若しくはそれ以上に従ったものである方法。
【００８２】
ＥＣ４９）ＥＣ２６または３０記載の方法において、ソリッドステート・メモリ・デバ
イスはフラッシュ・メモリ・デバイスを有し、ソリッドステート・メモリ・デバイス製造
者はフラッシュ・メモリ・デバイス製造者を含む方法。
【００８３】
ＥＣ５０）ＥＣ４９記載の方法において、
ＳＳＤは、複数のクラスのＳＳＤのうちの第１の特定のクラスのＳＳＤであり、
ＳＳＤコントローラはファームウェアと協動して、さらに、ＳＳＤ基準設計およびリス
トのフラッシュ・メモリ・デバイスのうちのいずれかによって、少なくとも１つの第２の
特定のクラスのＳＳＤを実施することができるようになっており、
各クラスのＳＳＤは、企業クラスのＳＳＤ、クラウドクラスのＳＳＤ、産業クラスのＳ
ＳＤ、およびクライアントクラスのＳＳＤを含む
方法。
【００８４】
ＥＣ５１）ＥＣ４９記載の方法において、
ＳＳＤは、複数のクラスのＳＳＤのうちの第１の特定のクラスのＳＳＤであり、
各クラスのＳＳＤは、企業クラスのＳＳＤ、クラウドクラスのＳＳＤ、産業クラスのＳ
ＳＤ、およびクライアントクラスのＳＳＤを有し、
ファームウェアは、複数のクラスのファームウェアのうちの第１の特定のクラスのファ
ームウェアであり、
各クラスのファームウェアは、企業クラスのＳＳＤと関連付けられた企業クラスのファ
ームウェア、クラウドクラスのＳＳＤと関連付けられたクラウドクラスのファームウェア
、産業クラスのＳＳＤと関連付けられた産業クラスのファームウェア、およびクライアン
トクラスのＳＳＤと関連付けられたクライアントクラスのファームウェアを有し、
ＳＳＤコントローラは各クラスのファームウェアのうちの第２の特定のクラスのファー
ムウェアと協動して、さらに、ＳＳＤ基準設計およびリストのフラッシュ・メモリ・デバ
イスのうちのいずれかによって、各クラスのＳＳＤのうちの少なくとも１つの第２の特定
のクラスのＳＳＤを実施することができるようになっており、
第２の特定のクラスのＳＳＤは、第２の特定のクラスのファームウェアと関連付けられ
たクラスのＳＳＤである方法。
【００８５】
ＥＣ５２）ＥＣ５１記載の方法において、各クラスのファームウェアのうちの少なくと
も２つが、少なくともいくつかの共通のルーチン、関数、および／または演算を有する方
法。
【００８６】
ＥＣ５３）ＥＣ５０または５１記載の方法において、フラッシュ・メモリ・デバイス製
造者のうちの第１の製造者からのフラッシュ・メモリ・デバイスが第１の特定のクラスの
ＳＳＤを製造するのに使用可能であり、フラッシュ・メモリ・デバイス製造者のうちの第
２の製造者からのフラッシュ・メモリ・デバイスが第２の特定のクラスのＳＳＤを製造す
るのに使用可能である方法。
【００８７】
ＥＣ５４）ＥＣ５０または５１記載の方法において、フラッシュ・メモリ・デバイス製
造者のうちの特定の製造者のフラッシュ・メモリ・デバイスの複数のカテゴリのうちの第
１のカテゴリのうちのフラッシュ・メモリ・デバイスが第１の特定のクラスのＳＳＤを製
造するのに使用可能であり、カテゴリのうちの第２のカテゴリのうちのフラッシュ・メモ
リ・デバイスが第２の特定のクラスのＳＳＤを製造するのに使用可能である方法。
【００８８】
ＥＣ５５）ＥＣ４９記載の方法において、ＳＳＤは相対的に大容量のＳＳＤであり、Ｓ
ＳＤコントローラはファームウェアと協動して、さらに、ＳＳＤ基準設計およびリストの
フラッシュ・メモリ・デバイスのうちのいずれかによって、相対的に小容量のＳＳＤを実
施することができるようになっている方法。
【００８９】
ＥＣ５６）ＥＣ５５記載の方法において、フラッシュ・メモリ・デバイス製造者のうち
第１の製造者からのフラッシュ・メモリ・デバイスが相対的に大容量のＳＳＤを製造する
のに使用可能であり、フラッシュ・メモリ・デバイス製造者のうち第２の製造者からのフ
ラッシュ・メモリ・デバイスが相対的に小容量のＳＳＤを製造するのに使用可能である方
法。
【００９０】
ＥＣ５７）ＥＣ５５記載の方法において、フラッシュ・メモリ・デバイス製造者のうち
特定の製造者のフラッシュ・メモリ・デバイスの複数のカテゴリのうち第１のカテゴリの
うちフラッシュ・メモリ・デバイスが相対的に大容量のＳＳＤを製造するのに使用可能で
あり、カテゴリのうち第２のカテゴリのうちフラッシュ・メモリ・デバイスが相対的に小
容量のＳＳＤを製造するのに使用可能である方法。
【００９１】
ＥＣ５８）ＥＣ４９記載の方法において、ＳＳＤコントローラは単一の集積回路（ＩＣ
）において実施される方法。
【００９２】
ＥＣ５９）ＥＣ４９記載の方法において、ＳＳＤコントローラは、リストのフラッシュ
・メモリ・デバイスのうちのいずれかとデータをやりとりすることが可能なフラッシュ・
メモリ・インターフェースを含む方法。
【００９３】
ＥＣ６０）ＥＣ４９記載の方法において、ＳＳＤコントローラは、記憶インターフェー
ス規格と適合し、記憶インターフェースを介して記憶コマンドを提供するコンピューティ
ングホストに接続することができるようになっている記憶インターフェースを含む方法。
【００９４】
ＥＣ６１）ＥＣ６０記載の方法において、さらに、
記憶コマンドを提供するようにコンピューティングホストを動作させる工程を含むもの
である方法。
【００９５】
ＥＣ６２）方法であって、
ホストに接続された記憶デバイスの記憶インターフェースを介して１若しくはそれ以上
のコマンドを当該ホストから受け取る工程であって、前記コマンドは、前記ホストによっ
て、通常は記憶デバイスによって生成されるログ情報の記憶専用である記憶デバイスの記
憶空間に記憶されるものである、前記コマンドを受け取る工程と、
イベントに応答してコマンドの実行の開始を指示するインジケータを受け取る工程と、
前記イベントに応答してコマンドを実行する工程と
を含む方法。
【００９６】
ＥＣ６３）ＥＣ６２記載の方法において、さらに、
事業体がファームウェアを暗号化ファームウェアリポジトリからの１若しくはそれ以上
のイメージとして解読することを可能にするために事業体に暗号鍵を提供する工程であっ
て、イメージが、記憶デバイスに含まれる記憶デバイスコントローラの処理要素によって
実行可能であり、イメージがコマンドの実行を可能にし、記憶デバイスが記憶デバイスの
基準設計に従って組み立てられているものである、提供する工程と、
事業体に暗号化ファームウェアリポジトリへのアクセスを提供する工程と
を含むものであり、
コマンドは記憶デバイスの製造自己試験を含み、
記憶デバイスは、構成部品のリストの中から選択される構成部品を有し、リストは、フ
ァームウェア、記憶デバイスコントローラ、および記憶デバイスの基準設計と互換性のあ
る構成部品である
方法。
【００９７】
ＥＣ６４）ＥＣ６２記載の方法において、
記憶デバイスは記憶デバイスコントローラと記憶媒体とを有し、
記憶デバイスコントローラと互換性のあるファームウェアの使用許諾が事業体に与えら
れ、
記憶デバイスは、基準設計と、事業体に提供される候補記憶媒体デバイスのリストとに
従って組み立てられており、
記憶媒体は、リストの中から事業体によって選択される要素で構成されており、
記憶デバイスコントローラはファームウェアと協動して、基準設計およびリストの任意
のメンバによって記憶デバイスを実施することができるようになっており、
記憶デバイスコントローラはファームウェアと協動して、実行する工程を行うことがで
きるようになっており、
実行する工程は記憶デバイスの製造自己試験を行う
方法。
【００９８】
ＥＣ６５）ＥＣ６２記載の方法において、さらに、
実行する工程によって生成される１若しくはそれ以上の結果を記憶する工程を含むもの
である方法。
【００９９】
ＥＣ６６）ＥＣ６２記載の方法において、インジケータは、ホストからの、記憶インタ
ーフェースを介したものである方法。
【０１００】
ＥＣ６７）ＥＣ６２記載の方法において、記憶空間は、通常は自己モニタリング分析報
告技術（ＳＭＡＲＴ）ログ専用のものである方法。
【０１０１】
ＥＣ６８）ＥＣ６７記載の方法において、ＳＭＡＲＴログは第１のＳＭＡＲＴログであ
り、さらに、
実行する工程の１若しくはそれ以上の結果を第２のＳＭＡＲＴログに記憶する工程を含
むものである方法。
【０１０２】
ＥＣ６９）ＥＣ６２記載の方法において、イベントは、次の電源投入イベントおよび即
時開始イベントを含む複数のイベントのうちの１つである方法。
【０１０３】
ＥＣ７０）ＥＣ６２記載の方法において、２つの受け取る動作および実行する動作は、
少なくとも一部は、ソリッドステートディスク（ＳＳＤ）のコントローラによって行われ
る方法。
【０１０４】
ＥＣ７１）ＥＣ６２記載の方法において、２つの受け取る動作および実行する動作は、
少なくとも一部は、記憶デバイスに含まれる記憶デバイスコントローラによって実施され
る方法。
【０１０５】
ＥＣ７２）ＥＣ７１記載の方法において、記憶デバイスコントローラは単一の集積回路
（ＩＣ）において実施される方法。
【０１０６】
ＥＣ７３）方法であって、
記憶デバイスの記憶インターフェースを介して、記憶デバイスのログ記憶空間の第１の
部分に記憶された１若しくはそれ以上のコマンドの実行の開始を指示するインジケータを
受け取る工程と、
前記インジケータの受け取りに応答してコマンドを実行する工程と、
実行する工程の全部または任意の部分によって生成される１若しくはそれ以上の結果を
、ログ記憶空間の第２の部分に記憶する工程と
を含む方法。
【０１０７】
ＥＣ７４）ＥＣ７３記載の方法において、インジケータは、記憶インターフェースに接
続されたホストによって提供される方法。
【０１０８】
ＥＣ７５）ＥＣ７３記載の方法において、ログ記憶空間は、記憶インターフェースを介
して受け取られる自己モニタリング分析報告技術（ＳＭＡＲＴ）ログ記憶空間読み取りま
たは書き込みアクセスによるアクセスと互換性のあるＳＭＡＲＴログ記憶空間である方法
。
【０１０９】
ＥＣ７６）ＥＣ７３記載の方法において、受け取る動作、実行する動作、および記憶す
る動作は、少なくとも一部は、ソリッドステートディスク（ＳＳＤ）のコントローラによ
って行われる方法。
【０１１０】
ＥＣ７７）方法であって、
記憶デバイスにおいて、記憶デバイスの記憶インターフェースを介してホストから情報
を受け取る工程であって、情報が、記憶デバイスの製造自己試験の少なくとも一部分を行
うことと一致する１若しくはそれ以上のコマンドを含み、情報が、さらに、コマンドは記
憶デバイスのログ記憶の第１の部分に記憶されるべきであるという指示を含むものである
、受け取る工程と、
記憶デバイスにおいて、記憶インターフェースを介してホストからインジケータを受け
取る工程であって、インジケータが、ログ記憶の第１の部分に記憶されたコマンドの実行
をいつ開始すべきか指定する記憶デバイスへの信号である、受け取る工程と、
記憶デバイスにおいて、インジケータの受け取りに応答して、コマンドを実行する工程
と、
記憶デバイスにおいて、実行する工程の少なくとも一部の結果をログ記憶の第２の部分
に記憶する工程と
を有し、
ログ記憶は、記憶インターフェースを介して受け取られる自己モニタリング分析報告技
術（ＳＭＡＲＴ）ログ記憶アクセスコマンドによってアクセス可能なＳＭＡＲＴログ記憶
である
方法。
【０１１１】
ＥＣ７８）ＥＣ７７記載の方法において、インジケータは、コマンドの実行を即時に開
始するよう指示し、記憶デバイスは、少なくとも一部は実行する工程の間にホストに接続
される方法。
【０１１２】
ＥＣ７９）ＥＣ７７記載の方法において、インジケータは、次の電源投入時にコマンド
の実行を開始するよう指示し、実行する工程は、さらに、次の電源投入に応答したもので
あり、記憶デバイスは、少なくとも一部は実行する工程の間にホストから切り離される方
法。
【０１１３】
ＥＣ８０）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、コマンドのうち
の少なくとも１つが記憶デバイスに記憶デバイスに含まれる記憶媒体を試験するよう指図
し、これによって記憶デバイスが記憶インターフェースを介して受け取られるデータを記
憶することが可能になる方法。
【０１１４】
ＥＣ８１）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、記憶デバイスは
ソリッドステートディスク（ＳＳＤ）を有し、記憶インターフェースはシリアル・アドバ
ンスド・テクノロジ・アタッチメント（ＳＡＴＡ）インターフェースを含む方法。
【０１１５】
ＥＣ８２）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、インジケータは
、ベンダ固有の自己モニタリング分析報告技術（ＳＭＡＲＴ）コマンドトランスポート（
ＳＣＴ）コマンドである方法。
【０１１６】
ＥＣ８３）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、コマンドは、記
憶書き込みコマンド、記憶消去コマンド、記憶インターフェース・バーンイン・コマンド
、遅延コマンド、ストレス・モード・コマンド、ループコマンド、および条件付きコマン
ドのうちの任意の１若しくはそれ以上を含む方法。
【０１１７】
ＥＣ８４）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、コマンドは、一
連の１若しくはそれ以上の種類の動作を含む方法。
【０１１８】
ＥＣ８５）ＥＣ８４記載の方法において、動作の種類のうちの少なくとも１つは、記憶
デバイスに含まれる記憶媒体の書き込みを指定する方法。
【０１１９】
ＥＣ８６）ＥＣ８４記載の方法において、動作の種類のうちの少なくとも１つは、記憶
デバイスに含まれる記憶媒体の消去を指定する方法。
【０１２０】
ＥＣ８７）ＥＣ８４記載の方法において、動作の種類のうちの少なくとも１つは、記憶
デバイスに含まれる記憶媒体の検証を指定する方法。
【０１２１】
ＥＣ８８）ＥＣ８４記載の方法において、動作の種類のうちの１若しくはそれ以上は、
長さに対応するサイズの記憶デバイスに含まれる記憶媒体の部分と関連付けられたアドレ
スおよび長さを含む方法。
【０１２２】
ＥＣ８９）ＥＣ６５、ＥＣ７３、またはＥＣ７７記載の方法において、結果は、試験状
態、１若しくはそれ以上の進捗インジケータ、１若しくはそれ以上の統計、および誤り情
報のうちの任意の１若しくはそれ以上を含む方法。
【０１２３】
ＥＣ９０）ＥＣ８９記載の方法において、試験状態は、起動されていない、起動されて
いる、実行中、入力の終了、打ち切られた、および誤り試験状態のうちの任意の１若しく
はそれ以上を含む方法。
【０１２４】
ＥＣ９１）ＥＣ８９記載の方法において、進捗インジケータのうちの少なくとも１つが
、
コマンドに対する入力オフセット、
コマンドのうちの現在のコマンドのインジケータ、
完了したコマンドの数の尺度、
コマンドのうちの任意の１若しくはそれ以上の完了の量の尺度、
試験されるべき状態のままである記憶デバイスのユーザデータ記憶の量の尺度、
試験されたユーザデータ記憶の量の尺度、および
実行する工程の開始時からの経過時間の尺度
のうちの任意の１若しくはそれ以上を含む方法。
【０１２５】
ＥＣ９２）ＥＣ８９記載の方法において、統計のうちの少なくとも１つが、記憶デバイ
スの全部または任意の部分の温度、記憶デバイスのユーザデータ記憶の不良部分、ユーザ
データ記憶の再マップ部分、および記憶デバイスの誤りのない読み取りのうちの１若しく
はそれ以上を含む方法。
【０１２６】
ＥＣ９３）ＥＣ８９記載の方法において、誤り情報は、訂正可能誤りおよび／または訂
正不能誤り、プログラム誤り、消去誤り、ビット誤りのカウントおよび／または種類、な
らびに誤りイベントのうちの１若しくはそれ以上を含む方法。
【０１２７】
ＥＣ９４）ＥＣ６２、ＥＣ７３、またはＥＣ７７記載の方法において、記憶デバイスは
、少なくとも一部は、含まれる１若しくはそれ以上のフラッシュ・メモリ・デバイスによ
って大容量記憶を実施する方法。
【０１２８】
ＥＣ９５）ＥＣ９４記載の方法において、記憶デバイスは、フラッシュ・メモリ・デバ
イスのうちの少なくとも１つとデータをやりとりすることが可能なフラッシュ・メモリ・
インターフェースを含む方法。
【０１２９】
ＥＣ９６）ＥＣ９４記載の方法において、記憶インターフェースは記憶インターフェー
ス規格と互換性のある方法。
【０１３０】
ＥＣ９７）ＥＣ６２、ＥＣ７４、またはＥＣ７７記載の方法において、さらに、
コマンドを提供するようにホストを動作させる工程を含むものである方法。
【０１３１】
ＥＣ９８）記憶デバイスであって、
ファームウェアと、
ファームウェアの命令を実行することが可能な処理要素と、
記憶インターフェースに接続されたホストから、１若しくはそれ以上のコマンド、およ
びイベントに応答したコマンドの実行の開始を指示するインジケータを受け取ることが可
能な記憶インターフェースと、
記憶空間と
を有し、
処理要素によるファームウェアの１若しくはそれ以上のルーチンの実行が、
ホストによって指図されるコマンドを、通常は記憶デバイスによって生成されるログ情
報の記憶専用である記憶空間の部分に記憶すること、および
イベントに応答してコマンドを実行すること
を可能にする
記憶デバイス。
【０１３２】
ＥＣ９９）ＥＣ９８記載の記憶デバイスにおいて、ファームウェア、処理要素、記憶イ
ンターフェース、および記憶空間はソリッドステートディスク（ＳＳＤ）に含まれ、記憶
インターフェースは、シリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ
）インターフェースを含む記憶デバイス。
【０１３３】
ＥＣ１００）ＥＣ９８記載の記憶デバイスにおいて、記憶空間は第１の自己モニタリン
グ分析報告技術（ＳＭＡＲＴ）ログと第２のＳＭＡＲＴログとを有し、第１のＳＭＡＲＴ
ログは上記部分を有し、実行することは、第２のＳＭＡＲＴログに記憶される１若しくは
それ以上の結果を生成する記憶デバイス。
【０１３４】
ＥＣ１０１）記憶デバイスであって、
第１の部分と第２の部分とを有するログ記憶空間と、
ファームウェアと、
前記ファームウェアの命令を実行することが可能な処理要素と、
記憶インターフェースに接続されたホストから、第１の部分に記憶された１若しくはそ
れ以上のコマンドの実行の開始を指示するインジケータを受け取ることが可能な記憶イン
ターフェースと
を有し、
前記処理要素によってファームウェアの１若しくはそれ以上のルーチンが実行されるこ
とにより、
インジケータの受け取りに応答してコマンドを実行する工程、および
前記実行する工程の全部または任意の部分によって生成される１若しくはそれ以上の結
果を第２の部分に記憶する工程
が可能になるものである
記憶デバイス。
【０１３５】
ＥＣ１０２）ＥＣ１０１記載の記憶デバイスにおいて、ファームウェア、処理要素、記
憶インターフェース、およびログ記憶空間はソリッドステートディスク（ＳＳＤ）に含ま
れ、記憶インターフェースはシリアル・アドバンスド・テクノロジ・アタッチメント（Ｓ
ＡＴＡ）インターフェースを含む記憶デバイス。
【０１３６】
ＥＣ１０３）ＥＣ１０１記載の記憶デバイスにおいて、ログ記憶空間は第１および第２
の自己モニタリング分析報告技術（ＳＭＡＲＴ）ログを有し、第１のＳＭＡＲＴログは第
１の部分を有し、第２のＳＭＡＲＴログは第２の部分を含む記憶デバイス。
【０１３７】
ＥＣ１０４）ＥＣ９８またはＥＣ１０１記載の記憶デバイスにおいて、コマンドは、記
憶書き込みコマンド、記憶消去コマンド、記憶インターフェース・バーンイン・コマンド
、遅延コマンド、ストレス・モード・コマンド、ループコマンド、および条件付きコマン
ドのうちの任意の１若しくはそれ以上を含む記憶デバイス。
【０１３８】
ＥＣ１０５）ＥＣ９８またはＥＣ１０１記載の記憶デバイスにおいて、さらに、
記憶媒体を含むものであり、
コマンドは、一連の１若しくはそれ以上の種類の動作を有し、動作のうちの任意の１若
しくはそれ以上が、記憶媒体の書き込み、消去、および検証のうちの任意の１若しくはそ
れ以上を指定することを含む記憶デバイス。
【０１３９】
ＥＣ１０６）記憶デバイスの処理要素によって実行されると、処理要素に、動作を行わ
せる命令のセットが記憶されている有形のコンピュータ可読媒体であって、動作が、
記憶デバイスの記憶インターフェースを介した、記憶デバイスに接続されたホストから
の１若しくはそれ以上のコマンドの受け取りを管理する動作であって、コマンドがホスト
によって、通常は記憶デバイスによって生成されるログ情報の記憶専用である記憶デバイ
スの記憶空間の部分に記憶されるよう指図されるものである、管理する動作と、
イベントに応答してコマンドの実行の開始を指示するインジケータを認識する動作と、
イベントに応答してコマンドを実行する動作と
を含むものである有形のコンピュータ可読媒体。
【０１４０】
ＥＣ１０７）ＥＣ１０６記載の有形のコンピュータ可読媒体において、記憶空間は第１
の自己モニタリング分析報告技術（ＳＭＡＲＴ）ログと第２のＳＭＡＲＴログとを有し、
第１のＳＭＡＲＴログは上記部分を有し、コマンドを実行する動作は、第２のＳＭＡＲＴ
ログに記憶される１若しくはそれ以上の結果を生成する有形のコンピュータ可読媒体。
【０１４１】
ＥＣ１０８）記憶デバイスの処理要素によって実行されると、処理要素に、動作を行わ
せる命令のセットが記憶されている有形のコンピュータ可読媒体であって、動作が、
記憶デバイスの記憶インターフェースを介した、記憶デバイスのログ記憶空間の第１の
部分に記憶された１若しくはそれ以上のコマンドの実行の開始を指示するインジケータの
受け取りを管理する動作と、
インジケータの受け取りに応答してコマンドを実行する動作と、
コマンドを実行する動作の全部または任意の部分によって生成される１若しくはそれ以
上の結果をログ記憶空間の第２の部分に記憶する動作と
を含むものである有形のコンピュータ可読媒体。
【０１４２】
ＥＣ１０９）ＥＣ１０８記載の有形のコンピュータ可読媒体において、ログ記憶空間は
第１および第２の自己モニタリング分析報告技術（ＳＭＡＲＴ）ログを有し、第１のＳＭ
ＡＲＴログは第１の部分を有し、第２のＳＭＡＲＴログは第２の部分を含む有形のコンピ
ュータ可読媒体。
【０１４３】
ＥＣ１１０）ＥＣ１０６またはＥＣ１０８記載の有形のコンピュータ可読媒体において
、コマンドは、記憶書き込みコマンド、記憶消去コマンド、記憶インターフェース・バー
ンイン・コマンド、遅延コマンド、ストレス・モード・コマンド、ループコマンド、およ
び条件付きコマンドのうちの任意の１若しくはそれ以上を含む有形のコンピュータ可読媒
体。
【０１４４】
ＥＣ１１１）ＥＣ１０６またはＥＣ１０８記載の有形のコンピュータ可読媒体において
、記憶デバイスは記憶媒体を有し、コマンドは、一連の１若しくはそれ以上の種類の動作
を有し、動作のうちの任意の１若しくはそれ以上が、記憶媒体の書き込み、消去、および
検証のうちの任意の１若しくはそれ以上を指定することを含む有形のコンピュータ可読媒
体。
【０１４５】
ＥＣ１１２）システムであって、
ホストに接続された記憶デバイスの記憶インターフェースを介して１若しくはそれ以上
のコマンドをホストから受け取る手段であって、前記コマンドは、ホストによって、通常
は記憶デバイスによって生成されるログ情報の記憶専用である記憶デバイスの記憶空間の
部分に記憶されるものである、前記コマンドを受け取る手段と、
イベントに応答してコマンドの実行の開始を指示するインジケータを受け取る手段と、
前記イベントに応答してコマンドを実行する手段と
を含むシステム。
【０１４６】
ＥＣ１１３）ＥＣ１１２記載のシステムにおいて、コマンドを受け取る手段、インジケ
ータを受け取る手段、および実行する手段はソリッドステートディスク（ＳＳＤ）に含ま
れ、記憶インターフェースはシリアル・アドバンスド・テクノロジ・アタッチメント（Ｓ
ＡＴＡ）インターフェースを含むシステム。
【０１４７】
ＥＣ１１４）システムであって、
記憶デバイスが、記憶デバイスの記憶インターフェースを介して、記憶デバイスのログ
記憶空間の第１の部分に記憶された１若しくはそれ以上のコマンドの実行の開始を指示す
るインジケータを受け取る手段と、
受け取る手段に応答してコマンドを実行する手段と、
ログ記憶空間の第２の部分に、実行する手段の全部または任意の部分によって生成され
る１若しくはそれ以上の結果を記憶する手段と
を含むシステム。
【０１４８】
ＥＣ１１５）ＥＣ１１４記載のシステムにおいて、受け取る手段、実行する手段、およ
び記憶する手段はソリッドステートディスク（ＳＳＤ）に含まれ、記憶インターフェース
はシリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ）インターフェース
を含むシステム。
【０１４９】
ＥＣ１１６）ＥＣ１１２またはＥＣ１１４記載のシステムにおいて、コマンドは、記憶
書き込みコマンド、記憶消去コマンド、記憶インターフェース・バーンイン・コマンド、
遅延コマンド、ストレス・モード・コマンド、ループコマンド、および条件付きコマンド
のうちの任意の１若しくはそれ以上を含むシステム。
【０１５０】
ＥＣ１１７）ＥＣ１１２またはＥＣ１１４記載のシステムにおいて、さらに、
記憶媒体を含むものであり
コマンドは、一連の１若しくはそれ以上の種類の動作を有し、動作のうちの任意の１若
しくはそれ以上が、記憶媒体の書き込み、消去、および検証のうちの任意の１若しくはそ
れ以上を指定することを含むシステム。
【０１５１】
ＥＣ１１８）方法であって、
エージェントに入出力装置コントローラを提供する工程と、
前記エージェントに入出力装置コントローラと互換性のあるファームウェア（ＦＷ）を
提供する工程と、
前記エージェントに入出力装置の基準設計を提供する工程と、
前記エージェントに不揮発性メモリデバイスのリストを提供する工程であって、当該リ
ストは複数の不揮発性メモリデバイス製造者からの不揮発性メモリデバイスを含むもので
ある、前記リストを提供する工程と
を有し、
前記入出力装置コントローラはファームウェアと協動して、前記入出力装置の基準設計
、およびリストの不揮発性メモリデバイスのうちの任意のデバイスによって、前記入出力
装置を実施することが可能なものである
方法。
【０１５２】
ＥＣ１１９）ＥＣ１１８記載の方法において、
エージェントは事業体を含み、エージェントに入出力装置コントローラを提供する工程
は、事業体に入出力装置コントローラを販売する工程を有し、
ファームウェアを提供する工程は、事業体にファームウェアの使用許諾を与える工程を
含む
方法。
【０１５３】
ＥＣ１２０）ＥＣ１１９記載の方法において、入出力装置はソリッドステートディスク
（ＳＳＤ）を有し、入出力装置コントローラはＳＳＤコントローラを有し、入出力装置の
基準設計はＳＳＤ基準設計を含み、不揮発性メモリデバイスはフラッシュ・メモリ・デバ
イスを含み、不揮発性メモリデバイス製造者はフラッシュ・メモリ・デバイス製造者を含
む方法。
【０１５４】
ＥＣ１２１）ＥＣ１１９記載の方法において、さらに、
事業体が、リストの不揮発性メモリデバイスの中から選択される多量の不揮発性メモリ
デバイスを購入する工程であって、多量が入出力装置の大量生産を可能にするのに十分な
量である、購入する工程を含むものである方法。
【０１５５】
ＥＣ１２２）ＥＣ１２１記載の方法において、事業体はシステムベンダであり、販売す
る動作、使用許諾を与える動作、および２つの提供する動作は設計業者によって行われる
方法。
【０１５６】
ＥＣ１２３）ＥＣ１２２記載の方法において、システムベンダと設計業者とは互いに異
なる会社である方法。
【０１５７】
ＥＣ１２４）ＥＣ１２３記載の方法において、入出力装置は企業クラスのＳＳＤであり
、入出力装置コントローラはファームウェアと協動して、さらに、入出力装置の基準設計
、およびリストの不揮発性メモリデバイスのうちの少なくとも一部によって、クライアン
トクラスのＳＳＤを実施することができるようになっている方法。
【０１５８】
ＥＣ１２５）ＥＣ１２３記載の方法において、入出力装置は相対的に大容量のＳＳＤで
あり、入出力装置コントローラはファームウェアと協動して、さらに、入出力装置の基準
設計、およびリストの不揮発性メモリデバイスのうちの少なくとも一部によって、相対的
に小容量のＳＳＤを実施することができるようになっている方法。
【０１５９】
ＥＣ１２６）記憶インターフェース規格を有し、または参照する前述のＥＣのうちのい
ずれかであって、記憶インターフェース規格は、
ユニバーサル・シリアル・バス（ＵＳＢ）インターフェース規格、
コンパクトフラッシュ（登録商標）（ＣＦ）インターフェース規格、
マルチメディアカード（ＭＭＣ）インターフェース規格、
組み込みＭＭＣ（ｅＭＭＣ）インターフェース規格、
サンダーボルト（Ｔｈｕｎｄｅｒｂｏｌｔ）インターフェース規格、
ＵＦＳインターフェース規格、
セキュアディジタル（ＳＤ）インターフェース規格、
メモリ・スティック・インターフェース規格、
ｘＤピクチャ・カード・インターフェース規格、
統合ドライブエレクトロニクス（ＩＤＥ）インターフェース規格、
シリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ）インターフェース
規格、
外部ＳＡＴＡ（ｅＳＡＴＡ）インターフェース規格、
小型コンピュータ・システム・インターフェース（ＳＣＳＩ）インターフェース規格、
シリアル小型コンピュータ・システム・インターフェース（ＳＡＳ）インターフェース
規格、
ファイバ・チャネル・インターフェース規格、
イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））インターフェース規格、
および
周辺装置相互接続エクスプレス（ＰＣＩｅ）インターフェース規格
のうちの１若しくはそれ以上を含むＥＣ。
【０１６０】
ＥＣ１２７）フラッシュ・メモリ・インターフェースを有し、または参照する前述のＥ
Ｃのうちのいずれかであって、フラッシュ・メモリ・インターフェースは、
オープンＮＡＮＤフラッシュインターフェース（ＯＮＦＩ）、
トグルモードインターフェース、
ダブルデータレート（ＤＤＲ）同期インターフェース、
ＤＤＲ２同期インターフェース、
同期インターフェース、および
非同期インターフェース
のうちの１若しくはそれ以上と互換性のあるＥＣ。
【０１６１】
ＥＣ１２８）コンピューティングホストを有し、または参照する前述のＥＣのうちのい
ずれかであって、コンピューティングホストは、
コンピュータ、
ワークステーションコンピュータ、
サーバコンピュータ、
ストレージサーバ、
ストレージ・アタッチト・ネットワーク（ＳＡＮ）、
ネットワーク・アタッチト・ストレージ（ＮＡＳ）デバイス、
ダイレクト・アタッチト・ストレージ（ＤＡＳ）デバイス、
ストレージアプライアンス、
パーソナルコンピュータ（ＰＣ）、
ラップトップコンピュータ、
ノートブックコンピュータ、
ネットブックコンピュータ、
タブレット機器またはタブレットコンピュータ、
ウルトラブックコンピュータ、
電子読み取り装置（ｅ−ｒｅａｄｅｒ）、
携帯情報端末（ＰＤＡ）
ナビゲーションシステム
（ハンドヘルド型）全地球測位システム（ＧＰＳ）機器、
自動車制御システム、
自動車媒体制御システムまたは自動車媒体制御コンピュータ、
プリンタ、コピー機またはファックス機またはオールインワン機器、
販売時点（ＰＯＳ）機器、
金銭登録機、
メディアプレーヤ、
テレビ、
メディアレコーダ、
ディジタル・ビデオ・レコーダ（ＤＶＲ）
ディジタルカメラ、
セルラハンドセット、
コードレス電話機ハンドセット、および
電子ゲーム
のうちの１若しくはそれ以上を含むＥＣ。
【０１６２】
ＥＣ１２９）少なくとも１つのフラッシュ・メモリ・デバイスを有し、または参照する
前述のＥＣのうちのいずれかであって、少なくとも１つのフラッシュ・メモリ・デバイス
の少なくとも一部分は、
ＮＡＮＤフラッシュ技術記憶セル、および
ＮＯＲフラッシュ技術記憶セル
のうちの１若しくはそれ以上を含むＥＣ。
【０１６３】
ＥＣ１３０）少なくとも１つのフラッシュ・メモリ・デバイスを有し、または参照する
前述のＥＣのうちのいずれかであって、少なくとも１つのフラッシュ・メモリ・デバイス
の少なくとも一部分は、
シングルレベルセル（ＳＬＣ）フラッシュ技術記憶セル、および
マルチレベルセル（ＭＬＣ）フラッシュ技術記憶セル
のうちの１若しくはそれ以上を含むＥＣ。
【０１６４】
ＥＣ１３１）少なくとも１つのフラッシュ・メモリ・デバイスを有し、または参照する
前述のＥＣのうちのいずれかであって、少なくとも１つのフラッシュ・メモリ・デバイス
の少なくとも一部分は、
多結晶シリコン技術ベースの電荷蓄積セル、および
シリコン窒化膜技術ベースの電荷蓄積セル
のうちの１若しくはそれ以上を含むＥＣ。
【０１６５】
ＥＣ１３２）少なくとも１つのフラッシュ・メモリ・デバイスを有し、または参照する
前述のＥＣのうちのいずれかであって、少なくとも１つのフラッシュ・メモリ・デバイス
の少なくとも一部分は、
２次元技術ベースのフラッシュメモリ技術、および
３次元技術ベースのフラッシュメモリ技術
のうちの１若しくはそれ以上を含むＥＣ。
【０１６６】
システム
図１Ａに、ＶＤＭＭおよびＳＳＤ  ＭＳＴとの使用に準拠したＳＳＤコントローラを含
むＳＳＤの実施形態の選択された詳細を図示する。ＳＳＤコントローラは、ＮＶＭ素子（
フラッシュメモリなど）によって実施されるような不揮発性記憶を管理するためのもので
ある。ＳＳＤコントローラ１００は１若しくはそれ以上の外部インターフェース１１０を
介してホスト（不図示）に通信可能に接続されている。様々な実施形態によれば、外部イ
ンターフェース１１０は、ＳＡＴＡインターフェース、ＳＡＳインターフェース、ＰＣＩ
ｅインターフェース、ファイバ・チャネル・インターフェース、イーサネット（登録商標
）（Ｅｔｈｅｒｎｅｔ（登録商標））インターフェース（１０ギガビットイーサネット（
登録商標）など）、上記のインターフェースのいずれかの非標準バージョン、カスタムイ
ンターフェース、またはストレージおよび／若しくは通信および／若しくはコンピューテ
ィング機器を相互接続するのに使用される任意の他の種類のインターフェースのうちの１
若しくはそれ以上である。例えば、ある実施形態では、ＳＳＤコントローラ１００は、Ｓ
ＡＴＡインターフェースおよびＰＣＩｅインターフェースを含む。
【０１６７】
ＳＳＤコントローラ１００は、さらに、１若しくはそれ以上のデバイスインターフェー
ス１９０を介して、フラッシュデバイス１９２の１若しくはそれ以上のインスタンスとい
った、１若しくはそれ以上の記憶デバイスを含むＮＶＭ１９９に通信可能に接続されてい
る。様々な実施形態によれば、デバイスインターフェース１９０は、非同期インターフェ
ース、同期インターフェース、シングルデータレート（ＳＤＲ）インターフェース、ダブ
ルデータレート（ＤＤＲ）インターフェース、ＤＲＡＭ互換ＤＤＲ若しくはＤＤＲ２同期
インターフェース、ＯＮＦＩ２．２やＯＮＦＩ３．０互換インターフェースといったＯＮ
ＦＩ互換インターフェース、トグルモード互換フラッシュインターフェース、上記のイン
ターフェースのいずれかの非標準バージョン、カスタムインターフェース、または記憶デ
バイスに接続するのに使用される任意の他の種類のインターフェースのうちの１若しくは
それ以上である。
【０１６８】
フラッシュデバイス１９２の各々は、ある実施形態では、１若しくはそれ以上の個々の
フラッシュダイ１９４を有する。フラッシュデバイス１９２のうちの特定のフラッシュデ
バイスの種類に従って、特定のフラッシュデバイス１９２内の複数のフラッシュダイ１９
４に、並列に、任意選択で、かつ／または選択的にアクセスすることができる。フラッシ
ュデバイス１９２は、単に、ＳＳＤコントローラ１００に通信可能に接続することが可能
な記憶デバイスの一種を表しているにすぎない。様々な実施形態では、ＳＬＣ  ＮＡＮＤ
フラッシュメモリ、ＭＬＣ  ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、多結
晶シリコン若しくはシリコン窒化膜技術ベースの電荷蓄積セルを使用したフラッシュメモ
リ、２次元若しくは３次元技術ベースのフラッシュメモリ、読み取り専用メモリ、スタテ
ィック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・メモリ、強
磁性メモリ、相変化メモリ、レーストラックメモリ、ＲｅＲＡＭ、または任意の他の種類
のメモリデバイス若しくは記憶媒体といった、任意の種類の記憶デバイスを使用すること
ができる。
【０１６９】
様々な実施形態によれば、デバイスインターフェース１９０は、１つのバスにつきフラ
ッシュデバイス１９２の１若しくはそれ以上のインスタンスを有する１若しくはそれ以上
のバス；グループ内のバスにおおむね並列にアクセスさせる、１つのバスにつきフラッシ
ュデバイス１９２の１若しくはそれ以上のインスタンスを有する１若しくはそれ以上のバ
スグループ；またはデバイスインターフェース１９０上へのフラッシュデバイス１９２の
１若しくはそれ以上のインスタンスの任意の他の編成として編成される。
【０１７０】
引き続き図１Ａにおいて、ＳＳＤコントローラ１００は、ホストインターフェース１１
１、データ処理１２１、バッファ１３１、マップ１４１、リサイクラ１５１、ＥＣＣ１６
１、デバイスインターフェース論理１９１、ＣＰＵ１７１といった１若しくはそれ以上の
モジュールを有する。図１Ａに図示する具体的なモジュールおよび相互接続は、単に、一
実施形態を表すにすぎず、これらのモジュールの一部または全部、および図示されていな
いさらに別のモジュールの多くの配置および相互接続が考えられる。第１の例として、あ
る実施形態では、デュアルポーティングを提供するための２つ以上のホストインターフェ
ース１１１がある。第２の例として、ある実施形態では、データ処理１２１および／また
はＥＣＣ１６１がバッファ１３１と組み合わされている。第３の例として、ある実施形態
では、ホストインターフェース１１１がバッファ１３１に直接接続されており、データ処
理１２１が、バッファ１３１に記憶されたデータに任意選択で、かつ／または選択的に作
用する。第４の例として、ある実施形態では、デバイスインターフェース論理１９１がバ
ッファ１３１に直接接続されており、ＥＣＣ１６１が、バッファ１３１に記憶されたデー
タに任意選択で、かつ／または選択的に作用する。
【０１７１】
ホストインターフェース１１１は、外部インターフェース１１０を介してコマンドおよ
び／またはデータを送受信し、ある実施形態では、タグ追跡１１３によって個々のコマン
ドの進捗を追跡する。例えば、コマンドは、読み取るべきアドレス（ＬＢＡなど）および
データの量（ＬＢＡ量、例えばセクタの数など）を指定する読み取りコマンドを含み、こ
れに応答してＳＳＤは、読み取り状況および／または読み取りデータを提供する。別の例
として、コマンドは、書き込むべきアドレス（ＬＢＡなど）およびデータの量（ＬＢＡ量
、例えばセクタの数など）を指定する書き込みコマンドを含み、これに応答してＳＳＤは
、書き込み状況を提供し、かつ／または書き込みデータを要求し、任意選択でその後に書
き込み状況を提供する。さらに別の例として、コマンドは、もはや割り振られる必要のな
くなった１若しくはそれ以上のアドレス（１若しくはそれ以上のＬＢＡなど）を指定する
割り振り解除コマンド（ｔｒｉｍコマンドなど）を含み、これに応答してＳＳＤは、マッ
プをしかるべく変更し、任意選択で割り振り解除状況を提供する。あるコンテキストでは
、ＡＴＡ互換ＴＲＩＭコマンドが割り振り解除コマンドの例である。さらに別の例として
、コマンドは、超コンデンサ・テスト・コマンドまたはデータハーデニング成功問い合わ
せを含み、これに応答してＳＳＤは、適切な状況を提供する。ある実施形態では、ホスト
インターフェース１１１は、ＳＡＴＡプロトコルと適合し、ＮＣＱコマンドを使用して、
最高３２までの未処理のコマンドを有することができるようになっており、各コマンドは
０から３１までの数として表された一意のタグを有する。ある実施形態では、タグ追跡１
１３は、外部インターフェース１１０を介して受け取ったコマンドのための外部タグを、
ＳＳＤコントローラ１００による処理の間にコマンドを追跡するのに使用される内部タグ
と関連付けることができるようになっている。
【０１７２】
様々な実施形態によれば、データ処理１２１は、任意選択で、かつ／または選択的に、
バッファ１３１と外部インターフェース１１０との間で送られる一部または全部のデータ
を処理する、およびデータ処理１２１は、任意選択で、かつ／または選択的に、バッファ
１３１に記憶されたデータを処理する、以下のうちの１若しくはそれ以上が行われる。あ
る実施形態では、データ処理１２１は、１若しくはそれ以上のエンジン１２３を使用して
、書式設定、書式設定の変更、符号変換、ならびに他のデータ処理および／または操作タ
スクのうちの１若しくはそれ以上を行う。
【０１７３】
バッファ１３１は、外部インターフェース１１０からデバイスインターフェース１９０
へ／デバイスインターフェース１９０から外部インターフェース１１０へ送られたデータ
を記憶する。ある実施形態では、バッファ１３１は、さらに、ＳＳＤコントローラ１００
によってフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを管理するのに
使用される、一部または全部のマップ表といったシステムデータも記憶する。様々な実施
形態では、バッファ１３１は、データの一時記憶に使用されるメモリ１３７、バッファ１
３１への、かつ／またはバッファ１３１からのデータの移動を制御するのに使用されるＤ
ＭＡ１３３、ならびに高レベル誤り訂正および／または冗長性機能と、他のデータ移動お
よび／または操作機能とを提供するのに使用されるＥＣＣ−Ｘ１３５のうちの１若しくは
それ以上を有する。高レベル冗長性機能の一例がＲＡＩＤ様の能力（ＲＡＳＩＥなど）で
あり、ディスクレベルではなく、フラッシュ・デバイス・レベル（フラッシュデバイス１
９２のうちの複数のものなど）および／またはフラッシュダイ・レベル（フラッシュダイ
１９４など）の冗長性を備える。
【０１７４】
様々な実施形態によれば、以下のうちの１若しくはそれ以上である。ＥＣＣ１６１は、
任意選択で、かつ／または選択的に、バッファ１３１とデバイスインターフェース１９０
との間で送られる一部または全部のデータを処理する；およびＥＣＣ１６１は、任意選択
で、かつ／または選択的に、バッファ１３１に記憶されたデータを処理する。ある実施形
態では、ＥＣＣ１６１は、例えば１若しくはそれ以上のＥＣＣ技法に従った低レベル誤り
訂正および／または冗長性機能を提供するのに使用される。ある実施形態では、ＥＣＣ１
６１は、ＣＲＣ符号、ハミング符号、ＲＳ符号、ＢＣＨ符号、ＬＤＰＣ符号、ビタビ符号
、トレリス符号、硬判定符号、軟判定符号、消去ベースの符号、任意の誤り検出および／
または訂正符号、ならびに上記の任意の組み合わせのうちの１若しくはそれ以上を実施す
る。ある実施形態では、ＥＣＣ１６１は、１若しくはそれ以上の復号器（ＬＤＰＣ復号器
など）を含む。
【０１７５】
デバイスインターフェース論理１９１は、デバイスインターフェース１９０を介してフ
ラッシュデバイス１９２のインスタンスを制御する。デバイスインターフェース論理１９
１は、フラッシュデバイス１９２のプロトコルに従ってフラッシュデバイス１９２のイン
スタンスへ／からデータを送ることができるようになっている。デバイスインターフェー
ス論理１９１は、デバイスインターフェース１９０を介したフラッシュデバイス１９２の
インスタンスの制御を選択的に配列するスケジューリング１９３を含む。例えば、ある実
施形態では、スケジューリング１９３は、フラッシュデバイス１９２のインスタンスへの
操作を待ち行列に入れ、フラッシュデバイス１９２（またはフラッシュダイ１９４）のイ
ンスタンスの個々のインスタンスへの操作を、フラッシュデバイス１９２（またはフラッ
シュダイ１９４）のインスタンスの個々のインスタンスが利用可能になるに従って選択的
に送ることができるようになっている。
【０１７６】
マップ１４１は、外部インターフェース１１０上で使用されるデータアドレス指定と、
デバイスインターフェース１９０上で使用されるデータアドレス指定との間の変換を行い
、表１４３を使用して外部データアドレスからＮＶＭ１９９内の位置へマップする。例え
ば、ある実施形態では、マップ１４１は、外部インターフェース１１０上で使用されるＬ
ＢＡを、表１４３によって提供されるマッピングにより、１若しくはそれ以上のフラッシ
ュダイ１９４を対象とするブロックおよび／またはページアドレスに変換する。ドライブ
製造または割り振り解除以来一度も書き込まれていないＬＢＡでは、マップは、ＬＢＡが
読み取られた場合に返すべきデフォルト値を指し示す。例えば、割り振り解除コマンドを
処理するときに、マップは、割り振り解除されたＬＢＡに対応するエントリがデフォルト
値のうちの１つを指し示すように変更される。様々な実施形態では、様々なデフォルト値
があり、各々が対応するポインタを有する。複数のデフォルト値は、ある（例えば第１の
範囲内の）割り振り解除されたＬＢＡを１つのデフォルト値として読み取り、ある（例え
ば第２の範囲内の）割り振り解除されたＬＢＡを別のデフォルト値として読み取ることを
可能にする。デフォルト値は、様々な実施形態では、フラッシュメモリ、ハードウェア、
ファームウェア、コマンドおよび／若しくはプリミティブ引数および／若しくはパラメー
タ、プログラマブルレジスタ、またはそれらの様々な組み合わせによって定義される。
【０１７７】
ある実施形態では、マップ１４１は、表１４３を使用して、外部インターフェース１１
０上で使用されるアドレスと、デバイスインターフェース１９０上で使用されるデータア
ドレス指定との間の変換を行い、かつ／またはルックアップする。様々な実施形態によれ
ば、表１４３は、１レベルマップ、２レベルマップ、マルチレベルマップ、マップキャッ
シュ、圧縮マップ、あるアドレス空間から別のアドレス空間への任意の種類のマッピング
、および上記の任意の組み合わせのうちの１若しくはそれ以上である。様々な実施形態に
よれば、表１４３は、スタティック・ランダム・アクセス・メモリ、ダイナミック・ラン
ダム・アクセス・メモリ、ＮＶＭ（フラッシュメモリなど）、キャッシュメモリ、オンチ
ップメモリ、オフチップメモリ、および上記の任意の組み合わせのうちの１若しくはそれ
以上を含む。
【０１７８】
ある実施形態では、リサイクラ１５１は、不要部分の整理を行う。例えば、ある実施形
態では、フラッシュデバイス１９２のインスタンスは、ブロックが書き換え可能になる前
に消去されなければならないブロックを含む。リサイクラ１５１は、例えば、マップ１４
１によって維持されるマップをスキャンすることによって、フラッシュデバイス１９２の
インスタンスのどの部分が実際に使用されているか（例えば、割り振り解除されているの
ではなく割り振られていること）を判定し、フラッシュデバイス１９２のインスタンスの
未使用の（例えば割り振り解除された）部分を、未使用の部分を消去することによって書
き込みに利用できるようにすることができるようになっている。別の実施形態では、リサ
イクラ１５１は、フラッシュデバイス１９２のインスタンスのより大きい連続した部分を
書き込みに利用できるようにするために、フラッシュデバイス１９２のインスタンス内に
記憶されたデータを移動することができるようになっている。
【０１７９】
ある実施形態では、フラッシュデバイス１９２のインスタンスは、異なる種類および／
または属性のデータを記憶するための１若しくはそれ以上のバンドを保持するように、選
択的に、かつ／または動的に構成され、管理され、かつ／または使用される。バンドの数
、配置、サイズ、および種類は、動的に変更可能である。例えば、コンピューティングホ
ストからのデータはホット（アクティブな）バンドに書き込まれ、リサイクラ１５１から
のデータはコールド（あまりアクティブではない）バンドに書き込まれる。ある使用シナ
リオでは、コンピューティングホストが長い順次のストリームを書き込む場合には、ホッ
トバンドのサイズが増大し、コンピューティングホストがランダムな書き込みを行い、ま
たはわずかな書き込みしか行わない場合には、コールドバンドのサイズが増大する。
【０１８０】
ＣＰＵ１７１は、ＳＳＤコントローラ１００の様々な部分を制御する。ＣＰＵ１７１は
、ＣＰＵコア１７２を含む。ＣＰＵコア１７２は、様々な実施形態によれば、１若しくは
それ以上のシングルコアプロセッサまたはマルチコアプロセッサである。ＣＰＵコア１７
２内の個々のプロセッサコアは、ある実施形態では、マルチスレッド化されている。ＣＰ
Ｕコア１７２は、命令および／またはデータのキャッシュおよび／またはメモリを含む。
例えば、命令メモリは、ＣＰＵコア１７２が、ＳＳＤコントローラ１００を制御するため
のプログラム（ファームウェアとも呼ばれるソフトウェアなど）を実行することを可能に
する命令を含む。ある実施形態では、ＣＰＵコア１７２によって実行されるファームウェ
アの一部または全部が、（例えば、図１ＢのＮＶＭ１９９のファームウェア１０６として
図示されている）フラッシュデバイス１９２のインスタンス上に記憶される。
【０１８１】
様々な実施形態では、ＣＰＵ１７１は、外部インターフェース１１０を介して受け取ら
れるコマンドを、コマンドが進行している間に追跡し、制御するコマンド管理１７３、バ
ッファ１３１の割り振りおよび使用を制御するバッファ管理１７５、マップ１４１を制御
する変換管理１７７、データアドレス指定の整合性を制御し、例えば、外部データアクセ
スと再利用データアクセスとの間の矛盾を回避するコヒーレンシ管理１７９、デバイスイ
ンターフェース論理１９１を制御するデバイス管理１８１、識別情報の変更および通信を
制御する識別情報管理１８２、ならびに、任意選択で、他の管理部をさらに含む。ＣＰＵ
１７１によって果たされる管理機能は、そのいずれか、若しくは全部が、ハードウェア、
ソフトウェア（ＣＰＵコア１７２上や、外部インターフェース１１０を介して接続された
ホスト上で実行されるファームウェアなど）、またはそれらの任意の実施形態によって制
御され、かつ／または管理され、あるいは、そのどれも、制御も管理もされないものであ
る。
【０１８２】
ある実施形態では、ＣＰＵ１７１は、性能統計の収集および／または報告、ＳＭＡＲＴ
の実施、電源逐次開閉機構の制御、電力消費の制御および／または調整、電源障害への応
答、クロック速度の制御および／またはモニタリングおよび／または調整、ならびに他の
管理タスクのうちの１若しくはそれ以上といった、他の管理タスクを行うことができるよ
うになっている。
【０１８３】
様々な実施形態は、ＳＳＤコントローラ１００と同様の、例えば、ホストインターフェ
ース１１１および／または外部インターフェース１１０の適応による、様々なコンピュー
ティングホストを用いた動作と互換性のあるコンピューティングホスト・フラッシュ・メ
モリ・コントローラを含む。様々なコンピューティングホストは、コンピュータ、ワーク
ステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ＳＡＮ、ＮＡＳデ
バイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ
、ノートブックコンピュータ、ネットブックコンピュータ、タブレット機器またはタブレ
ットコンピュータ、ウルトラブックコンピュータ、電子読み取り装置（ｅ−ｒｅａｄｅｒ
など）、ＰＤＡ、ナビゲーションンシステム、（ハンドヘルド型）ＧＰＳ機器、自動通信
路制御システム、自動車媒体制御システムまたはコンピュータ、プリンタ、コピー機また
はファックス機またはオールインワン機器、ＰＯＳ機器、金銭登録機、メディアプレーヤ
、テレビ、メディアレコーダ、ＤＶＲ、ディジタルカメラ、セルラハンドセット、コード
レス電話機ハンドセット、および電子ゲームのうちの１つまたはそれらの任意の組み合わ
せを含む。
【０１８４】
様々な実施形態では、ＳＳＤコントローラ（またはコンピューティングホスト・フラッ
シュ・メモリ・コントローラ）の全部または任意の部分が、単一のＩＣ、マルチダイＩＣ
の単一のダイ、マルチダイＩＣの複数のダイ、または複数のＩＣ上で実施される。例えば
、バッファ１３１は、ＳＳＤコントローラ１００の他の要素と同じダイ上に実施される。
別の例では、バッファ１３１は、ＳＳＤコントローラ１００の他の要素と異なるダイ上に
実施される。
【０１８５】
図１Ｂに、図１ＡのＳＳＤの１若しくはそれ以上のインスタンスを含むシステムの様々
な実施形態の選択された詳細を図示する。ＳＳＤ１０１は、デバイスインターフェース１
９０を介してＮＶＭ１９９に接続されたＳＳＤコントローラ１００を含む。図には、様々
な種別の実施形態、すなわち、ホストに直接接続された単一のＳＳＤ、各々がそれぞれの
外部インターフェースを介してホストに直接それぞれ接続されている複数のＳＳＤ、およ
び様々な相互接続要素を介してホストに間接的に接続された１若しくはそれ以上のＳＳＤ
が示されている。
【０１８６】
ホストに直接接続された単一のＳＳＤの例示的実施形態としては、ＳＳＤ１０１の１つ
のインスタンスが、外部インターフェース１１０を介してホスト１０２に直接接続される
（例えば、スイッチ／ファブリック／中間コントローラ１０３が省かれ、バイパスされ、
またはパススルーされる）。各々がそれぞれの外部インターフェースを介してホストに直
接接続されている複数のＳＳＤの例示的実施形態としては、ＳＳＤ１０１の複数のインス
タンスの各々が、外部インターフェース１１０のそれぞれのインスタンスを介してホスト
１０２に直接それぞれ接続される（例えば、スイッチ／ファブリック／中間コントローラ
１０３が省かれ、バイパスされ、またはパススルーされる）。様々な相互接続要素を介し
てホストに間接的に接続された１若しくはそれ以上のＳＳＤの例示的実施形態としては、
ＳＳＤ１０１の１若しくはそれ以上のインスタンスの各々が、ホスト１０２に間接的にそ
れぞれ接続される。各間接接続は、スイッチ／ファブリック／中間コントローラ１０３に
接続された外部インターフェース１１０のそれぞれのインスタンス、およびホスト１０２
に接続する中間インターフェース１０４を介したものである。
【０１８７】
スイッチ／ファブリック／中間コントローラ１０３を含む実施形態の一部は、メモリイ
ンターフェース１８０を介して接続された、ＳＳＤによってアクセス可能なカードメモリ
１１２Ｃも含む。様々な実施形態では、ＳＳＤ、スイッチ／ファブリック／中間コントロ
ーラ、および／またはカードメモリのうちの１若しくはそれ以上が、物理的に識別可能な
モジュール、カード、または差し込み可能な要素（入出力カード１１６など）上に含まれ
る。ある実施形態では、ＳＳＤ１０１（またはその変形）は、ホスト１０２として動作す
るイニシエータ（開始プログラム）に接続されたＳＡＳドライブまたはＳＡＴＡドライブ
に対応する。
【０１８８】
ホスト１０２は、ＯＳ１０５、ドライバ１０７、アプリケーション１０９、マルチデバ
イス管理ソフトウェア１１４の様々な組み合わせといった、ホストソフトウェア１１５の
様々な要素を実行することができるようになっている。点線矢印１０７Ｄは、ホストソフ
トウェア←→入出力装置通信、例えば、ＳＳＤ１０１のインスタンスのうちの１若しくは
それ以上から／へ、ドライバ１０７を介したＯＳ１０５、ドライバ１０７、および、ドラ
イバ１０７を介して、またはＶＦとして直接アプリケーション１０９のうちの任意の１若
しくはそれ以上へ／から送られ／受け取られるデータを表す。
【０１８９】
ＯＳ１０５は、ＳＳＤとインターフェースするための（概念的にはドライバ１０７によ
って図示されている）ドライバを含み、かつ／またはそのようなドライバを用いて動作す
ることができるようになっている。Ｗｉｎｄｏｗｓ（登録商標）の様々なバージョン（９
５、９８、ＭＥ、ＮＴ、ＸＰ、２０００、サーバ、Ｖｉｓｔａ、および７など）、Ｌｉｎ
ｕｘ（登録商標）の様々なバージョン（Ｒｅｄ  Ｈａｔ、Ｄｅｂｉａｎ、およびＵｂｕｎ
ｔｕなど）、ならびにＭａｃＯＳの様々なバージョン（８、９およびＸなど）がＯＳ１０
５の例である。様々な実施形態では、ドライバは、ＳＡＴＡ、ＡＨＣＩ、ＮＶＭ  Ｅｘｐ
ｒｅｓｓといった標準のインターフェースおよび／またはプロトコルを用いて動作する標
準のドライバおよび／または汎用のドライバ（「シュリンクラップされた（市販の）」ま
たは「プリインストールされた」ともいう）であり、あるいは、任意選択で、ＳＳＤ１０
１に特有のコマンドの使用を可能にするようにカスタマイズされており、かつ／またはベ
ンダ特有のものである。あるドライブおよび／またはドライバは、アプリケーションレベ
ルのプログラム、例えば最適化ＮＡＮＤアクセス（Ｏｐｔｉｍｉｚｅｄ  ＮＡＮＤ  Ａｃ
ｃｅｓｓ）（ＯＮＡともいう）または直接ＮＡＮＤアクセス（Ｄｉｒｅｃｔ  ＮＡＮＤ  
Ａｃｃｅｓｓ）（ＤＮＡともいう）の各技法によるアプリケーション１０９などが、コマ
ンドをＳＳＤ１０１に直接伝えることを可能にするパススルーモードを有し、カスタマイ
ズされたアプリケーションが、汎用ドライバとでさえもＳＳＤ１０１に特有のコマンドを
使用することを可能にする。ＯＮＡの技法は、非標準変更子（ｈｉｎｔｓ）の使用、ベン
ダ特有のコマンドの使用、非標準の統計の通信、例えば圧縮可能性に従った実際のＮＶＭ
の使用、および他の技法のうちの１若しくはそれ以上を含む。ＤＮＡの技法は、ＮＶＭへ
のマップされていない読み取り、書き込み、および／または消去アクセスを提供する非標
準のコマンドまたはベンダ特有の（コマンド）の使用、例えば、入出力装置が通常は行う
はずのデータの書式設定をバイパスすることによる、ＮＶＭへのより直接的なアクセスを
提供する非標準の、またはベンダ特有のコマンドの使用、および他の技法のうちの１若し
くはそれ以上を含む。ドライバの例は、ＯＮＡまたはＤＮＡサポートなしのドライバ、Ｏ
ＮＡ使用可能ドライバ、ＤＮＡ使用可能ドライバ、ＯＮＡ／ＤＮＡ使用可能ドライバであ
る。ドライバの別の例は、ベンダ提供ドライバ、ベンダ開発ドライバ、および／またはベ
ンダ拡張ドライバ、ならびにクライアント提供ドライバ、クライアント開発ドライバ、お
よび／またはクライアント拡張ドライバである。
【０１９０】
アプリケーションレベルのプログラムの例は、ＯＮＡまたはＤＮＡサポートなしのアプ
リケーション、ＯＮＡ使用可能アプリケーション、ＤＮＡ使用可能アプリケーション、お
よびＯＮＡ／ＤＮＡ使用可能アプリケーションである。点線矢印１０９Ｄは、アプリケー
ション←→入出力装置通信（ドライバによるバイパスや、アプリケーションのためのＶＦ
によるバイパスなど）、例えば、ＯＳを仲介として使用するアプリケーションなしでＳＳ
Ｄと通信するＯＮＡ使用可能アプリケーションおよびＯＮＡ使用可能ドライバなどを表す
。点線矢印１０９Ｖは、アプリケーション←→入出力装置通信（アプリケーションのため
のＶＦによるバイパスなど）、例えば、ＯＳまたはドライバを仲介として使用するアプリ
ケーションなしでＳＳＤと通信するＤＮＡ使用可能アプリケーションおよびＤＮＡ使用可
能ドライバなどを表す。
【０１９１】
ＮＶＭ１９９の１若しくはそれ以上の部分が、ある実施形態では、ファームウェア記憶
、例えばファームウェア１０６に使用される。ファームウェア記憶は、１若しくはそれ以
上のファームウェアイメージ（またはその部分）を含む。ファームウェアイメージは、例
えばＳＳＤコントローラ１００のＣＰＵコア１７２によって実行される、例えばファーム
ウェアの１若しくはそれ以上のイメージを有する。ファームウェアイメージは、別の例で
は、例えばファームウェア実行時にＣＰＵコアによって参照される、定数、パラメータ値
、ＮＶＭデバイス情報の１若しくはそれ以上のイメージを有する。ファームウェアのイメ
ージは、例えば、現在のファームウェアイメージおよび０以上の（ファームウェア更新に
対して）前のファームウェアイメージに対応する。様々な実施形態では、ファームウェア
は、汎用動作モード、標準動作モード、ＯＮＡ動作モード、および／またはＤＮＡ動作モ
ードを提供する。ある実施形態では、ファームウェア動作モードのうちの１若しくはそれ
以上が、ドライバによって任意選択で伝えられ、かつ／または提供される、鍵または様々
なソフトウェア技法によって使用可能とされる（例えば、１若しくはそれ以上のＡＰＩが
「ロック解除」される）。
【０１９２】
スイッチ／ファブリック／中間コントローラを欠くある実施形態では、ＳＳＤは、外部
インターフェース１１０を介して直接ホストに接続される。様々な実施形態では、ＳＳＤ
コントローラ１００は、ＲＡＩＤコントローラといった他のコントローラの１若しくはそ
れ以上の中間レベルを介してホストに接続される。ある実施形態では、ＳＳＤ１０１（ま
たはその変形）は、ＳＡＳドライブまたはＳＡＴＡドライブに対応し、スイッチ／ファブ
リック／中間コントローラ１０３は、イニシエータにさらに接続されたエキスパンダに対
応し、あるいは、スイッチ／ファブリック／中間コントローラ１０３は、エキスパンダを
介してイニシエータに間接的に接続されたブリッジに対応する。ある実施形態では、スイ
ッチ／ファブリック／中間コントローラ１０３は、１若しくはそれ以上のＰＣＩｅスイッ
チおよび／またはファブリックを含む。
【０１９３】
様々な実施形態、例えば、コンピューティングホストとしてのホスト１０２（コンピュ
ータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ＳＡ
Ｎ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップ
コンピュータ、ノートブックコンピュータ、および／またはネットブックコンピュータな
ど）を有する実施形態のあるものでは、コンピューティングホストは、任意選択で、１若
しくはそれ以上のローカルサーバおよび／またはリモートサーバ（例えば、任意選択のサ
ーバ１１８）と（例えば、任意選択の入出力装置／リソースおよび記憶装置／リソース１
１７および任意選択のＬＡＮ／ＷＡＮ１１９を介して）通信することができるようになっ
ている。通信は、例えば、ＳＳＤ１０１要素のうちの任意の１若しくはそれ以上のローカ
ルおよび／またはリモートのアクセス、管理、および／または使用を可能にする。ある実
施形態では、通信は、全部または一部がイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（
登録商標））によるものである。ある実施形態では、通信は、全部または一部がファイバ
チャネルによるものである。ＬＡＮ／ＷＡＮ１１９は、様々な実施形態では、１若しくは
それ以上のローカル・エリア・ネットワークおよび／または広域ネットワーク、例えば、
サーバファーム内のネットワーク、サーバファームを接続するネットワーク、メトロエリ
アネットワーク、およびインターネットのうちの任意の１若しくはそれ以上を表す。
【０１９４】
様々な実施形態では、１若しくはそれ以上のＮＶＭと組み合わされたＳＳＤコントロー
ラおよび／またはコンピューティングホスト・フラッシュ・メモリ・コントローラが、Ｕ
ＳＢ記憶コンポーネント、ＣＦ記憶コンポーネント、ＭＭＣ記憶コンポーネント、ｅＭＭ
Ｃ記憶コンポーネント、サンダーボルト記憶コンポーネント、ＵＦＳ記憶コンポーネント
、ＳＤ記憶コンポーネント、メモリスティック記憶コンポーネント、ｘＤピクチャカード
記憶コンポーネントといった不揮発性記憶コンポーネントとして実施される。
【０１９５】
様々な実施形態では、ＳＳＤコントローラ（またはコンピューティングホスト・フラッ
シュ・メモリ・コントローラ）の全部またはいずれかの部分、またはその機能が、コント
ローラが接続されるべきホスト（図１Ｂのホスト１０２など）において実施される。様々
な実施形態では、ＳＳＤコントローラ（若しくはコンピューティングホスト・フラッシュ
・メモリ・コントローラ）の全部またはいずれかの部分、またはその機能が、ハードウェ
ア（論理回路など）、ソフトウェアおよび／若しくはファームウェア（ドライバソフトウ
ェアおよび／若しくはＳＳＤ制御ファームウェアなど）、またはそれらの任意の組み合わ
せによって実施される。例えば、（例えば図１ＡのＥＣＣ１６１および／またはＥＣＣ−
Ｘ１３５と同様の）ＥＣＣ部の、またはＥＣＣ部と関連付けられた機能が、一部はホスト
上のソフトウェアによって、一部はＳＳＤコントローラ内のファームウェアとハードウェ
アとの組み合わせによって実施される。別の例として、（例えば図１Ａのリサイクラ１５
１と同様の）リサイクラ部の、またはリサイクラ部と関連付けられた機能が、一部はホス
ト上のソフトウェアによって、一部はコンピューティングホスト・フラッシュ・メモリ・
コントローラ内のハードウェアによって実施される。
【０１９６】
マッピング操作
図２に、ＬＢＡのＬＰＮ部分のマッピングの実施形態の選択された詳細を図示する。あ
る実施形態では、読み取り単位は、ＮＶＭのページの部分といった、独立に読み取ること
のできるＮＶＭの最も細かい粒度である。別の実施形態では、読み取り単位は、検査ビッ
トによって保護されるすべてのデータに（低レベル）誤り訂正符号の検査ビット（冗長性
ともいう）を加えたものに対応する。例えば、図１ＡのＥＣＣ１６１は、検査ビットによ
る、例えばＬＤＰＣ符号による誤り訂正を実施し、読み取り単位は、ＬＤＰＣ符号化ビッ
トによって保護されるデータビットにＬＤＰＣ符号を加えたものを実施する符号化ビット
に対応する。
【０１９７】
ある実施形態では、マップ１４１は、ＬＢＡ２１１のＬＰＮ２１３部分を、例えば（図
１Ａに図示される）表１４３によって、ＬＰＮのためのマップ情報２２１にマップする。
ＬＰＮのためのマップ情報（例えばＬＰＮのためのマップ情報２２１）をマップエントリ
ともいう。マップ１４１は、ＬＰＮを対応するマップエントリと関連付けるといわれる。
様々な実施形態では、マッピングは、１若しくはそれ以上の連想ルックアップ、１若しく
はそれ以上の非連想ルックアップ、および／または１若しくはそれ以上の他の技法による
ものである。
【０１９８】
ある実施形態では、ＳＳＤコントローラ１００は、潜在的に、かつ／またはアクティブ
に使用されているＬＰＮごとに１つのマップエントリを維持する。
【０１９９】
ある実施形態では、ＬＰＮのためのマップ情報２２１は、それぞれの読み取り単位アド
レス２２３および読み取り単位での長さ２２５を含む。ある実施形態では、長さおよび／
または範囲は、例えば、読み取り単位での長さ２２５の全部またはいずれかの部分におい
て、例えば、長さを範囲からのオフセットとして記憶することによって、符号化して記憶
される。別の実施形態では、第１のＬＰＮは第１のマップエントリと関連付けられており
、（第１のＬＰＮと異なるが、第１のＬＰＮによって参照される論理ページと同サイズの
論理ページを参照する）第２のＬＰＮは第２のマップエントリと関連付けられており、第
１のマップエントリのそれぞれの読み取り単位での長さは、第２のマップエントリのそれ
ぞれの読み取り単位での長さと異なる。
【０２００】
様々な実施形態では、同じ時点において、第１のＬＰＮは第１のマップエントリと関連
付けられており、（第１のＬＰＮと異なる）第２のＬＰＮは第２のマップエントリと関連
付けられており、第１のマップエントリのそれぞれの読み取り単位アドレスは、第２のマ
ップエントリのそれぞれの読み取り単位アドレスと同じである。別の実施形態では、第１
のＬＰＮと関連付けられたデータおよび第２のＬＰＮと関連付けられたデータは、どちら
も、ＮＶＭ１９９内の同じデバイスの同じ物理ページに記憶されている。
【０２０１】
様々な実施形態によれば、読み取り単位アドレス２２３は、ＮＶＭ内の開始アドレス、
ＮＶＭ内の終了アドレス、上記のいずれかのオフセット、およびＬＰＮ２１３と関連付け
られたＮＶＭの部分を識別するための任意の他の技法のうちの１若しくはそれ以上と関連
付けられている。
【０２０２】
図３に、読み取り単位の量で測った長さを総体として有する、様々な読み取り単位とし
て編成された読み取りデータを生成するための、読み取り単位アドレスのところのＮＶＭ
へのアクセスの実施形態の選択された詳細を図示する。様々な実施形態によれば、最初の
読み取り単位３１３は、ＮＶＭのアドレス空間における最低のアドレスを有する読み取り
データ３１１内の読み取り単位のうちの１つ、読み取り単位のうちの固定された１つ、読
み取り単位のうちの任意の１つ、読み取り単位のうちの可変の１つ、および任意の他の技
法によって選択される読み取り単位のうちの１つのうちの１若しくはそれ以上である。様
々な実施形態では、ＳＳＤコントローラ１００は、ＮＶＭ１９９にアクセスし、読み取り
単位での長さ２２５によって指定される数以下の数の読み取り単位を読み取ることによっ
て読み取りデータ３１１を生成することができるようになっている。
【０２０３】
図４Ａに、（図３の読み取り単位３１３や読み取り単位３１５といった）読み取り単位
の実施形態の選択された詳細を読み取り単位４０１Ａとして図示する。様々な実施形態お
よび／または使用シナリオにおいて、ヘッダ１  ４１１ＡからヘッダＮ  ４１９Ａは連続
しており、ヘッダの各々によって（例えばそれぞれのオフセットにより）識別されるそれ
ぞれのデータ領域は、ヘッダの最後のものに後に続いて連続している。各データ領域は総
体としてデータバイト４２１Ａを形成している。各データ領域は、各ヘッダが記憶される
位置順と一致した位置順で記憶される。例えば、読み取り単位の先頭のところの第１のヘ
ッダを考えると、第２のヘッダおよび第３のヘッダは、第１のヘッダのすぐ後に続く。（
第１のヘッダ内の第１のオフセットによって識別される）第１のデータ領域は第３のヘッ
ダのすぐ後に続く。（第２のヘッダ内の第２のオフセットによって識別される）第２のデ
ータ領域は第１のデータ領域のすぐ後に続く。同様に、（第３のヘッダ内によって識別さ
れる）第３データ領域も第２のデータ領域のすぐ後に続く。
【０２０４】
図４Ｂに、（図３の読み取り単位３１３や読み取り単位３１５といった）読み取り単位
の別の実施形態の選択された詳細を読み取り単位４０１Ｂとして図示する。様々な実施形
態および／または使用シナリオにおいて、ヘッダマーカ（ＨＭ）４１０Ｂは、後に続く連
続したヘッダ（ヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）の数
を指示する任意選択の最初のフィールド（例えば１バイトのフィールド）である。データ
領域（データバイト４２１Ｂ、データバイト４２２Ｂ...データバイト４２９Ｂ）は、そ
れぞれ、ヘッダ（ヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）に
よって識別され、ヘッダが記憶される位置順とは逆の位置順で記憶される。ヘッダは読み
取り単位の先頭から開始し、対応するデータ領域は読み取り単位の末尾から開始する。あ
る実施形態では、データ領域内のデータバイト（例えば、データバイト４２１Ｂ、データ
バイト４２２Ｂ...データバイト４２９Ｂ）は、前方順（位置順と一致するバイト順）に
配置され、別の実施形態では、データバイトは、逆順（位置順に対して反転されたバイト
順）に配置される。ある実施形態では、ヘッダマーカが、（例えば図４Ａに示すように）
ヘッダおよびデータバイトが同じ位置順で記憶されている読み取り単位で使用される。
【０２０５】
ある実施形態では、任意選択のパディングバイト４３１Ａ（または４３１Ｂ）は、特定
のＬＰＮと関連付けられたデータの粒度に従ったものである。例えば、ある実施形態では
、データバイト４２１Ａ（またはデータバイト４２１Ｂ、データバイト４２２Ｂ...デー
タバイト４２９Ｂの総体）が、ヘッダ１  ４１１ＡからヘッダＮ  ４１９Ａまで（または
ヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）の最後のヘッダを除
くすべてのヘッダと関連付けられたデータを記憶した後で、決まった量、例えば８バイト
より少ない残りのスペースを有する場合には、最後のヘッダと関連付けられたＬＰＮのデ
ータは後続の読み取り単位において開始する。別の実施形態では、最後のヘッダ内の特定
のオフセット値（例えばすべて１）が、最後のヘッダと関連付けられたＬＰＮのデータが
後続の読み取り単位において開始することを指示する。
【０２０６】
図５に、いくつかのフィールドを有するヘッダ（例えば、図４Ａのヘッダ１  ４１１Ａ
からヘッダＮ  ４１９Ａまでや、図４Ｂのヘッダ１  ４１１Ｂからヘッダ  ４１９Ｂまで
のいずれか）の実施形態の選択された詳細を図示する。ある実施形態では、ヘッダは固定
長である（例えば、各ヘッダは同じバイト数の長さである）。ヘッダ５０１は、種類５１
１、最終標識５１３、フラグ５１５、ＬＰＮ５１７、長さ５１９、およびオフセット５２
１の各フィールドを含む。種類フィールドは、データバイトのカテゴリを識別する。例え
ば、種類フィールドは、データバイトのカテゴリが、ホストデータ（論理ページデータな
ど）またはシステムデータ（マップ情報やチェックポイント情報など）の１つであること
を指示する。最終フィールドは、ヘッダがデータバイトの前の最終ヘッダであることを指
示する。ヘッダマーカを用いるある実施形態では、最終フィールドは任意選択で割愛され
る。ＬＰＮフィールドは、ヘッダが関連付けられているＬＰＮである。ＬＰＮフィールド
は、特定のＬＰＮと関連付けられたヘッダのうちの特定のヘッダを、例えば、特定のＬＰ
Ｎと一致するＬＰＮフィールドを有するヘッダを求めてヘッダをサーチすることによって
決定するためのヘッダのパーシングを可能にする。長さフィールドは、データバイトのバ
イト単位の長さ（例えば、ヘッダ５０１と関連付けられたデータバイト４２１Ａに何バイ
トのデータがあるか）である。ある実施形態では、オフセットフィールド内のオフセット
は、特定の粒度（８バイトの粒度など）に従って丸められる。
【０２０７】
様々な実施形態では、特定のＬＰＮと関連付けられた一部または全部の情報が、特定の
ＬＰＮと関連付けられたマップエントリ、特定のＬＰＮと関連付けられたヘッダ、または
その両方に記憶される。例えば、ある実施形態では、長さ５１９の一部または全部が、ヘ
ッダではなくマップエントリに記憶される。
【０２０８】
不揮発性メモリの編成および管理の選択された態様
様々な実施形態において、ＳＳＤの大容量記憶を実施するＮＶＭが１若しくはそれ以上
のフラッシュダイによって実施される。各フラッシュダイは整数個のブロック（Ｎ個のブ
ロックなど）を含み、ブロックは消去の最小量である。ある実施形態では、各ブロックが
整数個のページを含み、ページは書き込みの最小量である。様々な実施形態によれば、以
下のうちの１若しくはそれ以上が該当する。読み取り単位は読み取りおよび誤り訂正の最
小量である、各ページは整数個の読み取り単位を含む、２つ若しくはそれ以上のページの
関連付けられたグループが整数個の読み取り単位を含む、ならびに、読み取り単位は、任
意選択で、かつ／または選択的に、ページ境界にまたがる。
【０２０９】
様々な実施形態において、様々なＮＶＭ管理機能（読み取り、再利用、消去、および／
またはプログラミング／書き込みなど）が、Ｒ−ブロックの単位で行われる。Ｒ−ブロッ
クは、例えばフラッシュメモリの、様々なダイ（すべてのダイ、全部または一部が故障し
たものを除くすべてのダイ、および／またはダイのうちの１若しくはそれ以上の選択され
たサブセットなど）に及ぶ論理スライスまたはセクションとして例示される。例えば、Ｒ
個のフラッシュダイを有し、各フラッシュダイがＮ個のブロックを有するフラッシュメモ
リでは、各Ｒ−ブロックは、合計でＮ個のＲ−ブロックについて、全部合わせたフラッシ
ュダイの各々からの第ｉ番目のブロックである。例を続けて、Ｒ個のフラッシュダイのう
ちの１つが故障した場合には、各Ｒ−ブロックは、合計でＮ−１個のＲ−ブロックについ
て、故障したフラッシュダイを除いたフラッシュダイの各々から第ｉ番目のブロックであ
る。別の例として、各々がＮ個のブロックを有するＲ個のフラッシュダイを有するフラッ
シュメモリでは、各Ｒ−ブロックは、合計でＮ／２個のＲ−ブロックについて、フラッシ
ュダイの各々から第ｉ番目と第（ｉ＋１）番目のブロックである。さらに別の例として、
複数のデュアル・プレーン・デバイスを有するフラッシュメモリでは、各Ｒ−ブロックは
、デュアル・プレーン・デバイスの各々から第ｉ番目の偶数ブロックと第ｉ番目の奇数ブ
ロックである。
【０２１０】
仮想ドライブ製造モデル
図６に、仮想ＳＳＤ製造モデルといった仮想ドライブ製造モデルの実施形態の選択され
た詳細の流れ図を示す。動作は、３つの互いに異なる事業実体、すなわち設計業者６１０
（集積回路設計会社など）、製造者６２０（契約製造会社など）、およびシステムベンダ
６３０（ＯＥＭなど）によって行われるものとして図示されている。様々な実施形態にお
いて、互いに異なる事業実体は互いに異なる企業であり、別の実施形態では、互いに異な
る事業実体のうちの１若しくはそれ以上は、同じ企業の部分である。様々な実施形態にお
いて、互いに異なる事業実体のうちの任意の１若しくはそれ以上は、企業、共同経営者、
所有者、進行中の企業を公式、または非公式に運営している１人若しくはそれ以上の個人
、およびいかなる特定の企業にも組織にも帰属せずに運営している１人若しくはそれ以上
の個人、のうちの任意の１若しくはそれ以上である。様々な実施形態において、互いに異
なる事業実体のうちの任意の１若しくはそれ以上は、営利目的の実体、非営利目的の実体
、教育団体、および政府機関のうちの任意の１若しくはそれ以上である。
【０２１１】
概念的には、設計業者は、ＳＳＤコントローラおよび関連付けられたファームウェアを
、システムベンダに、基準設計ならびに、ＳＳＤコントローラおよびリストから選択され
る１若しくはそれ以上のフラッシュ・メモリ・デバイス（および／または他の材料）を使
用してＳＳＤを生産するための、推奨され、かつ／またはサポートされるフラッシュ・メ
モリ・デバイス（および／または他のデバイス／構成部品といった他の材料）の関連付け
られたリストと共に提供する。次いでシステムベンダは、少なくとも一部は、ＳＳＤコン
トローラ、ファームウェア、基準設計、リスト、および／またはこれらの１若しくはそれ
以上の属性（価格、入手可能性、耐久性、および／または性能など）に基づいて、これら
の中からＳＳＤを製造するための材料を選択する。選択は、リストの中から１若しくはそ
れ以上のフラッシュ・メモリ・デバイスを選択することを含む。システムベンダは、さら
に、ＳＳＤの１若しくはそれ以上のプロトタイプを製造するための材料を調達する。様々
な実施形態において、プロトタイプのうちの異なるものは、例えば、選択されるメモリデ
バイスの比較を可能にするために、選択されるフラッシュ・メモリ・デバイスのうちの異
なるものを使用して構築される。製造者（システムベンダからの指図に従って働く契約製
造者など）がプロトタイプＳＳＤを構築する。設計業者はプロトタイプＳＳＤを評価し、
評価の結果の全部または任意の部分がシステムベンダに提供される。
【０２１２】
システムベンダは、少なくとも、提供された結果の一部分に基づき、直接、または契約
製造者（プロトタイプＳＳＤを構築した契約製造者など）により、またはシステムベンダ
と契約製造者の両方により、ＳＳＤを大量生産する。システムベンダは、大量生産で使用
される材料（例えば、設計業者からのＳＳＤコントローラおよび／またはリストで特定さ
れる、また任意選択で、１若しくはそれ以上のフラッシュ・メモリ・ベンダからのフラッ
シュ・メモリ・デバイス）を調達する（またはこれの調達を指図する）。システムベンダ
は、（例えば、サーバといった企業用途、データセンタといったクラウド用途、高耐久化
コンピュータといった産業用途、および／またはＰＣといったクライアント用途で使用す
るために）１者若しくはそれ以上の顧客に、大量生産されたＳＳＤを販売する。よって、
システムベンダは、フラッシュ・メモリ・デバイス（および／または他の材料）自体のベ
ンダへのマージン以外に、大量生産ＳＳＤに組み込まれるフラッシュ・メモリ・デバイス
（および／または他の材料）にかかるマージンを支払わずに大量生産ＳＳＤを販売するこ
とができるようになっている。
【０２１３】
ある実施形態および／または使用シナリオでは、システムベンダは、ＲＭＡおよび／ま
たは点検作業を、少なくとも顧客との対話に関して、任意選択で、全部または一部を、設
計業者によってシステムベンダに提供される訓練および／またはツールに基づいて行う。
ＲＭＡおよび／または点検は、様々な実施形態によれば、システムベンダ、設計業者、ま
たは両者によって行われる故障解析作業に情報を提供する。大量生産ＳＳＤの全部または
任意の部分の再加工が、例えば契約製造者によって行われる。
【０２１４】
システムベンダの例には、いわゆる「クラウドプロバイダ」（Ｇｏｏｇｌｅ、Ｆａｃｅ
ｂｏｏｋ、およびＡｍａｚｏｎなど）、データセンタ実施者／ユーザ（銀行、製薬会社、
および金融サービス会社など）、ならびにＳＳＤを含むシステムのＯＥＭが含まれる。シ
ステムベンダの他の例には、ある種の製造者、例えば、ある契約製造者および／またはあ
る相手先ブランドによる設計製造者が含まれる。
【０２１５】
より具体的には、図で示すように、設計業者は、ＳＳＤコントローラと、ＳＳＤコント
ローラによって実行するためのファームウェアとを実施する（コントローラおよびファー
ムウェア６１１）。設計業者は、少なくとも一部はＳＳＤコントローラおよびファームウ
ェアに基づいて、少なくとも１つの関連付けられた基準設計と、基準設計の各々と共に使
用するための、推奨され、かつ／またはサポートされるフラッシュ・メモリ・デバイスの
リストを作成する（基準設計およびフラッシュ推奨６１２）。設計業者は、例えば、ＳＳ
Ｄコントローラ、ファームウェア、少なくとも１つの基準設計、およびリストのフラッシ
ュ・メモリ・デバイスのうちの１若しくはそれ以上を使用して、１若しくはそれ以上のＳ
ＳＤの文書およびエンジニアリング／デバッグサンプルを作成する。文書（販促品および
／またはエンジニアリング情報など）は、全部または一部が、サンプルＳＳＤおよびリス
トのフラッシュ・メモリ・デバイスの評価／特徴付け（価格、性能、および／または機能
など）、ならびに、通常は設計業者内部のものである設計文書（ＳＳＤコントローラ、フ
ァームウェア、および／または少なくとも１つの基準設計を記述するアーキテクチャ文書
など）のうちの任意の１若しくはそれ以上に基づくものである。
【０２１６】
設計業者は、文書の全部または任意の部分、サンプルＳＳＤのうちの１若しくはそれ以
上、少なくとも１つの基準設計、および／または（推奨され、かつ／またはサポートされ
るフラッシュ・メモリ・デバイスの）リストをシステムベンダに提供する。設計業者によ
ってシステムベンダに提供された前述の項目に少なくとも一部は基づき、システムベンダ
は、ＳＳＤの大量生産に必要な材料を（あるいは、最初に、プロトタイプ組立てに十分な
量の材料を）選択、調達し、大量生産されるＳＳＤのための設計を承認する（ＢＯＭ選択
、ＢＯＭ調達、および設計承認６３２）。選択は、リストのフラッシュ・メモリ・デバイ
スの中から１若しくはそれ以上のフラッシュ・メモリ・デバイスを選択することを含む。
調達は、ＳＳＤのプロトタイプ組立ておよび／または大量生産のために十分な量の選択さ
れるフラッシュ・メモリ・デバイスを調達することを含む。大量生産ＳＳＤは、少なくと
も１つの基準設計に従ったものであり、ＳＳＤコントローラ、ファームウェア（または、
任意選択で、かつ／若しくは選択的に、企業バージョン、クラウドバージョン、産業バー
ジョン、および／若しくはクライアントバージョンといったシステムベンダ用にカスタマ
イズされたファームウェアの１若しくはそれ以上のバージョン）、および選択されるフラ
ッシュ・メモリ・デバイスを使用する。ある実施形態では、ファームウェア（またはファ
ームウェアのカスタマイズバージョン）は、ＳＳＤコントローラを用いて製造されるＳＳ
Ｄで使用するためにシステムベンダに使用許諾される。
【０２１７】
この後で、システムベンダ６３０は製造者６２０に、少なくとも１つの基準設計に従っ
た、ＳＳＤコントローラ、ファームウェア、およびリストの選択されるフラッシュ・メモ
リ・デバイスを含む１若しくはそれ以上のプロトタイプＳＳＤを組み立てるよう指図する
（プロトタイプ製造６２３）。プロトタイプＳＳＤは、システムベンダによって調達され
た少なくとも一部の材料（ＳＳＤコントローラおよび選択されるフラッシュ・メモリ・デ
バイスなど）を使用して構築される。ある実施形態および／または使用シナリオ（不図示
）では、システムベンダがプロトタイプＳＳＤを組み立てる。
【０２１８】
次いで設計業者６１０は、例えば、ハードウェア検証および特徴付け（ハードウェア検
証／特徴付け６１４）ならびに／または信頼性および検証試験（ＲＤＴ、ＥＶＴ、および
ＤＶＴ６１５）によって、プロトタイプＳＳＤを評価し、かつ／または特徴付ける。ハー
ドウェア検証および特徴付けは、任意選択で、相互運用性および／またはコンプライアン
ス検査を含む。例えば、プロトタイプＳＳＤは、ホスト・インターフェース・プロトコル
および／または電気信号規格へのコンプライアンスについて検証される。様々な実施形態
によれば、設計業者は、ファームウェア、システムベンダ用にカスタマイズされたファー
ムウェアの１若しくはそれ以上のバージョン、またはこれらの任意の組み合わせを使用し
て評価および／または特徴付けを行う。設計業者は、検証／特徴付けの１若しくはそれ以
上の結果をシステムベンダに提供する。システムベンダは、提供された結果の少なくとも
一部を調べ、プロトタイプＳＳＤが大量生産に十分な品質のものであると判定する（シス
テム品質保証６３４）。設計業者は、例えば、製造者（大量生産６２５）および／または
システムベンダ（大量生産６３５）によって行われた大量生産（大量生産６５５）に対す
る信頼性および検証試験の１若しくはそれ以上の結果を提供する。システムベンダは、大
量生産（製造者、システムベンダ、または両者によって行われる）に対してシステム品質
保証の結果を提供する。
【０２１９】
ある実施形態では、大量生産ＳＳＤの大量生産を可能にするために、設計業者６１０が
、大量生産（例えば、大量生産６２５として製造者６２０によって、または大量生産６３
５としてシステムベンダ６３０によって行われる大量生産６５５）において任意選択で使
用するための製造用ソフトウェアツール（製造用ソフトウェアツール６１６）を提供する
。様々な実施形態および／または使用シナリオにおいて、製造用ソフトウェアツールは、
選択される設計業者の作業６１８としてまとめて図示されている、コントローラおよびフ
ァームウェア６１１、基準設計およびフラッシュ推奨６１２、ハードウェア検証／特徴付
け６１４、ならびにＲＤＴ、ＥＶＴ、およびＤＶＴ６１５のうちの任意の１若しくはそれ
以上からの情報に基づくものである。例えば、ある実施形態では、製造用ソフトウェアツ
ールは、複数の大量生産ＳＳＤに接続されたコンピュータシステム上で走るプログラムで
あり、複数の大量生産ＳＳＤのすべてと、おおむね、完全に、または部分的に並列に通信
すること、例えばこれらを構成することができるようになっている。
【０２２０】
様々な実施形態および／または使用シナリオによれば、製造用ソフトウェアツールは、
最初に大量生産ＳＳＤのうちの１つを構成すること；大量生産ＳＳＤのうちの１つにファ
ームウェアをダウンロードすること；大量生産ＳＳＤのうちの１つでＭＳＴまたは他の診
断機能を実行すること；大量生産ＳＳＤのうちの１つのためのそれぞれの一意の暗号化鍵
の割り当てを行うこと；大量生産ＳＳＤのうちの１つに他の一意のＩＤ（イーサネット（
登録商標）ＭＡＣアドレスなど）を割り当てること；情報をデータベースに記録すること
（製造記録および／または製造統計など）；一意の暗号化鍵の割り当ての一部として、か
つ／または鍵供託のために設計業者のサーバと（例えばインターネットを介して）通信す
ること；ならびに、任意選択で、かつ／または選択的に大量生産の一部として使用される
他の機能、のうちの１若しくはそれ以上を可能にし、かつ／または行う。ある実施形態で
は、製造用ソフトウェアツールは、プロトタイプ組立てのために（例えばプロトタイプ製
造６２３のために）使用される。詳細は本明細書に別途記載する「製造用ソフトウェアツ
ール」を参照されたい。
【０２２１】
次いでシステムベンダは、大量生産ＳＳＤのうちの１若しくはそれ以上を販売する。販
売される大量生産ＳＳＤのうちの一部は、例えば、欠陥、故障、障害、不備、および／ま
たは欠損が認められるために、顧客によって返却される。システムベンダは、顧客から販
売済みのＳＳＤのうちの返却されたものを受け取り、受け入れ検査および／または点検（
ＲＭＡ／点検６３６）を行う。例えば、検査および／または点検の結果に応じて、返却さ
れたＳＳＤは、例えば、設計業者（故障解析６１７）および／またはシステムベンダ（故
障解析６３７）によって行われる故障解析のために提供される。状況によっては、製造者
（および／またはシステムベンダ、明示されていない）は、故障解析されたＳＳＤのうち
の一部を修復し、改訂し、かつ／または調整しようと試みる（再加工６２７）。次いでシ
ステムベンダは、任意選択で、故障解析されたＳＳＤのうちの正常に再加工されたものを
販売する（不図示）。ある実施形態では、設計業者はシステムベンダに、故障解析、およ
び／または返却されたＳＳＤが故障解析後にどこに送られるべきか（例えば、設計業者か
、製造者か、それともシステムベンダか）の判断を助けるための１若しくはそれ以上のソ
フトウェアツールを供給する。
【０２２２】
様々な実施形態および／または使用シナリオにおいて、設計業者は、ＳＳＤコントロー
ラのインスタンスをシステムベンダに販売し、ファームウェアの使用許諾をシステムベン
ダに与え、システムベンダのために設計業者によってカスタマイズされたファームウェア
を作成し、これの使用許諾を与え、またはこれらの任意の組み合わせを行う。
【０２２３】
ある使用許諾ベースの実施形態では、ＳＳＤ生産（プロトタイプや大量生産など）が、
少なくとも一部は、設計業者がシステムベンダに、例えば、ファームウェア使用許諾、フ
ァームウェアスタンピング、および／またはファームウェア抽出など、様々な機能の使用
許諾を与えることによって可能とされる。使用許諾ベースの実施形態のうちのあるもので
は、製造用ソフトウェアツール（製造用ソフトウェアツール６１６など）の使用が、設計
業者によるシステムベンダへの使用許諾の条件によって必要とされる。製造用ソフトウェ
アツールの使用を必要とする使用許諾ベースの実施形態のうちのあるものでは、ファーム
ウェア使用許諾、ファームウェアスタンピング、および／またはファームウェア抽出のう
ちの１若しくはそれ以上の実行が、製造用ソフトウェアツールによるものであることが（
例えば、設計業者によるシステムベンダへの使用許諾の条件によって）必要とされる。様
々な実施形態によれば、設計業者６１０によって提供される製造用ソフトウェアツール６
１６の使用を必要とすることは、設計業者６１０が、例えば、製造用ソフトウェアツール
６１６がインターネットを介して設計業者６１０に統計および／または他の情報を報告す
ることによって、生産をモニタし、かつ／またはＳＳＤについてのファームウェア若しく
は他の使用許諾を追跡すること；製造されたＳＳＤのための鍵供託といった機能を果たす
こと；ならびに他のモニタリング、追跡、使用許諾、または供託機能のうちの１若しくは
それ以上を行うことを可能にする。
【０２２４】
図には明示されていないが、ある実施形態および／または使用シナリオでは、図示の動
作のうちのあるものが、図示の動作のうちの別のあるものへフィードバックを提供する。
例えば、ハードウェア検証／特徴付け６１４ならびに／またはＲＤＴ、ＥＶＴ、およびＤ
ＶＴ６１５の結果の一部または全部が、コントローラおよびファームウェア６１１ならび
に／または基準設計およびフラッシュ推奨６１２にフィードバックされる。別の例として
は、大量生産６２５および／または大量生産６３５から得られた情報が、コントローラお
よびファームウェア６１１、基準設計およびフラッシュ推奨６１２、ならびにＢＯＭ選択
、ＢＯＭ調達、および設計承認６３２のうちの任意の１若しくはそれ以上にフィードバッ
クされる。さらに別の例としては、ＲＭＡ／点検６３６、故障解析６１７、故障解析６３
７、および／または再加工６２７のうちの任意の１若しくはそれ以上から収集されたデー
タが、コントローラおよびファームウェア６１１、基準設計およびフラッシュ推奨６１２
、ＢＯＭ選択、ＢＯＭ調達、および設計承認６３２、大量生産６２５ならびに大量生産６
３５のうちの任意の１若しくはそれ以上にフィードバックされる。
【０２２５】
ある実施形態および／または使用シナリオでは、図６に示す動作が、概念的には、複数
のシステムベンダ（および任意選択で対応する複数の製造者）と共に同じ設計業者によっ
て再現される。よって、設計業者は複数のシステムベンダに仮想ドライブ製造能力を提供
する。
【０２２６】
様々な実施形態および／または使用シナリオにおいて、設計業者によって実施されるＳ
ＳＤコントローラおよび／またはファームウェア（コントローラおよびファームウェア６
１１）は、複数のフラッシュ・メモリ・デバイス・ベンダからのフラッシュ・メモリ・デ
バイスを用いて動作することができるようになっている。例えば、ＳＳＤコントローラお
よび／またはファームウェアは、様々な読み取り技術、書き込み（プログラム）技術、お
よび／若しくは消去技術、パラメータ、ならびに／または特性を有するフラッシュ・メモ
リ・デバイスを用いて動作することができるようになっている。例を続けて、ＳＳＤコン
トローラは、各フラッシュダイ、フラッシュダイのブロック、ブロックのページ、または
ページの任意の部分または下位部分上での動作（読み取り、書き込み、および／若しくは
消去）の回数または動作の特性（再試行、ソフトエラー、および／若しくはハードエラー
の回数）を追跡するのに（例えば、ファームウェアおよび／または様々なハードウェア状
態機械によって）使用されるメモリ（制御ＲＡＭ１２５のスケーリングされたデータ構造
１２６など）を含む。ＳＳＤコントローラは、選択的に、かつ／または任意選択で、追跡
された動作の回数、追跡された動作の特性、および／または、ＳＳＤコントローラが管理
している特定のフラッシュ・メモリ・デバイスの具体的特性に従って、読み取り動作、書
き込み動作、および／または消去動作を変更する。状況によっては、ＳＳＤコントローラ
による読み取り動作、書き込み動作、および／または消去動作の変更は、複数のフラッシ
ュ・メモリ・ベンダからの様々なフラッシュ・メモリ・デバイスを用いたＳＳＤコントロ
ーラの動作を可能にし、様々なフラッシュ・メモリ・デバイスは、推奨され、かつ／また
はサポートされるフラッシュ・メモリ・デバイスのリストに含まれるものである。
【０２２７】
別の例としては、ＳＳＤコントローラおよび／またはファームウェアは、０以上のパリ
ティ符号、０以上のＲＳ符号、０以上のＢＣＨ符号、０以上のビタビ符号または他のトレ
リス符号、および０以上のＬＤＰＣ符号といった、様々な誤り回復符号に従ってフラッシ
ュ・メモリ・デバイスを管理することができるようになっている。例を続けて、ＳＳＤコ
ントローラおよび／またはファームウェアは、第１の符号率の様々なＢＣＨ符号に従った
第１のフラッシュ・メモリ・ベンダからの選択されるフラッシュ・メモリ・デバイス、な
らびに第２の符号率の様々なＢＣＨ符号に従った第２のフラッシュ・メモリ・ベンダから
の選択されるフラッシュ・メモリ・デバイスを管理することができるようになっている。
さらに、ＳＳＤコントローラおよび／またはファームウェアは、様々なパリティ符号に従
った第３のフラッシュ・メモリ・ベンダからの第１のカテゴリのフラッシュ・メモリ・デ
バイス、および様々なＬＤＰＣ符号に従った第３のフラッシュ・メモリ・ベンダからの第
２のカテゴリのフラッシュ・メモリ・デバイスを管理することができるようになっている
。推奨され、かつ／またはサポートされるフラッシュ・メモリ・デバイスのリストは、任
意選択で、第１のフラッシュ・メモリ・ベンダからの選択されるフラッシュ・メモリ・デ
バイス、第２のフラッシュ・メモリ・ベンダからの選択されるフラッシュ・メモリ・デバ
イス、および第３のフラッシュ・メモリ・ベンダからの第１および第２のカテゴリのフラ
ッシュ・メモリ・デバイスのうちの１若しくはそれ以上を含む。
【０２２８】
様々な実施形態および／または使用シナリオにおいて、ＳＳＤコントローラおよび／ま
たはファームウェアは、例えば、５１２バイト、５１６バイト、５２０バイト、５２４バ
イト、５２８バイト、５３２バイト、５３６バイト、５４０バイト、１０２４バイト、１
０３２バイト、２０４８バイト、２０５６バイト、４０９６バイト、４１００バイト、４
１０４バイト、４１０８バイト、４１１２バイト、４１１６バイト、４１６０バイト、４
１６４バイト、４１７２バイト、４１９２バイト、４１９６バイト、４２０４バイト、４
２２４バイト、４２２８バイト、４２３６バイト、４２５６バイトのうちの任意の１若し
くはそれ以上など、様々なサイズの量のホストＬＢを用いて動作することができるように
なっている。前述のＬＢサイズのうちのいずれかを用いた動作は、それぞれの多様な期待
される顧客を対象とする様々なＳＳＤ製品においてＳＳＤコントローラおよび／またはフ
ァームウェアを使用することを可能にする。例えば、システムベンダは、前述のＬＢサイ
ズの任意の２つ若しくはそれ以上を用いて動作することが可能な１若しくはそれ以上のＳ
ＳＤ製品を、サーバ（ストレージサーバなど）ベンダである企業顧客に、またはデータ・
センタ・ベンダであるクラウド顧客に提供し、５１２バイトのＬＢを用いて動作すること
が可能な１若しくはそれ以上のＳＳＤ製品を、高耐久化コンピュータベンダである産業顧
客に、またはＰＣ（ラップトップなど）ベンダであるクライアント顧客に提供する。
【０２２９】
様々な実施形態および／または使用シナリオにおいて、ＳＳＤコントローラおよび／ま
たはファームウェアは、様々な容量のＳＳＤを実施ことができるようになっており、それ
ぞれの多様な期待される顧客を対象とするＳＳＤ製品を可能にする。例えば、システムベ
ンダは、相対的の大容量のＳＳＤを、サーバ（ストレージサーバなど）ベンダである企業
顧客に、またはデータ・センタ・ベンダであるクラウド顧客に提供し、相対的に小容量の
ＳＳＤを、高耐久化コンピュータベンダである産業顧客に、またはＰＣ（ラップトップな
ど）ベンダであるクライアント顧客に提供する。別の例としては、システムベンダは、２
つのＳＳＤを企業顧客および／またはクラウド顧客に提供し、ＳＳＤのうちの第１のもの
は相対的に大容量であり、相対的に遅いランダムアクセスを行うことができ、ＳＳＤのう
ちの第２のものは相対的に小容量であり、相対的に速いランダムアクセスを行うことがで
きる。ある実施形態では、ＳＳＤコントローラおよび／またはファームウェアは、少なく
とも一部は、ホストＬＢＡからＮＶＭ位置への２レベルマッピングによる、様々な容量の
ＳＳＤを実施することができるようになっている。２レベルマッピングは、例えば、一部
は、１ＳＬＭページあたりのＳＬＭエントリの数を表すプログラム可能な値でＬＢＡの除
算を行って、商と余りを得ることによって実施される。商はＦＬＭエントリを選択し、余
りは、選択されたＦＬＭエントリによって選択されるＳＬＭページの特定のエントリを選
択する（詳細は本明細書に別途記載する「ＬＢＡからＮＶＭへの位置マッピング」を参照
されたい）。
【０２３０】
様々な実施形態および／または使用シナリオにおいて、ＳＳＤコントローラおよび／ま
たはファームウェアは、様々な温度能力、例えば、広くない温度範囲にわたる高信頼動作
や、広い温度範囲にわたる動作などのＳＳＤを実施することができるようになっており、
様々な温度範囲を対象とするＳＳＤ製品を可能にする。例えば、システムベンダは、広く
ない温度範囲のＳＳＤを、企業、クラウド、および／またはクライアント客に提供し、広
い温度範囲のＳＳＤを産業顧客に提供する。ある実施形態では、ＳＳＤコントローラおよ
び／またはファームウェアは、少なくとも一部は、様々な温度能力の不揮発性メモリデバ
イスとの適合動作による様々な温度能力のＳＳＤを実施することができるようになってい
る。
【０２３１】
様々な実施形態および／または使用シナリオにおいて、ＳＳＤコントローラおよび／ま
たはファームウェアは、様々な信頼性、耐久性、および／または性能の予測可能性のＳＳ
Ｄを実施することができるようになっており、様々な信頼性、耐久性、および／または性
能の予測可能性の特徴セットを対象とするＳＳＤ製品を可能にする。例えば、システムベ
ンダは、相対的に高い信頼性および耐久性のＳＳＤを企業、クラウド、および／または産
業顧客に提供し、相対的に低い信頼性および耐久性のＳＳＤをクライアント顧客に提供す
る。別の例としては、システムベンダは、相対的に予測可能性の高い性能を有するＳＳＤ
をクラウド顧客に提供し、相対的に予測可能性の低い性能を有するＳＳＤを企業、産業お
よび／またはクライアント顧客に提供する。ある実施形態では、ＳＳＤコントローラおよ
び／またはファームウェアは、少なくとも一部は、様々な信頼性および／または耐久性の
不揮発性メモリデバイスを用いた動作による、様々な信頼性および／または耐久性のＳＳ
Ｄを実施することができるようになっている。ある実施形態では、ＳＳＤコントローラお
よび／またはファームウェアは、少なくとも一部は、同じ不揮発性メモリデバイスを様々
な信頼性および／または耐久性のモードで動作させる（例えば、ＭＬＣデバイスをＳＬＣ
モードまたはＭＬＣモードで動作させる）ことによる、様々な信頼性および／または耐久
性のＳＳＤを実施することができるようになっている。ある実施形態では、ＳＳＤコント
ローラおよび／またはファームウェアは、少なくとも一部は、オーバープロビジョニング
の量を変更することによる、様々な性能の予測可能性のＳＳＤを実施することができるよ
うになっている（例えば、ある使用シナリオでは、より高いオーバープロビジョニングは
、より高い性能の予測可能性を可能にする）。
【０２３２】
よって、除算を使用し、プログラム可能な値を変更することによって、２レベルマップ
の記憶に割り振られる固定サイズの記憶（例えば、２レベルマップの第１レベルの記憶お
よび／または第２レベルのマップページのキャッシュの記憶）について、相対的に大容量
のＳＳＤが、相対的に小容量のＳＳＤよりも相対的に大きい粒度でマップされることが可
能になる。マッピングの粒度が減少するに従って、ある実施形態および／または使用シナ
リオでは、使用可能な同時にアクティブなマップエントリの数が増加する。状況によって
は、同時にアクティブなマップエントリの数が増加するに従って、ランダムアクセスの性
能および／または効率よく処理される独立の順次ストリームの数が増加する。
【０２３３】
様々な実施形態および／または使用シナリオにおいて、設計業者によって実施されるＳ
ＳＤコントローラ（コントローラおよびファームウェア６１１）は、図１ＡのＳＳＤコン
トローラ１００と同一であり、またはこれの変形である。様々な実施形態および／または
使用シナリオにおいて、設計業者によって実施されるファームウェア（コントローラおよ
びファームウェア６１１）は、図１Ｂのファームウェア１０６と同一であり、またはこれ
の変形である。様々な実施形態および／または使用シナリオにおいて、設計業者によって
作成される少なくとも１つの基準設計（基準設計およびフラッシュ推奨６１２）は、例え
ば、図１Ｂに示す実施形態および／またはコンテキストのいずれかで使用される、図１Ａ
のＳＳＤ１０１と同一であり、またはこれの変形である。様々な実施形態および／または
使用シナリオにおいて、設計業者によって作成される、推奨され、かつ／またはサポート
されるフラッシュ・メモリ・デバイスのリスト（基準設計およびフラッシュ推奨６１２）
は、図１Ａに示す、フラッシュデバイス１９２、フラッシュダイ１９４、およびＮＶＭ１
９９のうちの任意の１若しくはそれ以上に関するものである。
【０２３４】
以上の図６の説明は、システムベンダによって行われるＢＯＭ選択について設計業者に
よって具体的に推奨され、かつ／またはサポートされる要素としてのフラッシュ・メモリ
・デバイスを中心とするものである。様々な他の実施形態では、電源、温度センサ、ケー
シング、プリント回路基板、および受動部品を含む他のデバイス／構成部品といった様々
な他の（または追加の）材料が、システムベンダによって行われるＢＯＭ選択について設
計業者によって具体的に推奨され、かつ／またはサポートされる。例えば、第１の温度セ
ンサベンダからの第１および第２の温度センサは設計業者によって推奨され、かつ／また
はサポートされ、第２の温度センサベンダからの第３の温度センサは、（例えば、ファー
ムウェアでのサポートを欠くために）設計業者によって推奨されず、サポートされない。
よって、システムベンダは、ＳＳＤのプロトタイプ組立てまたは製造のための材料を選択
するときに、第３の温度センサを除く、第１および第２の温度センサの中から自由に選択
することができる。
【０２３５】
ＳＳＤの大量生産およびプロトタイプ構築
図７Ａに、仮想ドライブ製造モデルに従ったＳＳＤの（大量）製造（またはプロトタイ
プ構築）の実施形態の選択された詳細の概念図を示す。図示の要素は、２つの切り離され
た部分にグループ化されており、任意選択で、エンジニアリングセットアップ作業が工場
作業と別個に行われることを可能にする。第１の部分（エンジニアリング７３０Ａ）は、
生産運転のセットアップのために、例えば、１回の生産運転につき１回や、同じモデルの
ＳＳＤの一連の生産運転について１回行われる。第２の部分（工場７４０Ｆ）は、それぞ
れのＳＳＤの製造の様々な局面を完結するために、（例えばプロトタイプ構築のための）
１回の生産運転であれ、（例えば大量生産のための）同じモデルのＳＳＤの一連の生産運
転のうちの１回であれ、生産運転ごとに行われる。様々な実施形態および／または使用シ
ナリオによれば、エンジニアリング７３０Ａの要素として描かれている作業の全部または
任意の部分が、図６のシステムベンダ６３０、および図６の製造者６２０のうちの１若し
くはそれ以上によって行われる。
【０２３６】
エンジニアリング７３０Ａの要素は、１若しくはそれ以上のＳＳＤの製造のための、「
スタンプされたファームウェア」ともいうファームウェアイメージ（製造ファームウェア
パッケージ７２１）の作成を含む。製造ファームウェアイメージは、アプリケーションプ
ログラム（パッケージマネージャ７１１）により、使用許諾記述（ライセンスファイル７
０１）および配布されたファームウェアイメージ（配布ファームウェアパッケージ７０３
）に従って作成される。パッケージマネージャは、ライセンスファイルを使用して配布フ
ァームウェアパッケージからファームウェアを抽出し、１若しくはそれ以上のスタンプ機
能（例えば、製造ファームウェアパッケージを暗号化し、セキュリティ保護し、パーソナ
ル化し、かつ／またはカスタマイズする機能）を実行し、製造ファームウェアパッケージ
を作成する。パッケージマネージャは、任意選択で、ライセンスファイルで特定される使
用可能な使用許諾ドライブ構成（例えば、設計業者が、システムベンダに対して提供およ
び／またはサポートすることを承認している構成）の全部またはいずれかのためのドライ
ブ構成テンプレートを作成する。ある実施形態では、パッケージマネージャは、ＧＵＩを
介して対話することができるようになっている。様々な実施形態および／または使用シナ
リオにおいて、ライセンスファイル、配布ファームウェアパッケージ、およびパッケージ
マネージャのうちの任意の１若しくはそれ以上が、図６の設計業者６１０によって提供さ
れる。
【０２３７】
エンジニアリング７３０Ａの要素は、さらに、工場７４０Ｆの要素によって使用される
製造用ソフトウェアを制御するための１若しくはそれ以上のコマンドライン入力および／
またはファイル（ドライブ構成および設定ファイル７２２）の作成を含む。ドライブ構成
および設定ファイルは、アプリケーションプログラム（構成マネージャ７１２）によって
、ドライブ構成の記述および／またはパラメータ（システムベンダ所望のドライブ設定７
０４）に従って作成される。構成マネージャは、任意選択で、すべてのＳＳＤ設定および
／またはダウンロードオプションを管理するための中央リポジトリとして動作する。ある
実施形態では、構成マネージャは、ドライブ設定およびファームウェア・ダウンロード・
フロー・オプションのための制御パネルを備えるＧＵＩとして動作することができるよう
になっている。ある実施形態および／または使用シナリオでは、システムベンダ所望のド
ライブ設定は図６のシステムベンダ６３０によって提供され、構成マネージャは図６の設
計業者６１０によって提供される。
【０２３８】
製造ファームウェアパッケージならびにドライブ構成および設定ファイルは、製造用ソ
フトウェアツール（ＭＴ）７５１が使用するために、エンジニアリング７３０Ａから工場
７４０Ｆへ渡される。製造ツールは、ファームウェアを有しないＳＳＤ、あるいは、交換
／アップグレードされるべきファームウェアを有するＳＳＤ（新規のＳＳＤ７５０Ｆ）に
ファームウェアをダウンロードすることができるようになっている。新規のＳＳＤは、こ
れによって、新しくダウンロードされたファームウェアを有するＳＳＤ（ファームウェア
がロードされたＳＳＤ７５０Ｌ）に変換される。ダウンロードされるファームウェアは、
製造ファームウェアパッケージ、ドライブ構成および設定ファイル、ならびに一意の識別
情報（通し番号、ワールド・ワイド・ネーム（ＷＷＮ）７６０、診断ロック解除鍵、およ
び／またはベンダ識別情報データ）に基づくものである。
【０２３９】
ある実施形態および／または使用シナリオでは、ファームウェアのダウンロードは、例
えば、一意の通し番号および／または一意のＷＷＮを設定することにより、ＳＳＤを製品
化することを含む。ある実施形態および／または使用シナリオでは、製造用ソフトウェア
ツールは、ＳＳＤに固有の、公開暗号化鍵といった暗号化鍵を提供し、かつ／または供託
することができるようになっている。別の実施形態および／または使用シナリオでは、提
供および／または供託は、設計業者が運用するサーバと通信することを含む。ある実施形
態および／または使用シナリオでは、製造用ソフトウェアツールは、１若しくはそれ以上
の工場試験を行った後で、ＳＭＡＲＴ属性および／またはログをリセットして（例えばＣ
ｌｅａｒＳＭＡＲＴを実行して）クリーンな工場出荷状態にすることができるようになっ
ている。
【０２４０】
ある実施形態では、ファームウェアのダウンロードは、例えば、顧客へのＳＳＤのリリ
ース前の最終作業として、ＳＳＤのセキュア消去を行うことを含む。ある実施形態では、
製造ツールは、ダウンロードされたファームウェアに、ファームウェアがダウンロードさ
れているＳＳＤ上で１若しくはそれ以上の製造試験を実行するよう指図することができる
ようになっている。製造試験は、ＳＳＤのＭＳＴおよび／またはＳＳＤのフラッシュメモ
リの試験を含む。
【０２４１】
「ファームウェアを有しないＳＳＤ」の一例が、ファームウェアをダウンロードさせた
後で（また任意選択で、１若しくはそれ以上の後続の製造作業を行った後で）ＳＳＤとし
て動作する要素の集合体である。例えば、図１ＢのＳＳＤ１０１は、ファームウェア１０
６がまだダウンロードされておらず、ファームウェアを有しないＳＳＤの一例である。
【０２４２】
特定のＳＳＤの製造の具体例としては、システムベンダは、設計業者によって提供され
たライセンスファイル、および設計業者によって提供された配布ファームウェアパッケー
ジから特定の製造ファームウェアパッケージを開発する。システムベンダは特定の製造フ
ァームウェアパッケージを、設計業者からの、例えば、ＬＩＮＵＸ（登録商標）の１バー
ジョンを走らせているＰＣ上で実行されるパッケージ・マネージャ・アプリケーションを
使用して開発する。システムベンダは、特定のＳＳＤについての所望のドライブ設定（例
えば、容量、オーバープロビジョニング、信頼性特徴、ならびに他の製品特有の属性およ
び／またはモデル特有の属性）を決定し、所望のドライブ設定を、設計業者からの、例え
ばＰＣ上で実行された構成マネージャアプリケーションに供給する。構成マネージャアプ
リケーションは、１若しくはそれ以上の特定のコマンドラインの特定のファイルを作成し
、特定のコマンドラインは特定のＳＳＤおよび所望のドライブ設定に特有のものである。
【０２４３】
例を続けて、製造者は、設計業者によって提供された製造ツールを使用して、ファーム
ウェアを有しないＳＳＤを、ファームウェアを有するＳＳＤに変換する。製造ツールは、
特定のコマンドラインによって制御される製造ファームウェアパッケージを、ファームウ
ェアを有しないＳＳＤにダウンロードし、これによって、ファームウェアを有しないＳＳ
Ｄを、ファームウェアを有するＳＳＤに変換する。製造ツールは、任意選択で、ファーム
ウェアを有するＳＳＤに、ダウンロードされたファームウェアによってＭＳＴを実行する
よう指図する。特定のコマンドラインは、例えば、ダウンロードされるファームウェアの
各インスタンスをカスタマイズするのに使用される通し番号および／またはＷＷＮ情報の
生成を指定して、例えば、製造されるあらゆるＳＳＤが一意のＷＷＮおよび／または一意
の通し番号を有するようにする。
【０２４４】
様々な実施形態では、パッケージマネージャ７１１、構成マネージャ７１２、および製
造用ソフトウェアツール（ＭＴ）７５１のうちの任意の１若しくはそれ以上が、図６の製
造用ソフトウェアツール６１６の全部若しくは任意の部分、またはこれらの（１若しくは
それ以上の）変形である。
【０２４５】
図７Ｂに、仮想ドライブ製造モデルに従ったＳＳＤの（大量）製造（またはプロトタイ
プ構築）のためのシステムの実施形態の選択された詳細を示す。コンピューティングホス
ト、例えばワークステーションコンピュータ、ＰＣ、ラップトップコンピュータ、ノート
ブックコンピュータ（ホスト７８０Ｐ）が、（ＳＳＤ．１  ７９０Ｐ．１...ＳＳＤ．Ｎ
７９０Ｐ．Ｎとして図示されている）１若しくはそれ以上のＳＳＤに接続されている。
コンピューティングホストは、製造ツール・アプリケーション・ソフトウェア（ホスト７
８０Ｐに図示され、さらに図７Ａに別のコンテキストで図示されている製造用ソフトウェ
アツール（ＭＴ）７５１など）を実行することができるようになっている。単一のホスト
に接続された任意の数のＳＳＤを有する実施形態、ならびに、複数のホストを有し、ホス
トの各々が１若しくはそれ以上のＳＳＤのそれぞれのグループに接続された実施形態が企
図されている。単一のホストに接続された複数のＳＳＤを有する実施形態では、単一のホ
ストは、任意選択で、製造用ソフトウェアツールによって、完全に、または部分的に並列
の、任意の数の接続されたＳＳＤへのファームウェアダウンロード、および／または接続
されたＳＳＤ上での（１若しくはそれ以上の）製造試験を指図することができるようにな
っている。
【０２４６】
動作に際して、ホスト７８０Ｐは、製造用ソフトウェアツール（ＭＴ）７５１を実行し
て、ＳＳＤ．１  ７９０Ｐ．１...ＳＳＤ．Ｎ  ７９０Ｐ．Ｎのうちの任意の１若しくは
それ以上へファームウェアをダウンロードし、よって、ファームウェアなしの１若しくは
それ以上のＳＳＤをファームウェアありの１若しくはそれ以上のＳＳＤに変換する（図７
Ａの新規のＳＳＤ７５０Ｆ、製造用ソフトウェアツール（ＭＴ）７５１、およびファーム
ウェアがロードされたＳＳＤ７５０Ｌで示されている）。
【０２４７】
ある実施形態では、製造用ソフトウェアツールは、例えば、ホスト（ホスト７８０Ｐな
ど）上で実行されているシェルプログラムによって解釈される一連の１若しくはそれ以上
のコマンドラインなど、コマンドライン呼び出しによって動作する。一具体例として、コ
マンドライン呼び出しは、製造用ソフトウェアツール（製造用ソフトウェアツール（ＭＴ
）７５１など）を識別する第１のパラメータ、ファームウェアを受け入れる用意ができて
いるＳＳＤに対応する特定のデバイス（ＳＳＤ．１  ７９０Ｐ．１...ＳＳＤ．Ｎ  ７９
０Ｐ．Ｎのうちの１つなど）を識別する第２のパラメータ、ドライブ構成ファイル（図７
Ａのドライブ構成および設定ファイル７２２など）を識別する第３のパラメータ、それぞ
れ、ファームウェアを受け入れる用意ができているＳＳＤのための通し番号およびＷＷＮ
（図７Ａの通し番号、ワールド・ワイド・ネーム（ＷＷＮ）７６０など）である第４のパ
ラメータおよび第５のパラメータを含む。第６の（任意選択の）パラメータは診断ロック
解除鍵を指定する。ある実施形態および／または使用シナリオでは、診断ロック解除鍵は
、製造用ソフトウェアツールによって作成されたＳＳＤの使用中の特定のコマンド、例え
ば、特定のシステムベンダに固有の診断コマンドへの無許可のアクセスを防止するのに使
用される。第７の（任意選択の）パラメータは、５１２Ｂのベンダ識別情報データファイ
ル、例えば、特定のシステムベンダに固有の情報の集合を指定する。第８の（任意選択の
）パラメータは、出力および／またはログファイルの名前を指定する。別の実施形態では
、出力および／またはログは、ＳＳＤ上で行われたダウンロードおよび／または任意のＭ
ＳＴおよび／またはフラッシュデバイス試験の結果を含む状況情報が書き込まれる。
【０２４８】
図７Ｃに、仮想ドライブ製造モデルに従ったＳＳＤ、例えば、図７Ａおよび／または図
７Ｂに示すような実施形態によって作成されたＳＳＤのファームウェア更新の実施形態の
選択された詳細の概念図を示す。図７Ａと同様に、図示の要素は２つの切り離された部分
へグループ化されており、任意選択で、エンジニアリングセットアップ作業がファームウ
ェア更新と別個に行われることを可能にする。第１の部分（エンジニアリング７３０Ｃ）
は、ファームウェア更新のセットアップのために、例えば、１回の生産運転ごとのファー
ムウェアリリースごとに１回や、同じモデルのＳＳＤの一連の生産運転ごとのファームウ
ェアリリースごとに１回行われる。第２の部分（エンドユーザ７４０Ｅ）は、（例えばプ
ロトタイプファームウェア更新のための）１回の生産運転についてであれ、（例えばエン
ド・ユーザ・ファームウェア更新のための）同じモデルのＳＳＤの一連の生産運転のうち
の１回についてであれ、ファームウェア更新ごとに行われる。様々な実施形態および／ま
たは使用シナリオによれば、エンジニアリング７３０Ｃの要素として描かれている作業の
全部または任意の部分が、図６のシステムベンダ６３０および図６の製造者６２０のうち
の１若しくはそれ以上によって行われる。ある実施形態および／または使用シナリオでは
、エンジニアリング７３０Ｃの要素が、図７Ａのエンジニアリング７３０Ａの要素と同じ
組織によって行われる。
【０２４９】
エンジニアリング７３０Ｃの要素は、１若しくはそれ以上のＳＳＤのファームウェア更
新のための、フィールド更新ファームウェアイメージ（フィールド更新ファームウェアパ
ッケージ７２３）の作成を含む。図７Ａの製造ファームウェアパッケージ７２１と同様に
、フィールド更新ファームウェアイメージは、パッケージマネージャ７１１により、ライ
センスファイル７０１および配布ファームウェアパッケージ７０３に従って作成される。
パッケージマネージャは、ライセンスファイルを使用して配布ファームウェアパッケージ
からファームウェア更新に使用可能なファームウェアを抽出し、１若しくはそれ以上のス
タンプ機能（例えば、フィールド更新ファームウェアパッケージを暗号化し、セキュリテ
ィ保護し、パーソナル化し、かつ／またはカスタマイズする機能）を実行し、フィールド
更新ファームウェアパッケージを作成する。例えば、パッケージマネージャは、特定のフ
ィールド更新ファームウェアパッケージを、特定のフィールド更新ファームウェアパッケ
ージによってファームウェアを更新させるべきであるＳＳＤを作成するのに使用された対
応する特定の製造ファームウェアパッケージを作成するときにパッケージマネージャによ
って行われたパーソナル化の全部または任意の部分と一致するようにパーソナル化する。
別の例としては、パッケージマネージャは、ハッシュスタンプを（例えば、フィールド更
新ファームウェアパッケージの最初の要素の一部としてや、フィールド更新ファームウェ
アパッケージの最後の要素の一部として）フィールド更新ファームウェアパッケージに加
え、フィールド更新ファームウェアパッケージをパーソナル化する。スタンプは、フィー
ルド更新ファームウェアパッケージを、フィールド更新ファームウェアパッケージのスタ
ンプと一致するハッシュスタンプを備えるファームウェアを有するＳＳＤ上でのみ使用可
能とすることができる１若しくはそれ以上セキュリティ措置を含む。
【０２５０】
フィールド更新ファームウェアパッケージは、ＳＳＤ更新ソフトウェアツール（ＵＴ）
７５３が使用するために、エンジニアリング７３０Ｃからエンドユーザ７４０Ｅへ渡され
る。ＳＳＤ更新ツールは、（古い）ファームウェアを有するＳＳＤ（（古い）ファームウ
ェアがロードされたＳＳＤ７５０Ｘ）へのファームウェアダウンロードによりファームウ
ェアを更新することができるようになっている。古いファームウェアを有するＳＳＤは、
これによって、新しいファームウェアを有するＳＳＤ（（新しい）ファームウェアがロー
ドされたＳＳＤ７５０Ｙ）に変換される。ある実施形態および／または使用シナリオでは
、ファームウェア更新は、（（１若しくはそれ以上の）暗号化鍵７５４で表される）１若
しくはそれ以上の鍵、ベンダ識別子、ファームウェア・オーバーライド・ストリング、お
よび／または様々なセキュリティ技術によってロック解除され、かつ／または使用可能と
される。ロック解除および／または使用可能化は、フィールド更新ファームウェアパッケ
ージを作成するときにパッケージマネージャによって行われるスタンプ機能と互換性があ
る。よって、無許可の者がファームウェアアップグレードを行うこと、例えば、新しい／
改訂されたファームウェアを、以前にファームウェアをダウンロードしたＳＳＤ上にダウ
ンロードすることが防止される。様々なコンテキストにおいて、エンドユーザ７４０Ｅは
、（例えば、ファームウェアへのエンジニアリング変更を求める）設計業者、（例えば、
ファームウェアへの生産関連の変更を求める）システムベンダおよび／若しくは製造者、
またはシステムベンダの顧客（例えば、エンドユーザが以前に使用していたＳＳＤのフィ
ールドアップグレードを行うエンドユーザ）のうちの任意の１若しくはそれ以上を表す。
【０２５１】
ある実施形態および／または使用シナリオでは、ファームウェア更新は、以前に作成さ
れたＳＳＤ（例えば、以前にダウンロードされたファームウェアを有するＳＳＤ）を、あ
る構成および／または挙動のセットから別の構成および／または挙動のセットへ変更する
ための情報および／または作業を含む。例えば、（例えば、図７Ａの構成マネージャ７１
２によるシステムベンダ所望のドライブ設定７０４によって）作成時に別様に設定された
挙動を、ファームウェア更新によって変更することを可能にする付録がファームウェアイ
メージに追加される。
【０２５２】
図７Ｄに、仮想ドライブ製造モデルに従ったＳＳＤのファームウェア更新のためのシス
テムの実施形態の選択された詳細を示す。図７Ｂと同様に、コンピューティングホスト、
例えば、ワークステーションコンピュータ、ＰＣ、ラップトップコンピュータ、ノートブ
ックコンピュータ（ホスト７８０Ｅ）が、（ＳＳＤ．１  ７９０Ｅ．１...ＳＳＤ．Ｎ  
７９０Ｅ．Ｎとして図示されている）１若しくはそれ以上のＳＳＤに接続されている。コ
ンピューティングホストは、ＳＳＤ更新ツール・アプリケーション・ソフトウェア（ホス
ト７８０Ｅに図示され、さらに図７Ｃに別のコンテキストで図示されているＳＳＤ更新ソ
フトウェアツール（ＵＴ）７５３など）を実行することができるようになっている。図７
Ｂと同様に、単一のホストに接続された任意の数のＳＳＤを有する実施形態、ならびに、
複数のホストを有し、ホストの各々が１若しくはそれ以上のＳＳＤのそれぞれのグループ
に接続された実施形態が企図されている。単一のホストに接続された複数のＳＳＤを有す
る実施形態では、単一のホストは、任意選択で、ＳＳＤ更新ソフトウェアツールによって
、完全に、または部分的に並列に、任意の数の接続されたＳＳＤにファームウェア更新（
ダウンロードなど）を指図することができるようになっている。
【０２５３】
動作に際して、ホスト７８０Ｅは、ＳＳＤ更新ソフトウェアツール（ＵＴ）７５３を実
行して、ＳＳＤ．１  ７９０Ｅ．１...ＳＳＤ．Ｎ  ７９０Ｅ．Ｎのうちの任意の１若し
くはそれ以上へファームウェアを更新し（例えばダウンロードし）、よって、古いファー
ムウェアを有する１若しくはそれ以上のＳＳＤを新しいファームウェアを有する１若しく
はそれ以上のＳＳＤに変換する（図７Ｃの（古い）ファームウェアがロードされたＳＳＤ
７５０Ｘ、ＳＳＤ更新ソフトウェアツール（ＵＴ）７５３、および（新しい）ファームウ
ェアがロードされたＳＳＤ７５０Ｙで示されている）。
【０２５４】
ある実施形態および／または使用シナリオでは、パッケージマネージャ７１１によって
行われる１若しくはそれ以上の機能／動作（例えば、製造ファームウェアパッケージ７２
１および／若しくはフィールド更新ファームウェアパッケージ７２３の作成）ならびに／
または構成マネージャ７１２によって行われる１若しくはそれ以上の機能／動作（例えば
、ドライブ構成および設定ファイル７２２の作成）が、１若しくはそれ以上の鍵、ベンダ
識別子、ファームウェア・オーバーライド・ストリング、および／または様々なセキュリ
ティ技術（（１若しくはそれ以上の）暗号化鍵７０２）によってロック解除され、かつ／
または使用可能とされる。
【０２５５】
様々な実施形態および／または使用シナリオでは、図７Ｂのホスト７８０Ｐおよび図７
Ｄのホスト７８０Ｅのどちらか一方または両方が、図１Ｂのホスト１０２と同一であり、
またはこれの変形である。様々な実施形態および／または使用シナリオでは、図７ＢのＳ
ＳＤ．１  ７９０Ｐ．１...ＳＳＤ．Ｎ  ７９０Ｐ．Ｎおよび図７ＤのＳＳＤ．１  ７９
０Ｅ．１...ＳＳＤ．Ｎ  ７９０Ｅ．Ｎのうちの任意の１若しくはそれ以上が、例えば、
図１Ｂに示すＳＳＤ１０１と同一であり、またはこれの変形である。
【０２５６】
ＶＤＭＭ実施技術の選択例
ある実施形態および／または使用シナリオでは、図６および図７Ａ〜図７Ｄの１若しく
はそれ以上の要素またはこれらの部分が、完全に、または部分的に、いくつかのコンピュ
ータ支援技術および／またはコンピュータ関連技術のうちの１若しくはそれ以上によって
行われる。例えば、要素間の１若しくはそれ以上のパスが、電子メール、ＸＭＬ注釈付き
仕様および／またはＸＭＬベースの形式、ならびにサーバ間トランザクションのうちの任
意の１若しくはそれ以上によって実施可能である。例えば、図６のＢＯＭ選択、ＢＯＭ調
達、および設計承認６３２への基準設計およびフラッシュ推奨６１２情報の通信は、電子
メールおよび／または複数のＸＭＬ注釈付き仕様によるものである。別の例としては、１
若しくはそれ以上の要素が、少なくとも一部は、多層化インターネット商取引ベースサー
バの任意の１若しくはそれ以上の層、１若しくはそれ以上のウェブサーバ、データベース
サーバ、および／またはアプリケーションサーバ、ならびに１若しくはそれ以上ウェブ、
データベース、および／またはアプリケーションのスクリプト、プログラム、および／ま
たはアプリケーションのうちの任意の１若しくはそれ以上によって実施可能である。例え
ば、図６のコントローラおよびファームウェア６１１に関連した文書が、例えば、１若し
くはそれ以上のウェブサーバ、データベースサーバ、および／またはアプリケーションサ
ーバによって動作するウェブサイトを介して供与される。
【０２５７】
さらに別の例として、例えば、暗号化通信、パスワード、および／または証明書、なら
びにこれらのサーバに基づく暗号鍵供託技術が、ある特定の動作を実施するのに使用され
る。例えば、使用許諾サーバが、暗号鍵、例えば図７Ａおよび図７Ｃのライセンスファイ
ル７０１の全部または任意の部分の暗号化された検査を提供する。別の例としては、ある
要素が、完全に、または部分的に、インターネットを使用した１若しくはそれ以上の事業
体間自動化システムによって配布される。例えば、図７Ｂで使用される製造用ソフトウェ
アツール（ＭＴ）７５１（および／または図７Ｄで使用されるＳＳＤ更新ソフトウェアツ
ール（ＵＴ）７５３）の配布は、設計業者による、インターネットを使用した製造者自動
化システムへのものである。
【０２５８】
様々な実施形態および／または使用シナリオでは、図６および図７Ａ〜図７Ｄの１若し
くはそれ以上の要素またはこれらの部分が、場所の様々な組み合わせにおいて行われる。
例えば、（図６の）設計業者６１０、製造者６２０、およびシステムベンダ６３０に関連
したすべての作業が、同じ場所で行われる。別の例としては、設計業者６１０に関連した
すべての作業が第１の場所で行われ、製造者６２０に関連したすべての作業が第２の場所
で行われ、システムベンダ６３０に関連したすべての作業が第３の場所で行われる。さら
に別の例としては、設計業者６１０およびシステムベンダ６３０に関連したある作業が第
１の場所で行われ、製造者６２０およびシステムベンダ６３０に関連したある作業が第２
の場所で行われる。別の例としては、（図７Ａの）エンジニアリング７３０Ａおよび工場
７４０Ｆに関連したある作業が複数の場所で行われる。
ＬＢＡからＮＶＭへの位置マッピング
図８に、ＬＢＡからＮＶＭへの位置マッピング８００として、ＦＬＭと１若しくはそれ
以上のＳＬＭページとを有する２レベルマップによる、ＬＢＡからＮＶＭに記憶されたＬ
Ｂへのマッピングの実施形態の選択された詳細を図示する。２レベルマップは、（概念的
には単一の要素ＳＬＭページ８２０として図示されている）１若しくはそれ以上の第２レ
ベル要素に接続された第１レベル要素（ＦＬＭ８１０）によって実施される。ＦＬＭは複
数のエントリ（ＳＬＭページ／長さ８１０．１...ＳＬＭページ／長さ８１０．Ｍ）を含
む。ＦＬＭのエントリの各々はＳＬＭページのうちの１つ（例えばＳＬＭページ８２０）
を指し示す。ＳＬＭページは複数のエントリ（ＬＢページ／長さ８２０．１...ＬＢペー
ジ／長さ８２０．Ｎ）を含む。ＳＬＭページのエントリの各々は、データが開始するＮＶ
Ｍ内の位置（例えば、少なくとも、ＬＢＡについてのホスト書き込みデータの先頭を記憶
している読み取り単位など）を指し示す。除算器（整数除算器８２２）は、例えば、プロ
グラマブル・ハードウェア・レジスタ（ＳＬＭエントリ／ＳＬＭページ（ＣＳＲ）８２３
）からパラメータを受け取って、入ってくるＬＢＡを除算して、どのＦＬＭエントリを選
択すべきか、および（選択されたＦＬＭエントリによって指し示されたＳＬＭページ内の
）どのＳＬＭエントリを選択すべきか判定する。除算器は、ＦＬＭとＳＬＭページとに接
続されている。
【０２５９】
様々な実施形態では、図は、図１Ａのマップ１４１および／若しくは表１４３の、また
はそれらに関連した選択された詳細を示す。例えば、ある実施形態では、マップ１４１お
よび／または表１４３は、例えば、ＦＬＭの１若しくはそれ以上のエントリおよび／また
はＳＬＭの１若しくはそれ以上のエントリといったマッピング情報の１若しくはそれ以上
のキャッシュを実施する。ＦＬＭおよび／またはＳＬＭの全体イメージは、ＮＶＭ（図１
ＡのＮＶＭ１９９など）の一部分に維持され、例えば、キャッシュが前にキャッシュされ
たＦＬＭおよび／またはＳＬＭエントリを置き換えるときに更新される。ある実施形態で
は、ＦＬＭおよび／またはＳＬＭの全体イメージは、ローリングチェックポイントまたは
ピンポンチェックポイントによって実施され、チェックポイントの各々はそれぞれの全体
マップイメージの一部分である。
【０２６０】
動作に際して、ＬＢＡ８２１が整数除算器８２２に提示される。除算器はＬＢＡを、Ｓ
ＬＭエントリ／ＳＬＭページ（ＣＳＲ）８２３によって提供される１ＳＬＭページあたり
のＳＬＭエントリの数で除算し、結果として商（ＦＬＭインデックス８２２Ｑ）および余
り（ＳＬＭページインデックス８２２Ｒ）が得られる。商はＦＬＭエントリのうちの１つ
を選択するのに使用され、選択されたＦＬＭエントリのページフィールドが読み取られる
（ＳＬＭポインタ８１０Ｓ）。ページフィールドはＳＬＭページのうちの１つ（ＳＬＭペ
ージ８２０など）を選択するのに使用され、余りは、選択されたＳＬＭページのエントリ
を（例えばオフセットとして）選択するのに使用される。選択されたＳＬＭページエント
リのページフィールドが、少なくとも、提示されたＬＢＡに対応するＬＢの先頭が記憶さ
れている特定のＮＶＭ内の位置、例えば、特定の読み取り単位を選択するのに使用される
（ＬＢポインタ８２０Ｌ）。様々な実施形態では、ＬＢポインタは、ＮＶＭの読み取り単
位のアドレス（図２の読み取り単位アドレス２２３など）を含む。ある実施形態では、Ｓ
ＬＭエントリの各々は、ＬＢのデータのすべてを獲得するのに何個の読み取り単位を読み
取るべきか、および／または読み取り単位内のどこでＬＢのデータが始まるか（図２の読
み取り単位での長さ２２５など）を指示する長さフィールド（符号化サイズおよび／また
は範囲など）を含む。ある実施形態では、ＦＬＭエントリの各々は、ＦＬＭエントリのペ
ージフィールドによって指定されたそれぞれのＳＬＭエントリのすべてを獲得するのに何
個の読み取り単位を読み取るべきか（図２の読み取り単位での長さ２２５など）を指示す
る長さフィールド（符号化サイズおよび／または範囲など）を含む。
【０２６１】
様々な実施形態では、商は、キャッシュ、例えば、ＳＬＭページのフル・アソシアティ
ブ・キャッシュにアクセスするためのキーとして使用される。キャッシュに特定のＳＬＭ
ページについてのヒットがある場合には、特定のＳＬＭページの最も遅いコピーがＮＶＭ
にアクセスせずにキャッシュ内で見つかる。複数のＳＬＭページへの高速アクセスを提供
することにより、ある実施形態および／または使用シナリオでは、ＮＶＭへのランダムア
クセスおよび／またはＮＶＭへの順次データアクセスの複数の独立ストリームのより効率
的な処理（例えば、ＬＢＡの第１の領域への順次データアクセスの第１のストリームに、
ＬＢＡ第２の領域への順次データアクセスの第２のストリームを割り込ませるなど）が可
能になる。
【０２６２】
ソリッドステートディスク製造自己試験
ＳＳＤ  ＭＳＴフローの例の概要は以下の通りである。技術者が試験されるべきＳＳＤ
を（例えば、ＳＳＤを試験ホストコンピュータに差し込むことにより）ホストに接続する
。技術者およびホスト上で実行されている１若しくはそれ以上のプログラムのうちの任意
の１若しくはそれ以上の指図の下で、ＳＳＤは（任意選択でホストと協動して）ＳＳＤの
フラッシュの試験を実行し、次いで、製造後に生じた欠陥リストの開始状態を保存する。
フラッシュ試験は、例えば、ホストとの接続状態が機能していることを検査するものであ
る。製造後に生じた欠陥リストの開始状態は、例えば、動作不能であるフラッシュのブロ
ックの開始リストである。次いでホストは、入力ログ（ＳＭＡＲＴログなど）に試験を形
成するコマンドを書き込むことによってＭＳＴを構成する。コマンドは、ＳＳＤが（例え
ばファームウェアによって）実行することのできる複数のサポートされるＭＳＴコマンド
の中から選択される。概念的には、サポートされるＭＳＴコマンドは、総体として、ＳＳ
ＤのフラッシュとインターフェースするためのＡＰＩに対応する。ホストが構成を完了す
ると、ホストは、ＳＳＤをＭＳＴモードにし、ＳＳＤに、入力ログからコマンドを実行す
ることによって試験を開始するよう指図するためにＳＴＡＲＴコマンドを（例えば、ＭＳ
Ｔ＿ＳＴＡＲＴといった特定のＳＣＴコマンドとして）送る。
【０２６３】
ある使用シナリオでは、ＳＴＡＲＴコマンドは、ＳＳＤに、（ホストに接続されている
間に）試験を即時に開始するよう指示する。別の使用シナリオでは、ＳＴＡＲＴマンドは
、ＳＳＤに、即時に待機モードに入り、ＳＳＤが次に電源投入されるまで試験の開始を遅
延させるよう指示する。ＳＴＡＲＴコマンドが待機モードに入ることを指示する使用シナ
リオのうちの少なくとも一部では、ＳＳＤが待機モードに入り、電源を切られた後で、技
術者はＳＳＤをホストから切り離し、ＳＳＤを電源（ラックなど）に接続する。次いで技
術者は、ＳＳＤに電源を印加するよう電源に指図する。ＳＳＤが電源投入されると、ＳＳ
Ｄは試験を開始する。
【０２６４】
試験が開始した後で、技術者は、ＳＳＤ上の指示器（例えば、ＬＥＤといった視覚表示
）が、試験が完了したことを指示するのを見守る。あるいは、技術者は、周期的にＳＳＤ
の電源を切り、ＳＳＤを電源から切り離し、ＳＳＤをホストに接続し、ＳＳＤに電源を投
入し、ホストを介してＳＳＤに、試験の状況、例えば試験が完了したか否かの判定を問い
合わせる。
【０２６５】
ＳＳＤが試験を完了すると、ＳＳＤは待機モードに入る。次いで技術者は（ＳＳＤがま
だホストに接続されていない場合は）ＳＳＤをホストに接続し、ＳＳＤに電源を投入する
。ホストは（例えば、技術者の指図の下で、かつ／またはＳＳＤの接続および電源オンに
応答して）試験の結果および製造後に生じた欠陥リストの最終状態を（ＳＳＤから）読み
取り、（例えばホストに接続されたストレージに）保存する。次いでホストは、ＳＳＤに
ＭＳＴを終了するよう指図するためにＳＳＤにＣＯＭＰＬＥＴＥコマンドを（例えば、Ｍ
ＳＴ＿ＣＯＭＰＬＥＴＥといった特定のＳＣＴコマンドとして）送り、ＳＳＤをシステム
ベンダおよび／または顧客への販売のために準備する。
【０２６６】
以上は一人の技術者の観点から説明されているが、様々な実施形態および／または使用
シナリオにおいて、技術者は一人の個人、あるいは、例えばある一定の期間にわたる、複
数の個人である。
【０２６７】
ある実施形態および／または使用シナリオでは、ＭＳＴが、ＭＳＴを受けるＳＳＤの環
境コンテキストの制御のための１若しくはそれ以上の環境パラメータを指定する。ある実
施形態では、環境パラメータは、例えばＳＳＤのフラッシュに適用できる１若しくはそれ
以上の電圧ランプを実施するのに使用される。
【０２６８】
図９Ａに、ＳＳＤ  ＭＳＴフローの実施形態の選択された詳細を示す。様々な状況にお
いて、ＳＳＤ上の試験に関してフローを実行した結果として、ＳＳＤ上に以前に記憶され
たユーザデータの全部または任意の部分が消去され、かつ／または上書きされる。（ＳＳ
Ｄ  ＭＳＴのコンテキストにおける「ユーザデータ」の例には、ホスト読み取り／書き込
みとして受け取られ、またはホスト読み取り／書き込みから生じるデータ、例えば、オペ
レーティング・システム・データ、ドライバデータ、アプリケーションデータなどが含ま
れる。）ホストを使用して、フローに従った試験がセットアップされ、開始される。試験
は、ＳＳＤが試験を完了するまで、またはホストが、ＳＳＤにＡＢＯＲＴコマンドを（例
えば、ＭＳＴ＿ＡＢＯＲＴといった特定のＳＣＴコマンドとして）送ることによって、Ｓ
ＳＤに試験を中途で終了するよう指図するまで、ＳＳＤの電源サイクルにまたがって実行
し続ける。ある実施形態では、ＳＳＤの一部のフラッシュが行使され、例えば、任意選択
で、任意のオーバープロビジョニング割り振りおよび／または指定を含む、ユーザデータ
を記憶するために割り振られ、かつ／または指定されたフラッシュの領域上だけが行使さ
れる。ある実施形態では、ホストは、試験の結果を解釈する（例えば、ホストは、試験に
合格したか、それとも不合格であったか判定する）。様々な実施形態では、（例えば仮想
ドライブ製造モデルによる）設計業者が、図示のＳＳＤ  ＭＳＴフローに従った作業を可
能にするＳＳＤ内のファームウェアを提供する。
【０２６９】
フローは、大まかに３つの部分、すなわち、試験を実行するためにセットアップするこ
と（ＭＳＴを準備する９１０）、試験を実行すること（ＭＳＴを実行する９２０）、およ
び試験の完了後の様々な完了後作業を実行すること（ＭＳＴを終了する９３０）として構
成されている。フローの準備部分は、例えば、試験要員がコマンドを作成し、かつ／また
はコマンドを作成するためにホスト上でスクリプトを実行することによって、１若しくは
それ以上のＭＳＴコマンドを作成すること（ＭＳＴコマンドを生成する９１２）から開始
する（開始９１１）。ある使用シナリオ（例えば、ある製造使用シナリオ）では、試験は
、ただ１つのドライブ（ＳＳＤなど）書き込みコマンドだけである。フローは引き続き、
ＳＳＤをＭＳＴ動作のために準備し（ＳＳＤをＭＳＴ動作に備える９１３）、これは例え
ば、ホストがＳＳＤから製造後に生じた欠陥リストの開始状態を読み取ること、およびホ
ストがＳＳＤに、セキュア消去を行い、１若しくはそれ以上のＳＭＡＲＴログをクリアす
るよう指図することを含む。次いでホストは、試験のコマンドをＳＳＤの入力ＳＭＡＲＴ
ログに記憶する（ＭＳＴコマンドをＳＭＡＲＴログ０ｘＦ８に書き込む９１４）ことによ
って、試験を実行するためにＳＳＤを構成する。
【０２７０】
フローでは続いて、ホストが、例えば、ＳＳＤにＭＳＴ＿ＳＴＡＲＴコマンドを発行す
ることによって、ＳＳＤにＭＳＴモードに入る（ＭＳＴを起動させる９１５）よう指図す
る。ある使用シナリオでは、発行されるＭＳＴ＿ＳＴＡＲＴコマンドは、ＳＳＤに、ＳＳ
Ｄの次の電源投入時にＳＭＡＲＴログからの試験のコマンドの実行を開始するよう指示す
る機能コードを含む。ＭＳＴ＿ＳＴＡＲＴコマンドを受け取ったことに応答して、ＳＳＤ
はＭＳＴフラグを設定する。ＳＳＤは次に、それ以上ホストと対話せずに（例えば、ホス
トに接続された、ＳＡＴＡインターフェースといったホストインターフェースなしで）入
力ＳＭＡＲＴログに記憶された試験を実行することができるようになる。ある実施形態で
は、ホストは、ＳＳＤによって出力ＳＭＡＲＴログに記憶された試験状態インジケータが
、ＳＳＤがＭＳＴモードに入り、かつ／またはＭＳＴモードを作動させたと指示するまで
、ＳＳＤの出力ＳＭＡＲＴログ（ＳＭＡＲＴログ０ｘＦ９など）をポーリングする。ホス
トが、ＳＳＤがＭＳＴモードに入り、かつ／またはＭＳＴモードを作動させたと判定した
ことに応答して、ホストはＳＳＤに、即時に待機モードに入るよう指図し、次いで、ＳＳ
Ｄの電源を切る。ＳＳＤの電源が切られると、ＳＳＤは、例えば、試験要員がＳＳＤをホ
ストから、例えばＭＳＴ動作専用のラックに位置変更することによって、ホストから切り
離され、電源に接続される（ＳＳＤを移動する９１６）。
【０２７１】
ある使用シナリオでは、位置変更の切り離し（ＳＳＤを移動する９１６）が省かれ、試
験は、ＳＳＤがホストに接続されたままの間に行われる。ある使用シナリオでは、発行さ
れるＭＳＴ＿ＳＴＡＲＴコマンドは、ＳＳＤに、例えばホストに接続されたままである間
に、即時にコマンドの実行を開始するよう指示する機能コードを含む。
【０２７２】
ＭＳＴ＿ＳＴＡＲＴコマンドを発行し、続いて、任意選択で、ラックに接続されるよう
にＳＳＤを位置変更した後で、フローの準備部分（ＭＳＴを準備する９１０）が完了し、
実行部分（ＭＳＴを実行する９２０）が開始する。フローは引き続き、例えばホストまた
はラックによって、ＳＳＤに電源を印加する（ＳＳＤの電源をオンにする９２１）。電源
の印加に応答して、ＳＳＤは、ＭＳＴモードでの動作を開始し（ＭＳＴを開始する９２２
）、入力ＳＭＡＲＴログからのコマンドのフェッチおよび実行を開始する（ＳＭＡＲＴロ
グ０ｘＦ８ＭＳＴコマンドを実行する９２３）。ＭＳＴモードにある間に、ＳＳＤは、デ
ータコマンド（ＳＡＴＡデータコマンドなど）の処理を使用不可にする。さらに、ＭＳＴ
モードにある間に、ＳＳＤは、識別問い合わせに応答して（例えば、ＳＡＴＡドライバ識
別問い合わせに応答してＩｄｅｎｔストリングの第７の文字に「Ｔ」を示すことによって
）ＭＳＴモードの動作を指示する。試験のコマンドを実行している間、ＳＳＤは、進捗、
状況、および／または結果情報を提供し、かつ／または記録する（進捗を指示する（ＬＥ
Ｄ、イベントログ、ＳＭＡＲＴログ０ｘＦ９）９２４）。様々な実施形態および／または
使用シナリオでは、進捗、状況、および／または結果情報のうちの任意の１若しくはそれ
以上が累積統計を含む。様々な状況において、誤りの数、（１若しくはそれ以上の）誤り
位置、およびコマンドのうちのいくつが処理されたかのうちの１若しくはそれ以上が含ま
れる。（例えば、ホストがＭＳＴ＿ＡＢＯＲＴコマンドにより試験を打ち切るようＳＳＤ
に指図することによって）試験を中途で終了するよう指示されない限り、ＳＳＤは、（例
えば、１若しくはそれ以上の入力パラメータによって）試験において指定された終了指示
が満たされるまで（完了したか？９２５）、試験のコマンドのフェッチおよび実行を続け
る。試験が完了すると、ＳＳＤは、（例えば、ＬＥＤが点滅をやめるなどによって、イベ
ント、ログによって、かつ／またはＳＭＡＲＴログ０ｘＦ９によって）試験が完了したこ
とを指示し、例えば、ファームウェアがＳＳＤのすべての動作を停止することによって遊
休モードに入る（ＳＳＤを待機させる９２６）。
【０２７３】
ＳＳＤがホストに接続されている間に試験を実行している場合には、ある使用シナリオ
では、ホストは、進捗、状況、および／または結果情報（出力ＳＭＡＲＴログなど）を読
み取って、試験がいつ完了したか判定する。ＳＳＤがホストまたはラックに接続されてい
る間に試験を実行している場合には、試験要員は、ある使用シナリオでは、ＬＥＤを観察
して試験がいつ完了したか判定する。試験が完了したときに、ＳＳＤがホストからラック
へ移動されていた（ＳＳＤを移動する９１６）場合には、ＳＳＤは、電源が切られ、例え
ば、試験要員がＳＳＤをラックからホストへ位置変更することによって、ラックから切り
離され、ホストに接続される（ＳＳＤを移動する９２７）。
【０２７４】
試験を完了し、任意選択で、ホストに接続されるようにＳＳＤを位置変更した後で、フ
ローの実行部分（ＭＳＴを実行する９２０）は完了し、様々な完了作業部分（ＭＳＴを終
了する９３０）が開始する。フローは引き続き、まだ印加されていない場合には、例えば
ホストによってＳＳＤに電源を印加する（ＳＳＤの電源をオンにする９３１）。ホストは
、ＳＳＤから、試験の進捗、状況、および／または結果情報の全部または任意の部分を読
み取る（結果を読み取る（イベントログ、欠陥、ＳＭＡＲＴログ０ｘＦ９）９３２）。あ
る実施形態では、結果情報は、製造後に生じた欠陥リストの最終状態を含む。ホストが進
捗、状況、および／または結果情報の読み取りを完了した後で、ホストは、ＳＳＤがＭＳ
Ｔモードを終了するよう要求する（ＭＳＴ＿ＣＯＭＰＬＥＴＥコマンドを送る９３３）。
次いでホストは、例えば、ＳＳＤに１若しくはそれ以上の消去および／またはＳＭＡＲＴ
ログコマンドを送ることによって、ＳＳＤに、試験後のクリーンアップを行うよう指図す
る（セキュア消去を実行し、ＳＭＡＲＴをクリアする９３４）。次いでホストはＳＳＤの
電源を切り、ＳＳＤを、次の電源投入時にＳＳＤが、ＳＡＴＡデータコマンドといったデ
ータコマンドを受け取り、処理することができるようになる状態にしておく（ＳＳＤをＳ
ＡＴＡ動作に備える９３５）。次いで試験要員はＳＳＤをホストから切り離す（ＳＳＤを
切断する９３６）。切り離しの後で、フローの様々な完了作業部分（ＭＳＴを終了する９
３０）が完了し、全フローが完了する（終了９９９）。次にＳＳＤは、システムベンダお
よび／または顧客への販売に備えて準備される。
【０２７５】
ある実施形態、および／または使用シナリオでは（例えば、ＳＳＤが試験を行っている
間にホストに接続されたままであるときには）、ホストは、ＳＳＤに（例えば特定のＳＣ
Ｔコマンドによるものとしての）ＡＢＯＲＴコマンドを送ることによって、ＳＳＤに試験
を中途で終了するよう指図する。これに応答して、ＳＳＤは、試験のコマンドの実行を停
止し、遊休モードに入る。
【０２７６】
ＭＳＴモードに入るよう求めるホストからの指図の後、試験完了または打ち切りの前に
、ＳＳＤは、１回の電源切断および電源投入のサイクルの後で試験を再開する。具体的に
は、ＳＳＤが９２３、９２４、および９２５のいずれかにある間に電源切断が行われた場
合、次の電源投入時に、ＳＳＤは、電源切断が原因で試験の実行が中断された場合には、
試験を再開する。
【０２７７】
様々な実施形態および／または使用シナリオにおいて、ホストは、ＳＳＤから読み取ら
れた進捗、状況、および／または結果情報（例えば、イベントログや製造後に生じた欠陥
リストの最終状態）の全部または任意の部分をアーカイブする。様々な実施形態および／
または使用シナリオにおいて、ホストは、入力ログ（例えば、試験のコマンドのうちの１
若しくはそれ以上）の全部または任意の部分をアーカイブする。様々な実施形態および／
または使用シナリオにおいて、ホストは、ＳＳＤから読み取られた様々な情報要素の全部
または任意の部分を（例えば、１若しくはそれ以上のスクリプト、プログラム、および／
または解析ツールの実行によって）解釈する。
【０２７８】
（例えば生産フローにおける）ある実施形態および／または使用シナリオでは、試験を
形成するコマンドの作成（ＭＳＴコマンドを生成する９１２）は、ＳＳＤのグループ、例
えば、１生産運転を形成するＳＳＤインスタンスの集合や、同じ生産ラインからのＳＳＤ
インスタンスの集合について１回行われる。図に示すフローの残りの部分は、ＳＳＤイン
スタンスの各々について行われる。フロー（またはフローの変形）は、生産（製造など）
での使用だけに限定されない。様々な実施形態および／または使用シナリオにおいて、フ
ロー（またはフローの変形）は、バーンイン、品質保証サービス／作業、故障解析、およ
び／またはＲＭＡ／点検作業のうちの任意の１若しくはそれ以上の一部として使用される
。
【０２７９】
様々な実施形態および／または使用シナリオでは、特定のＳＣＴコマンド（ＳＴＡＲＴ
、ＣＯＭＰＬＥＴＥ、およびＡＢＯＲＴなど）のうちの１若しくはそれ以上が、ベンダ固
有のものである。
【０２８０】
図９Ｂに、例えば、図９Ａに関して説明したような、１若しくはそれ以上のＳＳＤ上で
１若しくはそれ以上のＭＳＴを実行するためのシステムの実施形態の選択された詳細を示
す。システムは、ＳＳＤ．１  ９９０．１...ＳＳＤ．Ｎ  ９９０．Ｎとして示す１若し
くはそれ以上のＳＳＤに接続されたホスト／ラック９８０を含む。ある実施形態および／
または使用シナリオでは、図示のホスト／ラックは、（例えば、ＭＳＴを準備し、実行し
、終了する）ＳＳＤによって行われるＭＳＴの持続期間にわたって使用されるコンピュー
ティングホストを表す。ある実施形態および／または使用シナリオでは、図示のホスト／
ラックは、（例えば、ＭＳＴを準備し、終了する）ＳＳＤによって行われるＭＳＴの開始
部分および終了部分に使用されるコンピューティングホストを表し、（例えばＭＳＴを実
行する）ＭＳＴの中間部分のための電源用試験ラックを表す。ホスト／ラックは、ＳＳＤ
にコマンドおよび／またはデータを提供し、ＳＳＤから情報および／またはデータを受け
取ることができるようになっている。ホスト／ラックは、ＳＳＤに電力を提供することが
できるようになっているが、ＳＳＤにコマンドおよび／またはデータを提供することはで
きない。
【０２８１】
ホスト／ラックは、例えばインターネットによる、別の場所にあるコンピューティング
リソースおよび記憶リソースとの通信を可能にするためにＬＡＮ／ＷＡＮ９８４に接続さ
れている。ホスト／ラックは、ＳＳＤに適用するための様々な試験、ならびにＳＳＤへの
試験の適用からの結果の保持を可能にするためにストレージ９８５に接続されている。ホ
スト／ラックは、概念的には、ＭＳＴコマンド９８１として図示されている少なくとも１
つのＳＳＤ試験を含む。ホスト／ラックは、概念的には、結果９８２として図示されてい
る、ＳＳＤのうちの少なくとも１つが少なくとも１つのＭＳＴを行った結果の少なくとも
１つの集合を含む。ホスト／ラック９８０「内部」に図示されているが、様々な実施形態
および／または使用シナリオにおいて、ＭＳＴコマンド９８１および／または結果９８２
は、ＬＡＮ／ＷＡＮ９８４を介してアクセス可能なリモートリソースに保持され、かつ／
またはストレージ９８５の全部または任意の部分に保持される。
【０２８２】
ＳＳＤ．１  ９９０．１は、フラッシュ９９６として図示されている、大容量記憶を実
施するための１若しくはそれ以上のＮＶＭを含む。ＳＳＤ．１  ９９０．１は、ＭＳＴに
関連した特定の機能を実施する。様々な実施形態において、特定の機能は、ハードウェア
、ソフトウェア、およびファームウェアのうちの任意の１若しくはそれ以上の様々な組み
合わせによって実施される。特定の機能は、ＳＭＡＲＴログ０ｘＦ８（ＭＳＴコマンド）
９９１、ＬＥＤ（進捗指示器）９９２、イベントログ（進捗、結果）９９３、ＳＭＡＲＴ
ログ０ｘＦ９（進捗、結果）９９４、および欠陥リスト９９５のうちの任意の１若しくは
それ以上を含む。別々の要素として図示されているが、様々な実施形態では、各機能のう
ちの１若しくはそれ以上が同じ要素において実施される。例えば、ＳＭＡＲＴログ０ｘＦ
８（ＭＳＴコマンド）９９１および／またはＳＭＡＲＴログ０ｘＦ９（進捗、結果）９９
４は、フラッシュ９９６の一部分、例えば、特定のＬＢＡと関連付けられたホストデータ
を記憶するのに使用されるフラッシュの部分から分離された部分で実施される。別の例と
しては、イベントログ（進捗、結果）９９３が、フラッシュ９９６の一部分で実施される
。
【０２８３】
様々な実施形態において、ＳＭＡＲＴログ０ｘＦ８（ＭＳＴコマンド）９９１、イベン
トログ（進捗、結果）９９３、ＳＭＡＲＴログ０ｘＦ９（進捗、結果）９９４、および欠
陥リスト９９５のうちの任意の１若しくはそれ以上が、ＳＳＤのデバイスメモリの全部ま
たは任意の部分によって実施される。ＳＳＤデバイスメモリの１若しくはそれ以上の位置
が、ホストＬＢＡと関連付けられたメモリ空間から分離されたＳＳＤデバイスメモリ空間
によってアドレス指定可能である。ＳＳＤデバイスメモリ空間は、ＳＳＤのホストインタ
ーフェースを介してホストが提供する１若しくはそれ以上のコマンドによってホストから
アクセス可能である。例えば、ホストは、ＳＳＤのＳＡＴＡインターフェースを介してＳ
ＳＤのデバイスメモリを読み取り／書き込むコマンドを提供する。
【０２８４】
ＳＭＡＲＴログ０ｘＦ８（ＭＳＴコマンド）９９１は、ホスト／ラック９８０によって
提供される試験のコマンドのための記憶を提供する。試験を行うときに、ＳＳＤ．１  ９
９０．１は、ＳＭＡＲＴログ０ｘＦ８（ＭＳＴコマンド）９９１からコマンドをフェッチ
し、実行する。ＬＥＤ（進捗指示器）９９２は、試験が完了したか否かの指示を提供する
。イベントログ（進捗、結果）９９３およびＳＭＡＲＴログ０ｘＦ９（進捗、結果）９９
４は、試験の進捗指示および結果のための記憶を提供する。ＳＳＤ．１  ９９０．１は、
ホスト／ラック９８０に、イベントログ（進捗、結果）９９３およびＳＭＡＲＴログ０ｘ
Ｆ９（進捗、結果）９９４へのアクセスを提供することができるようになっている。例え
ば、試験が実行されているときに、ホスト／ラックはＥｖｅｎログにアクセスして、試験
が完了したか否か判定する。別の例としては、試験が完了したときに、ホスト／ラックは
、ＳＭＡＲＴログ０ｘＦ９にアクセスして、試験を行っている間にＳＳＤ１  ９９０．１
が記憶した試験の結果を得る。欠陥リスト９９５は、フラッシュ９９６の動作不能な、ま
たは相対的に性能の不十分なブロックのリストのための記憶を提供する。ＳＳＤ．１  ９
９０．１は、ホスト／ラック９８０に、欠陥リスト９９５へのアクセスを提供することが
できるようになっている。例えば、試験が完了した後で、ホスト／ラックは、欠陥リスト
にアクセスして、後で解析する可能性のあるＳＳＤに関する情報をアーカイブする。
【０２８５】
明示されていないが、ＳＳＤ．１  ９９０．ＮはＳＳＤ．１  ９９０．１と同様の、ま
たは同一の要素を含む。
【０２８６】
状況によっては、例えば、突発的なＳＳＤ故障や、ＭＳＴ試験がはかどらないために、
ＭＳＴ試験が失敗することがある。故障の原因には、ファームウェア「パニック」、入力
ＳＭＡＲＴログにおける不正確なデータ、およびタイムアウト値を超えるサイクル時間が
含まれる。ある使用シナリオでは、ＭＳＴ試験は、故障を指示する１若しくはそれ以上の
条件を指定する（例えばパラメータとして表された）基準を含む。基準は、訂正可能な低
レベルおよび／または高レベルのＥＣＣ誤りの数、訂正不能な低レベルおよび／または高
レベルのＥＣＣ誤りの数、プログラム誤りの数、消去誤りの数、ならびに誤りのない読み
取りに対するビット誤りの比を含む。
【０２８７】
様々な実施形態において、図９Ｂのいくつかの要素は、図９Ａのいくつかの要素によっ
て記述される動作に関連したものである。例えば、図９Ｂのホスト／ラック９８０は、ホ
ストおよび／またはラックによって行われる図９Ａの動作のうちの任意の１若しくはそれ
以上を行う。図９ＢのＳＳＤ．１  ９９０．１...ＳＳＤ．Ｎ  ９９０．Ｎのうちの任意
の１若しくはそれ以上は、ＳＳＤによって行われる、またはＳＳＤに関連した図９Ａの動
作の対象を表す。同様に、図９ＢのＳＳＤ．１  ９９０．１の特定の要素は、図９Ａの特
定の要素に関連したものである。例えば、図９ＢのＳＭＡＲＴログ０ｘＦ８（ＭＳＴコマ
ンド）９９１は、図９ＡのＭＳＴコマンドをＳＭＡＲＴログ０ｘＦ８に書き込む９１４お
よびＳＭＡＲＴログ０ｘＦ８ＭＳＴコマンドを実行する９２３に示されているＳＭＡＲＴ
ログ０ｘＦ８の実施形態である。別の例として、図９ＢのＬＥＤ（進捗指示器）９９２は
、進捗を指示する（ＬＥＤ、イベントログ、ＳＭＡＲＴログ０ｘＦ９）９２４のＬＥＤの
実施形態である。別の例として、図９Ｂのイベントログ（進捗、結果）９９３は、図９Ａ
の進捗を指示する（ＬＥＤ、イベントログ、ＳＭＡＲＴログ０ｘＦ９）９２４および結果
を読み取る（イベントログ、欠陥、ＳＭＡＲＴログ０ｘＦ９）９３２のイベントログの実
施形態である。別の例として、図９ＢのＳＭＡＲＴログ０ｘＦ９（進捗、結果）９９４は
、図９Ａの進捗を指示する（ＬＥＤ、イベントログ、ＳＭＡＲＴログ０ｘＦ９）９２４お
よび結果を読み取る（イベントログ、欠陥、ＳＭＡＲＴログ０ｘＦ９）９３２のＳＭＡＲ
Ｔログ０ｘＦ９の実施形態である。別の例として、図９Ｂの欠陥リスト９９５は、図９Ａ
の結果を読み取る（イベントログ、欠陥、ＳＭＡＲＴログ０ｘＦ９）９３２の欠陥の実施
形態である。
【０２８８】
様々な実施形態では、図１Ａおよび／または図１Ｂの要素の全部または任意の部分が、
図９Ａおよび図９Ｂの要素の全部または任意の部分の例示的実施形態である。例えば、図
１Ａおよび図１ＢのＳＳＤ１０１は、図９Ａの動作、および図９ＢのＳＳＤ．１  ９９０
．１...ＳＳＤ．Ｎ  ９９０．Ｎのうちの任意の１若しくはそれ以上に関して言及される
ＳＳＤの例示的実施形態である。別の例として、図１Ｂのホスト１０２は、図９Ａの動作
に関する、図９Ｂのホスト／ラック９８０のホストおよび／またはラックの例示的実施形
態である。別の例として、図１ＡのＣＰＵ１７１は、図９Ａの動作および図９Ｂの要素に
関して言及されるファームウェアを実行することが可能なプロセッサの例示的実施形態で
ある。別の例として、図１Ｂのファームウェア１０６は、図９Ａの動作および図９Ｂの要
素に関して言及されるファームウェアの例示的実施形態である。
【０２８９】
様々な実施形態では、図９Ａで説明されるフローの全部または任意の部分が、図６およ
び／または図７のコンテキストに関して説明されるＳＳＤの試験（例えば工場試験および
／またはＭＳＴ）の全部または任意の部分の例示的実施形態である。様々な実施形態およ
び／または使用シナリオでは、図９Ａで説明されるフローの全部または任意の部分（例え
ばホストによって行われる動作）が、図６の製造用ソフトウェアツール６１６によって実
施される。様々な実施形態では、図９Ｂの全部または任意の部分が図７Ｂの全部または任
意の部分の例示的実施形態である（例えば、ホスト／ラック９８０はホスト７８０Ｐの例
示的実施形態であり、ＳＳＤ．１  ９９０．１...ＳＳＤ．Ｎ  ９９０．ＮはＳＳＤ．１
７９０Ｐ．１...ＳＳＤ．Ｎ  ７９０Ｐ．Ｎの例示的実施形態である）。
【０２９０】
図１０に、ＭＳＴコマンド、ならびに関連付けられたパラメータ対の数、およびパラメ
ータ識別子／値対の実施形態の選択された詳細を示す。ＭＳＴ全体（ＭＳＴ入力１０００
など）は、１若しくはそれ以上のコマンドと終了マーカとを有するコマンドのシーケンス
である。様々な実施形態において、ＭＳＴ入力１０００は、（例えば、図９ＡのＭＳＴコ
マンドをＳＭＡＲＴログ０ｘＦ８に書き込む９１４および／または図９ＢのＳＭＡＲＴロ
グ０ｘＦ８（ＭＳＴコマンド）９９１の場合と同様に）試験されるべきＳＳＤの入力ＳＭ
ＡＲＴログにホストによって記憶されると共に、（例えば、図９ＡのＳＭＡＲＴログ０ｘ
Ｆ８ＭＳＴコマンドを実行する９２３の場合と同様に）ＳＳＤによってフェッチされ、実
行されるコマンドを表す。
【０２９１】
各コマンドの後には、数字の後に何個のパラメータ対が続くか指示する数字が続き、数
字の後には、０以上のパラメータ識別子と値の対が続く。最後のコマンドの後には終了マ
ーカが続く。ある使用シナリオでは、ＭＳＴは単一のコマンドを含み、任意選択で、１若
しくはそれ以上のパラメータ識別子と値の対を有する。ある使用シナリオでは、ＭＳＴは
任意の数のコマンドを含み、各コマンドはそれぞれのパラメータ情報を有し、コマンドの
数は、試験されるべきＳＳＤの入力ＳＭＡＲＴログのサイズによってのみ制限される。
【０２９２】
図に具体的に示すように、ＭＳＴ入力１０００は、Ｎ個のコマンド（コマンド１および
パラメータ１  １０１０、コマンド２およびパラメータ２  １０２０...コマンドＮおよ
びパラメータＮ  １０８０）の後に終了マーカ（センチネル１０９０）が続くものを含む
。ＳＳＤはセンチネルを、（例えば、ＭＳＴ入力を処理するファームウェアによって）Ｍ
ＳＴにこれ以上のコマンドが存在しないというインジケータとして理解し、これに応答し
てＳＳＤは、試験が完了したことを指示し、（例えば、図９ＡのＳＳＤを待機させる９２
６の場合と同様に）遊休モードに入る。
【０２９３】
コマンド１およびパラメータ１  １０１０は詳細に図示されており、コマンド（コマン
ド１  １０１１）の後に、何個のパラメータ対が続くか指示する部分（パラメータ対の数
１０１２）が続き、パラメータ識別子値対としてのパラメータ対（パラメータＩＤと値の
対１  １０１３...パラメータＩＤと値の対Ｎ  １０１４）で終わる。様々な使用シナリ
オにおいて、コマンド１およびパラメータ１  １０１０はＭＳＴ内の唯一のコマンドであ
り、あるいは、ＭＳＴ内の複数のコマンドのうちの第１のコマンドである。いくつかの異
なるシナリオでは、パラメータ対の数１０１２は０であり（パラメータＩＤと値の対１  
１０１３...パラメータＩＤと値の対Ｎ  １０１４が省かれる）、パラメータ対の数１０
１２は１であり（パラメータＩＤと値の対１  １０１３だけがコマンド１およびパラメー
タ１  １０１０のために存在する）、以下同様である。明示されていないが、コマンド２
およびパラメータ２  １０２０...コマンドＮおよびパラメータＮ  １０８０は、各々、
各コマンドの後に何個のそれぞれのパラメータ対が続くか、ならびにそれぞれのパラメー
タ識別子／値対を指示するそれぞれの部分を有する。
【０２９４】
図１１に、ＭＳＴで使用可能な様々なコマンド（例えば、ファームウェアによって実行
可能なサポートＭＳＴコマンド）の実施形態の選択された詳細を示す。ＭＳＴコマンド１
１００は、複数のコマンドについてのコマンドコード、コマンド名、コマンド記述を図示
している。ＭＳＴコマンドは、例えば、図１０のＭＳＴ入力１０００として示すような、
ＭＳＴを表現する際のコマンドとして使用できる。図で記述されるコマンドには、ドライ
ブ書き込み１１０１、ドライブ消去１１０２、ＳＡＴＡ  ＰＨＹバーンイン１１０３、遅
延１１０４およびストレスモード１１０５が含まれる。他のコマンド、例えば、ループコ
マンドおよび／または分岐コマンドなど、ＭＳＴ内のフロー制御を行うためのコマンドも
企図されている。図１１のコンテキストでは、（本明細書で別途説明される）ＳＳＤが「
ドライブ」の一例である。
【０２９５】
図１２に、ＭＳＴの例の選択された詳細を示す。ＭＳＴ入力の例１２００は、総体とし
てＭＳＴの例を形成する、複数のコマンドについてのコマンドおよび関連付けられた記述
ならびに終了マーカを示している。ＭＳＴの例は、（例えば、図９ＡのＭＳＴコマンドを
ＳＭＡＲＴログ０ｘＦ８に書き込む９１４および／または図９ＢのＳＭＡＲＴログ０ｘＦ
８（ＭＳＴコマンド）９９１の場合と同様に）試験されるべきＳＳＤの入力ＳＭＡＲＴロ
グにホストによって記憶されると共に、（例えば、図９ＡのＳＭＡＲＴログ０ｘＦ８ＭＳ
Ｔコマンドを実行する９２３の場合と同様に）ＳＳＤによってフェッチされ、実行される
ＭＳＴコマンドのシーケンスとして使用するのに適する。図１２のコンテキストでは、（
本明細書で別途説明される）ＳＳＤが「ＤＲＩＶＥ」および「ドライブ」の一例である。
【０２９６】
図１３Ａ〜図１３Ｄに、具体的な使用シナリオにおけるドライブ書き込みコマンド（例
えば、図１１のドライブ書き込み１１０１）の実施の実施形態の選択された詳細を示す。
概念的には、（例えばＭＳＴ処理の間に）ドライブ書き込みコマンドを実行するＳＳＤが
、複数のＲ−ブロックといった部分としてＳＳＤのフラッシュに作用する。図１３Ａ〜図
１３Ｄには、ＳＳＤのフラッシュが複数のＲ−ブロックとして示されており、図の各々は
、それぞれの時点およびＲ−ブロックの対応する状態に対応するものである。ニーモニッ
ク「Ｓｙｓ」は、システムデータ（例えば一部または全部のマップ表）と関連付けられた
Ｒ−ブロックに対応する。ニーモニック「Ｕｓｒ」は、（例えば、ホスト読み取り／書き
込みとして受け取られ、またはホスト読み取り／書き込みから生じる）ユーザデータと関
連付けられたＲ−ブロックに対応する。点線の大きい「×印」は、「不良」な（例えば、
動作不能な、欠陥のある、かつ／または相対的に高い誤り率で特徴付けられる）Ｒ−ブロ
ックに対応する。ニーモニック「Ｐａｔ」は、例えば、特定のパターン、複数の特定のパ
ターンのうちの選択される１つ、および／または算出されるパターンで、（例えば、ＳＳ
Ｄのファームウェアによる）ドライブ書き込みコマンドの実行によって書き込まれたＲ−
ブロックに対応する。
【０２９７】
ドライブ書き込みコマンドは反復して実行され、概念的には、各反復時に、１若しくは
それ以上のＲ−ブロックにわたって書き込みを逐次的に実行する。図１３Ａ〜図１３Ｄで
図示する実施形態では、ユーザデータと関連付けられたＲ−ブロックだけが書き込まれる
（例えば、システムデータと関連付けられたＲ−ブロックは保持される）。ドライブ書き
込みコマンドの実行が進むに従って、ＳＳＤは（例えばファームウェアによって）周期的
に統計を収集、記録し、どのＲ−ブロックも意図せずに消去されていないことを検査／検
証する。ある実施形態では、ドライブ書き込みコマンドの進捗がサイクル数で測られ、各
サイクルは、ユーザデータと関連付けられたすべてのＲ−ブロックへの少なくとも１回の
書き込みに対応する。ドライブ書き込みコマンドの反復が完了すると、ＳＳＤは（例えば
ファームウェアによって）どのＲ−ブロックも意図せずに消去されていないこと、および
／またはすべてのＲ−ブロックが正しくプログラムされていることを検査／検証する。
【０２９８】
図１３Ａに、ドライブ書き込みコマンドの実行による変更の前の時点に対応する、初期
状態のＲ−ブロック１３０１〜１３１０としてのＳＳＤのフラッシュを示す。Ｒ−ブロッ
ク１３０３、１３０４、１３０６〜１３０８、および１３１０は、（Ｕｓｒニーモニック
で図示するように）ユーザデータに割り振られており、かつ／またはユーザデータを含む
。ドライブ書き込みコマンドはまだＲ−ブロックのいずれも変更していないため、ドライ
ブ書き込みコマンドの実行によって書き込まれたＲ−ブロックはない。Ｒ−ブロック１３
０１および１３０２は、（Ｓｙｓニーモニックで図示するように）システムデータに割り
振られており、かつ／またはシステムデータを含む。図示の実施形態では、ドライブ書き
込みコマンドは、ユーザデータと関連付けられたＲ−ブロックだけを変更し、したがって
、Ｒ−ブロック１３０１および１３０２は、ドライブ書き込みコマンドの実行全体を通し
てシステムデータと関連付けられたままであり、図１３Ｂ〜図１３Ｄに関してもこれ以上
論じない。Ｒ−ブロック１３０５および１３０９は（点線の大きい×印で図示するように
）不良である。図示の使用シナリオでは、これ以上の不良Ｒ−ブロックは発見されない（
また、以前に不良であったＲ−ブロックのいずれも何らかの理由で修復されない）。した
がって、Ｒ−ブロック１３０５および１３０９は、ドライブ書き込みコマンドの実行全体
を通してこれらだけに限られた不良Ｒ−ブロックであり、図１３Ｂ〜図１３Ｄに関しても
これ以上論じない。
【０２９９】
図１３Ｂに、ドライブ書き込みコマンドの第１の反復後の時点に対応する、第１の反復
状態のＲ−ブロック１３０１〜１３１０を示す。Ｒ−ブロック１３０３および１３０４は
、ここでは、（Ｐａｔニーモニックで図示するように）ドライブ書き込みコマンドの第１
の反復によって書き込まれたそれぞれのパターンを含む。Ｒ−ブロック１３０６〜１３０
８および１３１０は、ドライブ書き込みコマンドの実行によってまだ変更されておらず、
（Ｕｓｒニーモニックで図示するように）ユーザデータと関連付けられたままである。
【０３００】
図１３Ｃに、ドライブ書き込みコマンドの第２の反復後の時点に対応する、第２の反復
状態のＲ−ブロック１３０１〜１３１０を示す。Ｒ−ブロック１３０６および１３０７は
、ここでは、（Ｐａｔニーモニックで図示するように）ドライブ書き込みコマンドの第２
の反復によって書き込まれたそれぞれのパターンを含む。Ｒ−ブロック１３０３および１
３０４は、（Ｕｓｒニーモニックで図示するように）ユーザデータと関連付けられている
が、ドライブ書き込みコマンドの実行前にＲ−ブロック１３０３および１３０４に記憶さ
れたユーザデータは、（例えば、ドライブ書き込みコマンドの第１の反復によって）上書
きされている。Ｒ−ブロック１３０８および１３１０は、ドライブ書き込みコマンドの実
行によってまだ変更されておらず、（Ｕｓｒニーモニックで図示するように）ユーザデー
タと関連付けられたままである。
【０３０１】
図１３Ｄに、ドライブ書き込みコマンドの完了後の時点に対応する、最終状態のＲ−ブ
ロック１３０１〜１３１０を示す。Ｒ−ブロック１３０８および１３１０は、ここでは、
（Ｐａｔニーモニックで図示するように）ドライブ書き込みコマンドの最終反復によって
書き込まれたそれぞれのパターンを含む。Ｒ−ブロック１３０３、１３０４、１３０６、
および１３０７は、（Ｕｓｒニーモニックで図示するように）ユーザデータと関連付けら
れているが、ドライブ書き込みコマンドの実行前にＲ−ブロック１３０３、１３０４、１
３０６、および１３０７に記憶されたユーザデータは、（例えば、ドライブ書き込みコマ
ンドの第１または第２の反復によって）上書きされている。
【０３０２】
様々な実施形態および／または使用シナリオにおいて、ドライブ書き込みコマンドは、
以下の表に記述するように、０以上のパラメータを有する。表内のすべてのパラメータは
任意選択のものであることに留意されたい。
【０３０３】
【表３】
2018060575.tif 000013
【０３０４】
様々な実施形態および／または使用シナリオにおいて、ＳＡＴＡ  ＰＨＹバーンインコ
マンドは、以下の表に記述するように、０以上のパラメータを有する。表内のすべてのパ
ラメータは任意選択のものであることに留意されたい。
【０３０５】
【表４】
2018060575.tif 000014
【０３０６】
ＭＳＴ試験の一部としてのＳＡＴＡ  ＰＨＹバーンインコマンドを実行している間にＳ
ＳＤのＳＡＴＡリンクを介してホストに接続されるＳＳＤを考える。ＳＡＴＡリンクは、
ＳＡＴＡ  ＰＨＹバーンインコマンドが実行されている間は利用できないため、ホストは
、ＳＳＤに試験を中途で終了するためのＡＢＯＲＴコマンドを送ることができない。代わ
りにＳＳＤは、試験を中途で終了するために電源を切られる。ある実施形態では、ＳＡＴ
Ａ  ＰＨＹバーンインコマンドは、少なくとも一部は、ＳＡＴＡリンクのＢＩＳＴ機能、
ＳＡＴＡリンクのＳＡＴＡ  ＰＨＹ、または両方のアクティブ化によって実施される。
【０３０７】
ある実施形態および／または使用シナリオでは、ストレス・モード・コマンド（ストレ
スモード１１０５など）が、特定のフラッシュアクセスを指定するＭＳＴの構築を可能に
する。状況によっては、特定のフラッシュアクセスは、特定の製造者またはシステムベン
ダ（図６の製造者６２０またはシステムベンダ６３０など）が専有するアクセスのシーケ
ンスである。ストレス・モード・コマンドは、製造者またはシステムベンダが、ＳＳＤの
ファームウェアにおいて専有のシーケンスを実施せずに、よって、設計業者（図６の設計
業者６１０など）に専有のシーケンスを開示せずに、専有のシーケンスに従ってＳＳＤを
行使することを可能にする。ある使用シナリオでは、製造者またはシステムベンダは、１
若しくはそれ以上の特定のストレス・モード・コマンドを使用して、例えば、特定のスト
レス・モード・コマンドのうちの１若しくはそれ以上のパラメータのうちの１若しくはそ
れ以上を変化させることによって、ＳＳＤのフラッシュの動作不能なブロックを突き止め
る。様々な使用シナリオにおいて、専有のシーケンスは、フラッシュの動作電圧、フラッ
シュの特定のセルの行使、フラッシュに対する操作の頻度、フラッシュの誤り検査率、フ
ラッシュのセルの位相的欠陥、フラッシュのセル間の接続のうちの任意の１若しくはそれ
以上に関連したパラメータのうちの１若しくはそれ以上を変化させる。ある実施形態では
、ストレス・モード・コマンドは、ＳＳＤのファームウェアによって、例えば、図１０で
示すようなコマンドおよびパラメータ指定に従って、アドレス、シーケンス、および挙動
の各パラメータのうちの任意の１若しくはそれ以上を含むように実施される。
【０３０８】
図１４に、ＭＳＴ結果ログの実施形態の選択された詳細を示す。ＭＳＴ結果ログ１４０
０は、複数のログフィールドについてのログフィールドおよび関連付けられたログフィー
ルド要素を図示している。様々な実施形態において、ＭＳＴ結果ログ１４００の全部また
は任意の部分は、（例えば、図９Ａの進捗を指示する（ＬＥＤ、イベントログ、ＳＭＡＲ
Ｔログ０ｘＦ９）９２４および結果を読み取る（イベントログ、欠陥、ＳＭＡＲＴログ０
ｘＦ９）９３２で参照されると共に、図９Ｂのイベントログ（進捗、結果）９９３および
ＳＭＡＲＴログ０ｘＦ９（進捗、結果）９９４で例示される）イベントログおよびＳＭＡ
ＲＴログのうちの任意の１若しくはそれ以上の全部または任意の部分を表す。図で記述す
るログフィールドは、ログヘッダ１４０１、試験状態１４０２、進捗標識１４０３、統計
１４０４、および誤り１４０５を含む。
【０３０９】
以下の表に、ＭＳＴ結果ログの様々な実施形態の選択された要素を記載する。要素のう
ちの任意の１若しくはそれ以上が、様々な実施形態において任意選択のものである。
【０３１０】
【表５】
2018060575.tif 000015
【０３１１】
以下の表に、ＭＳＴイベントログの様々な実施形態の選択された要素を記載する。要素
のうちの任意の１若しくはそれ以上が、様々な実施形態において任意選択のものである。
【０３１２】
【表６】
2018060575.tif 000016
【０３１３】
他の実施形態情報
様々な実施形態において、ＳＳＤ（図９ＢのＳＳＤ．１  ９９０．１など）は、少なく
とも一部はファームウェアによって、ＭＳＴコマンド（図１１のＭＳＴコマンド１１００
など）の処理を実施する。ファームウェアは、様々なモジュール、例えば、（例えば相対
的に低い権限レベルの）ユーザ空間で実行するためのモジュールや、（例えば相対的に高
い権限レベルの）コア空間で実行するためのモジュールを含む。ある実施形態では、ユー
ザ空間モジュールは、パーシングモジュールおよびコマンド実行モジュールを含む。ある
実施形態では、コア空間モジュールは、例えばリサイクラ（図１Ａのリサイクラ１５１な
ど）に関連した、ハードウェア調整モジュールを含む。ある実施形態では、ＭＳＴコマン
ドの処理および／またはＭＳＴモードでの動作に特有のファームウェアの部分は、誤り処
理および／若しくは報告ルーチンへの「触手」、または、通常は特にＭＳＴモードに関連
したものではない他のルートを含む。
【０３１４】
以下の表に、ＭＳＴモードの全部または任意の部分を実施するファームウェアの選択さ
れたルーチンの例を記載する。
【０３１５】
【表７】
2018060575.tif 000017
【０３１６】
以下の表に、ユーザ空間とコア空間との間の選択されたＡＰＩエントリ点の例を記載す
る（エントリ点は、ＭＳＴモードの全部または任意の部分を実施するファームウェアによ
って実施される）。
【０３１７】
【表８】
2018060575.tif 000018
【０３１８】
実施技法の例
ある実施形態では、入出力装置またはこれの（１若しくはそれ以上の）部分、例えば、
フラッシュメモリなどを備える１若しくはそれ以上のＳＳＤを含むストレージ入出力装置
といった入出力装置のＶＤＭＭおよび／またはＳＳＤ  ＭＳＴと共に使用するのに適する
ＳＳＤおよび／またはＳＳＤコントローラ、コンピューティングホストのフラッシュ・メ
モリ・コントローラおよび／またはＳＳＤコントローラ（図１ＡのＳＳＤコントローラ１
００など）、ならびに、プロセッサ、マイクロプロセッサ、システム・オン・チップ、特
定用途向け集積回路、ハードウェアアクセラレータ、または前述の動作の全部若しくは部
分を提供する他の回路の部分によって行われる動作の全部または任意の部分の様々な組み
合わせが、コンピュータシステムによる処理に準拠する仕様によって指定される。仕様は
、様々な記述、例えば、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記
述、またはレイアウト記述に従ったものである。記述の例には、Ｖｅｒｉｌｏｇ、ＶＨＤ
Ｌ、ＳＰＩＣＥ、ＳＰＩＣＥの変形、例えば、ＰＳｐｉｃｅ、ＩＢＩＳ、ＬＥＦ、ＤＥＦ
、ＧＤＳ−ＩＩ、ＯＡＳＩＳ、または他の記述が含まれる。様々な実施形態では、処理は
、１若しくはそれ以上の集積回路上に含めるのに適する論理および／または回路を生成し
、検証し、または指定するための解釈、コンパイル、シミュレーション、および合成の任
意の組み合わせを含む。各集積回路は、様々な実施形態によれば、様々な技法に従って設
計することができ、かつ／または製造することができる。技法には、プログラマブルな技
法（例えば、フィールド若しくはマスク・プログラマブル・ゲート・アレイ集積回路）、
セミカスタムの技法（例えば、全部若しくは一部がセルベースの集積回路）、およびフル
カスタムの技法（例えば、実質的に専門化された集積回路）、それらの任意の組み合わせ
、または集積回路の設計および／若しくは製造と適合する任意の他の技法が含まれる。
【０３１９】
ある実施形態では、命令のセットを記憶しているコンピュータ可読媒体によって記述さ
れる動作の全部または部分の様々な組み合わせが、１若しくはそれ以上のプログラム命令
の実行および／若しくは解釈によって、１若しくはそれ以上のソースおよび／若しくはス
クリプト言語命令文の解釈および／若しくはコンパイルによって、または、プログラミン
グおよび／若しくはスクリプティング言語命令文で表現された情報をコンパイルし、変換
し、かつ／または解釈することによって生成されるバイナリ命令の実行によって実行され
る。命令文は任意の標準のプログラミングまたはスクリプティング言語（例えば、Ｃ、Ｃ
＋＋、Ｆｏｒｔｒａｎ、Ｐａｓｃａｌ、Ａｄａ、Ｊａｖａ（登録商標）、ＶＢｓｃｒｉｐ
ｔ、Ｓｈｅｌｌ）に準拠する。プログラム命令、言語命令文、またはバイナリ命令のうち
の１若しくはそれ以上が、任意選択で、１若しくはそれ以上のコンピュータ可読記憶媒体
要素上に記憶される。様々な実施形態では、プログラム命令の一部、全部、または様々な
部分が、１若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プ
ロシージャ、マクロ、またはそれらの部分として実現される。
【０３２０】
各実施形態を、ＳＳＤの不揮発性メモリの一例としてのフラッシュ・メモリ・デバイス
を使用して説明した。多くの他の種類の揮発性または不揮発性のメモリデバイスが、フラ
ッシュ・メモリ・デバイスの代わりに、またはフラッシュ・メモリ・デバイスに加えて、
これらの実施形態の多くで適用でき、使用できるものであり、複数の異なる種類のメモリ
デバイスを使用する実施形態がある。さらに、各実施形態を、入出力装置の一種といった
電子構成部品の例としてＳＳＤを使用して説明した。本明細書で説明した技法は、他の種
類の入出力装置、コンピュータ、ネットワーク設備、他の形の電子設備といった多くの異
なる電子構成部品に等しく適用できる。
【０３２１】
結論
ある特定の選択が、説明において、テキストおよび図面を作成するに際の単なる便宜の
ためになされており、別の指示がない限り、それらの選択は、それ自体で、前述の実施形
態の構造または動作に関する追加情報を伝えるものと解釈すべきではない。選択の例には
、図の符番に使用される呼称の特定の編成または割り当て、および実施形態の特徴および
要素を識別し、参照するのに使用される要素識別子（コールアウトや数値識別子など）の
特定の編成または割り当てが含まれる。
【０３２２】
「ｉｎｃｌｕｄｅｓ」または「ｉｎｃｌｕｄｉｎｇ」という語は、開放型範囲の論理集
合を記述する抽象概念として解釈されるべきことが明確に意図されており、後に続けて「
ｗｉｔｈｉｎ」という語が明示されない限り物理的包含を伝えるためのものではない。
【０３２３】
前述の実施形態は、説明および理解の明確さのためにある程度詳細に説明されているが
、本発明は提示した詳細だけに限定されるものではない。本発明の多くの実施形態がある
。開示の実施形態は例示であり、限定ではない。
【０３２４】
説明と整合性を有する、構成、配置、および使用における多くの変形が可能であり、そ
れらの変形は、発行される特許の特許請求の範囲内にあることが理解されるであろう。例
えば、相互接続および機能ユニットのビット幅、クロック速度、および使用される技術の
種類は、各構成要素ブロックにおける様々な実施形態に従って変わりうる。相互接続およ
び論理に与えられた名称は、単なる例であり、説明した概念を限定するものと解釈すべき
ではない。フローチャートおよび流れ図のプロセス、動作、および機能要素の順序および
配置は、様々な実施形態に従って変わりうる。また、特に別に指定しない限り、指定され
る値範囲、使用される最大値および最小値、または他の特定の仕様（例えば、フラッシュ
メモリ技術の種類、レジスタおよびバッファ内のエントリまたは段の数）は、単に前述の
実施形態のものにすぎず、実施技術の改善および変更を追跡することが見込まれるもので
あり、限定として解釈すべきではない。
【０３２５】
当分野で公知の機能的に等価の技法を、様々なコンポーネント、サブシステム、動作、
関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそ
れらの部分を実施するのに、前述の技法の代わりに用いることができる。また、実施形態
の多くの機能的態様を、より高速な処理（以前にハードウェアにあった機能のソフトウェ
アへの移行を円滑化する）およびより高い集積密度（以前にソフトウェアにあった機能の
ハードウェアへの移行を円滑化する）の実施形態に依存する設計制約条件および技術傾向
に応じて、選択的に、ハードウェア（おおむね専用の回路など）で、またはソフトウェア
で（例えば、プログラムされたコントローラ若しくはプロセッサのある方式によって）実
現できることも理解される。様々な実施形態の具体的な変形は、これに限定されるもので
はないが、分割の違い、フォームファクタおよび構成の違い、異なるオペレーティングシ
ステムおよび他のシステムソフトウェアの使用、異なるインターフェース規格、ネットワ
ークプロトコル、または通信リンクの使用、本明細書で説明した概念を、特定の用途の固
有の技術的業務的制約条件に従って実施するときに予期されるべき他の変形を含む。
【０３２６】
各実施形態は、前述の各実施形態の多くの態様の最小限の実施に必要とされるものを大
きく超えた詳細および環境的コンテキストと共に説明されている。ある実施形態は、残り
の要素間での基本的協働を変更せずに開示の構成要素または機能を割愛することを当業者
は理解するであろう。よって、開示の詳細の多くが前述の実施形態の様々な態様を実施す
るのに必要ではないことが理解される。残りの要素が先行技術と区別できる範囲内で、割
愛される構成要素および特徴は本明細書で説明した概念を限定するものではない。
【０３２７】
設計におけるすべてのそのような変形は、前述の実施形態によって伝えられる教示に対
する実質的な変更ではない。また、本明細書で説明した実施形態は、他のコンピューティ
ング用途およびネットワーキング用途に幅広い適用性を有し、前述の実施形態の特定の用
途または産業だけに限定されるものではないことも理解される。よって本発明は、発行さ
れる特許の特許請求の範囲内に包含されるあらゆる可能な改変形態および変形形態を含む
ものと解釈すべきである。
【図１Ａ】
2018060575.tif 000019
【図１Ｂ】
2018060575.tif 000020
【図２】
2018060575.tif 000021
【図３】
2018060575.tif 000022
【図４Ａ】
2018060575.tif 000023
【図４Ｂ】
2018060575.tif 000024
【図５】
2018060575.tif 000025
【図６】
2018060575.tif 000026
【図７Ａ】
2018060575.tif 000027
【図７Ｂ】
2018060575.tif 000028
【図７Ｃ】
2018060575.tif 000029
【図７Ｄ】
2018060575.tif 000030
【図８】
2018060575.tif 000031
【図９Ａ】
2018060575.tif 000032
【図９Ｂ】
2018060575.tif 000033
【図１０】
2018060575.tif 000034
【図１１】
2018060575.tif 000035
【図１２】
2018060575.tif 000036
【図１３】
2018060575.tif 000037
【図１４】
2018060575.tif 000038
【手続補正書】
【提出日】平成29年12月21日(2017.12.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストプロセッサとホストメモリとを有するホストデバイスを、記憶デバイスコントローラと、記憶コントローラメモリと、フラッシュメモリとを有する記憶デバイスに接続するステップと、
前記ホストプロセッサを用いて、前記ホストメモリ内の製造用ソフトウェアツールを、プログラムステップの形態で実行するステップとを備え、前記プログラムステップは、実行されると、前記ホストメモリから前記記憶コントローラメモリにファームウェアイメージをロードして、
前記フラッシュメモリを構成し、
前記ロードされたファームウェアイメージに応答して、前記フラッシュメモリの製造テストを実行し、
前記製造テストの成功結果に応答して、前記フラッシュメモリのセキュア消去を指示し、
前記ファームウェアイメージは、アクセスが可能な前記ホストメモリの複数の利用可能なファームウェアイメージの中から前記製造用ソフトウェアツールによって選択され、前記複数の利用可能なファームウェアイメージの各々は、前記フラッシュメモリに異なるオーバープロビジョニングレベルを提供する、方法。
【請求項２】
前記製造テストは、前記フラッシュメモリの記憶の能力の１以上の記憶能力テストを含む、請求項１に記載の方法。
【請求項３】
前記記憶能力テストのうちの少なくとも１つは、前記フラッシュメモリの動作不可能なブロックのリストを特定するための１以上のフラッシュメモリテストを含む、請求項２に記載の方法。
【請求項４】
前記複数の利用可能なファームウェアイメージは、保護されたファームウェアイメージを含み、前記製造用ソフトウェアツールは、さらに、解読鍵を前記記憶デバイスコントローラに転送して、前記ロードされたファームウェアイメージへのアクセスを可能にする、請求項１に記載の方法。
【請求項５】
前記複数の利用可能なファームウェアイメージのうちの少なくとも１つは、暗号化されたファームウェアイメージであり、前記方法は、さらに、前記暗号化されたファームウェアイメージの１以上の部分の解読を可能にする１以上の暗号化鍵を提供することを含む、請求項４に記載の方法。
【請求項６】
前記複数の利用可能なファームウェアイメージの各々は、さらに、前記フラッシュメモリの各々のメモリセルに記憶されるべきビットの異なる総数を特定し、前記複数の利用可能なファームウェアイメージのうちの第１のファームウェアイメージは、前記メモリセルをシングルレベルセル（ＳＬＣ）に構成し、前記複数の利用可能なファームウェアイメージのうちの第２のファームウェアイメージは、前記メモリセルをマルチレベルセル（ＭＬＣ）に構成する、請求項１に記載の方法。
【請求項７】
前記フラッシュメモリは複数のフラッシュメモリコンポーネントを含み、前記フラッシュメモリコンポーネントのうちの第１の部分は、第１の製造プロセスを用いて製造され、前記フラッシュメモリコンポーネントのうちの第２の部分は、異なる、第２の製造プロセスを用いて製造される、請求項１に記載の方法。
【請求項８】
前記フラッシュメモリのタイプは、前記ロードされたファームウェアイメージによって確立された複数の動作パラメータを有するフラッシュメモリコンポーネントを含む、請求項１に記載の方法。
【請求項９】
記憶コントローラと、記憶コントローラメモリと、メインフラッシュメモリとを有する記憶デバイスと、
前記記憶デバイスに接続され、ホストプロセッサとホストメモリとを有するホストデバイスとを備え、前記ホストメモリは、要求されるアクセスコマンドを通じてアクセスが利用可能となる複数のファームウェアイメージを記憶し、前記ホストメモリは、さらに、製造用ソフトウェアツールを記憶し、前記製造用ソフトウェアツールは、前記ホストプロセッサによってプログラムステップの形態で実行されて、前記記憶デバイスの前記記憶コントローラメモリに、１以上のファームウェアイメージをダウンロードし、
前記ホストデバイスは、さらに、前記製造用ソフトウェアツールの指示のもとで記憶コントローラによって実行される、前記記憶デバイスの製造テストを制御することを可能にし、ダウンロードされた１以上の前記ファームウェアイメージは、前記フラッシュメモリを、関連するオーバープロビジョニングレベルを有する選択された記憶容量に構成して、前記製造テストは、前記１以上のファームウェアイメージの成功したローディングを検証し、前記製造用ソフトウェアツールは、さらに、前記記憶コントローラに指示して、前記製造テストの結果において、前記フラッシュメモリのセキュア消去を実行する、装置。
【請求項１０】
前記製造テストは、前記フラッシュメモリの記憶能力の１以上の記憶能力テストを含む、請求項９に記載の装置。
【請求項１１】
前記記憶能力テストのうちの少なくとも１つは、前記フラッシュメモリの使用不可能なブロックを特定するための１以上のフラッシュメモリテストを含む、請求項１０に記載の装置。
【請求項１２】
前記ホストデバイスは、前記記憶デバイスにネットワークを介して接続されている、請求項９に記載の装置。
【請求項１３】
前記複数の利用可能なファームウェアイメージの各々は、前記フラッシュメモリに、異なるオーバープロビジョンレベルを提供する、請求項９に記載の装置。
【請求項１４】
記憶デバイスコントローラと、記憶コントローラメモリと、フラッシュメモリとを有する記憶デバイスと、
ホストプロセッサとホストメモリとを有するホストデバイスとを備え、前記ホストプロセッサは、前記ホストメモリ内の製造用ソフトウェアツールを、プログラムステップの形態で実行し、前記プログラムステップは、実行されると、前記ホストメモリから前記記憶コントローラメモリに、複数の利用可能なファームウェアイメージの中から、あるファームウェアイメージをロードして、前記フラッシュメモリを構成し、前記ロードされたファームウェアイメージに応答して、前記フラッシュメモリの製造テストを実行し、前記製造テストの成功結果に応答して、前記フラッシュメモリのセキュア消去を指示し、
前記ファームウェアイメージは、前記ホストメモリの前記複数の利用可能なファームウェアイメージの中から前記製造用ソフトウェアツールによって選択され、前記複数の利用可能なファームウェアイメージの各々は、前記フラッシュメモリに、異なる記憶容量に対応する、異なるオーバープロビジョニングレベルを提供する、システム。
【請求項１５】
前記製造テストは、前記フラッシュメモリの動作のテストを含む、請求項１４に記載のシステム。
【請求項１６】
前記ファームウェアイメージは、保護されたファームウェアイメージを含み、前記プログラムは、さらに、前記保護されたファームウェアイメージへの認証されたアクセスを提供する認証ルーチンを含む、請求項１４に記載のシステム。
【請求項１７】
前記ファームウェアイメージの少なくとも１つは、暗号化されたファームウェアイメージであり、前記プログラムは、前記ホストメモリに記憶された１以上の暗号化鍵を使用して、前記暗号化されたファームウェアイメージの１以上の部分を解読する、請求項１４に記載のシステム。
【請求項１８】
前記製造テストは、前記ホストデバイスからの入力コマンドに応答して実行される、請求項１４に記載のシステム。
【請求項１９】
前記複数の利用可能なファームウェアイメージの各々は、さらに、前記フラッシュメモリの各々のメモリセルに記憶されるべきビットの異なる総数を特定し、前記複数の利用可能なファームウェアイメージのうちの第１のファームウェアイメージは、前記メモリセルをシングルレベルセル（ＳＬＣ）に構成し、前記複数の利用可能なファームウェアイメージのうちの第２のファームウェアイメージは、前記メモリセルをマルチレベルセル（ＭＬＣ）に構成する、請求項１４に記載のシステム。
【請求項２０】
前記製造テストは、前記フラッシュメモリの欠陥スキャンを実行して、前記記憶デバイスの動作中に、ユーザデータの記憶に続いてサービスから除去される欠陥領域を特定する、請求項１４に記載のシステム。
【外国語明細書】
2018060575000001.pdf