(57)【要約】組込みシステムに対する方法およびメモリ、およびマネージメモリを有するシステムが提供される。このような一方法においては、マネージメモリは、ハウスキーピング動作がいつ指示されたかを判定し、その情報をホストに伝送し、ホストは、リアルタイムシステム動作に悪影響を与えないように、ホストによって判定された時刻にハウスキーピング動作を開始する。【選択図】図１
2016522513.tif 000002
【特許請求の範囲】
【請求項１】
マネージメモリを有するシステムの動作方法であって、
前記マネージメモリに対してハウスキーピング動作がいつ指示されたかを判定することと、
前記ハウスキーピング動作が指示されたことを前記システムのホストに報告することと、
を含む、
ことを特徴とする方法。
【請求項２】
前記マネージメモリがビジーではないときに、前記ハウスキーピング動作を前記ホストが開始することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記システムの状態に基づいて、前記ハウスキーピング動作を前記ホストが開始することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ホストに報告することは、前記マネージメモリのピンにおける信号で報告することを含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記ホストに報告することは、前記組込みメモリのレジスタ内のフラグビットを設定することによって報告することを含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記システムがシャットダウンされるとき、ハウスキーピングが指示された指示を記憶することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記システムが電源オンする時に、前記記憶された指示によって指示されたハウスキーピングを実施することをさらに含む、
ことを特徴とする請求項６に記載の方法。
【請求項８】
マネージメモリを有するシステムの動作方法であって、
前記マネージメモリに対していつハウスキーピング動作が指示されたかを判定することと、
前記マネージメモリがビジーではないときに、前記ハウスキーピング動作をホストによって開始することと、
を含む、
ことを特徴とする方法。
【請求項９】
ハウスキーピングは、前記システムの状態に基づいて開始される、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
システム内の組込みメモリの動作方法であって、
前記メモリ内のハウスキーピングがいつ指示されたかを、前記組込みメモリによって検出することと、
ハウスキーピングが指示されたことを前記システムのホストに報告することと、
前記システムの状態に基づいて、前記ハウスキーピングを前記ホストが開始することと、
を含む、
ことを特徴とする方法。
【請求項１１】
前記ホストは、前記システムの前記状態がアイドルであるときに前記ハウスキーピングを開始する、
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記ホストは、前記システムの前記状態が電源オフであるときに前記ハウスキーピングを開始する、
ことを特徴とする請求項１０に記載の方法。
【請求項１３】
報告することは、前記組込みメモリのピンにおいて信号で指示することを含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１４】
報告することは、前記組込みメモリのレジスタ内のフラグビットの設定で指示することを含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記システムがシャットダウンされるとき、ハウスキーピングが指示された指示を記憶することをさらに含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１６】
前記システムが電源オン時に、前記記憶された指示によって指示されたハウスキーピングを実施することをさらに含む、
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
検出することは、前記メモリシステム内のサイクルカウント、読み出しカウントおよびエラー訂正閾値のうちの少なくとも一つを検出することを含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１８】
サイクルカウントに基づくハウスキーピングは、ウェアレベリングを含み、
カウントされたサイクルが特定の閾値を超える各ブロックにフラグを設定することと、
フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、
ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、
を含む、
ことを特徴とする請求項１７に記載の方法。
【請求項１９】
サイクルカウントに基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されない任意のブロックに対して、電源オフ前に不揮発性メモリにフラグ情報を書き込むことをさらに含む、
ことを特徴とする請求項１８に記載の方法。
【請求項２０】
システムの電源オン時に、ウェアレベリングが実施されていないことをフラグ情報が示すブロックをチェックすることと、
ウェアレベリングが実施されなかったことをフラグ情報が示すブロックに対して、前記システムの電源オン中にウェアレベリングを実施することと、
ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、
をさらに含む、
ことを特徴とする請求項１８に記載の方法。
【請求項２１】
読み出しカウントに基づいたハウスキーピングは、
カウントされたページ読み出しが特定の閾値を超える各ブロックにフラグを設定することと、
フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、
ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、
を含む、
ことを特徴とする請求項１７に記載の方法。
【請求項２２】
読み出しカウントに基づいたウェアレベリングが望まれ、電源オン前にウェアレベリングが実施されていない任意のブロックに対して、電源オフ前に不揮発性メモリにフラグ情報を書き込むことをさらに含む、
ことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記システムの電源オン時に、ウェアレベリングが実施されなかったことをフラグ情報が示すブロックをチェックすることと、
ウェアレベリングが実施されなかったことをフラグ情報が示すブロックに対して、前記システムの電源オン中にウェアレベリングを実施することと、
ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、
をさらに含む、
ことを特徴とする請求項２１に記載の方法。
【請求項２４】
各ブロック内のページ読み出しの読み出しカウントは、其々のブロックに対するランダムアクセスメモリ（ＲＡＭ）スペース内に保持される、
ことを特徴とする請求項２１に記載の方法。
【請求項２５】
前記読み出しカウントは、４バイトＲＡＭスペース内に保持される、
ことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記特定の閾値は、前記ブロックの最大読み出し性能の約７０％である、
ことを特徴とする請求項２１に記載の方法。
【請求項２７】
読み出しカウントに基づいたウェアレベリングが実施された各ブロックに対して、前記読み出しカウントをゼロにリセットすることをさらに含む、
ことを特徴とする請求項２４に記載の方法。
【請求項２８】
エラー訂正閾値に基づいたハウスキーピングは、
エラー訂正検出閾値を超えた前記メモリの各物理ブロックに対してフラグを設定することと、
フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、
ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、
を含む、
ことを特徴とする請求項１７に記載の方法。
【請求項２９】
エラー訂正閾値検出に基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されていない任意のブロックに対して、電源オフ前に不揮発性メモリに前記フラグ情報を書き込むことをさらに含む、  
ことを特徴とする請求項２８に記載の方法。
【請求項３０】
システム内の組込みメモリの動作方法であって、
前記メモリ内のハウスキーピングに関する懸念によって、ブロック移動がいつ指示されたかを検出することと、
リアルタイムシステム動作に悪影響を与えることなく、ブロック移動が達成され得ることをホストが判定するときに、前記システムの前記ホストによってブロック移動を誘発することと、
を含む、
ことを特徴とする方法。
【請求項３１】
メモリセルのアレイおよびコントローラを含み、
前記コントローラは、メモリセルの前記アレイの動作を制御するように構成され、前記コントローラは、前記マネージメモリに対してハウスキーピング動作がいつ指示されたかを判定し、前記ハウスキーピング動作が指示されたことを外部ホストに報告するようにさらに構成される、
ことを特徴とするメモリデバイス。
【請求項３２】
前記コントローラは、前記外部ホストからの開始コマンドに応じて、前記ハウスキーピング動作を開始するようにさらに構成される、
ことを特徴とする請求項３１に記載のメモリデバイス。
【請求項３３】
前記メモリデバイスは、報告ピンをさらに含み、前記コントローラは、前記報告ピンにおける信号で前記ホストに報告するようにさらに構成される、
ことを特徴とする請求項３１に記載のメモリデバイス。
【請求項３４】
前記メモリデバイスは、前記メモリの各ブロックに対してフラグビットをさらに含み、前記フラグビットは、ハウスキーピングがいつ指示されたかを指示する指示をそのブロックに対して記憶し、前記コントローラは、ハウスキーピングが指示されたことをブロック内のフラグビットが指示するときに、前記ホストに報告するようにさらに構成される、
ことを特徴とする請求項３１に記載のメモリデバイス。
【請求項３５】
ホスト制御信号を作成するように構成されたホストと、
前記ホストに結合され、前記ホスト制御信号に応じて、動作するように構成された組込みメモリデバイスであって、前記組込みメモリに対するハウスキーピング動作がいつ指示されたかを判定するようにさらに構成され、前記マネージメモリがビジーではないときに前記ハウスキーピング動作を前記ホストが開始する、組込みメモリデバイスと、
を含む、
ことを特徴とするシステム。
【請求項３６】
前記ホストは、前記システムの状態に基づいて、前記ハウスキーピングを開始するように構成される、
ことを特徴とする請求項３５に記載のシステム。
【請求項３７】
前記ホストは、前記システムの前記状態がアイドルであるときに、前記ハウスキーピングを開始するように構成される、
ことを特徴とする請求項３５に記載のシステム。
【請求項３８】
前記ホストは、前記システムの前記状態が電源オフ時に、前記ハウスキーピングを開始するように構成される、
ことを特徴とする請求項３５に記載のシステム。
【請求項３９】
前記ホストは、前記システムがシャットダウンされ、ハウスキーピングが完了してないときに、ハウスキーピングが指示された指示を不揮発性メモリに記憶するようにさらに構成される、
ことを特徴とする請求項３５に記載のシステム。
【請求項４０】
前記ホストは、前記システムが電源オンしたときに、前記記憶された指示によって指示されたハウスキーピングを開始するようにさらに構成される、
ことを特徴とする請求項３９に記載のシステム。
【請求項４１】
メモリセルのアレイと、
ホストからのコマンドを受け入れるように構成されたコントローラであって、前記マネージメモリデバイスに対していつハウスキーピング動作が指示されたかを判定し、前記ハウスキーピング動作が指示されたことを前記ホストに報告する、コントローラと、
を含む、
ことを特徴とするマネージメモリデバイス。
【請求項４２】
ハウスキーピング動作が指示されるときにフラグを設定し、前記ホストからのコマンドの受信でハウスキーピングを開始するように前記コントローラが構成される、
ことを特徴とする請求項４１に記載のマネージメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、概してメモリデバイスに関し、特定の実施形態は、組込み（内蔵）メモリデバイスにおけるブロック管理に関する。
【背景技術】
【０００２】
メモリデバイス（本明細書においてときには“メモリ”と称される）は、コンピュータまたは他の電子システムにおいて内部、半導体集積回路として典型的に提供される。ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）およびフラッシュメモリを含む種々の多くの種類のメモリが存在する。
【０００３】
フラッシュメモリデバイスは、広範囲の電子的用途のための、不揮発性メモリの普及源へと発達してきた。フラッシュメモリデバイスは、高いメモリ密度、高い信頼性、低電力消費を可能とする１トランジスタメモリセルを典型的に使用する。浮遊ゲートまたはトラップ層または他の物理現象などの電荷蓄積構造のプログラミングを介する、セルの閾値電圧の変化は、各セルのデータ状態を決定する。フラッシュメモリデバイスを使用する一般的電子システムは、パーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、デジタルカメラ、デジタルメディアプレイヤー、デジタルレコーダ、ゲーム、家電製品、自動車、無線デバイス、携帯電話、アミューズメントゲーム機、自動車情報およびエンターテイメントシステムおよびリムーバブルメモリモジュールを含むが、そのいずれにも限定はされず、フラッシュメモリの用途は拡大し続けている。
【０００４】
フラッシュメモリは、ＮＯＲフラッシュおよびＮＡＮＤフラッシュとして知られる二つの基本的アーキテクチャのうちの一つを典型的に使用する。この呼称は、デバイスを読み出すために使用される論理に由来する。ＮＯＲフラッシュアーキテクチャにおいては、メモリセルのストリングは、データ線に結合される各メモリセルと並列に結合され、デジット（例えば、ビット）線と典型的に称される。ＮＡＮＤフラッシュアーキテクチャにおいては、メモリセルのストリングは、ビット線に結合されたストリングの第一のメモリセルのみと直列に結合される。
【０００５】
電子システムの性能および複雑性が増すにつれて、システムにおいてメモリを追加する必要性もまた増している。しかしながら、システムのコストを低減し続けるために、部品数は、最小限に維持しなければならない。これは、マルチレベルセル（ＭＬＣ）としてこのような技術を使用することによって集積回路のメモリ密度を増加させることにより達成することができる。例えば、ＭＬＣ  ＮＡＮＤフラッシュメモリは、非常に費用対効果の高い不揮発性メモリである。
【０００６】
組込みマルチメディアカード（ｅＭＭＣ）、ソリッドステートドライブ（ＳＳＤ）またはコントローラを有する他のＮＡＮＤベースデバイスなどのマネージ（ｍａｎａｇｅｄ、被管理）ＮＡＮＤデバイスは、最大レイテンシー（遅延）を定義することができない。その代わりに、レイテンシーは典型的レイテンシーとして示される。しかしながら、典型的レイテンシーは、このような組込みシステムにおいて実際のレイテンシーよりもかなり短い可能性がある。マネージシステムは、しばしば、リアルタイムベースで動作する。このように、メモリ動作のために実際のレイテンシー時間を知ることが望ましい。例えば、ＮＡＮＤは、信頼性およびデータ保持性能の向上のために、エラー訂正を保持し、読み出しディスターブの回避およびウェアレベリングのためのブロック移動などのハウスキーピング動作用アルゴリズムを使用する。これらのアルゴリズムは、コントローラおよび／またはファームウェア内で典型的に実装される。処理時間／保持期間のアルゴリズムは、それらが影響を及ぼされるたびに変化するので、実際のレイテンシーを決定するのは困難である。
【０００７】
通常、ハウスキーピング動作は、ＮＡＮＤコントローラによって自動的に制御される。このように、ブロック移動のタイミングおよび期間は、コントローラによって決定される。これは、典型的にはコントローラハードウェア自体および／またはそのファームウェアに実装される。ブロック移動のレイテンシーは、ＮＡＮＤの典型的レイテンシーよりも数百または数千倍長くなる可能性がある。これが、今度は、マネージメモリが組込まれるシステムのリアルタイム動作に悪影響を与える可能性がある。
【０００８】
上述された理由および本明細書を読解して理解することで当業者に対して明らかになるであろう他の理由のために、組込みメモリにおけるハウスキーピング動作を改善するニーズが本技術分野には存在する。
【図面の簡単な説明】
【０００９】
【図１】本開示の一実施形態による方法のフローチャート図である。
【図２】本開示の別の実施形態による方法のフローチャート図である。
【図３】本開示のさらに別の実施形態による方法のフローチャート図である。
【図４】本開示の一実施形態によるサイクルカウントハウスキーピング方法のフローチャート図である。
【図５】本開示の一実施形態による読み出しカウントハウスキーピング方法のフローチャート図である。
【図６】本開示の一実施形態によるエラー訂正閾値ハウスキーピング方法のフローチャート図である。
【図７】本開示の一実施形態におる組込みメモリデバイスを有する電子システムのブロック図である。
【発明を実施するための形態】
【００１０】
以下の詳細な説明においては、本明細書の一部を形成する添付の図面に対して参照がなされ、例示として特定の実施形態が示される。図面においては、類似の参照番号は、幾つかの図面を通して実質的に類似の構成要素を記述する。他の実施形態が使用されてもよく、構造的、論理的および電気的変更が本開示の範囲から逸脱することなく行われてもよい。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではない。
【００１１】
典型的なマネージＮＡＮＤにおいては、動作における信頼性を達成するために、マネージＮＡＮＤデバイスのコントローラは通常ＮＡＮＤを監視し、ハウスキーピングが指示されるときブロックを移動することによって、ウェアレベリング、ＥＣＣ閾値ベースリフレッシュなどのハウスキーピング動作を保持する。ブロックを適切に移動するために、典型的に使用される検出およびブロック移動という二つのステップがある。検出は、ブロック移動が指示されることを判定する。ブロック移動は、検出後の実際のブロック移動である。
【００１２】
本開示の実施形態は、メモリが組込まれるシステムに対するホストによって、マネージメモリにおけるハウスキーピング機能の動作を提供する。これは、メモリ内のハウスキーピング動作によって悪影響を受けないように、システムの動作のリアルタイム特性を可能とする。ハウスキーピング指示の検出は、ＮＡＮＤによってなお実施されるが、ハウスキーピング動作の開始は、システムのホストによって制御される。
【００１３】
マネージメモリを有するシステムを動作する方法１００の一実施形態が図１に示される。方法１００は、一実施形態においては、ブロック１０２において、マネージメモリに対していつハウスキーピング動作が指示されるかを判定すること、ブロック１０４において、ハウスキーピング動作が指示されることをシステムのホストに報告することを含む。ハウスキーピング動作が指示されると、その指示がホストに対して報告され、ホストは、ホストの裁量でハウスキーピング動作を開始する。一実施形態においては、マネージメモリがリアルタイム動作でビジーではないときに、ホストがハウスキーピング動作を開始する。例えば、ハウスキーピングは、システムの状態に基づいて開始されてもよい。このような状態は、ハウスキーピングが指示されるとき、ピンなどの物理的接続を介して、または、メモリによって設定される一つ以上のフラグビットなどのソフトウェアを介して、ホストに対してマネージメモリによって報告されてもよい。
【００１４】
ハウスキーピングは、例えば、システムの電源オフまたは電源オンなど、システムのリアルタイム動作に悪影響を与えることなくハウスキーピングが続行することができることをホストが判定するような時刻に開始される。システムが電源オフされるとき、ハウスキーピング動作はホストによって開始されてもよい。このようなハウスキーピング動作は、システムが電源オフする前に、特定の時間量または特定数のブロック移動に割り当てられてもよい。電源オフ前にハウスキーピング動作の全量が完了しない場合、一実施形態においては、実施されるべき残りのハウスキーピング動作の指示は、不揮発性記憶装置内に保存される。これらの動作は、例えば、システムの次の電源オン時、またはシステムの他のアイドル時間に、ホストによって決定されるように完了されてもよい。
【００１５】
時には、ハウスキーピングは、非常に長時間、数秒以上かかることがある。このような時間に、ホストは、ハウスキーピングが休止される前に、総実行時間を制限するか、または一または二ブロックのみをスワップするなど物理的に制限することがある。何れのスワップまたはハウスキーピングタスクが必要なものとして指示されたが、電源オフ／シャットオフ時にまだ実施されていないかの情報が保存される。即ち、ブロック／ハウスキーピングの現在の状態は、ＮＡＮＤに保存される。次の電源オン時に、コントローラは、ＮＡＮＤのハウスキーピングが完了し続けるように、記憶された以前の状態を読み出すことができる。
【００１６】
マネージメモリを有するシステムが動作する別の方法２００の一実施形態が図２においてフローチャート形式で示される。一実施形態において、本方法２００は、ブロック２０２においてハウスキーピング動作がマネージメモリに対していつ指示されるかを判定することと、ブロック２０４において、マネージメモリがビジーではないときにハウスキーピング動作をホストによって開始することと、を含む。一実施形態においては、ハウスキーピングは、システムの状態に基づいて開始される。
【００１７】
動作においては、ブロックをスワップするべきことを指示するために、特定のハードウェアまたはソフトウェアインターフェイスが使用される。これは、デバイス上の特定のピンアウトまたは、レジスタ内に設定されたフラグとして行うことができる。ハードウェアインターフェイスにおいては、物理ピン上の電圧レベルが変化し、それによってウェアレベリングハウスキーピングが必要とされることをホストに指示する。ソフトウェアインターフェイスにおいて、ハウスキーピングが必要であることを指示するために、デバイスに対する状態報告に一以上のビットが追加されてもよい。例えば、状態報告がマネージＮＡＮＤからホストに対して提供されるのと同時に、マネージＮＡＮＤは、ハウスキーピングの状態とともにコマンドの状態を返す。これによって、幾つかのハウスキーピングが必要とされることをホストに伝える。ホストは、この問題を理解し、システムの状態に従って、ハウスキーピングをスケジュールすることができる。
【００１８】
当業者に明らかになるハードウェアまたはソフトウェア指示の可能性のある実装が多数存在する。
【００１９】
スワップが必要なブロックが存在することをホストが理解すると、ホストは、例えば、必要とされる特定のハウスキーピングを実行するために、物理ピンを介して、または、デバイスに対するソフトウェア内のコマンドを介して、デバイスにハードウェアまたはソフトウェアコマンドを送信することができる。その後、コントローラはハウスキーピングを開始する。
【００２０】
システム内の組込みメモリを動作する方法の一実施形態３００は、図３内のフローチャート図に示される。方法３００は、一実施形態においては、ブロック３０２において、いつメモリ内のハウスキーピングが指示されるかを組込みメモリによって検出することと、ブロック３０４においてハウスキーピングが指示されたことをシステムのホストに報告することと、ブロック３０６においてシステムの状態に基づいて、ハウスキーピングをホストが開始することと、を含む。ホストは、一つ以上の実施形態において、例えば、システムの状態が電源オンである、またはシステムの状態が電源オフである、またはシステムの他のタスクが動作しているが組込みメモリシステムがアイドルであるときなど、システムの状態が、システムが組込みメモリデバイスを使用していないようなときに、ホストがハウスキーピングを開始する。
【００２１】
上述されたように、ハウスキーピングが指示されたことをホストに報告することは、幾つかの実施形態においては、組込みメモリのピン上に信号で指示することによって、または、組込みメモリのレジスタ内に一以上のフラグビットを設定することによって実施されてもよい。システムが電源オフし、全てのハウスキーピングタスクがシャットダウン前に実施されないとき、ハウスキーピングが完了していないことの指示は、残りのハウスキーピングがシステムの次の電源オン時など、その後に実施され得るように、ハウスキーピングがまた実施されていないことについての情報とともに記憶される。
【００２２】
いつメモリ内のハウスキーピングが指示されるかをブロック３０２において検出することは、種々の実施形態において、メモリ内のサイクルカウント、読み出しカウント、またはエラー訂正閾値など、このようなハウスキーピングタスクを検出することである。
【００２３】
図４、図５および図６は、ハウスキーピングタスクサイクルカウント、読み出しカウントおよびエラー訂正閾値の各々に対するシステムの動作を図示する。追加のハウスキーピング動作が検出され、追加のハウスキーピングは本開示の範囲から逸脱することなく実施されてもよいことを理解されたい。
【００２４】
サイクルカウントハウスキーピングはカウントベースウェアレベリングを典型的に含む。ＮＡＮＤ自体においては、各物理的ブロックに対してプログラムおよび消去サイクルが制限される。各物理空間が論理空間に割り当てられると、論理空間における大きいサイクルカウントは、その論理空間に対応する物理空間の大きいサイクルカウントに対応する。コントローラが他の物理空間よりもかなり高いサイクルカウントを有する物理空間（例えばブロック）を検出すると、または物理ブロックが非常に頻繁に最近使用されたことを検出すると、特定の論理空間に割り当てられた物理空間のスワップが指示されてもよい。その後、物理ブロックスワップが実施され、メモリ内の異なる物理空間に論理空間を割り当てる。この種のブロックスワップが知られている。しかしながら、上述されたように、従来、物理ブロックスワップが指示されると、メモリデバイスのコントローラは、スワップをいつ実行するかを判定する。しかしながら、本開示においては、判定を行うのは、スワップを開始するマネージメモリのホストである。
【００２５】
図４は、サイクルカウントに基づいてハウスキーピングを実施するための方法４００を示す。一実施形態においては、検出することは、ブロック４０２において、メモリシステム内のサイクルカウントを検出することを含む。サイクルカウントに基づくハウスキーピングは、一実施形態においては、ウェアレベリングを含み、ブロック４０４において、カウントされたサイクルが特定の閾値を超える各物理ブロックにフラグを設定することと、ブロック４０６において、フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、ブロック４０８０において、ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、サイクルカウントに基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されていないブロックに対して、ブロック４１０において電源オフ前に不揮発性メモリにフラグ情報を書き込むことと、を含む。オンデマンドウェアレベリングは、例えば、システム状態に基づいて、ウェアレベリング用に適切であるとホストが判定する時刻に、システムのホストによって開始されるウェアレベリングである。上述されたように、システムの電源オフ時に、スワップしなかった、指示されたウェアレベリングを有するこれらのブロックが、その後のハウスキーピングのために記憶された指示を有する。システムの電源オン時に、一実施形態においては、システムが、フラグ情報がウェアレベリングが実施されていないことを指示するブロックに対してチェックし、ウェアレベリングが実施されていないことをフラグ情報が指示するブロックに対してシステムの電源オン中にウェアレベリングを実施し、ウェアレベリングを実施したブロックに対するフラグ情報を消去する。
【００２６】
読み出しカウントレべリングは、デバイスの基本的な物理的性質を考慮に入れる。ＮＡＮＤのページは、読み出しコマンドを介してアクセスされ、この読み出しコマンドは同一のブロック中の他のページに悪影響を与える（例えば、ディスターブする）。例えば、２５６ページのブロックにおいては、読み出しを介してブロック０にアクセスすることは、ページ１から２５５をディスターブする。どのページがアクセスされるかに関わらず、ブロック中のその他のページは、ディスターブされやすい。ＮＡＮＤプロバイダは、典型的には、ページレベル読み出し性能に対して仕様を提供する。しかしながら、この数は、ページ読み出しに対する限定ではない。その代わりに、ブロックの各ページは、仕様と同程度に多くの回数読み出されることがある。例えば、ページレベル読み出し性能が１００，０００に設定される場合、ブロック中の各ページが１００，０００回読み出されてもよい。一実施形態においては、これは、ブロックレベル効果として扱われる。なぜなら、各ページの読み出しがブロックの全ての他のページに悪影響を与えるからである。したがって、２５６ページおよび１００，０００ページレベル読み出し性能を有するブロックにおいては、ページ読み出しの総数は２５，６００，０００である。一実施形態においては、これらのページ読み出しは、ブロック全体にわたって共有される。メモリの一ページのみがアクセスされる場合、２５００万回アクセスされる。なぜなら、各ページ読み出しは、同一の方法で他の全てのページに悪影響を与えるからである。
【００２７】
図５は、読み出しカウントに基づいてハウスキーピングを実施するための方法５００を示す。一実施形態においては、検出することは、ブロック５０２において、メモリシステム内のサイクルカウント、読み出しカウントおよびエラー訂正閾値のうちの少なくとも一つを検出することを含む。一実施形態においては、読み出しカウントに基づいたハウスキーピングは、ブロック５０４において、カウントされたページ読み出しが特定の閾値を超える各物理ブロックに対するフラグを設定することと、ブロック５０６において、フラグが設定されたブロックにオンデマンドウェアレべリングを実施することと、ブロック５０８において、ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、読み出しカウントに基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されないブロックに対して、ブロック５１０において、電源オフ前に不揮発性メモリにフラグ情報を書き込むことと、を含む。システムの電源オン時に、一実施形態においては、システムは、フラグ情報がウェアレベリングが実施されていないことを示すブロックに対してチェックし、ウェアレベリングが実施されていないことをフラグ情報が示すブロックに対して、システムの電源オン中にウェアレベリングを実施し、ウェアレベリングが実施されたブロックに対してフラグ情報を消去する。
【００２８】
一実施形態においては、ブロックに対して許可されたページ読み出しの総数よりも低い決定された閾値（例えば、２５，６００，０００のうちのある割合）に基づいて、ブロックに対する読み出しカウント閾値の数に対する読み出しカウントが確立される。閾値が決定されると、各ブロックに対するページ読み出しのカウントが行われてもよい。一実施形態においては、其々のブロック用のランダムアクセスメモリ（ＲＡＭ）スペース内に、各ブロックに対するページ読み出しの数が記憶される。このようなスペースは、一実施形態においては、２５，６００，０００のうちのある割合である閾値に対して、４バイトのＲＡＭスペースなど、閾値まで数え上げて記憶するのに十分なＲＡＭスペース内であってもよい。このようなＲＡＭスペースは、例えば、メモリ上のＲＡＭであってもよいし、またはシステムに対して割り当てられたＲＡＭスペースであってもよい。一実施形態においては、閾値は、ページ読み出しの最大値の約７０％に設定される。異なる閾値が、本開示の範囲から逸脱することなく設定され得ることを理解されたい。ブロックに対して読み出しカウント閾値に到達するとき、ハウスキーピングが指示されたことをホストに知らせるために信号（上述されたハードウェアまたはソフトウェア）が送信される。読み出しカウントに基づいたウェアレベリングが実施されると、そのウェアレベリングが実施されたブロックに対するカウンタがゼロにリセットされる。
【００２９】
エラー訂正コード（ＥＣＣ）閾値ベースリフレッシュは、エラーのある閾値がブロック内で検出されるときに指示される。エラーチェックは、パトロールスクラビングおよびデマンドスクラビングなどの様々な種類を含む。例えば、一実施形態においては、パトロールスクラビングスキームにおけるメモリコントローラは、メモリを計画的にスキャンしてビットエラーを検出する。エラーのあるビットは訂正することができる。或いは、システムがシステムの要求に従ってページの読み出しを試みると同時に、コントローラは、いくつのビットがコードワードに成り損なったかを識別し、ハウスキーピングが指示される。その後、ハウスキーピングが指示されたことがホストに報告される。上述されたように、ハードウェアまたはソフトウェア性能で実施され得るこれらの種類の報告に基づいて、ホストは、過度のフェイルビットが検出された一つ以上のコードワードが存在することを理解する。その後、ホストは、上述されたようにシステムのシステム状態に基づいてハウスキーピングを実行する。
【００３０】
図６は、読み出しカウントに基づいたハウスキーピングを実施するための方法６００を示す。一実施形態においては、検出することは、ブロック６０２において、メモリシステム内のサイクルカウント、読み出しカウントおよびエラー訂正閾値のうちの少なくとも一つを検出することを含む。エラー訂正閾値に基づいたハウスキーピングは、一実施形態においては、ブロック６０４において、エラー訂正検出閾値を超えたメモリの各物理ブロックに対してフラグを設定することと、ブロック６０６において、フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、ブロック６０８において、ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、エラー訂正閾値検出に基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されないブロックに対して、ブロック６１０において、電源オフ前に不揮発性メモリにフラグ情報を書き込むことと、を含む。一実施形態においては、システムの電源オン時に、システムは、ウェアレベリングが実施されなかったことをフラグ情報が示すブロックをチェックし、ウェアレベリングが実施されなかったことをフラグ情報が示すブロックに対するウェアレベリングをシステムの電源オン中に実施し、ウェアレベリングが実施されたブロックに対してフラグ情報を消去する。
【００３１】
さらに、一実施形態においては、システムの電源オン時に、方法は、ウェアレベリングなどのハウスキーピングが実施されなかったことをフラグ情報が示すブロックをチェックすることと、ハウスキーピングが実施されなかったことをフラグ情報が示すブロックに対するハウスキーピングをシステムの電源オン中に実施することと、ハウスキーピングが実施されたブロックに対するフラグ情報を消去することと、をさらに含む。
【００３２】
図７は、本開示の種々の実施形態が実現できる、本開示の一実施形態による組込みメモリデバイス７０１の簡略化ブロック図である。メモリデバイス７０１は、行および列に配置されたメモリセルのアレイ７０４を含む。種々の実施形態は主にＮＡＮＤメモリアレイを参照して記述されるが、種々の実施形態は、メモリアレイ７０４の特定のアーキテクチャに限定されることはない。本実施形態に対して好適な他のアレイアーキテクチャの幾つかの例は、ＮＯＲアレイ、ＡＮＤアレイおよび仮想グラウンドアレイを含む。さらに、本明細書で記述される実施形態は、本開示の範囲から逸脱することなくＳＬＣおよびＭＬＣメモリとの使用を許容できる。また、本方法は、アナログフォーマットで読み出し／検知することができるメモリに対して適用可能である。カウンタ７４０および／またはレジスタ７４２は、一実施形態においては、上述されたように読み出しおよびサイクルカウントおよびエラー訂正閾値情報を追跡するために使用され、フラグ情報を記憶するために使用される。本開示の範囲から逸脱することなく、各ブロックに対して１つずつなど、複数のカウンタおよびレジスタが使用されてもよいことを理解されたい。
【００３３】
行デコード回路７０８および列デコード回路７１０は、メモリデバイス７０１に提供されるアドレス信号をデコードするために提供される。アドレス信号は、メモリアレイ７０４にアクセスするために、受信されてデコードされる。メモリデバイス７０１は、メモリデバイス７０１からのデータおよび状態情報の出力と同様に、メモリデバイス７０１に対するコマンド、アドレスおよびデータの入力を管理するための入力／出力（Ｉ／Ｏ）制御回路７１２も含む。アドレスレジスタ７１４は、デコード前にアドレス信号をラッチするために、Ｉ／Ｏ制御回路７１２、行デコード回路７０８および列デコード回路７１０の間に結合される。コマンドレジスタ７２４は、入力コマンドをラッチするために、Ｉ／Ｏ制御回路７１２と制御論理７１６（ホスト７３０の素子およびコードを含み得る）の間に結合される。一実施形態においては、制御論理７１６、Ｉ／Ｏ制御回路７１２および／またはファームウェアまたは他の回路は、個々に、組み合わせて、または他の素子と組み合わせて内部コントローラを形成することができる。しかしながら、本明細書で用いられるように、コントローラは、このようなコンポーネントのうちのいずれかまたはそのすべてを必ずしも含む必要はない。幾つかの実施形態においては、コントローラは、内部コントローラ（例えば、メモリアレイとして同一ダイ上に配置される）および／または外部コントローラを含むことができる。制御論理７１６は、コマンドに応じてメモリアレイ７０４に対するアクセスを制御し、一実施形態においては組込みシステムのホストであるホスト７３０などの外部ホストに対して、状態情報を作成する。制御論理７１６は、受信されたアドレス信号に応じて、行デコード回路７０８および列デコード回路７１０を制御するために、行デコード回路７０８および列デコード回路７１０に結合される。
【００３４】
状態レジスタ７２２は、外部コントローラへの出力用に状態情報をラッチするために、Ｉ／Ｏ制御回路７１２および制御論理７１６の間に結合される。
【００３５】
メモリデバイス７０１は、制御リンク７３２を介して制御論理７１６で制御信号を受信する。制御信号は、チップイネーブルＣＥ＃、コマンドラッチイネーブルＣＬＥ、アドレスラッチイネーブルＡＬＥおよび書き込みイネーブルＷＥ＃を含んでもよい。メモリデバイス７０１は、多重化入力／出力（Ｉ／Ｏ）バス７３４を介して外部コントローラから（コマンド信号の形式で）コマンド、（アドレス信号の形式で）アドレス、（データ信号の形式で）データを受信して、Ｉ／Ｏバス７３４を介して外部コントローラにデータを出力してもよい。Ｉ／Ｏバス７３４は、一実施形態においては、ハウスキーピングが指示されたことをホスト７３０に物理的に信号で知らせるためにも使用される。
【００３６】
具体例においては、コマンドは、Ｉ／Ｏ制御回路７１２におけるＩ／Ｏバス７３４の入力／出力（Ｉ／Ｏ）ピン［７：０］を介して受信されて、コマンドレジスタ７２４に書き込まれる。アドレスは、Ｉ／Ｏ制御回路７１２におけるバス７３４の入力／出力（Ｉ／Ｏ）ピン［７：０］を介して受信され、アドレスレジスタ７１４に書き込まれる。データは、Ｉ／Ｏ制御回路７１２における８個のパラレル信号を受信することが可能なデバイスに対する入力／出力（Ｉ／Ｏ）ピン［７：０］、または、１６個のパラレル信号を受信することが可能なデバイスに対する入力／出力（Ｉ／Ｏ）ピン［１５：０］、を介して受信され、センス回路（例えば、センス増幅器およびページバッファ７１８）に伝送される。データは、８個のパラレル信号を伝送可能なデバイスに対する入力／出力（Ｉ／Ｏ）ピン［７：０］または、１６個のパラレル信号を伝送可能なデバイスに対する入力／出力（Ｉ／Ｏ）ピン［１５：０］を介して出力されてもよい。さらなる回路および信号を提供することができ、図７のメモリデバイスは、本開示の実施形態に焦点を当てるために簡略化されていることを当業者には理解されたい。
【００３７】
さらには、図７のメモリデバイスは、種々の信号の受信および出力のために慣例に従って記述されてきたが、種々の実施形態は、記述された特定の信号およびＩ／Ｏ構成に限定されることはないことに留意されたい。例えば、コマンドおよびアドレス信号は、データ信号を受信するものから分離された入力で受信することができるか、または、データ信号はＩ／Ｏバス７３４の信号Ｉ／Ｏ線によってシリアルに伝送することができる。データ信号は個々のビットの代わりにビットパターンを表すため、８ビットデータ信号のシリアル通信は、個々のビットを表す８個の信号のパラレル通信と同程度に効率的である可能性がある。
【００３８】
プログラミングするための方法は、メモリデバイス７０１などのメモリに対する種々の実施形態において実施されてもよい。このような方法は、図１−図６を参照して本明細書に図示され記述される。
【００３９】
［結論］
要約すると、本開示の一つ以上の実施形態は、マネージメモリまたは組込みメモリ内のハウスキーピング動作の管理を示す。ハウスキーピング指示は、メモリデバイスによって作成され、システムのリアルタイム動作に悪影響を与えないように、適切であるとホストによって判定された時刻にホストによって開始される。
【００４０】
本明細書では特定の実施形態が図示され記述されてきたが、示された特定の実施形態に対して同一の目的を達成すると推定されるあらゆる配置が置換されてもよいことを当業者には理解されたい。本開示の多くの適用は、当業者に明らかであろう。したがって、本出願は、本開示のあらゆる適応または変形を包含するよう意図される。
【図１】
2016522513.tif 000003
【図２】
2016522513.tif 000004
【図３】
2016522513.tif 000005
【図４】
2016522513.tif 000006
【図５】
2016522513.tif 000007
【図６】
2016522513.tif 000008
【図７】
2016522513.tif 000009
【手続補正書】
【提出日】平成28年2月19日(2016.2.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マネージメモリを有するシステムの動作方法であって、
前記マネージメモリに対してハウスキーピング動作がいつ指示されたかを判定することと、
前記ハウスキーピング動作が指示されたことを前記システムのホストに報告することと、
を含む、
ことを特徴とする方法。
【請求項２】
前記マネージメモリがビジーではないときに、前記ハウスキーピング動作を前記ホストが開始することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記システムの状態に基づいて、前記ハウスキーピング動作を前記ホストが開始することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記システムがシャットダウンされるとき、ハウスキーピングが指示された指示を記憶することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記メモリ内の前記ハウスキーピングがいつ指示されたかを、組込みメモリによって検出することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記メモリ内のハウスキーピングに関する懸念によって、ブロック移動がいつ指示されたかを検出することと、
リアルタイムシステム動作に悪影響を与えることなく、ブロック移動が達成され得ることをホストが判定するときに、前記システムの前記ホストによってブロック移動を誘発することと、
をさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
メモリセルのアレイおよびコントローラを含み、
前記コントローラは、メモリセルの前記アレイの動作を制御するように構成され、前記コントローラは、前記マネージメモリに対してハウスキーピング動作がいつ指示されたかを判定し、前記ハウスキーピング動作が指示されたことを外部ホストに報告するようにさらに構成される、
ことを特徴とするメモリデバイス。
【請求項８】
前記コントローラは、前記外部ホストからの開始コマンドに応じて、前記ハウスキーピング動作を開始するようにさらに構成される、
ことを特徴とする請求項７に記載のメモリデバイス。
【請求項９】
前記メモリデバイスは、報告ピンをさらに含み、前記コントローラは、前記報告ピンにおける信号で前記ホストに報告するようにさらに構成される、
ことを特徴とする請求項７に記載のメモリデバイス。
【請求項１０】
前記メモリデバイスは、前記メモリの各ブロックに対してフラグビットをさらに含み、前記フラグビットは、ハウスキーピングがいつ指示されたかを指示する指示をそのブロックに対して記憶し、前記コントローラは、ハウスキーピングが指示されたことをブロック内のフラグビットが指示するときに、前記ホストに報告するようにさらに構成される、
ことを特徴とする請求項７に記載のメモリデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
図４は、サイクルカウントに基づいてハウスキーピングを実施するための方法４００を示す。一実施形態においては、検出することは、ブロック４０２において、メモリシステム内のサイクルカウントを検出することを含む。サイクルカウントに基づくハウスキーピングは、一実施形態においては、ウェアレベリングを含み、ブロック４０４において、カウントされたサイクルが特定の閾値を超える各物理ブロックにフラグを設定することと、ブロック４０６において、フラグが設定されたブロックにオンデマンドウェアレベリングを実施することと、ブロック４０８において、ウェアレベリングが実施されたブロックに対してフラグ情報を消去することと、サイクルカウントに基づいたウェアレベリングが望まれ、電源オフ前にウェアレベリングが実施されていないブロックに対して、ブロック４１０において電源オフ前に不揮発性メモリにフラグ情報を書き込むことと、を含む。オンデマンドウェアレベリングは、例えば、システム状態に基づいて、ウェアレベリング用に適切であるとホストが判定する時刻に、システムのホストによって開始されるウェアレベリングである。上述されたように、システムの電源オフ時に、スワップしなかった、指示されたウェアレベリングを有するこれらのブロックが、その後のハウスキーピングのために記憶された指示を有する。システムの電源オン時に、一実施形態においては、システムが、フラグ情報がウェアレベリングが実施されていないことを指示するブロックに対してチェックし、ウェアレベリングが実施されていないことをフラグ情報が指示するブロックに対してシステムの電源オン中にウェアレベリングを実施し、ウェアレベリングを実施したブロックに対するフラグ情報を消去する。
【国際調査報告】
2016522513.tif 000010
2016522513.tif 000011