(57)【要約】本開示は、一部書き込み済みブロックの取り扱いに関する。例示的方法は、一部書き込み済みブロックに対応する最後に書き込まれたページの状態を、メモリ・デバイスの内部に保持することを含む。一部書き込み済みブロックのページに対する読み出し要求をコントローラから受け取るのに応じて、例示的方法は、メモリ・デバイスの内部に保持されたページ・マップ情報と、最後に書き込まれたページの状態とから、読み出し要求に対応する一部書き込み済みブロックのページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのかを決定することを、含むことができる。【選択図】図２
2019509581.tif 000002
【特許請求の範囲】
【請求項１】
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を、メモリ・デバイスの内部に保持することと、
前記一部書き込み済みブロックのページに対する読み出し要求をコントローラから受け取るのに応じて、前記メモリ・デバイスの内部に保持されているページ・マップ情報と、前記最後に書き込まれたページの前記状態とから、前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定することと
を含む方法。
【請求項２】
前記コントローラが、外部コントローラであり、かつ、前記メモリ・デバイスに前記読み出し要求を与える際には、前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態を認識していない、請求項１の方法。
【請求項３】
前記メモリ・デバイスに前記読み出し要求を与えることが、前記メモリ・デバイスにブロック識別子とページ識別子とを与えることを含み、前記外部コントローラは、前記読み出し要求が一部書き込み済みブロックに対応することを認識していない、請求項２の方法。
【請求項４】
前記コントローラが、ホスト・インタフェイスを介してホストと結合されるとともに、デバイス・インタフェイスを介して前記メモリ・デバイスと結合された外部コントローラであり、前記方法が、
特定の論理ブロック・アドレスに対応する、ホスト側で開始された読み出し要求に応じて、前記メモリ・デバイスに前記読み出し要求を与えることと、
前記メモリ・デバイスに前記読み出し要求を与える前に、前記特定の論理ブロック・アドレスを物理ブロック・アドレスに変換することと、
を含む、請求項１の方法。
【請求項５】
前記メモリ・デバイスの内部に保持されている、前記最後に書き込まれたページの前記状態が、前記最後に書き込まれたページに対応するページ番号を含み、
前記ページ・マップ情報が、前記一部書き込み済みブロックに書き込まれたページのプログラミング順序を含み、
前記一部書き込み済みブロックの前記ページを読み出すのに前記いくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定することが、
前記ページが書き込まれている先のメモリ・セルが、完全にプログラムされているか否か、ということ、および
前記ページが書き込まれている先のアクセス線に隣接するアクセス線と結合されたメモリ・セルのプログラミング状態
のうちの少なくとも一つを判定することを含む、
請求項１の方法。
【請求項６】
前記コントローラが、外部コントローラであり、かつ、前記メモリ・デバイスに前記読み出し要求を送る際には前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態を認識しておらず、
前記メモリ・デバイスの内部コントローラを介して前記読み出し要求を実行することを、前記方法が含む、
請求項１の方法。
【請求項７】
前記コントローラとのさらなるやりとりなしに、前記異なるトリム・セットのうちの選択した一つを用いて、前記一部書き込み済みブロックの前記ページの前記読み出しを前記メモリ・デバイスが行うことを、前記方法が含む、請求項１の方法。
【請求項８】
前記メモリ・デバイスの内部に前記ページ・マップ情報を保持することが、少なくとも二つの異なる２段階式プログラミング過程ページ・マッピングを含むいくつかの異なるプログラミング過程ページ・マッピングに対応するページ・マップ情報を保持することを含む、請求項１の方法。
【請求項９】
前記コントローラが、ソリッド・ステート・ドライブ（ＳＳＤ）・システム・コントローラであり、
前記メモリ・デバイスが、内部コントローラを含むＮＡＮＤ型フラッシュメモリ・デバイスであり、
前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのに前記いくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを、前記内部コントローラを介して決定することを、前記方法が含む、
請求項１の方法。
【請求項１０】
コントローラと、
メモリ・デバイスであって、
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を、前記メモリ・デバイスの内部に保持し、
前記一部書き込み済みブロックのページに対する読み出し要求を前記コントローラから受け取るのに応じて、前記メモリ・デバイスの内部に保持されているページ・マップ情報と、前記最後に書き込まれたページの前記保持された状態とから、前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定する
ように構成された、メモリ・デバイスと
を含む装置。
【請求項１１】
前記コントローラが、ソリッド・ステート・ドライブのシステム・コントローラであり、バスを介して前記メモリ・デバイスの内部コントローラと結合されている、請求項１０の装置。
【請求項１２】
前記バスが、オープンＮＡＮＤフラッシュ・インタフェイス（ＯＮＦＩ）構造と関連づけられている、請求項１１の装置。
【請求項１３】
前記メモリ・デバイスのページに対応する、最後に書き込まれたページの情報を、前記システム・コントローラが追跡しない、請求項１１の装置。
【請求項１４】
前記メモリ・デバイスの内部に保持される前記ページ・マップ情報が、ページ・プログラミング順序を含む、請求項１０の装置。
【請求項１５】
前記最後に書き込まれたページの前記状態が、ページ番号を含み、
前記読み出し要求に対応する前記ページの、前記最後に書き込まれたページに対する位置を、前記内部的に保持されたページ・プログラミング順序に基づいて判定するように、前記メモリ・デバイスの内部コントローラが構成されている、
請求項１４の装置。
【請求項１６】
前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態が、ページ識別子と、前記最後に書き込まれたページのプログラミングの量についての印とを含む、請求項１０の装置。
【請求項１７】
ホスト・インタフェイスを介してホストと結合されるとともにデバイス・インタフェイスを介してメモリ・デバイスと結合されたコントローラを含み、
前記メモリ・デバイスが、データのページを記憶するよう構成された複数のブロックを含み、
前記メモリ・デバイスが、前記メモリ・デバイスの内部に
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態と、
一部書き込み済みブロックに対応するページ・マップ情報と
を保持するよう構成されており、
一部書き込み済みブロックに対する読み出し要求に応じて、前記読み出し要求に対応するデータのページを読み出すための適切な読み出しトリム・セットを、前記最後に書き込まれたページの、前記内部に保持した状態と、前記一部書き込み済みブロックに対応するページ・マップ情報とに基づいて選択するように、前記メモリ・デバイスが構成されている、
装置。
【請求項１８】
前記メモリ・デバイスが、前記読み出し要求を実行するよう構成された内部コントローラを含む、請求項１７の装置。
【請求項１９】
前記読み出し要求がブロック識別子とページ識別子とを含み、
前記コントローラは、前記読み出し要求を送る際には、前記ブロック識別子が一部書き込み済みブロックに対応するか否かについて認識していない、
請求項１８の装置。
【請求項２０】
前記ページ・マップ情報が、少なくとも二つの異なる２段階式プログラミング過程に対応するページ・マップを含む、請求項１７の装置。
【請求項２１】
メモリ・セルのアレイを含むメモリ・デバイスに対する書き込み命令であって、前記書き込み命令の実行によりブロックが一部書き込み済みとなるものを、外部コントローラから受け取ることと、
前記メモリ・デバイスの内部に、
前記ブロックが一部書き込み済みだという印と、
前記ブロック内の最後に書き込まれたページの印と、
ページ・プログラミング順序を含むページ・マップ情報と
を保持することと、
前記ブロックの残りの部分に書き込みが行われる前に、前記外部コントローラから、ブロック識別子とページ識別子とを含む読み出し要求を受け取ることと、
前記ブロックが一部書き込み済みだという前記保持された印と、前記ブロック識別子を比較することと、
前記ブロックが一部書き込み済みだという、前記保持された印に、前記ブロック識別子が合致する、と判定するのに応じて、前記メモリ・デバイスの内部に保持された、前記ページ・マップ情報と、前記最後に書き込まれたページの前記印とから、前記読み出し要求に対応する前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのうちのいずれを使うのか、ということを決定することと、
を含む方法。
【請求項２２】
前記ブロック内の前記最後に書き込まれたページの前記印を、前記メモリ・デバイスの内部に保持することで、前記読み出し要求に関連して前記外部コントローラから前記メモリ・デバイスが前記印を受け取らねばならなくなることを防いでいる、請求項２１の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、半導体メモリおよび方法に関し、より具体的には一部書き込み済みブロックの取り扱いに関する。
【背景技術】
【０００２】
メモリ・デバイスは、典型的には、コンピュータまたは他の電子機器における、内部的な半導体の集積回路として提供される。揮発性および不揮発性のメモリを含む、多くの異なる種類のメモリがある。揮発性メモリは、そのデータを維持するための電力を必要とすることがあり、とりわけ、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、およびシンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、記憶されているデータを、電力が供給されていないときに保持することにより、持続的データを提供することができ、また、とりわけ、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、リード・オンリー・メモリ（ＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、ならびに、相変化型ランダム・アクセス・メモリ（ＰＣＲＡＭ）、抵抗変化型ランダム・アクセス・メモリ（ＲＲＡＭ）、および磁気抵抗型ランダム・アクセス・メモリ（ＭＲＡＭ）のような、抵抗可変メモリを含み得る。
【０００３】
メモリ・デバイス同士を一つに結合して、ソリッド・ステート・ドライブ（ＳＳＤ）などのメモリ・システムの記憶ボリュームを形成することができる。ソリッド・ステート・ドライブは、不揮発性および揮発性のメモリの他の様々な種類の中でも、とりわけ、不揮発性メモリ（例えば、ＮＡＮＤ型フラッシュメモリやＮＯＲ型フラッシュメモリ）を含むことができ、かつ／または、揮発性メモリ（例えば、ＤＲＡＭやＳＲＡＭ）を含むことができる。
【０００４】
性能、大きさ、重さ、壊れにくさ、動作温度範囲、および電力消費の観点において、ソリッド・ステート・ドライブはハードディスク・ドライブをしのぐことができるので、コンピュータ用の主たる記憶ボリュームとしてハードディスク・ドライブに取って代わるように、ＳＳＤを使うことができる。例えば、ＳＳＤには可動部品がなく、そのことが、磁気ディスク・ドライブにまつわるシーク時間やレイテンシや他の電気機械的遅延を回避し得るので、ＳＳＤは、磁気ディスク・ドライブと比較した場合には、より性能が優れていることがある。
【０００５】
メモリ・セルに書き込まれている最中のデータが、以前に書き込まれたデータに対して（例えば、セルからセルへの干渉を介して）悪影響を及ぼす可能性がある。したがって、プログラムされたセルに対応する電荷は、隣接するセルがプログラムされたことがあるか否かに影響されることもあり、かつ／または、隣接するセルの特定のプログラムされた状態に影響されることもある。隣接するセルのプログラム状態に基づいて読み出しパラメータを調整することは、他の様々な利益がある中でもとりわけ、ビット誤り率の低減、および／または、読み出しリトライ（例えば訂正的読み出し）を防ぐことによるレイテンシの低減などの、利益をもたらし得る。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態による、少なくとも一つのメモリ・システムを含むコンピューティング・システムの形をした装置の、ブロック図である。
【図２】本開示のいくつかの実施形態にしたがって、一部書き込み済みブロックの取り扱いを実行するよう構成されたメモリ・システムの形をした装置の、ブロック図である。
【図３】本開示のいくつかの実施形態による、いくつかの物理ブロックとして組織化されたメモリ・セルのグループを有する、メモリ・ユニットの一例を示す。
【図４】本開示のいくつかの実施形態によりメモリ・セルをプログラムすることと関連づけられた図を示す。
【図５】本開示のいくつかの実施形態による、異なるプログラミング過程ページ・マッピング種別に対応する、いくつかの異なる選択可能な読み出しトリム・セットを示すテーブルを示す。
【発明を実施するための形態】
【０００７】
本開示は、一部書き込み済みブロックの取り扱いに関する。例示的方法は、一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を、メモリ・デバイスの内部に保持することを含む。例示的方法は、一部書き込み済みブロックのページに対する読み出し要求をコントローラから受け取るのに応じて、メモリ・デバイスの内部に保持されているページ・マップ情報と、最後に書き込まれたページの状態とから、読み出し要求に対応する一部書き込み済みブロックのページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定することを、含むことができる。
【０００８】
本開示のいくつかの実施形態は、一部書き込み済みブロックの読み出し性能を、以前の手法と比較して改善するなどの利点を、提供することができる。例えば、本明細書に記述された実施形態による一部書き込み済みブロックの取り扱いは、様々な他の利益がある中でもとりわけ、訂正不能ビット誤り率（ＵＢＥＲ）を下げることができ、訂正的読み出しの回数を減らすことができ、また、システム・コントローラ（例えばＳＳＤコントローラ）にまつわる複雑さを減らすこともできる。本明細書でさらに記述されるとおり、一部書き込み済みブロックとは、データの複数のページ（例えば論理ページ）を記憶するように構成されており、かつ、まだ完全に書き込み済みではない、メモリの物理ブロックを指す。そうした場合においては、最後に書き込まれたページ（例えば最も最近に書き込まれたページ）を、以前に書き込まれたページとは異なる方法で取り扱うことが有用な場合がある。例えば、図３および図４と関連づけて説明するように、最後に書き込まれたページは、完全にプログラム済みのセル群には属していないかもしれない（例えば、最後に書き込まれたページを記憶しているセル群がデータの論理ページを三つ記憶するように構成されていて、そこでは最後に書き込まれたページが１番目または２番目の論理ページに対応している、ということがあり得る）。一例として、そしてまた図４に説明されているように、下位ページ（ＬＰ）および中間ページ（ＭＰ）がメモリ・セルのグループに対してプログラムされる第１プログラミング段階と、上位ページ（ＵＰ）が上記セルのグループに対してプログラムされる第２プログラミング段階とを含む、２段階式プログラミング過程を通じて、セル群をプログラムしてもよい。さらに、一部書き込み済みブロックのうちの最後に書き込まれたページを記憶しているセル群は、以前に書き込まれたページを記憶しているセル群ほどには、（例えば隣接するセルのプログラミングに起因する）セルからセルへの干渉を被らない。したがって、他のページの読み出しを行うのに使われるものと同じ読み出しトリム・セット（例えば読み出し電圧レベル）を、一部書き込み済みブロックのうち最後に書き込まれたページの読み出しを行うのに使うことは、最後に書き込まれたページの読み出しエラーが増えるという結果をもたらし得る。
【０００９】
本開示の以下の詳細な説明においては、本明細書の一部をなす添付図面に対する参照が行われ、添付図面には、どのようにして本開示のいくつかの実施形態を実施し得るのか、ということが、例示として示されている。これらの実施形態は、本開示の実施形態を当業者が実施することを可能とするのに十分な詳細さで記述されている。そしてまた、他の実施形態を利用してもよいこと、ならびに、本開示の範囲から逸脱せずに、手順上の変更、電気的な変更、および／または構造上の変更を行えることが、理解されるべきである。
【００１０】
本明細書で使われるように、「いくつかの」何か、とは、一つ以上のそうしたものを指す可能性がある。例えば、いくつかのメモリ・デバイスとは、一つ以上のメモリ・デバイスを指す可能性がある。さらに、本明細書で使われるような「Ｎ」、「Ｂ」、「Ｒ」、および「Ｓ」という指定子は、とりわけ図面における参照番号に関しては、そのように指定されるいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれ得る、ということを示す。
【００１１】
本明細書の図面は、最初の一桁または数桁が図面番号に対応するとともに残りの桁が当該図面における要素または構成要素を識別する、という番号づけの慣習に従っている。異なる図面の間の類似の要素同士または構成要素同士は、類似の数字を使うことで識別されることがある。例えば、１０４が図１における要素「０４」を参照していてもよく、類似の要素が図２では２０４と参照されていてもよい。よく理解されるであろうとおり、本明細書での種々の実施形態に示される要素を、本開示のいくつかの追加的実施形態を提供するように追加、交換、および／または削除することができる。さらに、よく理解されるであろうとおりに、図面に示された要素同士の比率や相対的な大きさは、本開示の実施形態を例示するよう意図されたものであって、限定的な意味に解釈されるべきではない。
【００１２】
図１は、本開示のいくつかの実施形態による、少なくとも一つのメモリ・システム１０４を含むコンピューティング・システム１００の形をした装置のブロック図である。本明細書で使われるとおり、メモリ・システム１０４、システム・コントローラ（例えば２１５）、メモリ・デバイス（例えば２１０）、またはデバイス・コントローラ（例えば２２５）もまた、個別に「装置」と見なされることがあり得る。
【００１３】
コンピューティング・システム１００は、インタフェイス１０６を介してホスト１０２と結合されたメモリ・システム１０４を含む。本明細書で使われるとおり、「結合された」とは、一般に、構成要素間の接続を指し、これは、有線であろうと無線であろうと、間接的な通信の接続のこともあるし、または（例えば、間に介在する構成要素なしの）直接的な通信の接続のこともあり、電気的接続、光学的接続、磁気的接続などといった接続を含む。メモリ・システム１０４は、例えば、いくつかのＳＳＤを用いて実現された、ソリッド・ステート・ストレージ機器であり得る。図２に関連してさらに説明するとおり、システム１０４は、適切なメモリ・インタフェイス（例えば２０８）を介してメモリ（例えば、いくつかのメモリ・デバイス２１０−１、……、２１０−Ｎ）に結合されたシステム・コントローラ（例えば２１５）を、含み得る。
【００１４】
例示的ホスト１０２は、他のホスト・システムもある中でもとりわけ、ラップトップ・コンピュータ、パーソナル・コンピュータ、ディジタル・カメラ、ディジタル記録・再生装置、携帯電話、ＰＤＡ（パーソナル・ディジタル・アシスタント）、メモリ・カード・リーダ、およびインタフェイス・ハブを、含み得る。インタフェイス１０６は、他のコネクタやインタフェイスがある中でもとりわけ、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）、ペリフェラル・コンポーネント・インタコネクト・エクスプレス（ＰＣＩｅ）、またはユニバーサル・シリアル・バス（ＵＳＢ）を、含み得る。しかし、一般に、ホスト・インタフェイス１０６は、制御、アドレス、データ、およびその他の信号をメモリ・システム１０４とホスト１０２との間で渡すためのインタフェイスを、提供し得る。
【００１５】
ホスト１０２は、メモリ・バス制御部１０７に結合されたいくつかのプロセッサ１０５（例えば、パラレル・プロセッサやコプロセッサなど）を含み得る。プロセッサ１０５は、いくつかのマイクロプロセッサのこともあり得るし、または、例えば、いくつかの特定用途向け集積回路（ＡＳＩＣ）などの、何らかの他の種類の制御回路のこともあり得る。コンピューティング・システム１００の他の構成要素も、プロセッサを有していてよい。メモリ・バス制御部１０７は、メモリおよび／または他の構成要素を、メモリ・バス制御部１０７自体に結合させることができる。この例では、メモリ・バス制御部１０７が、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１１、グラフィック・ユーザ・インタフェイス１１８、および周辺機器・バス制御部１０９に結合されている。この例では、周辺機器・バス制御部１０９が、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェイスを介してフラッシュ・ドライブ１１９に結合されており、不揮発性メモリ・ホスト制御インタフェイス（ＮＶＭＨＣＩ）フラッシュ・メモリ１１７およびメモリ・システム１０４にも結合されている。いくつかの異なるコンピューティング・システムにおいて、ハードディスク・ドライブ（ＨＤＤ）に加えて、またはその代わりに、メモリ・システム１０４を用いることができる。図１に示したコンピューティング・システム１００は、そうしたシステムの一例である。しかし、本開示の実施形態は、図１に示した構成に限られるわけではない。
【００１６】
図２は、本開示のいくつかの実施形態にしたがって、一部書き込み済みブロックの取り扱いを実行するよう構成されたメモリ・システム２０４の形をした装置の、ブロック図である。一例として、メモリ・システム２０４は、ソリッド・ステート・ドライブ（ＳＳＤ）であり得る。メモリ・システム２０４は、バス２２０を介してメモリ（例えば、いくつかのメモリ・デバイス２１０−１、……、２１０−Ｎ）に結合された、メモリ・システム・コントローラ２１５（例えば、メモリ制御の回路、ファームウェア、および／またはソフトウェア）を含む。メモリ・デバイス２１０−１、……、２１０−Ｎは、まとめてメモリ・デバイス２１０またはメモリ２１０と呼ばれることがある。
【００１７】
システム・コントローラ２１５は、図１で説明したホスト１０２などのホストとの通信のためのホスト・インタフェイス２０６と、バス２２０を介したメモリ・デバイス２１０との通信のためのデバイス・インタフェイス２０８とを含む。バス２２０は、様々な信号（例えば、データ信号、制御信号、および／またはアドレス信号）を、メモリ・デバイス２１０とシステム・コントローラ２１５との間で送受信することができる。図２に示した例は単一のバス２２０を含んでいるが、メモリ・システム２０４は、別々のデータ・バス（ＤＱバス）、制御バス、およびアドレス・バスを含むこともできる。バス２２０は、オープンＮＡＮＤフラッシュ・インタフェイス（ＯＮＦＩ）、コンパクト・フラッシュ・インタフェイス、マルチメディア・カード（ＭＭＣ）、セキュア・ディジタル（ＳＤ）、ＣＥ−ＡＴＡ、インダストリアル・スタンダード・アーキテクチャ（ＩＳＡ）、マイクロチャネル・アーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェント・ドライブ・エレクトロニクス（ＩＤＥ）、ＶＥＳＡローカル・バス（ＶＬＢ）、ペリフェラル・コンポーネント・インタコネクト（ＰＣＩ）、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ）、アドバンスト・グラフィックス・ポート（ＡＧＰ）、パーソナル・コンピュータ・メモリ・カード国際協会バス（ＰＣＭＣＩＡ）、ファイヤーワイヤ（ＩＥＥＥ１３９４）、および、スモール・コンピュータ・システム・インタフェイス（ＳＣＳＩ）と関連するバス構造を含む、様々な種類のバス構造を有することができるが、これらに限定されるわけではない。メモリ・デバイス２１０に関連づけられた様々なデータ・インタフェイスの種類（例えば、ＮＶ−ＤＤＲ、ＮＶ−ＤＤＲ２、ＮＶ−ＤＤＲ３など）をサポートするように、システム・コントローラ２１５を構成することができる。
【００１８】
システム・コントローラ２１５は変換部品２１６を含み、変換部品２１６は、例えば、ホストとメモリ２１０との間での論理アドレスから物理アドレスへの変換と関連づけられた、フラッシュ変換レイヤ（ＦＴＬ）とすることができる。例えば、変換部品２１６は、論理ブロック・アドレス（ＬＢＡ）から物理ブロック・アドレス（ＰＢＡ）へのマッピング・テーブルを含んでいてもよい。図２には示されていないが、ハードウェア、ファームウェア、および／またはソフトウェアで実装され、メモリ２１０の管理と関連づけられる種々の他の構成部品の中でもとりわけ、誤りの検出および／もしくは訂正の部品、ウェア・レベリング部品、ならびに／またはガーベジ・コレクション部品をも、システム・コントローラが含んでいることがある。
【００１９】
図２に示されるように、メモリ・デバイス２１０は、いくつかのメモリ・ユニット２１２−１、２１２−２、２１２−３、および２１２−４を含むことができ、これらはまとめてメモリ・ユニット２１２と呼ばれることがあり、また、これらは、メモリ・システム２０４のための記憶ボリュームを提供する。メモリ・ユニット２１２は、ダイまたはチップとすることができ、そのダイまたはチップは、論理ユニット（ＬＵＮ）と呼ばれることがある。例えば、メモリ・デバイス２１０は、いくつかのダイ２１２をそれぞれ含むマルチチップ・パッケージ（ＭＣＰ）とすることができる。ダイ２１２は、例えば、ＮＡＮＤ型フラッシュメモリ・セルのいくつかのアレイと、関連する周辺回路（例えば、書き込み回路、読み出し回路、入出力回路、バッファなど）とを含む、ＮＡＮＤ型ダイとすることができる。
【００２０】
図３から図５とともに以下でさらに説明する通り、アレイは、一つのデータ単位（例えば１ビット）を記憶するよう構成されたシングル・レベル・セル（ＳＬＣ）、および／または、一つよりも多くのデータ単位を記憶するよう構成されたマルチレベル・セル（ＭＬＣ）を含む、ＮＡＮＤ型フラッシュ・アレイとすることができる。さらに、セルは、様々な異なるプログラミング過程を介してプログラム可能であってもよく、それらのプログラミング過程は、一つのセルあたりに記憶されるデータ単位の量に依存し得る。しかし一方では、一つのセルあたりに特定の量のデータ単位（例えば、２ビット、３ビット、４ビットなど）を記憶するよう構成されたセルが、異なるプログラミング過程を介してプログラム可能だという場合があり得る。例えば、３ビットＭＬＣは、２段階式プログラミング過程（例えば、第１プログラミング段階が、下位ページと中間ページのデータ状態に基づいて、セルの閾値電圧を消去状態から四つの分布のうちの一つに設定するとともに、第２プログラミング段階が、上位ページのデータ状態に基づいて、セルの閾値電圧を四つの分布のうちの上記の一つから八つの分布のうちの一つに設定する、４−８式の過程）、または、３段階式プログラミング過程（例えば、２−４−８式の過程）を介して、プログラム可能であるかもしれない。
【００２１】
本開示の実施形態は、図２に示した例には限定されない。例えば、本開示の実施形態によるメモリ・システムは、一つのメモリ・デバイス（例えばＭＣＰ）２１０あたり、四つよりも多いか、または四つよりも少ないメモリ・ユニット（例えばダイ）２１２を含むことができるし、特定のメモリ・アレイ・アーキテクチャ（例えば、ＮＡＮＤ型フラッシュ、ＮＯＲ型フラッシュ、ＤＲＡＭ、ＰＣＭなど）に限定されるわけでもない。また、デバイス２１０ごとに一つのコントローラ２２５が示されているが、実施形態は、メモリ・ユニット２１２ごとに一つのコントローラを含む（例えば、ＮＡＮＤ型ダイごとに一つのコントローラを含む）こともできる。
【００２２】
システム２０４のメモリ・デバイス２１０は、メモリ・ユニット２１２に対して（例えば、システム・コントローラ２１５からの命令に応じて、および／または、システム・コントローラ２１５を介してのホストからの命令に応じて）行われる操作（例えば、読む、プログラムする、消去する、など）を制御するよう構成された、内部デバイス・コントローラ２２５を含む。コントローラ２２５は、メモリ・デバイス２１０に対してローカルであり、バス２２０を介して外部のシステム・コントローラ２１５と通信することが可能である。図２に示されているように、内部デバイス・コントローラ２２５は、内部的に記憶された、ページ・マップ情報２３１と、トリム情報２３３と、最後に書き込まれたページ（ＬＷＰ）の情報２３５と、一部書き込み済みブロック（ＰＷＢ）の情報２３７とを利用することができ、これらは、本明細書に記述された実施形態による、一部書き込み済みページの取り扱いと関連して使われ得る。一例として、情報２３１、２３３、２３５、および２３７を、コントローラ２２５上に配置されたメモリの中に（例えばテーブルとして）記憶することもでき、かつ／または、メモリ・ユニット２１２のアレイの中に記憶することもできる。いくつかの実施形態においては、従前の手法と比べて効果的に一部書き込み済みブロックを読み出すことに伴ってシステム・コントローラ２１５の関わりを削減するなどの様々な利益を、メモリ・デバイス２１０に対してローカルな情報２３１、２３３、２３５、および／または２３７を維持することで、提供することができる。例えば、様々な従前の手法は、システム・コントローラが、一部書き込み済みブロックに対する読み出し要求を送り、訂正不能な誤りを受け取り、それから、調整したトリム・セットを使って、読み出し要求に対応するページを（例えば訂正的読み出しにより）読み出し直す、ということを伴うことがあり得る。そうした訂正的読み出しは、レイテンシに対して悪影響を与える可能性がある。一部書き込み済みブロックを扱うことに対する他の従前の手法は、メモリ２１２のうちのどのブロックが一部書き込み済みなのかということをも、そのブロックのうちの最後に書き込まれたページや、隣接するページの状態に加えて、システム・コントローラ２１５が追跡することを伴う場合があり得るが、そうすることには、（例えば大きなテーブル・サイズなどのせいで）システム・コントローラの複雑さを増してしまうなどの欠点があり得る。
【００２３】
例として、ページ・マップ情報２３１は、ブロックに書き込まれたページのプログラミング順序を含むことができる。プログラミング順序は、ページ番号を含むことができ、当該ブロックに最後に書き込まれたページに関して、読み出し要求に対応する特定のページの場所を判断するのに使うことができる。最後に書き込まれたページの情報２３５は、一部書き込み済みブロックに最後に書き込まれたページの状態を提供することができ、これは、最後に書き込まれたページの識別子（例えばページ番号）を含むことができ、また、最後に書き込まれたページの完了状態（例えば、そのページが、部分的にプログラムされたセルのグループに属するのか、それとも、そのページは完全にプログラムされているのか）をも示しているのであってもよい。最後に書き込まれたページの情報２３５を、（例えば、個々の一部書き込み済みブロックすべてに対応する、最後に書き込まれたページの情報を含むように）ブロック別に維持することができる。最後に書き込まれたページの完了状態もまた、最後に書き込まれたページのページ番号と、ページ・マップ情報２３１とに基づいて、（例えばコントローラ２２５によって）判断され得る。一部書き込み済みブロックの情報２３７は、一部書き込み済みブロック（例えば、完了するところまでは、まだプログラムされていないブロック）の識別子（例えばブロック番号）を提供することができる。トリム情報２３３は、読み出し要求に応じてデータのページを読み出すのに使われる、異なるトリム・セットを含むことができる。例として、最後に書き込まれたページが書き込まれた先のセルに隣接してはいないセルへと書き込まれているページを読み出すのに、第１のトリム・セットが使われてもよく、まだ書き込まれていないセルに隣接するセルへと書き込まれているページを読み出すのに、第２のトリム・セットが使われてもよく、一部書き込み済みのセルに隣接するセルへと書き込まれているページを読み出すのに、第３のトリム・セットが使われてもよい。
【００２４】
動作中、メモリ・デバイス２１０は、特定のブロックが一部書き込み済みになるという結果をもたらす（例えばシステム・コントローラ２１５からの）書き込み命令を、受け取ることがある。メモリ・デバイス２１０は、その特定のブロックが一部書き込み済みブロックであるという印を、その一部書き込み済みブロックに最後に書き込まれたページの印とともに、内部的に記憶することができる。その特定のブロックの残りの部分に書き込みが行われるよりも前に、メモリ・デバイス２１０が（例えばシステム・コントローラ２１５からの）読み出し命令を受け取る場合があり、その読み出し命令は、ブロック識別子（例えば特定の物理ブロック・アドレス）と、要求されたデータのページに関連づけられたページ識別子（例えば物理ページ番号）とを、含むことができる。メモリ・デバイス２１０は、受け取ったブロック識別子と一部書き込み済みブロックの情報２３７とを（例えば内部コントローラ２２５を介して）比較して、読み出し要求が一部書き込み済みブロックに対応するか否かを判断することができる。ブロック識別子が合致する（例えば、読み出し要求が一部書き込み済みブロックに対応する）のだと判断するのに応じて、内部的に記憶されているページ・マップ情報２３１と、内部的に記憶されている、最後に書き込まれたページの情報２３５とを（例えば内部コントローラ２２５により）用いて、要求されたページ（例えば読み出し要求に対応するページ）を読み出すためにどの特定のトリム・セット２３３を選択すべきかを判断することができる。いくつかの実施形態では、メモリ・デバイス２１０が、システム・コントローラ２１５とのさらなるやりとりをせずに、適切なトリム・セットを用いて、一部書き込み済みブロックに対応する読み出し要求を実行することができる。
【００２５】
いくつかの実施形態では、システム・コントローラ２１５は、読み出し要求をメモリ・デバイス２１０に送るときには、一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を認識していない。例えば、要求されたページが、一部書き込み済みブロックのうちの最後に書き込まれたページである、とコントローラ２１５が認識していないことがある。コントローラ２１５からメモリ・デバイス２１０へと送られる読み出し要求は、特定のＬＢＡに対応している、ホスト側で開始された読み出し要求に、応じたものであり得るし、また、コントローラ２１５は、デバイス２１０に読み出し要求を送る前に、そのＬＢＡを、物理ブロック・アドレスへと（例えば変換部品２１６を介して）変換することができる。いくつかの実施形態では、コントローラ２１５は、一部書き込み済みブロック、および／または、一部書き込み済みブロックのうちで最後に書き込まれたページの、「シャドウ」コピーを保持するように（例えば、システム・コントローラ２１５と内部コントローラ２２５とがそうした情報を保持するように）構成されていてもよい。いくつかの実施形態では、一部書き込み済みブロックおよび／または最後に書き込まれたページの情報をデバイス２１０から読み出すよう、システム・コントローラ２１５がメモリ・デバイス２１０に対して命令を発行することができ、それによって、例えば、電源切断・再投入サイクルを越えて、その情報が持続することが可能となり得る。
【００２６】
図３は、本開示のいくつかの実施形態による、いくつかの物理ブロック３３９−１（ブロック１）、３３９−２（ブロック２）、……、３３９−Ｂ（ブロックＢ）として組織化されたメモリ・セルのグループを有する、メモリ・ユニット３１２の一例を示す。メモリ・ユニット３１２は、図２で説明したメモリ・ユニット２１２のようなメモリ・ユニットであり得る。メモリ・ユニット３１２のメモリ・セルは、例えば、ＮＡＮＤ型アーキテクチャを有する、不揮発性の浮遊ゲート・フラッシュメモリ・セルであり得る。しかし、本開示の実施形態は、特定のメモリ種別に限られるわけではない。
【００２７】
メモリ・ブロック３３９−１、３３９−２、……、３３９−Ｂは、まとめてブロック３３９と呼ばれる場合があり、また、例えば、ＳＬＣセルおよび／またはＭＬＣセルを含むことができる。一例として、メモリ・ユニット３１２のアレイにおける物理ブロックの数は、１２８ブロック、５１２ブロック、または１０２４ブロックでもよいが、実施形態が物理ブロックの特定の個数に限られるわけではない。
【００２８】
図３に示した例では、各物理ブロック３３９が、一つの単位として一緒に消去することのできるメモリ・セル群を含む（例えば、各物理ブロック内のセル群を、実質的に同時に、一消去単位として消去することができる）。図３に示すように、各物理ブロック３３９は、それぞれのアクセス線（例えばワード線）とそれぞれ結合され得る、メモリ・セルのいくつかの物理行３４０−１、３４０−２、……、３４０−Ｒを含む。各物理ブロックにおける行の数は、３２、６４、または１２８とすることができるが、実施形態が特定の行数に限られるわけではなく、また、それらの行をまとめて、ブロック３３９ごとの行３４０と呼ぶこともある。
【００２９】
当業者がよく理解するであろうとおり、各行３４０は、セルの物理ページをいくつか含むことができる。セルの物理ページとは、一緒に、または一つの機能グループとして、プログラムされ、かつ／または読み出される、いくつかのメモリ・セルのことを指すことがある。図３に示した実施形態では、各行３４０が、セルの物理ページを一つ含むことができる。しかし、本開示の実施形態はそのように限られるわけではない。例えば、各行３４０が、セルの物理ページを、複数、含む（例えば、偶数番号のついたビット線に結合されたセルに関連づけられた偶数ページと、奇数番号のついたビット線に結合されたセルに関連づけられた奇数ページとを含む）ことができる。それに加えて、図４とともにさらに説明するように、マルチレベル・セルを含む実施形態については、１ビットを論理的下位ページに提供し、かつ、１ビットを論理的上位ページに提供し、かつ、１ビットまたはそれより多くの数のビットをそれぞれの数の論理的中間ページに提供する、一つの物理ページの中の各セルを用いて、一つの物理ページが、データの論理ページを、複数、記憶することができる。
【００３０】
図３に示した例では、行３４０に対応する物理ページが、いくつかのデータのセクタ３４２−１、３４２−２、……、３４２−Ｓ（例えば、５１２バイトなどといった、ホスト・セクタに対応する、ある量のデータ）を記憶することができる。セクタ３４２は、ユーザ・データ、ならびに、誤り訂正符号（ＥＣＣ）データおよび論理ブロック・アドレス（ＬＢＡ）データなどの、オーバヘッド・データを含んでいてもよい。物理ブロック３３９、行３４０、およびセクタ３４２についての他の構成も可能である、ということが注意される。例えば、行３４０がそれぞれ、例えば５１２バイトよりも多いデータまたはそれより少ないデータを含むことのできる単一のセクタに対応するデータを、記憶することができる。
【００３１】
図４は、本開示のいくつかの実施形態によりメモリ・セルをプログラムすることと関連づけられた図を示す。この例では、メモリ・セルは、異なるそれぞれ３ビットのビット・パタン（例えば、１１１、０１１、００１、１０１、１００、０００、０１０、および１１０）が割り当てられた八つのデータ状態（例えばＬ１からＬ８）のうちの一つへとそれぞれがプログラム可能な、３ビットＭＬＣである。いくつかの実施形態では、３ビットを記憶したビット・パタンにおけるビットの各々が、データの異なる論理ページに対応する。例えば、最下位ビット（ＬＳＢ）（図４では四角く囲んで示した最も右側のビット）がデータの第１ページ（例えば下位ページ）に対応することができ、中間ビットがデータの第２ページ（例えば中間ページ）に対応することができ、最上位ビット（ＭＳＢ）（図３では菱形記号により示した最も左側のビット）がデータの第３ページ（例えば上位ページ）に対応することができる。
【００３２】
しかし、３ビットのデータを記憶するマルチレベル・メモリ・セルに実施形態が限定されるわけではない。例えば、いくつかの実施形態は、一つのセルあたりに、３ビットよりも多くのデータ、もしくは３ビットよりも少ないデータ、および／または、小数ビットのデータを記憶するように構成されたメモリ・セルを含むことができるし、かつ、データ状態Ｌ１からＬ８に割り当てられる特定の符号化法に実施形態が限定されるわけではない。
【００３３】
図４に示した図は、下位ページと中間ページ（ＬＰ／ＭＰ）がプログラムされる第１プログラミング段階（ＰＰ＿１）４２７と、上位ページ（ＵＰ）がプログラムされる第２プログラミング段階（ＰＰ＿２）４２９とを含む、２段階式プログラミング過程（例えば４−８式の２段階式プログラミング過程）にしたがってメモリ・セル（例えばＮＡＮＤ型フラッシュ・セル）をプログラムすることに関連づけられる、閾値電圧（Ｖｔ）分布を示している。
【００３４】
閾値電圧（Ｖｔ）分布４２１は、消去済みメモリ・セルを表す。第１プログラミング段階４２７は、Ｖｔ分布４３２−１、４３２−２、４３２−３、および４３２−４により表された四つのレベルのうちの一つへと、メモリ・セルのＶｔを（例えば、選択されたワード線に印加されるプログラミング・パルスを介して）調整することを含む。電圧レベルはＶｔ分布により表され、Ｖｔ分布は、特定のレベルにプログラムされるセルの統計的平均Ｖｔレベルを反映し得る。この例では、下位ページが「１」というビット値を記憶すべきであり（例えばＬＰ＝１）、かつ、中間ページが「１」というビット値を記憶すべきである（例えばＭＰ＝１）ようなセルは、第１プログラミング段階４２７の間に分布４３２−１へとプログラムされ、下位ページが「１」というビット値を記憶すべきであり（例えばＬＰ＝１）、かつ、中間ページが「０」というビット値を記憶すべきである（例えばＭＰ＝０）ようなセルは、段階４２７の間に分布４３２−２へとプログラムされ、下位ページが「０」というビット値を記憶すべきであり（例えばＬＰ＝０）、かつ、中間ページが「０」というビット値を記憶すべきである（例えばＭＰ＝０）ようなセルは、段階４２７の間に分布４３２−３へとプログラムされ、下位ページが「０」というビット値を記憶すべきであり（例えばＬＰ＝０）、かつ、中間ページが「１」というビット値を記憶すべきである（例えばＭＰ＝１）ようなセルは、段階４２７の間に分布４３２−４へとプログラムされる。
【００３５】
第２プログラミング段階４２９は、Ｖｔ分布４３４−１から４３４−８により表された八つのレベルのうちの一つへと、メモリ・セルのＶｔを（例えば、選択されたワード線に印加されるプログラミング・パルスを介して）調整することを含み、ここで、Ｖｔ分布４３４−１から４３４−８は、データ状態Ｌ１からＬ８にそれぞれ対応しており、データ状態Ｌ１からＬ８の各々は、３ビットを記憶した異なるビット・パタンを示している。この例では、データ状態Ｌ１へとプログラムされたセルは「１１１」というデータを記憶しており、データ状態Ｌ２へとプログラムされたセルは「０１１」というデータを記憶しており、データ状態Ｌ３へとプログラムされたセルは「００１」というデータを記憶しており、データ状態Ｌ４へとプログラムされたセルは「１０１」というデータを記憶しており、データ状態Ｌ５へとプログラムされたセルは「１００」というデータを記憶しており、データ状態Ｌ６へとプログラムされたセルは「０００」というデータを記憶しており、データ状態Ｌ７へとプログラムされたセルは「０１０」というデータを記憶しており、データ状態Ｌ８へとプログラムされたセルは「１１０」というデータを記憶している。
【００３６】
図４に示した図は、三つそれぞれの記憶されたページのビットを読み出すことと関連づけられた、いくつかの読み出し電圧４９０−０、４９０−１、４９０−２、４９０−３、４９０−４、４９０−５、および４９０−６（一般に読み出し電圧４９０と呼ぶ）を図示している。データの特定のページを読み出すことにともなって、（例えば、選択されたワード線に印加されるいくつかの読み出し電圧４９０を用いる）いくつかの読み出しストローブが必要となることがある。例えば、この例において符号化は、セルの下位ページが「０」なのか「１」なのかを判定するのに、（例えば読み出し電圧４９０−３のところの）単一の読み出しストローブを用いることができる（例えば、読み出し電圧４９０−３を用いた、単一のＶｔ検出動作である）ようなものとなっている。また、この例では、中間ページを復号するためには、二つの読み出しストローブ（例えば、読み出し電圧４９０−１での一つのストローブと、読み出し電圧４９０−５での一つのストローブ）が行われなくてはならない。また、この例において符号化は、上位ページを復号するために、四つの読み出しストローブ（例えば、読み出し電圧４９０−０、４９０−２、４９０−４、および４９０−６でのストローブ）が行われなくてはならないようなものとなっている。しかし、第１プログラミング段階４２７は実行済みだが第２プログラミング段階４２９はまだ実行されていないという例においては、上位ページもプログラム済みの場合に下位ページおよび中間ページを読み出すのに使われる読み出し電圧（例えば４９０）とは異なる、下位ページおよび中間ページを読み出すための別の読み出し電圧を用いることが有益であり得る。例えば、第２プログラミング段階４２９がまだ実行されていないと判定された場合には、読み出し電圧４２２−２を用いて下位ページを読み出すことで、読み出し電圧４９０−３を用いてそうするよりも、結果として少ないビット誤りをもたらすことができる。
【００３７】
図５は、本開示のいくつかの実施形態による、異なるプログラミング過程ページ・マッピング種別に対応する、いくつかの異なる選択可能な読み出しトリム・セットを示すテーブル５３３を示す。テーブル５３３は、図２に示したトリム情報２３３に対応し得る、トリム情報の一例である。列５５１が、四つの異なるプログラミング過程種別を示しており、これら種別はそれぞれ、対応する異なるページ・マッピングを有することができる。
【００３８】
例えば、図２に示したメモリ・ユニット２１２などのメモリ・ユニットのメモリ・セルを、ＳＬＣセルまたはＭＬＣセルとして構成することができる。ＭＬＣ構成は、例えば、２ビット構成、３ビット構成、または４ビット構成とすることができる。ページ・マッピング（例えば、ページのプログラミング順序）は、特定のＭＬＣ構成に基づいて、様々なものとなり得る。さらに、特定のＭＬＣに対応するプログラミング過程が、様々なものとなり得る。例えば、３ビットＭＬＣ構成は、１段階式、２段階式、または３段階式のプログラミング過程にしたがって、プログラムされ得る。よって、特定のページを読み出すのに使われる読み出しトリム・セットは、セル種別（例えば、ＳＬＣなのか、それとも、いくつかの異なるＭＬＣ種別のうちの一つなのか）に依存し得るとともに、そのページをプログラムするのに用いられた特定のプログラミング過程にも依存し得る。
【００３９】
さらに、本明細書で説明されるとおり、例えば、特定のページが一部書き込み済みページなのか否か、特定のページが一部書き込み済みブロックの中の最後に書き込まれたページなのか否か、および／または、特定のページが一部書き込み済みブロックの中の最後に書き込まれたページに隣接しているか否かといったことに依存して、特定のページを読み出すのに使われる特定のトリム・セットを調整することが、有益であり得る。本開示のいくつかの実施形態では、内部的に保持されているページ・マップ情報と、内部的に保持されている、最後に書き込まれたページの状態情報とに基づいて、いくつかの異なる読み出しトリム・セットの中から、特定のページを読むために適切なトリム・セットを選択するように、メモリ・デバイス（例えば２１０）の内部コントローラ（例えば２２５）を構成することができる。
【００４０】
図５に示した例では、列５５１に示したそれぞれのプログラミング過程ページ・マッピング種別に対応する、いくつかの異なるトリム・セットを、列５５３が示している。例えば、Ｔ１は、一部書き込み済みブロックのうちの最後に書き込まれたページのＳＬＣを読み出すのに使われる第１のトリム・セットとすることができ、Ｔ２は、最後に書き込まれたページではないか、または、最後に書き込まれたページに隣接してはいないような、一部書き込み済みブロック中のページのＳＬＣを読み出すのに使われる第２のトリム・セットとすることができる。Ｔ３、Ｔ４、およびＴ５は、種別ＭＬＣ１のセルを読み出すのに使われるトリム・セットとすることができ、種別ＭＬＣ１のセルは、例えば、２−４式の２段階式プログラミング過程に従ってプログラムされる２ビットＭＬＣセルに対応することがある。Ｔ３は、最後に書き込まれたページを記憶してはおらず、かつ、最後に書き込まれたページを記憶している部分的にプログラムされたセルに隣接していない、というセルへと書き込まれたページを読み出すのに使われる、第１トリム・セットとすることができる。Ｔ４は、最後に書き込まれたページを記憶しており、かつ、部分的にプログラムされたセルに隣接している、というセル（例えば、読み出されている最中の、最後に書き込まれたページが、隣接セルのプログラミングに起因する何らかの干渉を受けたことがある、というふうになっているもの）へと書き込まれたページを読み出すのに使われる、第２トリム・セットとすることができる。Ｔ５は、最後に書き込まれたページを記憶しており、かつ、プログラムされていないセルに隣接している、というセル（例えば、読み出されている最中の、最後に書き込まれたページは、プログラムされていない隣接セルのプログラミングに起因する干渉を受けたことがない、というふうになっているもの）へと書き込まれたページを読み出すのに使われる、第３トリム・セットとすることができる。
【００４１】
Ｔ６とＴ７とＴ８は、種別ＭＬＣ２のセルを読み出すのに使われるトリム・セットとすることができ、これらのセルは、例えば、４−８式の２段階式プログラミング過程によりプログラムされる３ビットＭＬＣセルに対応することがある。Ｔ６は、最後に書き込まれたページを記憶してはおらず、かつ、最後に書き込まれたページを記憶している部分的にプログラムされたセルに隣接していない、というセルへと書き込まれたページを読み出すのに使われる、第１トリム・セットとすることができる。Ｔ７は、最後に書き込まれたページを記憶しており、かつ、部分的にプログラムされたセルに隣接している、というセルへと書き込まれたページを読み出すのに使われる、第２トリム・セットとすることができる。Ｔ８は、最後に書き込まれたページを記憶しており、かつ、プログラムされていないセルに隣接している、というセルへと書き込まれたページを読み出すのに使われる、第３トリム・セットとすることができる。Ｔ９とＴ１０とＴ１１は、種別ＭＬＣ３のセルを読み出すのに使われるトリム・セットとすることができ、これらのセルは、例えば、２−８式の２段階式プログラミング過程によりプログラムされる３ビットＭＬＣセルに対応することがある。Ｔ９は、最後に書き込まれたページを記憶してはおらず、かつ、最後に書き込まれたページを記憶している部分的にプログラムされたセルに隣接していない、というセルへと書き込まれたページを読み出すのに使われる、第１トリム・セットとすることができる。Ｔ１０は、最後に書き込まれたページを記憶しており、かつ、部分的にプログラムされたセルに隣接している、というセルへと書き込まれたページを読み出すのに使われる、第２トリム・セットとすることができる。Ｔ１１は、最後に書き込まれたページを記憶しており、かつ、プログラムされていないセルに隣接している、というセルへと書き込まれたページを読み出すのに使われる、第３トリム・セットとすることができる。
【００４２】
本開示のいくつかの実施形態は、ページ・マップ情報（例えば２３１）とトリム情報（例えば２３３）とをメモリ・デバイス（例えば２１０）の内部に保持することを含み、それによって様々な利点を提供することができる。例えば、メモリ・デバイスの内部コントローラ（例えば２２５）が、外部コントローラ（例えば、システム・コントローラ２１５、または、ホスト１０２などのホスト）からの再構成情報を必要とせずに、異なるプログラミング過程ページ・マッピング種別に適応することできる。例えば、図５に示したものなどのページ・マップ情報に内部コントローラがアクセスすることができるため、内部コントローラは、例えば外部情報源から追加のトリム設定を取得する必要なしに、多様な異なるセル種別および／またはプログラミング過程種別について、一部書き込み済みブロックを読み出すための適切なトリムを選択することができる。
【００４３】
本明細書では特定の実施形態を例示・記述してきたが、示された特定の実施形態の代わりに、同じ結果を達成すると予想される配置を用いることができる、ということを当業者はよく理解するであろう。この開示は、本開示のいくつかの実施形態の適応または変種を含むことを意図したものである。上記の記述は、例示的方法によってなされてきたものであって、限定的方法によってなされてきたものではない、ということが理解されるべきである。上記記述を吟味すれば、上記実施形態、および、本明細書には具体的には記述されていない他の実施形態の組み合わせが、当業者には明白であろう。本開示のいくつかの実施形態の範囲は、上記の構造および方法が使われる他の応用を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の請求項を、そうした請求項に権利の与えられた均等物の完全な範囲とともに参照して、定められるべきである。
【００４４】
上述の詳細な説明においては、開示を能率的にするという目的のために、いくつかの特徴が一緒に一つの実施形態にまとめられている。こうした開示の方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を用いなければならない、という意図を反映するものとして解釈されるべきではない。むしろ、以下の請求項が反映しているとおり、発明的主題は、開示された一つの実施形態のすべての特徴よりも少ないところにある。よって、これをもって、以下の請求項が詳細な説明に取り込まれ、各請求項は、それ自体が個々の実施形態として存在している。
【図１】
2019509581.tif 000003
【図２】
2019509581.tif 000004
【図３】
2019509581.tif 000005
【図４】
2019509581.tif 000006
【図５】
2019509581.tif 000007
【手続補正書】
【提出日】平成29年8月21日(2017.8.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を、メモリ・デバイスの内部に保持することと、
前記一部書き込み済みブロックのページに対する読み出し要求をコントローラから受け取るのに応じて、前記メモリ・デバイスの内部に保持されているページ・マップ情報と、前記最後に書き込まれたページの前記状態とから、前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定することと
を含む方法。
【請求項２】
前記コントローラが、外部コントローラであり、かつ、前記メモリ・デバイスに前記読み出し要求を与える際には、前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態を認識していない、請求項１の方法。
【請求項３】
前記メモリ・デバイスに前記読み出し要求を与えることが、前記メモリ・デバイスにブロック識別子とページ識別子とを与えることを含み、前記外部コントローラは、前記読み出し要求が一部書き込み済みブロックに対応することを認識していない、請求項２の方法。
【請求項４】
前記コントローラが、ホスト・インタフェイスを介してホストと結合されるとともに、デバイス・インタフェイスを介して前記メモリ・デバイスと結合された外部コントローラであり、前記方法が、
特定の論理ブロック・アドレスに対応する、ホスト側で開始された読み出し要求に応じて、前記メモリ・デバイスに前記読み出し要求を与えることと、
前記メモリ・デバイスに前記読み出し要求を与える前に、前記特定の論理ブロック・アドレスを物理ブロック・アドレスに変換することと、
を含む、請求項１から３のいずれか１項の方法。
【請求項５】
前記メモリ・デバイスの内部に保持されている、前記最後に書き込まれたページの前記状態が、前記最後に書き込まれたページに対応するページ番号を含み、
前記ページ・マップ情報が、前記一部書き込み済みブロックに書き込まれたページのプログラミング順序を含み、
前記一部書き込み済みブロックの前記ページを読み出すのに前記いくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定することが、
前記ページが書き込まれている先のメモリ・セルが、完全にプログラムされているか否か、ということ、および
前記ページが書き込まれている先のアクセス線に隣接するアクセス線と結合されたメモリ・セルのプログラミング状態
のうちの少なくとも一つを判定することを含む、
請求項１から３のいずれか１項の方法。
【請求項６】
前記コントローラが、外部コントローラであり、かつ、前記メモリ・デバイスに前記読み出し要求を送る際には前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態を認識しておらず、
前記メモリ・デバイスの内部コントローラを介して前記読み出し要求を実行することを、前記方法が含む、
請求項１から３のいずれか１項の方法。
【請求項７】
前記コントローラとのさらなるやりとりなしに、前記異なるトリム・セットのうちの選択した一つを用いて、前記一部書き込み済みブロックの前記ページの前記読み出しを前記メモリ・デバイスが行うことを、前記方法が含む、請求項１から３のいずれか１項の方法。
【請求項８】
前記メモリ・デバイスの内部に前記ページ・マップ情報を保持することが、少なくとも二つの異なる２段階式プログラミング過程ページ・マッピングを含むいくつかの異なるプログラミング過程ページ・マッピングに対応するページ・マップ情報を保持することを含む、請求項１から３のいずれか１項の方法。
【請求項９】
前記コントローラが、ソリッド・ステート・ドライブ（ＳＳＤ）・システム・コントローラであり、
前記メモリ・デバイスが、内部コントローラを含むＮＡＮＤ型フラッシュメモリ・デバイスであり、
前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのに前記いくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを、前記内部コントローラを介して決定することを、前記方法が含む、
請求項１から３のいずれか１項の方法。
【請求項１０】
コントローラと、
メモリ・デバイスであって、
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態を、前記メモリ・デバイスの内部に保持し、
前記一部書き込み済みブロックのページに対する読み出し要求を前記コントローラから受け取るのに応じて、前記メモリ・デバイスの内部に保持されているページ・マップ情報と、前記最後に書き込まれたページの前記保持された状態とから、前記読み出し要求に対応する前記一部書き込み済みブロックの前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのいずれを使うのか、ということを決定する
ように構成された、メモリ・デバイスと
を含む装置。
【請求項１１】
前記コントローラが、ソリッド・ステート・ドライブのシステム・コントローラであり、バスを介して前記メモリ・デバイスの内部コントローラと結合されている、請求項１０の装置。
【請求項１２】
前記メモリ・デバイスのページに対応する、最後に書き込まれたページの情報を、前記システム・コントローラが追跡しない、請求項１１の装置。
【請求項１３】
前記メモリ・デバイスの内部に保持される前記ページ・マップ情報が、ページ・プログラミング順序を含む、請求項１０から１２のいずれか１項の装置。
【請求項１４】
前記最後に書き込まれたページの前記状態が、ページ番号を含み、
前記読み出し要求に対応する前記ページの、前記最後に書き込まれたページに対する位置を、前記内部的に保持されたページ・プログラミング順序に基づいて判定するように、前記メモリ・デバイスの内部コントローラが構成されている、
請求項１３の装置。
【請求項１５】
前記一部書き込み済みブロックに対応する前記最後に書き込まれたページの前記状態が、ページ識別子と、前記最後に書き込まれたページのプログラミングの量についての印とを含む、請求項１０の装置。
【請求項１６】
ホスト・インタフェイスを介してホストと結合されるとともにデバイス・インタフェイスを介してメモリ・デバイスと結合されたコントローラを含み、
前記メモリ・デバイスが、データのページを記憶するよう構成された複数のブロックを含み、
前記メモリ・デバイスが、前記メモリ・デバイスの内部に
一部書き込み済みブロックに対応する、最後に書き込まれたページの状態と、
一部書き込み済みブロックに対応するページ・マップ情報と
を保持するよう構成されており、
一部書き込み済みブロックに対する読み出し要求に応じて、前記読み出し要求に対応するデータのページを読み出すための適切な読み出しトリム・セットを、前記最後に書き込まれたページの、前記内部に保持した状態と、前記一部書き込み済みブロックに対応するページ・マップ情報とに基づいて選択するように、前記メモリ・デバイスが構成されている、
装置。
【請求項１７】
前記ページ・マップ情報が、少なくとも二つの異なる２段階式プログラミング過程に対応するページ・マップを含む、請求項１６の装置。
【請求項１８】
メモリ・セルのアレイを含むメモリ・デバイスに対する書き込み命令であって、前記書き込み命令の実行によりブロックが一部書き込み済みとなるものを、外部コントローラから受け取ることと、
前記メモリ・デバイスの内部に、
前記ブロックが一部書き込み済みだという印と、
前記ブロック内の最後に書き込まれたページの印と、
ページ・プログラミング順序を含むページ・マップ情報と
を保持することと、
前記ブロックの残りの部分に書き込みが行われる前に、前記外部コントローラから、ブロック識別子とページ識別子とを含む読み出し要求を受け取ることと、
前記ブロックが一部書き込み済みだという前記保持された印と、前記ブロック識別子を比較することと、
前記ブロックが一部書き込み済みだという、前記保持された印に、前記ブロック識別子が合致する、と判定するのに応じて、前記メモリ・デバイスの内部に保持された、前記ページ・マップ情報と、前記最後に書き込まれたページの前記印とから、前記読み出し要求に対応する前記ページを読み出すのにいくつかの異なる読み出しトリム・セットのうちのうちのいずれを使うのか、ということを決定することと、
を含む方法。
【請求項１９】
前記ブロック内の前記最後に書き込まれたページの前記印を、前記メモリ・デバイスの内部に保持することで、前記読み出し要求に関連して前記外部コントローラから前記メモリ・デバイスが前記印を受け取らねばならなくなることを防いでいる、請求項１８の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
ホスト１０２は、メモリ・バス制御部１０７に結合されたいくつかのプロセッサ１０５（例えば、パラレル・プロセッサやコプロセッサなど）を含み得る。プロセッサ１０５は、いくつかのマイクロプロセッサのこともあり得るし、または、例えば、いくつかの特定用途向け集積回路（ＡＳＩＣ）などの、何らかの他の種類の制御回路のこともあり得る。コンピューティング・システム１００の他の構成要素も、プロセッサを有していてよい。メモリ・バス制御部１０７は、メモリおよび／または他の構成要素を、メモリ・バス制御部１０７自体に結合させることができる。この例では、メモリ・バス制御部１０７が、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１１１、グラフィック・ユーザ・インタフェイス１１８、および周辺機器・バス制御部１０９に結合されている。この例では、周辺機器・バス制御部１０９が、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェイスを介してフラッシュ・ドライブ１１９に結合されており、不揮発性メモリ・ホスト制御インタフェイス（ＮＶＭＨＣＩ）フラッシュ・メモリ１１７およびメモリ・システム１０４にも結合されている。いくつかの異なるコンピューティング・システムにおいて、ハードディスク・ドライブ（ＨＤＤ）に加えて、またはその代わりに、メモリ・システム１０４を用いることができる。図１に示したコンピューティング・システム１００は、そうしたシステムの一例である。しかし、本開示の実施形態は、図１に示した構成に限られるわけではない。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
図４は、本開示のいくつかの実施形態によりメモリ・セルをプログラムすることと関連づけられた図を示す。この例では、メモリ・セルは、異なるそれぞれ３ビットのビット・パタン（例えば、１１１、０１１、００１、１０１、１００、０００、０１０、および１１０）が割り当てられた八つのデータ状態（例えばＬ１からＬ８）のうちの一つへとそれぞれがプログラム可能な、３ビットＭＬＣである。いくつかの実施形態では、３ビットを記憶したビット・パタンにおけるビットの各々が、データの異なる論理ページに対応する。例えば、最下位ビット（ＬＳＢ）（図４では四角く囲んで示した最も右側のビット）がデータの第１ページ（例えば下位ページ）に対応することができ、中間ビットがデータの第２ページ（例えば中間ページ）に対応することができ、最上位ビット（ＭＳＢ）（図４では菱形記号により示した最も左側のビット）がデータの第３ページ（例えば上位ページ）に対応することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
図５に示した例では、列５５１に示したそれぞれのプログラミング過程ページ・マッピング種別に対応する、いくつかの異なるトリム・セットを、列５５３が示している。例えば、Ｔ１は、一部書き込み済みブロックのうちの最後に書き込まれたページのＳＬＣを読み出すのに使われる第１のトリム・セットとすることができ、Ｔ２は、最後に書き込まれたページでもなく、最後に書き込まれたページに隣接してもいないような、一部書き込み済みブロック中のページのＳＬＣを読み出すのに使われる第２のトリム・セットとすることができる。Ｔ３、Ｔ４、およびＴ５は、種別ＭＬＣ１のセルを読み出すのに使われるトリム・セットとすることができ、種別ＭＬＣ１のセルは、例えば、２−４式の２段階式プログラミング過程に従ってプログラムされる２ビットＭＬＣセルに対応することがある。Ｔ３は、最後に書き込まれたページを記憶してはおらず、かつ、最後に書き込まれたページを記憶している部分的にプログラムされたセルに隣接していない、というセルへと書き込まれたページを読み出すのに使われる、第１トリム・セットとすることができる。Ｔ４は、最後に書き込まれたページを記憶しており、かつ、部分的にプログラムされたセルに隣接している、というセル（例えば、読み出されている最中の、最後に書き込まれたページが、隣接セルのプログラミングに起因する何らかの干渉を受けたことがある、というふうになっているもの）へと書き込まれたページを読み出すのに使われる、第２トリム・セットとすることができる。Ｔ５は、最後に書き込まれたページを記憶しており、かつ、プログラムされていないセルに隣接している、というセル（例えば、読み出されている最中の、最後に書き込まれたページは、プログラムされていない隣接セルのプログラミングに起因する干渉を受けたことがない、というふうになっているもの）へと書き込まれたページを読み出すのに使われる、第３トリム・セットとすることができる。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2019509581.tif 000008
【国際調査報告】
2019509581.tif 000009
2019509581.tif 000010