(58)【調査した分野】(Int.Cl.,DB名)
前記コントローラは、前記データのサイズがサイズ閾値未満であることに応答して、前記データを書き込むための前記第3のブロックを判定するように構成されている、請求項3に記載の装置。
前記コントローラは、前記データのサイズが前記サイズ閾値を超えることに応答して、前記データを書き込むための前記第4のブロックを判定するように構成されている、請求項4に記載の装置。
前記方法は、データが書き込まれる温度範囲が、前記書き込まれるデータと共にインジケータを格納することなく分かるように、ブロックごとの単位で、前記複数の異なる温度範囲を追跡することを含む、請求項7に記載の方法。
前記方法は、前記第2の動作温度が前記第3の動作温度範囲の範囲内であるという前記判定に応答して、前記第1のブロックタイプの閉じたブロックでガベージコレクションを実行することを含む、請求項12に記載の方法。
前記方法は、前記第2の動作温度が前記第3の動作温度範囲の範囲内にないという判定に応答して、前記第1のブロックタイプの閉じたブロックから、前記第2のブロックタイプの少なくとも1つの空きブロックにデータをフォールディングしないこと、及び前記第1のブロックタイプの閉じたブロックでガベージコレクションを実行しないことを含む、請求項12に記載の方法。
【発明を実施するための形態】
【0005】
メモリデバイスは、ストレージデバイスを、他にも様々なものがあるが、中でも、ソリッドステートドライブ(SSD)、組み込み用マルチメディアカード(eMMC)デバイス、及び/またはユニバーサルフラッシュストレージ(UFS)デバイスを形成するために、一体に組み合わされ得る。例えば、そのようなデバイスは、いくつかのメモリチップを含むことができ、これらのメモリチップは、いくつかのダイ及び/または論理ユニット(LUN)を含むことができる。各ダイは、その上にいくつかのメモリアレイ及び周辺回路を含み得る。メモリアレイは、いくつかの物理ページに編成されたいくつかのメモリセルを含むことができ、この物理ページは、いくつかのブロックに編成され得る。
【0006】
本開示は、温度ベースのメモリ動作を提供するために利用され得る装置及び方法を含む。一例として、装置は、メモリデバイスと、このメモリデバイスに結合され、装置の動作温度を判定すること、装置の動作温度に基づいてデータを書き込むために、メモリデバイスの複数の指定された開ブロックのうちの1つを判定すること、及びメモリデバイスの複数の指定されたブロックのうちの判定された1つにデータを書き込むことを行うように構成されたコントローラとを含み得る。
【0007】
先述のように、一部の用途に用いられるメモリ(例えば、eMMC、UFS、SSDなど)は、動作温度が変動する可能性がある。例えば、動作温度が変動する用途には、他のアプリケーションの中でも特に、自動車、航空、及び監視が含まれ得る。このような変動する動作温度には、広範囲の温度が含まれてもよい。例えば、メモリデバイスの変動する動作温度は、他にも様々な動作温度があるが、特に、−40℃〜125℃であってもよい。NANDフラッシュメモリは、温度に敏感であり得る。例えば、NANDフラッシュメモリでは、第1の温度でデータを書き込んだ後、第1の温度とは異なる第2の温度でデータを読み出すとき、データの書き込みと、その後のデータの読み出しとを同じ温度で行う場合と比較して、生のビット不良率(RBER)が増加する場合がある。
【0008】
以前のアプローチの中には、温度補償方式(例えば、組み込まれた温度補償方式)を利用しているものもある。組み込みの温度補償方式は、NANDの現下の温度に基づいて読み出し電圧を調節するのに利用される。しかしながら、NANDフラッシュメモリで生じる電圧シフトは、特に、例えば、自動車用途で遭遇するような極端な異温度条件では、内部の読み出し電圧調節と相関関係を持たない場合がある。そのため、極端な異温度条件下では、NANDフラッシュメモリに、RBERの増加を招く、読み出し電圧位置に対する電圧分布シフトが生じ得る。その上、マルチレベルセルの状況では、RBERに対する電圧分布シフトの影響がさらに大きくなる可能性がある。
【0009】
RBERが増加すると、故障ビットの量を増やす訂正可能なエラー、及び/または訂正不可能なエラーがもたらされ得る。故障ビットの量を増やす訂正可能なエラー、及び/または訂正不可能なエラーは、エラー処理動作及び/またはデータリフレッシュ動作の原因となる場合があり、どちらも性能の低下につながり得る。さらに、RBERが増加するとライトアンプリフィケーションが増加し、NANDフラッシュメモリの予想される使用寿命を減少させる場合がある。本開示の実施形態は、以前のアプローチに比べて、RBERを低減させるなどの便益を提供することができる。
【0010】
マルチレベルセル(MLC)ストレージは、シングルレベルセル(SLC)ストレージに比べて、記憶密度が高くなる。また一方、本明細書の実施形態は、特に温度が変動する状況において、SLCストレージによって提供される信頼性を活かすことができる。先述のように、例えば、インフォテインメントシステム、インストルメントクラスタシステム、及びブラックボックスデータ記録システムなどを含む自動車用途では、動作温度の変動が生じる。本開示の実施形態は、動作温度を考慮に入れ、それに応じて書き込み方式を選択することができる。
【0011】
例えば、ある実施形態は、書き込み温度を追跡すること、及び複数の温度範囲を識別することを含み得る。なお、本明細書では3つの温度範囲について折々に論じられるが、そのような論考は限定的な意味に取られるべきではないことを理解すべきである。そして、他の量の動作範囲は、本開示に従う。3つの温度範囲の例では、3つの温度範囲は、低T、中間T、及び高Tとラベル付けされ得る。低T及び高Tにおいて、本明細書の実施形態は、データ(例えば、ホストデータ)をSLCのみに書き込み得る。中間Tにおいて、本明細書の実施形態は、例えば、データのサイズなどの要因に応じて、SLCまたはMLCのいずれかにデータを書き込み得る。また、中間Tでは、本明細書の実施形態は、SLCデータがMLCデータに書き換えられるフォールディング動作及び/またはガベージコレクション動作を実行することができる。言い換えれば、低温または高温が中温に戻るとき、以前に書き込まれたSLCデータがMLCデータに変換され得る。したがって、本開示による実施形態は、低温及び高温でのSLCの信頼性を利用することができ、MLCによって提供される増大した記憶能力を利用することもできる。
【0012】
本開示の実施形態は、メモリデバイスの温度範囲を、自動車の状況で遭遇する温度範囲に拡張することができる。例えば、ある実施形態では、メモリ動作は、−40℃〜125℃の間で実行され得る。本明細書の実施形態は、以前のアプローチと比べて、デバイスの信頼性が向上する(例えば、エラーが減少する)などの便益を提供することができる。
【0013】
本開示の以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照し、本開示の1つ以上の実施形態がどのようにして実施され得るかを、その図面に実例として示す。これらの実施形態は、当業者が本開示の実施形態を実施できるようにするために十分詳細に説明しており、本開示の範囲から逸脱することなく、他の実施形態を利用してもよいこと、及びプロセス変更、電気的変更、及び/または構造的変更を行ってもよいことを理解すべきである。
【0014】
本明細書で使用するとき、特に図中の参照番号に関する「N」、「M」、及び「X」という指定子は、そのように指定されるいくつかの特定の特徴を、本開示の1つ以上の実施形態に含み得ることを示す。さらに、本明細書で使用するとき、「いくつかの」あるものは、1つ以上のそのようなもののことを指し得る。例えば、いくつかのメモリデバイスは、1つ以上のメモリデバイスのことを指し得る。
【0015】
本明細書の図は、最初の桁が図面の図番号に対応し、残りの桁が図面中の要素または構成要素を識別する番号付けの規則に従う。種々の図の間の同様の要素または構成要素を、同様の数字を使用することによって識別する場合がある。例えば、120は、
図1の要素「20」を参照することができ、同様の要素を、
図2の220として参照することができる。理解されるように、本明細書の様々な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するために、追加、交換、及び/または削除を行ってもよい。さらに、理解されるように、図に提供される要素の比率及び/または相対的な大きさは、本発明の実施形態を例示することを意図したものであり、限定的な意味に取るべきことではない。
【0016】
図1は、本開示のいくつかの実施形態による、いくつかの物理ブロックを有するメモリアレイ100の一部分の図を示す。メモリアレイ100は、例えば、NANDフラッシュメモリアレイであってもよい。しかしながら、本開示の実施形態は、特定のタイプのメモリまたはメモリアレイに限定されない。例えば、メモリアレイ100は、他にも様々なタイプのメモリアレイがあるが、その中でも、RRAMアレイ、PCRAMアレイ、または3Dクロスポイント技術を利用するアレイであってもよい。さらに、
図1には示していないが、メモリアレイ100は、その動作に関連する様々な周辺回路と共に特定の半導体ダイ上に配置され得る。
【0017】
図1に示すように、メモリアレイ100は、メモリセルのいくつかの物理ブロック116−0(ブロック0)、116−1(ブロック1)、・・・、116−B(ブロックB)を有する。メモリセルは、セルごとにシングルビットを格納するシングルレベルセル(SLC)、及び/またはセルごとにシングルビット以上を格納することができ、各セルが3つ以上の区別できる状態にプログラム可能なマルチレベルセル(MLC)であってもよい。例えば、MLCとしては、8つの区別できるセル状態にプログラム可能な3ビットセル(TLC)、または16の区別できるセル状態にプログラム可能な4ビットセル(QLC)があり得る。本明細書で使用するとき、用語MLCは、2ビットセル、3ビットセル、4ビットセルなどのマルチレベルセルのことを一般的に指すために使用され得る。メモリアレイ100内の物理ブロックの数を、128ブロック、512ブロック、または1024ブロックにしてもよいが、実施形態は、128の特定の倍数や、またはメモリアレイ100内の物理ブロックのどんな特定の数にも限定されない。第1の数のブロック116−0、116−1、・・・、116−Bが、メモリブロックの第1の部分またはプールとして割り当てられ得、第2の数のブロック116−0、116−1、・・・、116−Bが、メモリブロックの第2の部分またはプールとして割り当てられ得、及び/または第3の数のブロック116−0、116−1、・・・、116−Bが、メモリブロックの第3の部分またはプールとして割り当てられ得る。
【0018】
メモリセルのいくつかの物理ブロック(例えば、ブロック116−0、116−1、・・・、116−B)がメモリセル面内に含まれ得、いくつかのメモリセル面がダイ上に含まれ得る。例えば、
図1に示す例では、各物理ブロック116−0、116−1、・・・、116−Bは、単一のダイの一部であってもよい。すなわち、
図1に示すメモリアレイ100の一部は、メモリセルのダイであってもよい。
【0019】
図1に示すように、各物理ブロックは、アクセスライン(例えば、ワードライン)に結合されたメモリセルのいくつかの物理行(例えば、120−0、120−1、・・・、120−R)を含む。各物理ブロックの行(例えば、ワードライン)の数を32にしてもよいが、実施形態は、物理ブロック当たりの特定の行120−0、120−1、・・・、120−Rの数に限定されない。さらに、
図1には示さないが、メモリセルは、センスライン(例えば、データライン及び/またはディジットライン)に結合され得る。
【0020】
各行120−0、120−1、・・・、120−Rは、メモリセルのいくつかのページ(例えば、物理ページ)を含むことができる。物理ページとは、プログラミング及び/またはセンシングの単位(例えば、機能グループとしてまとめてプログラム及び/またはセンスされるいくつかのメモリセル)を指す。
図1に示す実施形態では、各行120−0、120−1、・・・、120−Rは、メモリセルの1つの物理ページを含む。ただし、本開示の実施形態はこれに限定されない。例えば、いくつかの実施形態では、各行は、メモリセルの複数の物理ページ(例えば、偶数番号のビットラインに結合されたメモリセルの1つ以上の偶数ページ、及び奇数番号のビットラインに結合されたメモリセルの1つ以上の奇数ページ)を含み得る。さらに、MLCを含む実施形態では、メモリセルの物理ページは、データの複数のページ(例えば、論理ページ)、例えば、データの上位ページとデータの下位ページのデータとを格納することができ、物理ページ中の各セルが、データの上位ページに対して1つ以上のビットを格納すると共に、データの下位ページに対して1つ以上のビットを格納する。
【0021】
プログラム動作(例えば、書き込み動作)は、選択されたワードラインに結合されている選択セルの閾値電圧(Vt)を、目標の(例えば、所望の)データ状態に対応する所望のプログラム電圧レベルに増加させるために、その選択されたワードラインにいくつかのプログラムパルス(例えば、16V〜20V)を印加することを含み得る。読み出し動作またはプログラム検証動作などのセンス動作は、選択されたセルのデータ状態を判定するために、この選択されたセルに結合されているセンスラインの電圧変化及び/または電流変化をセンスすることを含み得る。
【0022】
本開示のいくつかの実施形態では、
図1に示すように、メモリセルのページは、いくつかの物理セクタ122−0、122−1、・・・、122−S(例えば、メモリセルのサブセット)を含み得る。セルの各物理セクタ122−0、122−1、・・・、122−Sは、いくつかのデータの論理セクタ(例えば、データワード)を格納してもよい。さらに、データの各論理セクタは、データの特定のページの一部に対応することができる。一例として、特定の物理セクタに格納されたデータの第1の論理セクタが、データの第1のページに対応する論理セクタに対応してもよく、その特定の物理セクタに格納されたデータの第2の論理セクタが、データの第2のページに対応してもよい。各物理セクタ122−0、122−1、・・・、122−Sは、システムデータ及び/またはユーザデータを格納してもよく、及び/またはエラー訂正コード(ECC)データ、論理ブロックアドレス(LBA)データ、及び繰り返しエラーデータなどのオーバーヘッドデータを含んでもよい。
【0023】
論理ブロックアドレス指定は、データの論理セクタを識別するためにホストによって使用され得る方式である。例えば、各論理セクタが、一意の論理ブロックアドレス(LBA)に対応し得る。さらに、LBAが、物理アドレスに対応してもよい。データの論理セクタは、いくらかのデータのバイト(例えば、256バイト、512バイト、または1,024バイト)にすることができる。しかしながら、実施形態は、これらの例に限定されない。
【0024】
物理ブロック116−0、116−1、・・・、116−B、行120−0、120−1、・・・、120−R、セクタ122−0、122−1、・・・、122−S、及びページの他の構成が可能であることに留意されたい。例えば、物理ブロック116−0、116−1、・・・、116−Bの行120−0、120−1、・・・、120−Rが、それぞれ、例えば、4096バイトよりも多いかまたは少ないデータを含むことができる単一の論理セクタに対応するデータを格納してもよい。
【0025】
図2は、本開示のいくつかの実施形態による、メモリシステム204を備えるコンピューティングシステム201の形態の装置の機能ブロック図である。本明細書で使用するとき、「装置」とは、例えば、回路もしくは回路構成、1つもしくは複数のダイ、1つもしくは複数のモジュール、1つもしくは複数のデバイス、または1つもしくは複数のシステムなど、様々な構造のいずれかまたは構造の組み合わせを指し得るが、これらに限定されない。
【0026】
メモリシステム204は、例えば、eMMCデバイス、UFSデバイス、またはSSDであり得る。
図2に示す実施形態では、メモリシステム204は、ホストインタフェース206、メモリ(例えば、いくつかのメモリデバイス210−1、210−2、・・・、210−N)、及び物理ホストインタフェース206及びメモリデバイス210−1、210−2、・・・、210−Nに結合されたコントローラ208を含む。
【0027】
メモリデバイス210−1、210−2、・・・、210−Nは、例えば、いくつかの不揮発性メモリアレイ(例えば、不揮発性メモリセルのアレイ)を含んでもよい。例えば、メモリデバイス210−1、210−2、・・・、210−Nは、
図1に関連して前に述べたメモリアレイ100に類似しているいくつかのメモリアレイを含んでもよい。
【0028】
ある実施形態では、メモリデバイス210−1、・・・、210−Nは、メモリセル(例えば、不揮発性メモリセル)のいくつかのアレイを含み得る。アレイは、例えば、NAND構造を有するフラッシュアレイであってもよい。ただし、実施形態は、特定のタイプのメモリアレイまたはアレイ構造に限定されない。
図1に関連して上に述べたように、メモリセルは、例えば、メモリセルのいくつかの物理ページを含むいくつかのブロックにグループ化することができる。いくつかの実施形態では、ブロックは、ユニットとしてまとめて消去されるメモリセルのグループを指す。メモリセルの面内にいくつかのブロックを含むことができ、いくつかの面をアレイが含むことができる。一例として、メモリデバイスは、ページ当たり8KB(キロバイト)のユーザデータ、ブロック当たり128ページのユーザデータ、面当たり2048ブロック、及びデバイス当たり16面を格納するように構成されてもよい。別の例として、メモリデバイスは、ページ当たり16KBのユーザデータ、ブロック当たり512ページのユーザデータ、面当たり544ブロック、及びデバイス当たり2面を格納するように構成されてもよい。
【0029】
動作中、データは、例えば、データのページとして、メモリシステムのメモリデバイス(例えば、メモリシステム204のメモリデバイス210−1、・・・、210−N)に書き込まれ、及び/またはそのメモリデバイスから読み出すことができる。そのため、データのページは、メモリシステムのデータ転送サイズとして見なされ得る。データは、セクタ(例えば、ホストセクタ)と呼ばれるデータセグメントずつ、ホスト202との間で転送することができる。そのため、データのセクタは、ホストのデータ転送サイズとして見なされ得る。ある実施形態では、NANDブロックが消去ブロックとして見なされる場合があり、ブロックが消去の単位であり、かつページが読み出し及び/または書き込みの分量である。
【0030】
ホストインタフェース206は、メモリシステム204とホスト202などの別のデバイスとの間で情報を通信するのに用いることができる。ホスト202は、メモリアクセスデバイス(例えば、プロセッサ)を含み得る。本明細書で使用するとき、「プロセッサ」は、並列処理システムや、いくつかのコプロセッサなどの、いくつかのプロセッサを意図し得る。ホストの例には、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録再生デバイス、携帯電話(例えば、スマートフォン)、PDA、メモリカードリーダ、インタフェースハブなどが含まれ得る。
【0031】
ホストインタフェース206は、好適なプロトコル及び/または仕様に準拠する標準化された物理インタフェースの形態であってよい。例えば、メモリシステム204がコンピューティングシステム201の情報ストレージに使用される場合、ホストインタフェース206は、他にも様々なインタフェースがあるが、その中でも、eMMCインタフェース、UFSインタフェース、シリアル・アドバンスド・テクノロジ・アタッチメント(SATA)インタフェース、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)インタフェース、ユニバーサルシリアルバス(USB)インタフェースであってもよい。また一方、一般に、ホストインタフェース206は、メモリシステム204と、ホストインタフェース206に対する互換性のある受容器を有するホスト(例えば、ホスト202)との間で、制御、アドレス、情報(例えば、データ)、及びその他の信号を受け渡すためのインタフェースを提供することができる。
【0032】
コントローラ208は、例えば、制御回路及び/または制御ロジック(例えば、ハードウェア及びファームウェア)を含み得る。コントローラ208は、メモリ210−1、210−2、・・・、210−Nと同じ物理的デバイス(例えば、同じダイ)に搭載することができる。例えば、コントローラ208は、物理ホストインタフェース206及びメモリ210−1、210−2、・・・、210−Nを含むプリント回路基板に結合された特定用途向け集積回路(ASIC)であってもよい。あるいは、コントローラ208は、メモリ210−1、210−2、・・・、210−Nを含む物理的デバイスに通信可能に結合された別個の物理的デバイスに搭載してもよい。いくつかの実施形態では、コントローラ208の構成要素を、分散コントローラとして、複数の物理的デバイス(例えば、メモリと同じダイ上の何らかの構成要素、及び異なるダイ、モジュール、またはボード上の何らかの構成要素)に散在させてもよい。
【0033】
コントローラ208は、メモリデバイス210−1、210−2、・・・、210−Nと通信して、他にも様々な動作があるが特に、情報のセンス(例えば、読み出し)、プログラム(例えば、書き込み)、及び/または消去を行うことができる。コントローラ208は、いくつかの集積回路及び/または別々の構成要素であり得る回路構成を有してもよい。いくつかの実施形態では、コントローラ208内の回路構成は、メモリデバイス210−1、210−2、・・・、210−N全体にわたってアクセスを制御するための制御回路構成、及び/またはホスト202とメモリシステム204との間に変換層(例えば、フラッシュ変換層)を提供するための回路構成を含み得る。
【0034】
コントローラ208は、ブロックアドレス指定部分などの、それぞれの個別のメモリデバイス210−1、210−2、・・・、210−Nの専用領域の動作を、静的(例えば、専用)シングルレベルセル(SLC)キャッシュ及び/または動的SLCキャッシュとして(例えば、それぞれの個別のメモリデバイス210−1、210−2、・・・、210−Nの一部分が、静的SLCキャッシュ及び/または動的SLCキャッシュとして動作する構成となるように)制御することができる。例えば、それぞれの個別のメモリデバイス210−1、210−2、・・・、210−Nの一部分が、SLCモードで静的キャッシュとして、及び/またはSLCモードで動的キャッシュとして動作するように構成してもよい。それぞれの個別のメモリデバイス210−1、210−2、・・・、210−Nのこの部分を、例えば、それぞれの個別のメモリにおけるメモリセルの第1の複数ブロック(例えば、物理ブロック)としてもよく、本明細書では、メモリの第1の部分と呼ぶことがある。さらに、それぞれの個別のメモリデバイス210−1、210−2、・・・、210−Nの部分は、第2の複数ブロック、第3の複数ブロックなどを含むことがある。
【0035】
本明細書で使用するとき、MLCメモリ(例えば、MLC)とは、3つ以上のデータ状態のうちの対象となる1つにプログラムすることができるメモリ(例えば、メモリセル)(例えば、1ビット以上のデータを格納できるメモリセル)のことを指す場合がある。例えば、MLCメモリは、セル当たり2ビットのデータを格納するメモリセル、セル当たり3ビットのデータを格納するメモリセル(例えば、TLC)、及び/またはセル当たり4ビットのデータを格納するメモリセル(例えば、QLC)を指す場合がある。
【0036】
ある実施形態では、静的SLCブロックは、MLCモードでは決してプログラムされない。例えば、ある実施形態では、静的SLCブロックのSLC耐久性を、MLC消耗率とは無関係に高めることができる。適宜に、混合モードブロックを、SLCモードまたはMLCモードで互換的に使用してよい。ある実施形態では、SLCモードで混合モードブロックを使用するとき、MLC消耗率はSLC耐久性に関係なく増加し得る。ある実施形態では、静的SLCブロックについては、MLC消耗率とは無関係に、高いSLC耐久性が達成され得るが、混合モードブロックについては、高いMLC率と相まって低いSLC耐久性が達成され得る。単一のSLCトリム設定を使用する混合モードブロックでは、高いMLC消耗率と相まって低いSLC耐久性が達成され得る。ある実施形態では、MLCモードで消去された混合モードブロックは、SLCモードでプログラムするために使用することができ、SLCモードで消去された混合モードブロックは、MLCモードでプログラムするために使用することができない。
【0037】
ある実施形態では、コントローラ208は、複数のメモリブロックのうちのメモリブロックに関連する特定のメモリブロックがシングルレベルセル(SLC)モードで書き込まれるべきであることを判定し、この特定のメモリブロックがSLCモードで書き込まれるべきであるという判定に応答して、その特定のメモリブロックに格納されたデータをSLCモードで消去するように構成され得る。特定のメモリブロックは、ホストメモリブロックであってもよく、及び/または特定のブロックがSLCモードで書き込まれるべきであるという判定の前に、MLCモードで書き込まれていてもよい。
【0038】
ある実施形態では、コントローラ208は、特定のブロックに格納されたデータがSLCモードで消去されることに応答して、特定のメモリブロック用のSLC消去カウンタをインクリメントするように構成され得る。少なくとも1つの実施形態では、複数のメモリブロックのうちの少なくとも1つのメモリブロックが、装置204のアイドル時間の間中に消去されてもよい。
【0039】
コントローラ208は、特定のメモリブロックに格納されたデータがSLCモードで消去された後に、SLCモードで特定のメモリブロックにデータを書き込むように構成され得る。コントローラ208は、複数のメモリブロックのうちのメモリブロックの空きブロック数を判定するように構成されてもよい。ある実施形態では、フォアグラウンドのガベージコレクションは、空きブロック数が空きブロックの閾値数未満に減少することに応答して呼び出されてもよい。
【0040】
図2に示す実施形態は、本開示の実施形態を不明瞭にしないために図示していない別途の回路構成、ロジック、及び/または構成要素を含むことができる。例えば、メモリデバイス204は、I/Oコネクタを通りI/O回路を介して提供されるアドレス信号をラッチするためのアドレス回路を含んでもよい。メモリ210−1、210−2、・・・、210−Nにアクセスするために、アドレス信号を行デコーダ及び列デコーダで受け取ってデコードすることができる。
【0041】
図3は、本開示の1つ以上の実施形態による、温度ベースのメモリ動作に関連する機能ブロック図である。コントローラ308は、書き込み要求を受け取り、324で温度チェックを実行して、装置の動作温度を判定することができる。温度チェックは、温度センサ(例えば、組み込み型温度センサ)を使用して実行することができるが、温度を判定する他の方法は、本明細書の実施形態に従う。温度は、コントローラ308によって発行される組み込み型温度センサへのコマンドを用いて判定することができ、ほぼリアルタイムで更新され得る。
【0042】
温度チェックは、動作温度(本明細書では単に「温度」と呼ばれることもある)が収まる所定の範囲の判定を可能にし得る。先述のように、
図3に示すように、3つの温度範囲を判定することができる。しかしながら、本明細書の実施形態は、これに限定されないことに再度留意されたい。第1の温度範囲(「低T」または単に「LT」)は、第1の温度閾値未満の温度または温度範囲に対応してもよい。第1の温度閾値は、特定の値に限定されないが、説明のために、本明細書では0℃の値が与えられる。ある実施形態では、例えば、第1の温度範囲は、−40℃〜0℃の間である。第2の温度範囲(「高T」または単に「HT」)は、第2の温度閾値を超える温度または温度範囲に対応してもよい。第2の温度閾値は、特定の値に限定されないが、説明のために、本明細書では70℃の値が与えられる。ある実施形態では、例えば、第2の温度範囲は、70℃〜125℃の間である。第3の温度範囲(「中間T」または単に「MT」)は、第1の温度閾値と第2の温度閾値との間の温度に対応してもよい。説明のために、第3の温度範囲は、0℃〜70℃の間に指定される。温度範囲及び/または温度閾値は、乗り物(例えば、自動車)の目標動作温度に基づいて決定してもよい。例えば、温度範囲は、乗り物が、各範囲内に収まる温度を受けると予想される時間の長さに基づいて決定してもよい。本明細書では、乗り物という状況に言及する場合があるが、本開示の実施形態は、これに限定されないことに留意されたい。つまり、そのような言及は、説明及び/または例示の目的で行われ、限定的な意味に解釈されるべきではない。
【0043】
いくつかの実施形態は、温度範囲が異なった幅を有し得ることを提供する。例えば、−40℃〜0℃の温度範囲には、40℃の幅がある。0℃〜70℃の温度範囲には、70℃の幅がある。70℃〜125℃の温度範囲には、55℃の幅がある。これらの幅は、例示のために提供されたものであり、限定的な意味で捉えられるものではない。ある実施形態では、幅の1つ以上が同じであってもよい。
【0044】
多くの実施形態は、異なる温度範囲で書き込まれるデータに対して指定された複数の開ブロックを画定することができる。
図3に示すように、開ブロックは、第1のタイプ336の開ブロックを含むことができる。ある実施形態では、ブロックの第1のタイプ336は、SLCタイプであってもよい。開ブロックは、第2のタイプ338の開ブロックを含むことができる。ある実施形態では、ブロックの第2のタイプ338は、MLCタイプであってもよい。
【0045】
第1のタイプ336に含まれるのは、第1の温度範囲に対応するLTブロック330、第2の温度範囲に対応するHTブロック328、及び第3の温度範囲に対応するMTブロック332である。第2のタイプ338に含まれるのは、同様に第3の温度範囲に対応するMLCブロックである。
【0046】
コントローラ308は、動作温度が、第1の温度閾値(例えば、0℃)未満であるか、または第1の温度範囲(例えば、−40℃〜0℃)内であるという判定に応答して、LTブロック330にデータを書き込み得る。コントローラ308は、動作温度が、第2の温度閾値(例えば、70℃)を超えるか、または第2の温度範囲(例えば、70℃〜125℃)内であるという判定に応答して、HTブロック328にデータを書き込み得る。
【0047】
動作温度が(第3の温度範囲内の)第1の温度閾値と第2の温度閾値との間にあるとき、コントローラは326でデータのサイズを判定することができる。ある実施形態では、データのサイズを判定することは、データがサイズ閾値を下回るかまたは上回るかを判定することを指してもよい。データがサイズ閾値未満である場合、コントローラ308は、データをMTブロック332に書き込む。データがサイズ閾値を超える場合、コントローラ308は、データをMLCブロック334に書き込む。したがって、いくつかの実施形態では、温度が中程度である場合に、かつデータが十分なサイズである場合にのみ、データはMLCデータとして書き込まれてもよく、その他の場合は、データはSLCデータとして書き込まれる。
【0048】
いくつかの実施形態では、データは温度情報でタグ付けされない。言い換えれば、個々のデータ項目が、温度インジケータでタグ付けされない場合がある。データを適切な指定開ブロックに配置することにより、本明細書の実施形態は、データが書き込まれた条件を後で決定するという追加のステップを回避することができる。したがって、ブロックごとの単位で、複数の異なる温度範囲を追跡することにより、本明細書の実施形態は、書き込まれたデータと共にインジケータを格納することなく、データが書き込まれた温度範囲を知ることができるようになる。
【0049】
HTブロック328が満杯になると(例えば、完全に書き込まれると)、HTブロック328は、閉じることができ、340で他の閉じたHTブロックと共にプールすることができる。LTブロック330が満杯になると、LTブロック330は、閉じることができ、342で他の閉じたLTブロックと共にプールすることができる。MTブロック332が満杯になると、MTブロック332は、閉じることができ、344で他の閉じたMTブロックと共にプールすることができる。MLCブロック334が満杯になると、MLCブロック334は、閉じることができ、344で他の閉じたMTブロックと共にプールすることができる。したがって、指定された温度範囲によって、別個の閉じたブロックのプールを維持し、及び/または組織することができる。
【0050】
いくつかの実施形態では、高温または低温のいずれかが中温(例えば、0℃〜70℃の間)に戻るときに、SLCデータは、空きMLCブロックにフォールディングされ、及び/またはフラッシュされ、SLCブロックがクリーニングされ得る。温度が中間範囲(例えば、第3の温度範囲)内に戻ったことを判定するために、コントローラ308は、348で別の温度チェックを実行することができる。戻った場合、ガベージコレクション(GC)及びフォールディングのための犠牲ブロック選択が、350で示すように実行され得る。
【0051】
本明細書の1つ以上の実施形態によるガベージコレクションは、HT閉ブロックプール340、LT閉ブロックプール342、及びMT閉ブロックプール344の中のブロックの有効ページ数に基づいて、犠牲ブロックを選択することを含み得る。有効ページの閾値未満の有効ページ数を持つブロックを含むプールのいずれかが、犠牲ブロックとして選択され得る。ある実施形態では、有効ページ数が最も少ないブロックを含むプールのいずれかが犠牲ブロックとして選択され得る。
【0052】
いくつかの実施形態では、ガベージコレクションは、現在の動作温度に基づいて犠牲ブロックを選択することを含み得る。本明細書の実施形態は、中間の温度範囲のみでガベージコレクションを実行することができるが、現在の動作温度は、一方の温度閾値に、他方の温度閾値よりも近い場合があると予想される。例えば、現在の動作温度が65℃である(第2の閾値よりも約5℃低い)場合、HT閉ブロックプール340からのブロックは、ガベージコレクション動作のために優先されてもよい。同様に、例えば、現在の動作温度が5℃である(第1の閾値よりも約5℃高い)場合、LT閉ブロックプール342からのブロックは、ガベージコレクション動作のために優先されてもよい。
【0053】
352では、閉じたブロックでフォールディング及びガベージコレクションが実行されており、ブロックがクリーニングされる。有効なページを再要求し、334で空きMLCブロックに書き込むことができ、クリーニングされたブロックは、空きブロックのプール346に配置され得る。空きブロック346のそれぞれは、コントローラ308によって、HT開ブロック328、LT開ブロック330、MT開ブロック332、またはMLC開ブロック324として、タグ付けされ、及び/または指定され得る。言い換えれば、コントローラ308は、空きブロックが、HT開ブロック328、LT開ブロック330、MT開ブロック332、及びMLC開ブロック324のうちの1つと見なされるようになるという指定で、その空きブロックにタグを付けることができる。
【0054】
その後(例えば、第2の時点で)、読み出し要求が受け取られると、本開示の実施形態は、本明細書で説明されるブロックから読み出すことができる。例えば、高温(例えば、88℃)で書き込まれたデータを対象として、低温(例えば、−12℃)で受け取られる読み出しの要求が、HTブロックまたはTLCブロックで起こる可能性がある。低温(例えば、−20℃)で書き込まれたデータを対象として、高温(例えば、100℃)で受け取られる読み出しの要求が、LTブロックまたはTLCブロックで起こる可能性がある。125℃で書き込まれたデータを対象として、−40℃で受け取られる読み出し要求などの過酷な異温度シナリオは、ある実施形態では、SLC(MLCではない)ブロック上でのみ受け入れられ得る。
【0055】
本明細書に特定の実施形態を図示し説明してきたが、当業者は、同じ結果を達成するように計算された構成が、示された特定の実施形態の代わりになり得ることを理解するであろう。本開示は、本開示の1つ以上の実施形態の適合形態または変形形態を包含することが意図されている。上記の説明は例示的な様式で行われたものであり、限定的なものではないことが理解されよう。上記説明を検討すれば、上記実施形態の組み合わせ、及び本明細書で具体的に説明されていない他の実施形態が当業者にとって明らかになるであろう。本開示の1つ以上の実施形態の範囲は、上記の構造及び方法が用いられる他の用途を含む。したがって、本開示の1つ以上の実施形態の範囲は、添付の特許請求の範囲を、これらの特許請求の範囲が権利を与えられる均等物の全範囲と併せて参照して決定されるべきである。
【0056】
前述の詳細な説明では、開示を合理化する目的で、いくつかの特徴が単一の実施形態に集められる。本開示の方法は、本開示の開示された実施形態が、各請求項で明示的に想起されるよりも多くの特徴を使用しなければならないという意図を反映していると解釈されるものではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、開示された単一の実施形態の全ての特徴よりも少ない部分にある。したがって、以下の特許請求の範囲は、本明細書によって詳細な説明に組み込まれ、各請求項は別個の実施形態としてそれ自体で成立する。
温度ベースのメモリ動作を提供するために利用することができる装置、方法、及びデバイスを記載する。1つ以上の装置は、メモリデバイスと、このメモリデバイスに結合され、装置の動作温度を判定すること、装置の動作温度とデータのサイズとに基づいてデータを書き込むために、メモリデバイスの複数の指定された開ブロックのうちの1つを判定すること、及びメモリデバイスの複数の指定されたブロックのうちの判定された1つにデータを書き込むことを行うように構成されたコントローラとを含むことができる。