(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-06
(45)【発行日】2022-09-14
(54)【発明の名称】ファームウェアの状態に基づく自動パワーダウン
(51)【国際特許分類】
G06F 12/00 20060101AFI20220907BHJP
G11C 5/14 20060101ALI20220907BHJP
G11C 16/04 20060101ALI20220907BHJP
G11C 16/30 20060101ALI20220907BHJP
G06F 9/445 20180101ALI20220907BHJP
G06F 1/3225 20190101ALI20220907BHJP
G06F 1/3237 20190101ALI20220907BHJP
G06F 1/324 20190101ALI20220907BHJP
【FI】
G06F12/00 550E
G11C5/14 370
G11C16/04 170
G11C16/30
G06F9/445
G06F12/00 597U
G06F1/3225
G06F1/3237
G06F1/324
(21)【出願番号】P 2021533541
(86)(22)【出願日】2019-11-01
(86)【国際出願番号】 US2019059432
(87)【国際公開番号】W WO2020123059
(87)【国際公開日】2020-06-18
【審査請求日】2021-08-06
(32)【優先日】2018-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】パリー ジョナサン スコット
(72)【発明者】
【氏名】グロシュ ナダブ
【審査官】北村 学
(56)【参考文献】
【文献】特開2002-288150(JP,A)
【文献】特開2004-287979(JP,A)
【文献】特開2008-217948(JP,A)
【文献】特表2004-509259(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/06
G06F 1/26 - 1/3296
G06F 8/00 - 8/38
G06F 8/60 - 8/77
G06F 9/44 - 9/445
G06F 9/451
G11C 5/00 - 5/14
G11C 11/56
G11C 16/00 - 17/18
(57)【特許請求の範囲】
【請求項1】
メモリデバイスであって、
メモリアレイと、
ファームウェアアクティビティトラッカと、
メモリコントローラ
と、
を含み、
前記メモリコントローラが、
ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示す前記ファームウェアアクティビティトラッカからの1つ以上のロード入力を受信することと、
前記1つ以上のロード入力を受信した後、前記ファームウェアをロードすることに失敗した試行の回数を示す前記ファームウェアアクティビティトラッカからの1つ以上のリロードステータス入力を受信することと、
前記1つ以上のリロードステータス入力が、失敗した試行の前記回数がプログラム可能な閾値に達したことを示している場合、前記メモリデバイスを低電力状態にすることと、
を含む動作を遂行するようにプログラムされている
、
メモリデバイス。
【請求項2】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのクロックを停止することを含む、請求項1に記載のメモリデバイス。
【請求項3】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのクロックを抑制することを含む、請求項1に記載のメモリデバイス。
【請求項4】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスを保護状態にすることを含む、請求項1に記載のメモリデバイス。
【請求項5】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスの選択された電力ドメインへの電力をゲートオフすることを含む、請求項1に記載のメモリデバイス。
【請求項6】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのための電圧制御を使用することを含む、請求項1に記載のメモリデバイス。
【請求項7】
前記ファームウェアアクティビティトラッカが読み出し専用メモリ(ROM)の一部を含む、請求項1に記載のメモリデバイス。
【請求項8】
前記ファームウェアアクティビティトラッカが、前記ファームウェアをロードすることに失敗した試行の前記回数を追跡するように構成されたカウンタを含む、請求項1に記載のメモリデバイス。
【請求項9】
前記ファームウェアアクティビティトラッカからの前記1つ以上のリロードステータス入力が、前記ファームウェアをロードすることに失敗した試行の経過時間を示し、
前記1つ以上のリロードステータス入力が、前記経過時間がタイムアウト閾値に達したことを示している場合、前記メモリデバイスを前記低電力状態にする、請求項1に記載のメモリデバイス。
【請求項10】
前記ファームウェアアクティビティトラッカが、前記ファームウェアをロードすることに失敗した試行の前記経過時間を追跡するように構成されたタイマを含む、請求項9に記載のメモリデバイス。
【請求項11】
メモリデバイスであって、
メモリアレイと、
ファームウェアアクティビティトラッカと、
メモリコントローラ
と、
を含み、
前記メモリコントローラが、
ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示す前記ファームウェアアクティビティトラッカからの1つ以上のロード入力を受信することと、
前記1つ以上のロード入力を受信した後、前記ファームウェアをロードすることに失敗した試行の経過時間を示す前記ファームウェアアクティビティトラッカからの1つ以上のリロードステータス入力を受信することと、
前記1つ以上のリロードステータス入力が、
前記経過時間がタイムアウト閾値に達したことを示している場合、前記メモリデバイスを低電力状態にすることと、
を含む動作を遂行するようにプログラムされている
、
メモリデバイス。
【請求項12】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのクロックを停止することを含む、請求項11に記載のメモリデバイス。
【請求項13】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのクロックを抑制することを含む、請求項11に記載のメモリデバイス。
【請求項14】
前記メモリコントローラが、ブートストラッププログラムを使用してプログラムされている、請求項11に記載のメモリデバイス。
【請求項15】
前記ファームウェアアクティビティトラッカが、前記ファームウェアをロードすることに失敗した試行の前記経過時間を追跡するように構成されたタイマを含む、請求項11に記載のメモリデバイス。
【請求項16】
命令を含む非一時的コンピュータ可読媒体であって、前記命令が、プロセッサによって実行されるとき、前記プロセッサに、
ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示すファームウェアアクティビティトラッカからの1つ以上のロード入力を受信することと、
前記1つ以上のロード入力を受信した後、前記ファームウェアをロードすることに失敗した試行の回数を示す前記ファームウェアアクティビティトラッカからの1つ以上のリロードステータス入力を受信することと、
前記1つ以上のリロードステータス入力が、失敗した試行の前記回数がプログラム可能な閾値に達したことを示している場合、
メモリデバイスであってメモリアレイと前記ファームウェアアクティビティトラッカとを含む前記メモリデバイスを低電力状態にすることと、
を含む動作を遂行させる、非一時的コンピュータ可読媒体。
【請求項17】
前記ファームウェアアクティビティトラッカが読み出し専用メモリ(ROM)の一部を含む、請求項16に記載の
非一時的コンピュータ可読媒体。
【請求項18】
前記ファームウェアアクティビティトラッカが、前記ファームウェアをロードすることに失敗した試行の前記回数を追跡するように構成されたカウンタを含む、請求項16に記載の
非一時的コンピュータ可読媒体。
【請求項19】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスの選択された電力ドメインへの電力をゲートオフすることを含む、請求項16に記載の
非一時的コンピュータ可読媒体。
【請求項20】
前記メモリデバイスを低電力状態にすることが、前記メモリデバイスのための電圧制御を使用することを含む、請求項16に記載の
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
優先権出願
本出願は、2018年12月13日に出願された米国出願整理番号第16/219,292号に対する優先権の利益を主張するものであり、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0002】
メモリデバイスは、ホストシステム(例えば、コンピュータまたはその他の電子デバイス)のためのデータの電子的なストレージを提供する半導体回路である。メモリデバイスは、揮発性または不揮発性であり得る。揮発性メモリは、データを保持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)などのデバイスを含む。不揮発性メモリは、電力が供給されていないときに記憶されたデータを保持することができ、とりわけ、フラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、または磁気抵抗型ランダムアクセスメモリ(MRAM)などの抵抗可変メモリなどのデバイスを含む。
【0003】
ホストシステムは、典型的には、ホストプロセッサ、ホストプロセッサをサポートするための第1の量のメインメモリ(例えば、多くの場合、DRAMなどの揮発性メモリ)、及びメインメモリに加えてまたはメインメモリから分離してデータを保持するための追加のストレージを提供する1つ以上のストレージシステム(例えば、多くの場合、フラッシュメモリなどの不揮発性メモリ)を含む。
【0004】
ソリッドステートドライブ(SSD)などのストレージシステムは、メモリコントローラ及びいくつかのダイまたは論理ユニット(LUN)を含む1つ以上のメモリデバイスを含むことができる。特定の実施例では、各ダイは、ダイロジックまたはダイプロセッサなどの、いくつかのメモリアレイ及びその上の周辺電子回路を含むことができる。メモリコントローラは、通信インターフェース(例えば、双方向パラレル通信インターフェースまたはシリアル通信インターフェース)を介してホストデバイス(例えば、ホストプロセッサまたはインターフェース電子回路)と通信するように構成されるインターフェース電子回路を含むことができる。メモリコントローラは、メモリデバイスとホストデバイスとの間でデータ(例えば、エラーデータまたはアドレスデータなどのユーザデータ及び関連する整合性データなど)を転送するための読み出し動作または書き込み動作、メモリデバイスからデータを消去するための消去動作などのメモリ動作または命令に関連してホストシステムからコマンドまたは動作を受信したり、ドライブ管理動作(例えば、データマイグレーション、ガベージコレクション、ブロック廃棄)を遂行したりすることができる。
【0005】
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字の接尾辞を有する類似数字は、類似構成要素の異なる事例を表し得る。図面は、概して、限定ではなく例として、本文書で論じられる様々な実施形態を示す。
【図面の簡単な説明】
【0006】
【
図1】ホストデバイス及びストレージシステムを含む例示的なシステムを示す。
【
図2】A及びBは、ファームウェアの状態に基づいてメモリデバイスを自動的に低電力状態にする例示的な方法を示す。
【
図3】デバイスファームウェアの状態に基づく管理された電力消費のためのメモリデバイス処理の例示的な流れ図を示す。
【
図4】3D NANDアーキテクチャの半導体メモリアレイの例示的な概略図を示す。
【
図5】メモリモジュールの例示的なブロック図を示す。
【
図6】情報処理システムの例示的なブロック図を示す。
【発明を実施するための形態】
【0007】
ソフトウェア(例えば、プログラム)、命令、オペレーティングシステム(OS)、及びその他のデータは、典型的には、ストレージシステムに記憶され、ホストプロセッサによる使用のためにメインメモリによってアクセスされる。メインメモリ(例えば、RAM)は、典型的には、ストレージシステムの大部分のメモリデバイス(例えば、SSDなどの不揮発性)よりも高速であり、より高価である、異なるタイプのメモリデバイス(例えば、揮発性)である。メインメモリに加えて、ホストシステムは、多くの場合、メインメモリよりも高速で、特定の実施例では、ホストプロセッサの速度に近いかそれを超える速度で動作するように構成されるが、密度がより低くコストがより高い、スタティックメモリ(例えば、キャッシュ、多くの場合、SRAM)のグループなどの異なるレベルの揮発性メモリを含むことができる。他の実施例では、必要なホストシステムのパフォーマンス及びコストに応じて、より多いかまたはより少ないレベルまたは量のメインメモリまたはスタティックメモリを使用することができる。
【0008】
SSDなどのフラッシュメモリデバイスは、典型的には、1トランジスタ、フローティングゲートメモリセルの1つ以上のグループを含む。フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャ及びNORアーキテクチャが含まれる。メモリアレイのフローティングゲートメモリセルは、典型的には、マトリックスに配置される。
【0009】
大部分のマネージドNANDシステム(eMMC、UFS、SSD)には、NORまたはNANDなどの不揮発性メディア上のシステム内の他の場所に記憶されたファームウェアをロードするという制限された目的のために構成されたROMが存在する。ファームウェアを正常にロードすることは、メモリデバイスの動作の前提条件である。現在、ファームウェアがない、またはファームウェアが破損しているデバイスは、中程度の電力状態にあり、ファームウェアが破損している場合でも、ファームウェアを正常にロードする試行回数を無制限に使用してファームウェアがロードされるのを無期限に待機する。
【0010】
ロードされていないファームウェア、または破損しているか、攻撃されているか、もしくはロードされようとしているファームウェアを備えたデバイスを保護するために、本主題は、制限された数の試行をリトライし、タイムアウトし、次いでクロックと電源ドメインをシャットダウンして、最小限の電力で強制的にシステムを保護状態にするように実装されたROMベースの機能(本明細書ではファームウェアアクティビティトラッカまたはファームウェアアクティビティモジュールと呼ばれる)を提供する。
【0011】
例えば、製造環境において、ファームウェアがロードされていない場合がある。超並列処理を伴う製造ステップの場合、デバイスが引き出すことができる電力量は制限される。いくつかの実施例では、ファームウェアは、クロックの周波数の抑制、変更、シリコンの領域への電力のゲートオフ、または電圧の動的な変更によって電力を管理することができる。現時点では、これらの保護ステップは、ファームウェアコードを正常にロードせずに開始することができない。本主題は、ファームウェアを正常にロードできないことを検出し、次いで制限された電力状態を実施することにより、ファームウェアなしで同様の機能を提供する。
【0012】
典型的には、低電力状態は、高度加速ストレステスト(HAST)及びパッケージング認定に使用される。バーンオーブンなどにおいて多数のユニットを並列に使用するロードボードを製造する場合、ダイは、全て同時に高電力を引き出すことができない。例えば、ファームウェアが破損しているか、または攻撃されている場合、本主題は、これらのテスト状況におけるデバイスのための保護された状態またはモードを提供する。
【0013】
本主題は、メモリデバイスを保護された状態またはモードにするためのROMコードまたはハードウェアブロックを提供する。カウンタ、レジスタ及び/またはタイマは、ファームウェアをブートするか、またはロードする試行、及び正常にロードされた、正常にロードされなかった、または破損したファームウェアコードでロードされたなどの、ファームウェアのロードの状態を追跡またはカウントするために使用される。本方法はさらに、ファームウェアの妥当性を検出する方法を提供する。ファームウェアが正常にロードされなかったか、または破損状態もしくは機能していない状態でロードされた場合、本主題は、低ドロップアウト(LDO)レギュレーティングまたは電力ゲーティングのための電圧制御などを使用することにより、デバイスを低電力状態にすることを提供する。本主題はまた、あるいは代替的に、クロック、クロックドメイン及び発振器を遅くするかまたはシャットダウンすることができる。本主題の利点は、電力消費を制限するためにファームウェアの特定の状態について電力を自動的に低下させること、及びデバイスを保護するためにファームウェアの特定の状態についてデバイスへのアクセスを内部的に防止することを含む。
【0014】
本開示の態様は、ファームウェアが正常にロードされたかどうか、及びファームウェアバージョンが有効かつ動作可能であるかどうかを判定し、ファームウェアが正常にロードされなかった場合、またはファームウェアが有効かつ動作可能でない場合、ファームウェアをロードすることに失敗した試行の回数またはファームウェアをロードすることに失敗した経過時間を追跡し、失敗した試行の回数または経過時間のいずれかがプログラム可能な閾値に達した場合にメモリデバイスを低電力状態にするように構成されたメモリシステムに向けられる。
【0015】
図1は、通信インターフェース(I/F)115(例えば、双方向パラレル通信インターフェースまたはシリアル通信インターフェース)を経由して通信するように構成されたホストデバイス105及びストレージシステム110を含む例示的なシステム(例えば、ホストシステム)100を示す。ホストデバイス105は、ホストプロセッサ106(例えば、ホスト中央処理ユニット(CPU)もしくは他のプロセッサもしくは処理デバイス)、または他のホスト回路(例えば、メモリ管理ユニット(MMU)、インターフェース回路、評価回路107など)を含むことができる。特定の実施例では、ホストデバイス105は、ホストプロセッサ106の動作をサポートするために、メインメモリ108(例えば、DRAMなど)及び任意選択で、スタティックメモリ109を含むことができる。
【0016】
ストレージシステム110は、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC(商標))デバイス、または1つ以上の他のメモリデバイスを含むことができる。例えば、ストレージシステム110がUFSデバイスを含む場合、通信インターフェース115は、1つ以上のジョイントエレクトロンデバイスエンジニアリングカウンシル(JEDEC)規格(例えば、一般にJEDEC UFSホストコントローラインターフェース(UFSHCI)3.0と呼ばれるJEDEC規格D223D(JESD223D)など)で定義されるようなシリアル双方向インターフェースを含むことができる。別の例では、ストレージシステム110がeMMCデバイスを含む場合、通信インターフェース115は、1つ以上のJEDEC規格(例えば、一般にJEDEC eMMC規格5.1と呼ばれるJEDEC規格D84-B51(JESD84-A51)など)で定義されているような、いくつかのパラレル双方向データ線(例えば、DAT[7:0])及び1つ以上のコマンド線を含むことができる。他の実施例では、ストレージシステム110は、1つ以上の他のメモリデバイスを含むことができるか、または通信インターフェース115は、ホストデバイス105及びストレージシステム110に応じて、1つ以上の他のインターフェースを含むことができる。
【0017】
ストレージシステム110は、メモリコントローラ111及び不揮発性メモリ112を含むことができる。一実施例では、不揮発性メモリは、それぞれが周辺回路を含み、メモリコントローラ111によって制御される1つ以上のフラッシュメモリデバイスなどの、いくつかのメモリデバイス(例えば、ダイまたはLUN)を含むことができる。
【0018】
フラッシュメモリデバイスは、典型的には、1トランジスタ、フローティングゲートメモリセルの1つ以上のグループを含む。フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャ及びNORアーキテクチャが含まれる。メモリアレイのフローティングゲートメモリセルは、典型的には、マトリックスに配置される。アレイの行内の各メモリセルのゲートは、アクセス線(例えば、ワード線)に結合される。NORアーキテクチャでは、アレイの列内の各メモリセルのドレインは、データ線(例えば、ビット線)に結合される。NANDアーキテクチャでは、アレイの列内の各メモリセルのドレインは、ソース線とビット線との間で、ソースからドレインに、共に直列に結合される。
【0019】
NOR、NAND、3Dクロスポイント(Xpoint)ホログラフィックRAM(HRAM)、MRAM、または1つ以上の他のアーキテクチャの半導体メモリアレイ内の各フラッシュメモリセルは、個々にまたは一括して、1つの、またはいくつかのプログラムされた状態にプログラムすることができる。シングルレベルセル(SLC)は、2つのプログラムされた状態(例えば、1または0)のうちの一方でセルあたり1ビットのデータを表すことができる。マルチレベルセル(MLC)は、セルあたり2ビット以上のデータを、プログラムされた状態の数(例えば、2n、ここでnはデータのビット数)で表すことができる。特定の実施例では、MLCは、4つのプログラムされた状態のうちの1つで2ビットのデータを記憶することができるメモリセルを指すことができる。トリプルレベルセル(TLC)は、8つのプログラムされた状態のうちの1つでセルあたり3ビットのデータを表すことができる。クワッドレベルセル(QLC)は、16のプログラムされた状態のうちの1つでセルあたり4ビットのデータを表すことができる。MLCは、本明細書では、より広い文脈で、TLC及びQLCなどを含む、セルあたり2ビット以上のデータを記憶することができる(すなわち、3つ以上のプログラムされた状態を表すことができる)任意のメモリセルを指すために使用される。
【0020】
ストレージシステム110は、マルチメディアカード(MMC)ソリッドステートストレージデバイス(例えば、マイクロセキュアデジタル(SD)カードなど)を含むことができる。MMCデバイスは、ホストデバイス105とのいくつかのパラレルインターフェース(例えば、8ビットパラレルインターフェース)を含み、多くの場合、ホストデバイスから取り外し可能で分離している構成要素である。対照的に、組み込みeMMCデバイスは、回路基板に取り付けられ、ホストデバイスの構成要素と見なされ、シリアルATA(SATA)ベースのSSDデバイスに匹敵する読み出し速度を備える。仮想デバイスまたは拡張現実デバイスを完全に可能にしたり、増加しつつあるネットワーク速度を利用したりするために、モバイルデバイスのパフォーマンスに対する需要が増え続けるにつれて、ストレージデバイスは、パラレル通信インターフェースからシリアル通信インターフェースに移行してきた。コントローラ及びファームウェアを含むUFSデバイスは、専用の読み出し/書き込みパスを備えた低電圧差動信号(LVDS)シリアルインターフェースを使用してホストデバイスと通信し、ホストデバイスとストレージシステムとの間の読み出し/書き込み速度をさらに向上させる。
【0021】
3次元(3D)アーキテクチャ半導体メモリデバイス技術では、垂直フローティングゲートまたは電荷トラップストレージ構造を積層させて、階層の数、物理ページ、及びしたがってメモリデバイス内のメモリセルの密度を増加させることができる。
【0022】
多くの場合、データは、小さい単位としてストレージシステムに任意に記憶される。単一のユニットとしてアクセスされた場合でも、データは、小さいランダムな4~16kの単一ファイル読み出し(例えば、動作の60%~80%は16kよりも小さい)で受信することができる。ユーザ及びさらにはカーネルアプリケーションにとって、データを1つの連続したまとまりのある単位として記憶されるべきであることを示すことは困難である。ファイルシステムは、典型的には、順次検索スペースではなく、スペース使用量を最適化するように設計されている。
【0023】
メモリコントローラ111は、ホストデバイス105から命令を受信することができ、不揮発性メモリアレイ112のメモリセルのうちの1つ以上へのデータ転送(例えば、書き込みもしくは消去)またはそこからのデータ転送(例えば、読み出し)などのために、不揮発性メモリアレイ112と通信することができる。メモリコントローラ111は、とりわけ、いくつかの構成要素または集積回路などの、電子回路またはファームウェアを含むことができる。例えば、メモリコントローラ111は、メモリアレイの全体にわたるアクセスを制御し、ホストデバイス105とストレージシステム100との間に変換層を提供するように構成された1つ以上のメモリ制御ユニット、回路または構成要素を含むことができる。
【0024】
不揮発性メモリアレイ112(例えば、3D NANDアーキテクチャ半導体メモリアレイ)は、例えば、いくつかのデバイス、プレーン、ブロックまたは物理ページに配置された、いくつかのメモリセルを含むことができる。一実施例として、TLCメモリデバイスは、ページあたり18,592バイト(B)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができる。別の実施例として、MLCメモリデバイスは、ページあたり18,592バイト(B)のデータ、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、必要な書き込み時間は、対応するTLCメモリデバイスの半分で、プログラム/消去(P/E)サイクルはその2倍である。他の例は、他の数または配置を含むことができる。
【0025】
図2Aは、ファームウェアの状態に基づいてメモリデバイスを自動的に低電力状態にする例示的な方法200を示す。様々な実施例では、メモリデバイスを動作させる方法200は、202で、ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示すファームウェアアクティビティトラッカからの1つ以上のロード入力を受信することを含む。204で、1つ以上のロード入力を受信した後、方法は、ファームウェアをロードすることに失敗した試行の回数を示すファームウェアアクティビティトラッカからの1つ以上のリロードステータス入力を受信することを含む。1つ以上のリロードステータス入力が、失敗した試行の回数がプログラム可能な閾値に達したことを示している場合、方法は、206で、メモリデバイスを低電力状態にすることを含む。
【0026】
図2Bは、ファームウェアの状態に基づいてメモリデバイスを自動的に低電力状態にする例示的な方法250を示す。様々な実施例では、メモリデバイスを動作させる方法250は、252で、ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示すファームウェアアクティビティトラッカからの1つ以上のロード入力を受信することを含む。254で、1つ以上のロード入力を受信した後、方法は、ファームウェアをロードすることに失敗した試行の経過時間を示すファームウェアアクティビティトラッカからの1つ以上のリロードステータス入力を受信することを含む。1つ以上のリロードステータス入力が、経過時間がタイムアウト閾値に達したことを示している場合、方法は、256で、メモリデバイスを低電力状態にすることを含む。
【0027】
様々な実施例では、ファームウェアアクティビティトラッカはROMまたはハードウェアを含む。例えば、閾値、または含まれる実施例のいずれかを遂行するためのコードは、ヒューズ、メタルマスク、ボンディングオプション、基板配線オプション、ブートストラップハードウェア(HW)選択ピン、またはROM設定に記憶させることができる。一実施例では、ブートストラップボタンを押すことにより、ハードワイヤードプログラムが入力ユニットからブートストラッププログラムを読み出す。本主題は、プログラム可能な動作及びプログラム可能な閾値に言及している。これらは、様々な実施例では、ハードウェアによって選択または構成された動作及び閾値を含むことができる。いくつかの実施例では、プログラム可能なコード、設定または閾値は、溶断ヒューズ、ROMマスクの変更、ワイヤボンド、基板接続、構成ピンまたは構成信号を通じて構成された設定を指す。本主題の範囲から逸脱することなく、追加のプログラムストレージ方法を使用することができる。
【0028】
図3は、デバイスファームウェアの状態に基づく管理された電力消費のためのメモリデバイス処理の例示的な流れ図を示す。この方法は、301から開始し、302でメモリデバイスにファームウェアをロードすることを試行する。304で、メモリコントローラは、ファームウェアが正常にロードされたかどうかを判定する。ファームウェアが正常にロードされた場合、メモリコントローラは、306で、ファームウェアバージョンが有効かつ動作可能であるかどうかを判定する。ファームウェアバージョンが有効かつ動作可能である場合、方法は311で終了する。ファームウェアが正常にロードされなかったか、またはファームウェアバージョンが有効かつ動作可能でない場合、メモリコントローラは、ファームウェアをロードする試行の回数が閾値よりも大きいかどうかを確認する。ファームウェアをロードする試行の回数が閾値よりも大きくない場合、メモリコントローラは、302でファームウェアをロードすることを試行する。ファームウェアをロードする試行の回数が閾値よりも大きい場合、メモリコントローラは、310でメモリデバイスを低電力状態にし、方法は、311で終了する。様々な実施例では、閾値はプログラム可能である。様々な実施例では、ファームウェアをロードするためのタイマを、試行の閾値に加えて、またはその代わりに使用することができる。様々な実施例では、タイマはプログラム可能である。
【0029】
図4は、ブロック(例えば、ブロックA 401A、ブロックB 401Bなど)及びサブブロック(例えば、サブブロックA
0 401A
0、サブブロックA
n 401A
n、サブブロックB
0 401B
0、サブブロックB
n 401B
nなど)に編成された、いくつかのメモリセルのストリング(例えば、第1~第3のA
0メモリストリング405A
0~407A
0、第1~第3のA
nメモリストリング405A
n~407A
n、第1~第3のB
0メモリストリング405B
0~407B
0、第1~第3のB
nメモリストリング405B
n~407B
nなど)を含む3D NANDアーキテクチャ半導体メモリアレイ400の例示的な概略図を示す。メモリアレイ400は、典型的にはメモリデバイスのブロック、デバイスまたは他のユニットに見られる、より多くの同様の構造の一部を表す。
【0030】
メモリセルの各ストリングは、ソース線(SRC)435またはソース側選択ゲート(SGS)(例えば、第1~第3のA0SGS 431A0~433A0、第1~第3のAnSGS 431An~433An、第1~第3のB0SGS 431B0~433B0、第1~第3のBnSGS 431Bn~433Bnなど)とドレイン側選択ゲート(SGD)(例えば、第1~第3のA0SGD 426A0~428A0、第1~第3のAnSGD 426An~428An、第1~第3のB0SGD 426B0~428B0、第1~第3のBnSGD 426Bn~428Bnなど)との間に、ソースからドレインへのZ方向に積層された電荷蓄積トランジスタ(例えば、フローティングゲートトランジスタ、電荷トラップ構造など)のいくつかの階層を含む。3Dメモリアレイ内のメモリセルの各ストリングは、データ線(例えば、ビット線(BL)BL0~BL6 420~422)としてX方向に沿って配置することができ、物理ページとしてY方向に沿って配置することができる。
【0031】
物理ページ内では、各階層はメモリセルの行を表し、メモリセルの各ストリングは列を表す。サブブロックには、1つ以上の物理ページを含めることができる。ブロックには、いくつかのサブブロック(または物理ページ)(例えば、128、256、384など)を含めることができる。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックは単一の物理ページを有し、各物理ページはメモリセルの3つのストリングを有し、各ストリングは8階層のメモリセルを有するものとして示されているが、他の実施例では、メモリアレイ400は、より多くのまたはより少ないブロック、サブブロック、物理ページ、メモリセルのストリング、メモリセル、または階層を含むことができる。例えば、メモリセルの各ストリングは、必要に応じて、より多くのまたはより少ない階層(例えば、16、32、64、128など)、ならびに電荷蓄積トランジスタの上または下の半導体材料の1つ以上の追加の階層(例えば、選択ゲート、データ線など)を含むことができる。一実施例として、48GB TLC NANDメモリデバイスは、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。
【0032】
メモリアレイ400内の各メモリセルは、アクセス線(例えば、ワード線(WL)WL00~WL70 410A~417A、WL01~WL71 410B~417Bなど)に結合された(例えば、電気的またはその他の方法で動作可能に接続された)制御ゲート(CG)を含み、アクセス線は、必要に応じて、特定の階層または階層の一部にわたって制御ゲート(CG)を集合的に結合する。3Dメモリアレイ内の特定の階層、つまり、ストリング内の特定のメモリセルは、それぞれのアクセス線を使用してアクセスまたは制御することができる。選択ゲートのグループには、様々な選択線を使用してアクセスすることができる。例えば、第1~第3のA0SGD 426A0~428A0には、A0SGD線 SGDA0 425A0を使用してアクセスすることができ、第1~第3のAnSGD 426An~428Anには、SGD線 SGDAn 425Anを使用してアクセスすることができ、第1~第3のB0SGD 426B0~428B0には、B0SGD線 SGDB0 425B0を使用してアクセスすることができ、第1~第3のBnSGD426Bn~428Bnには、BnSGD線 SGDBn425Bnを使用してアクセスすることができる。第1~第3のA0SGS 431A0~433A0及び第1~第3のAnSGS 431An~433Anには、ゲート選択線SGS0 430Aを使用してアクセスすることができ、第1~第3のB0SGS 431B0~433B0及び第1~第3のBnSGS 431Bn~433Bnには、ゲート選択線SGS1 430Bを使用してアクセスすることができる。
【0033】
一実施例では、メモリアレイ400は、各メモリセルの制御ゲート(CG)またはアレイのそれぞれの階層の選択ゲート(もしくはCGもしくは選択ゲートの一部)を結合するように構成されたいくつかのレベルの半導体材料(例えば、ポリシリコンなど)を含むことができる。アレイ内のメモリセルの特定のストリングは、ビット線(BL)及び選択ゲートなどの組み合わせを使用してアクセス、選択、または制御することができ、特定のストリング内の1つ以上の階層にある特定のメモリセルは、1つ以上のアクセス線(例えば、ワード線)を使用してアクセス、選択、または制御することができる。
【0034】
NANDアーキテクチャの半導体メモリアレイでは、選択されたメモリセルを含む特定のデータ線に関連した電流または電圧の変動を検知することにより、選択されたメモリセルの状態にアクセスすることができる。メモリアレイ400は、1つ以上のドライバを使用して(例えば、制御回路、1つ以上のプロセッサ、デジタル論理などによって)アクセスすることができる。一実施例では、1つ以上のドライバは、特定のメモリセルまたはメモリセルのセットに対して遂行することが所望される動作のタイプに応じて、1つ以上のデータ線(例えば、ビット線BL0~BL2)、アクセス線(例えば、ワード線WL0~WL7)または選択ゲートに特定の電位を駆動することによって特定のメモリセルまたはメモリセルのセットをアクティブ化することができる。
【0035】
メモリセルにデータをプログラムするか、または書き込むために、プログラミング電圧(Vpgm)(例えば、1つ以上のプログラミングパルスなど)を選択されたワード線(例えば、WL40)に印加することができ、したがって、選択されたワード線に結合された各メモリセルの制御ゲートに印加することができる。プログラミングパルスは、例えば、15Vまたは15V付近で開始することができ、特定の実施例では、各プログラミングパルスの印加中に大きさを上げることができる。プログラム電圧が選択されたワード線に印加されている間、グラウンド電位(例えば、Vss)などの電位を、プログラミングの対象となるメモリセルのデータ線(例えば、ビット線)と基板(したがって、ソースとドレインとの間のチャネル)に印加することにより、チャネルから対象のメモリセルのフローティングゲートへの電荷移動(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)を生じさせることができる。
【0036】
対照的に、プログラミングの対象とならないメモリセルを有する1つ以上のワード線にはパス電圧(Vpass)を印加することができ、または、例えば、チャネルからそのような対象とならないメモリセルのフローティングゲートに電荷を移動させるのを禁止するために、プログラミングの対象とならないメモリセルを有するデータ線(例えば、ビット線)にインヒビット電圧(例えば、Vcc)を印加することができる。パス電圧は、例えば、印加されたパス電圧がプログラミングの対象となるワード線に近接しているかどうかに応じて可変にすることができる。インヒビット電圧は、グラウンド電位(例えば、Vss)に対する、外部のソースまたは電源(例えば、バッテリ、AC-DCコンバータなど)からの電圧などの、供給電圧(Vcc)を含むことができる。
【0037】
一実施例として、プログラミング電圧(例えば、15V以上)がWL40などの特定のワード線に印加される場合、10Vのパス電圧をWL30、WL50などの1つ以上の他のワード線に印加して、対象とならないメモリセルのプログラミングを禁止するか、またはプログラミングの対象とならないそのようなメモリセルに記憶された値を保持することができる。印加されたプログラム電圧と対象とならないメモリセルとの間の距離が増加するにつれて、対象とならないメモリセルのプログラミングを避けるために必要なパス電圧を低下させることができる。例えば、15Vのプログラミング電圧をWL40に印加する場合、10Vのパス電圧をWL30及びWL50に印加することができ、WL20及びWL60に8Vのパス電圧を印加することができ、WL10及びWL70に7Vのパス電圧を印加することができ、その他も同様である。他の実施例では、パス電圧、またはワード線の数などは、より高く、もしくはより低くすることができ、またはより多く、もしくはより少なくすることができる。
【0038】
センスアンプは、データ線(例えば、第1、第2、または第3のビット線(BL0~BL2)420~422)のうちの1つ以上に結合させることができ、特定のデータ線の電圧または電流を検知することにより、それぞれのデータ線の各メモリセルの状態を検出することができる。
【0039】
1つ以上のプログラミングパルス(例えば、Vpgm)の印加の間に、検証動作を遂行して、選択されたメモリセルがその意図されたプログラム状態に達したかどうかを判定することができる。選択されたメモリセルが意図されたプログラム状態に達した場合、そのメモリセルをそれ以上プログラミングすることを禁止することができる。選択されたメモリセルが意図されたプログラム状態に達していない場合は、追加のプログラミングパルスを印加することができる。選択されたメモリセルが特定の数のプログラミングパルス(例えば、最大数)の後で意図されたプログラム状態に達していない場合、選択されたメモリセル、またはそのような選択されたメモリセルに関連したストリング、ブロックもしくはページは、不良としてマークすることができる。
【0040】
メモリセルまたはメモリセルのグループを消去する(例えば、消去は、典型的には、ブロックまたはサブブロックで遂行される)ためには、対象となるメモリセルのワード線をグラウンド電位(例えば、Vss)などの電位に保持している間に、消去電圧(Vers)(例えば、典型的には、Vpgm)を、(例えば、1つ以上のビット線、選択ゲートなどを使用して)消去対象のメモリセルの基板(したがって、ソースとドレインとの間のチャネル)に印加することにより、対象となるメモリセルのフローティングゲートからチャネルへの電荷移動(例えば、直接注入またはファウラーノルドハイム(FN)トンネリングなど)を生じさせることができる。
【0041】
図5は、複数のメモリセル504を有するメモリアレイ502及び、メモリアレイ502との通信を提供するか、またはメモリアレイ502上で1つ以上のメモリ動作を遂行する1つ以上の回路または構成要素を含むメモリデバイス500の例示的なブロック図を示す。単一のメモリアレイ502を用いて示されているが、他の実施例では、1つ以上の追加のメモリアレイ、ダイまたはLUNをここに含めることができる。特定の実施例では、いくつかのダイまたはLUNを有するストレージシステムにおいて、メモリデバイス500は、各ダイまたはLUNのための回路及び構成要素のブロック図を表すことができる。メモリデバイス500は、行デコーダ512、列デコーダ514、センスアンプ520、ページバッファ522、セレクタ524、入力/出力(I/O)回路526、及びメモリ制御ユニット530を含むことができる。
【0042】
メモリアレイ502のメモリセル504は、第1及び第2のブロック502A、502Bなどのブロックに配置することができる。各ブロックは、サブブロックを含むことができる。例えば、第1のブロック502Aは、第1及び第2のサブブロック502A0、502Anを含むことができ、第2のブロック502Bは、第1及び第2のサブブロック502B0、502Bnを含むことができる。各サブブロックは、いくつかの物理ページを含むことができ、各ページは、いくつかのメモリセル504を含む。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックはいくつかのメモリセル504を有するものとして示されているが、他の実施例では、メモリアレイ502は、より多くのまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の実施例では、メモリセル504は、いくつかの行、列、ページ、サブブロック、ブロックなどに配置することができ、例えば、アクセス線506、第1のデータ線510、または1つ以上の選択ゲート、ソース線などを使用してアクセスすることができる。
【0043】
メモリ制御ユニット530は、例えば、所望の動作(例えば、書き込み、読み出し、消去など)を示す1つ以上のクロック信号もしくは制御信号、または1つ以上のアドレス線516で受信されたアドレス信号(A0~AX)を含む、制御線532で受信された1つ以上の信号または命令に従ってメモリデバイス500のメモリ動作を制御することができる。メモリデバイス500の外部の1つ以上のデバイスは、制御線532上の制御信号の値、またはアドレス線516上のアドレス信号の値を制御することができる。メモリデバイス500の外部のデバイスの例には、限定されないが、ホスト、メモリコントローラ、プロセッサ、または
図5に示されていない1つ以上の回路もしくは構成要素を含めることができる。
【0044】
メモリデバイス500は、アクセス線506及び第1のデータ線510を使用して、メモリセル504のうちの1つ以上へのデータの転送(例えば、書き込みもしくは消去)またはメモリセル504のうちの1つ以上からのデータの転送(例えば、読み出し)が可能である。行デコーダ512及び列デコーダ514は、アドレス線516からアドレス信号(A0~AX)を受信及びデコードすることができ、どのメモリセル504にアクセスすべきかを決定することができ、上述したような、アクセス線506(例えば、複数のワード線(WL0~WLm)のうちの1つ以上)または第1のデータ線510(例えば、複数のビット線(BL0~BLn)のうちの1つ以上)のうちの1つ以上に信号を提供することができる。
【0045】
メモリデバイス500は、第1のデータ線510を使用してメモリセル504上の(例えば、読み出す)データの値を決定するか、またはそのメモリセルに書き込まれるべきデータの値を決定するように構成された、センスアンプ520などのセンス回路を含むことができる。例えば、メモリセル504の選択されたストリングで、センスアンプ520のうちの1つ以上は、メモリアレイ502内を選択されたストリングを通ってデータ線510に流れる読み出し電流に応答して、選択されたメモリセル504における論理レベルを読み出すことができる。
【0046】
メモリデバイス500の外部の1つ以上のデバイスは、I/O線(DQ0~DQN)508、アドレス線516(A0~AX)、または制御線532を使用してメモリデバイス500と通信することができる。入力/出力(I/O)回路526は、例えば、制御線532及びアドレス線516に従って、I/O線508を使用して、ページバッファ522またはメモリアレイ502の内外など、メモリデバイス500の内外にデータの値を転送することができる。ページバッファ522は、データがメモリアレイ502の関連部分にプログラムされる前に、メモリデバイス500の外部の1つ以上のデバイスから受信されたデータを記憶することができるか、またはデータがメモリデバイス500の外部の1つ以上のデバイスに送信される前に、メモリアレイ502から読み出されたデータを記憶することができる。
【0047】
列デコーダ514は、アドレス信号(A0~AX)を受信し、それらをデコードして1つ以上の列選択信号(CSEL1~CSELn)にすることができる。セレクタ524(例えば、選択回路)は、列選択信号(CSEL1~CSELn)を受信し、メモリセル504から読み出されるべきか、またはメモリセル504にプログラムされるべきデータの値を表すページバッファ522内のデータを選択することができる。選択されたデータは、第2のデータ線518を使用して、ページバッファ522とI/O回路526との間で転送することができる。
【0048】
メモリ制御ユニット530は、外部ソースまたは電源(例えば、内部または外部バッテリ、AC-DCコンバータなど)から、電源電圧(Vcc)534及び負電源(Vss)536(例えば、グラウンド電位)などの正及び負の電源信号を受信することができる。特定の実施例では、メモリ制御ユニット530は、正または負の電源信号を内部的に提供するためのレギュレータ528を含むことができる。
【0049】
図6は、本明細書で論じられる技術(例えば、方法論)のうちの任意の1つ以上が遂行され得る例示的なマシン(例えば、ホストシステム)600のブロック図を示す。代替の実施形態では、マシン600は、スタンドアロンデバイスとして動作し得るか、または他のマシンに接続(例えば、ネットワーク化)され得る。ネットワーク化された配備では、マシン600は、サーバクライアントネットワーク環境で、サーバマシン、クライアントマシン、またはその両方の能力で動作し得る。一実施例では、マシン600は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能し得る。マシン600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって取られるべきアクションを指定する命令(シーケンシャルまたはその他の方法)を実行することが可能な任意のマシンであり得る。さらに単一のマシンしか示していないが、用語「マシン」は、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの本明細書で説明される方法論のうちの任意の1つ以上の方法論を遂行するために命令のセット(または複数のセット)を個別にまたは共同で実行するマシンの任意の集合を含むと解釈されるものとする。
【0050】
本明細書で説明される実施例は、論理、構成要素、デバイス、パッケージ、もしくは機構を含み得るか、またはそれらによって動作し得る。電子回路は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。電子回路の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。電子回路は、単独でまたは組み合わせて、動作時に特定のタスクを遂行し得る構成要素を含む。一実施例では、電子回路のハードウェアは、特定の動作(例えば、ハードワイヤード)を行うように不変に設計され得る。一実施例では、電子回路のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、磁気的、電気的、不変質量粒子の可動配置など)コンピュータ可読媒体を含む、可変的に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に電子回路の構成要素を作り、動作中に特定のタスクの一部を行うことが可能となる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、電子回路の他の構成要素に通信可能に結合される。一実施例では、物理的構成要素のいずれかが、複数の電子回路の複数の構成要素で使用され得る。例えば、動作中、実行ユニットは、ある時点で第1の電子回路の第1の回路で使用され得、別の時点で第1の電子回路の第2の回路によって、または第2の電子回路の第3の回路によって再利用され得る。
【0051】
マシン(例えば、コンピュータシステム、ホストシステムなど)600は、処理デバイス602(例えば、ハードウェアプロセッサ、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組み合わせなど)、メインメモリ604(例えば、読み出し専用メモリ(ROM)、シンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(例えば、スタティックランダムアクセスメモリ(SRAM)など)、及びストレージシステム618を含み得、これらの一部または全ては、通信インターフェース(例えば、バス)630を介して互いに通信し得る。
【0052】
処理デバイス602は、マイクロプロセッサ、中央処理ユニットなどのような1つ以上の汎用処理デバイスを表すことができる。より具体的には、処理デバイスは、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、もしくは他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。処理デバイス602はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどのような1つ以上の専用処理デバイスとすることができる。処理デバイス602は、本明細書で論じられる動作及びステップを遂行するための命令626を実行するように構成することができる。コンピュータシステム600は、ネットワーク620を経由して通信するためのネットワークインターフェースデバイス608をさらに含むことができる。
【0053】
ストレージシステム618は、本明細書で説明される方法論または機能のうちの任意の1つ以上を具体化する命令626またはソフトウェアの1つまたは複数のセットが記憶される機械可読記憶媒体(コンピュータ可読媒体としても知られる)を含むことができる。命令626はまた、メインメモリ604内または処理デバイス602内に、コンピュータシステム600による当該処理デバイスの実行中に完全にまたは少なくとも部分的に存在することができ、メインメモリ604及び処理デバイス602はまた、機械可読記憶媒体を構成する。
【0054】
用語「機械可読記憶媒体」は、1つ以上の命令セットを記憶する単一の媒体もしくは複数の媒体、または機械によって実行するための命令のセットを記憶もしくはエンコードすることができ、本開示の方法論のうちの任意の1つ以上を機械に遂行させる任意の媒体を含むと解釈されるべきである。したがって、用語「機械可読記憶媒体」は、限定されないが、ソリッドステートメモリ、光学媒体、及び磁気媒体を含むと解釈されるものとする。一実施例では、密集した(massed)機械可読媒体は、不変(例えば、静止)質量を有する複数の粒子を有する機械可読媒体を含む。したがって、密集した機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な実施例には、半導体メモリデバイス(例えば、電気的プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM))及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクが含まれ得る。
【0055】
マシン600は、ディスプレイユニット、英数字入力デバイス(例えば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス(例えば、マウス)をさらに含み得る。一実施例では、ディスプレイユニット、入力デバイス、またはUIナビゲーションデバイスのうちの1つ以上は、タッチスクリーンディスプレイであり得る。マシンは、信号生成デバイス(スピーカなど)、または全地球測位システム(GPS)センサ、コンパス、加速度計もしくは1つ以上の他のセンサなどの1つ以上のセンサ。マシン600は、1つ以上の周辺デバイス(例えば、プリンタ、カードリーダなど)と通信するか、またはそれらを制御するためのシリアル(例えば、ユニバーサルシリアルバス(USB)、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラを含み得る。
【0056】
ストレージシステム618に記憶されている命令626(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、処理デバイス602による使用のためにメインメモリ604によってアクセスすることができる。メインメモリ604(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期ストレージに適しているストレージシステム618(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン600によって使用されている命令626またはデータは、典型的には、処理デバイス602による使用のためにメインメモリ604にロードされる。メインメモリ604が一杯になると、メインメモリ604を補うために、ストレージシステム618からの仮想空間を割り当てることができるが、ストレージシステム618のデバイスは、典型的には、メインメモリ604よりも遅く、書き込み速度は、典型的には、読み出し速度の少なくとも2倍遅いので、仮想メモリの使用は、(メインメモリ604、例えば、DRAMとは対照的に)ストレージシステムの遅延に起因してユーザ体験を大幅に低下させる可能性がある。さらに、仮想メモリのためのストレージシステム618の使用は、ストレージシステム618の使用可能な寿命を大幅に減少させる可能性がある。
【0057】
命令624はさらに、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインターフェースデバイス608を経由して伝送媒体を使用してネットワーク620を介して送信または受信され得る。通信ネットワークの実施例は、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格、WiMax(登録商標)として知られるIEEE802.16ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークを含み得る。一実施例では、ネットワークインターフェースデバイス608は、ネットワーク620に接続するための1つ以上の物理的ジャック(例えば、イーサネット、同軸ジャックもしくは電話ジャック)または1つ以上のアンテナを含み得る。一実施例では、ネットワークインターフェースデバイス608は、単一入力複数出力(SIMO)技術、複数入力複数出力(MIMO)技術、または複数入力単一出力(MISO)技術のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。用語「伝送媒体」は、マシン600による実行のための命令を記憶、符号化または搬送することができる任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためにデジタル通信信号またはアナログ通信信号もしくは他の無形媒体を含むと解釈されるものとする。
【0058】
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施することができる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも称される。こうした実施例は、図示または説明された要素以外の要素を含み得る。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者らは、本明細書に図示または説明された特定の実施例(もしくはその1つ以上の態様)に関して、または他の実施例(もしくはその1つ以上の態様)に関して、図示または説明されたそれらの要素(もしくはその1つ以上の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
【0059】
本書中に参照される全ての出版物、特許、及び特許文書は、あたかも参照により個別に援用されているかのように、その全体が参照により本明細書に援用される。本書と参照により援用されるそれらの文書との間に一致しない用法がある場合、援用された参考文献(複数可)の用法は、本書の使用に対する補足と見なされるべきである。解決できない不一致の場合、本書における用法が支配する。
【0060】
本書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または使用法とは関係なく、1つまたは複数を含むために使用される。本書では、用語「または(or)」は、非排他的を指す、つまり別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではなく(A but not B)」、「BであるがAではなく(B but not A)」、及び「A及びB(A and B)」を含むように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「~において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の均等物として使用される。また、以下の特許請求の範囲では、用語「含む(including)」及び「備える(comprising)」は非限定型である。つまり、請求項の中のそのような用語の後に記載される要素以外の要素を含むシステム、デバイス、物品、またはプロセスは、さらに、その請求項の範囲内に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第1の」、「第2の」、及び「第3の」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
【0061】
様々な実施例では、本明細書に記載される構成要素、コントローラ、プロセッサ、ユニット、エンジンまたはテーブルは、とりわけ、物理的電子回路、または物理デバイスに記憶されるファームウェアを含むことができる。本明細書で使用される「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、またはプロセッサもしくはマルチコアデバイスのグループを含む任意の他のタイプのプロセッサもしくは処理回路などの任意のタイプの計算回路を意味する。
【0062】
本書で使用される用語「水平」は、任意の時点での基板の実際の向きに関係なく、ウェーハまたはダイの下にあるものなど、基板の従来の平面または表面に平行な平面として定義される。用語「垂直」は、上記で定義された水平に直角な方向を指す。「上に(on)」、「上方に(over)」、及び「下に(under)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面にある従来の平面または表面に関して定義され、一方、(反対の明示的な指示がない場合)「上に(on)」は、「上(on)」にある別の構造に対するある構造の直接接触を示唆することを意図している。用語「上方に(over)」及び「下に(under)」は、構造(または層、特徴など)の相対的配置を識別することを明示的に意図しており、そのように具体的に識別されない限り、識別された構造間の直接接触を明示的に含むが、これらに限定されない。同様に、用語「上方に(over)」及び「下に(under)」は水平配向に限定されない。というのも、構造が、水平配向ではなく参照される構造に対して垂直方向に延在しても、こうした構造はある時点で議論中の構造の最外部である場合、参照された構造の「上方に(over)」にあり得るためである。
【0063】
用語「ウェーハ」及び「基板」は、本明細書では、一般に、集積回路が形成される任意の構造と、集積回路の製造の様々な段階の期間のこうした構造とをも指すために使用される。したがって、以下の詳細な説明は、限定的な意味において解釈されず、様々な実施形態の範囲は、添付の特許請求の範囲だけによって、特許請求の範囲によって権利が与えられる均等物の全範囲と一緒に定義される。
【0064】
本開示による及び本明細書に記載される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される、方向に関する形容詞は、メモリセルが形成される基板の表面に対するものとして解釈される(すなわち、垂直構造は基板表面から離れて延在すると解釈され、垂直構造の底端は基板表面に最も近い端と解釈され、垂直構造の上端は基板表面から最も遠い端と解釈される)。
【0065】
本明細書で使用される、水平、垂直、垂線、平行、直角などの方向に関する形容詞は、相対配向を指し得、特に明記しない限り、特定の幾何学的特性への厳密な順守を要求することを意図しない。例えば、本明細書で使用される垂直構造は、基板の表面に厳密に垂直である必要はないが、代わりに、基板の表面に略垂直であり得、基板の表面に対して鋭角(例えば、60~120度など)を形成し得る。
【0066】
本明細書で説明されるいくつかの実施形態では、異なるドーピング構成が、選択ゲートソース(SGS)、制御ゲート(CG)、及び選択ゲートドレイン(SGD)に適用され得、これらのそれぞれは、この実施例では、ポリシリコンで形成され得るか、または少なくともポリシリコンを含み得、その結果、これらの層(例えば、ポリシリコンなど)は、エッチング液にさらされたときに異なるエッチング速度を有し得る。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスでは、SGS及びCGが凹部を形成し得る一方、SGDは凹部が少ないままであり得るか、または凹部が存在すらしないままであり得る。したがって、これらのドーピング構成は、エッチング液(例えば、テトラメチルアンモニウムヒドロキシド(TMCH))を使用することによって、3D半導体デバイスの別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
【0067】
本明細書で使用されるメモリセルの動作は、メモリセルからの読み出し、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図された状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(すなわち、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
【0068】
要素が別の要素の「上にある(on)」、別の要素に「接続されている(connected to)」、または別の要素と「結合されている(coupled with)」と称されるとき、その要素は、他の要素の上に直接あり得るか、直接接続され得るか、もしくは直接結合され得るか、または介在要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続されている(directly connected to)」、または別の要素と「直接結合されている(directly coupled with)」と称されるとき、介在要素または層は存在しない。2つの要素がそれらを接続する線で図面に示されている場合、別段の指示がない限り、2つの要素は結合が可能であるか、または直接結合が可能であるかのいずれかである。
【0069】
本明細書で説明される方法の実施例は、少なくとも部分的に、マシンまたはコンピュータに実装することができる。いくつかの実施例は、上記の実施例で説明された方法を遂行するために電子デバイスを構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含むことができる。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのコードを含み得る。このようなコードは、様々な方法を遂行するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つ以上の揮発性または不揮発性の有形コンピュータ可読媒体に有形で記憶させることができる。これらの有形のコンピュータ可読媒体の実施例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)などを含むことができる。
【0070】
実施例1は、メモリアレイと、メモリコントローラであって、メモリコントローラが、ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示す1つ以上のロード入力を受信することと、1つ以上のロード入力を受信した後、ファームウェアをロードすることに失敗した試行の回数を示す1つ以上のリロードステータス入力を受信することと、1つ以上のリロードステータス入力が、失敗した試行の回数がプログラム可能な閾値に達したことを示している場合、メモリデバイスを低電力状態にすることと、を含む動作を遂行するようにプログラムされているメモリコントローラとを含むメモリデバイスである。
【0071】
実施例2では、実施例1の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのクロックを停止することを含むように構成される。
【0072】
実施例3では、実施例1の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのクロックを抑制することを含むように構成される。
【0073】
実施例4では、実施例1の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスを保護状態にすることを含むように構成される。
【0074】
実施例5では、実施例1の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスの選択された電力ドメインへの電力をゲートオフすることを含むように構成される。
【0075】
実施例6では、実施例1の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのための電圧制御を使用することを含むように構成される。
【0076】
実施例7では、実施例1~6のいずれかの主題は、任意選択で、ファームウェアアクティビティトラッカが読み出し専用メモリ(ROM)の一部を含むように構成される。
【0077】
実施例8では、実施例1~7のいずれかの主題は、任意選択で、メモリデバイスが、ファームウェアをロードすることに失敗した試行の回数を追跡するように構成されたカウンタを含むように構成される。
【0078】
実施例9では、実施例1~8のいずれかの主題は、任意選択で、1つ以上のリロードステータス入力が、ファームウェアをロードすることに失敗した試行の経過時間を示し、1つ以上のリロードステータス入力が、経過時間がタイムアウト閾値に達したことを示している場合、メモリデバイスを低電力状態にするように構成される。
【0079】
実施例10では、実施例9の主題は、任意選択で、メモリデバイスが、ファームウェアをロードすることに失敗した試行の経過時間を追跡するように構成されたタイマを含むように構成される。
【0080】
実施例11は、メモリアレイと、メモリコントローラであって、メモリコントローラが、ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示す1つ以上のロード入力を受信することと、1つ以上のロード入力を受信した後、ファームウェアをロードすることに失敗した試行の経過時間を示す1つ以上のリロードステータス入力を受信することと、1つ以上のリロードステータス入力が、経過時間がタイムアウト閾値に達したことを示している場合、メモリデバイスを低電力状態にすることと、を含む動作を遂行するようにプログラムされているメモリコントローラと、を含むメモリデバイスである。
【0081】
実施例12では、実施例11の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのクロックを停止することを含むように構成される。
【0082】
実施例13では、実施例11の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのクロックを抑制することを含むように構成される。
【0083】
実施例14では、実施例11の主題は、任意選択で、メモリコントローラが、ブートストラッププログラムを使用してプログラムされるようになっている。
【0084】
実施例15では、実施例11の主題は、任意選択で、メモリデバイスが、ファームウェアをロードすることに失敗した試行の経過時間を追跡するように構成されたタイマを含むように構成される。
【0085】
実施例16は、プロセッサによって実行されるとき、プロセッサに、ファームウェアの第1のインスタンスが正常にロードされていないか、またはロードされたが有効かつ動作可能でないことのいずれかを示す1つ以上のロード入力を受信することと、1つ以上のロード入力を受信した後、ファームウェアをロードすることに失敗した試行の回数を示す1つ以上のリロードステータス入力を受信することと、1つ以上のリロードステータス入力が、失敗した試行の回数がプログラム可能な閾値に達したことを示している場合、メモリデバイスを低電力状態にすることと、を含む動作を遂行させる命令を提供するデバイス可読ストレージ媒体である。
【0086】
実施例17では、実施例16の主題は、任意選択で、ファームウェアアクティビティトラッカが読み出し専用メモリ(ROM)の一部を含むように構成される。
【0087】
実施例18では、実施例16または実施例17の主題は、任意選択で、ファームウェアアクティビティトラッカが、ファームウェアをロードすることに失敗した試行の回数を追跡するように構成されたカウンタを含むように構成される。
【0088】
実施例19では、実施例16~18の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスの選択された電力ドメインへの電力をゲートオフすることを含むように構成される。
【0089】
実施例20では、実施例19の主題は、任意選択で、メモリデバイスを低電力状態にすることが、メモリデバイスのための電圧制御を使用することを含むように構成される。
【0090】
実施例21は、少なくとも1つの機械可読媒体であって、処理電子回路によって実行されるとき、実施例1~20のいずれかを実現するための動作を処理電子回路に遂行させる命令を含む、少なくとも1つの機械可読媒体である。
【0091】
実施例22は、実施例1~20のいずれかを実施するための手段を含む装置である。
【0092】
実施例23は、実施例1~20のいずれかを実施するためのシステムである。
【0093】
実施例24は、実施例1~20のいずれかを実施するための方法である。
【0094】
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つ以上の態様)は、相互に組み合わせて使用され得る。上記説明の検討時、当業者などによって他の実施形態を使用することができる。要約は、読者が技術的開示の本質を迅速に把握することができるように、37CFR§1.72(b)に準拠するように提供される。これは、特許請求の範囲の範囲または意味を解釈するためにも限定するためにも使用されないとの理解の元に提示される。また、上記の発明を実施するための形態では、様々な特徴が本開示を効率化するために一緒にグループ化され得る。これは、特許請求されていない開示された特徴がいずれかの請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態の全ての特徴に満たないものに存在し得る。したがって、次の特許請求の範囲は発明を実施するための形態にここで組み込まれ、各請求項は別個の実施形態として自立しており、このような実施形態は、様々な組み合わせまたは変形で相互に組み合わせることができると想到される。本発明の範囲は、添付の特許請求の範囲に関して、こうした特許請求の範囲によって権利が与えられる均等物の全範囲と共に決定されるべきである。