(57)【要約】  方法、システム、およびデバイスは、NANDメモリデバイス上に記憶されたデータイメージをリフレッシュするために提供する。態様は、パーティションテーブル内で識別されるデータイメージパーティションを記憶しないスクラブ部分内に一連の静的データパーティションの各々を順次にコピーすることを含む。順次コピーは、最後の静的データパーティションで開始し、スクラブ部分が最後の静的データパーティションの最後のアドレスよりも上位のアドレスを占有するとき、第1の静的データパーティションに順次に進む。代替的には、順次コピーは、第1の静的データパーティションで開始し、スクラブ部分が第1の静的データパーティションの第1のアドレスよりも下位のアドレスを占有するとき、最後の静的データパーティションに順次に進む。パーティションテーブルは、各静的データパーティションがスクラブ部分に記憶されたとき、更新され得る。そのような動作は、NANDデバイス内のデータのフェールセーフなスクラビングおよびリフレッシュを可能にする。
2016540297.tif 000002
【特許請求の範囲】
【請求項１】
NANDメモリデバイス上のデータイメージをリフレッシュする方法であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位であり、前記方法が、
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションの各々を順次にコピーするステップを含み、前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーするステップが、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位のアドレスを占有するとき、第1の静的データパーティションに順次に進むステップと、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むステップと、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するステップと
を含む、方法。
【請求項２】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するステップと、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーするステップが、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するステップを含む、請求項1に記載の方法。
【請求項７】
前記一連の静的データパーティションのうちの少なくとも1つが、前記NANDメモリデバイス上の前記データイメージをリフレッシュする前に、前記一連の静的データパーティションのうちの少なくとも1つの他のものによって以前に占有されたアドレスにコピーされる、請求項1に記載の方法。
【請求項８】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するステップが、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するステップを含む、請求項1に記載の方法。
【請求項９】
前記NANDメモリデバイスが、前記データイメージの一部として静的データと動的データの両方を含み、リフレッシュされる前記一連の静的データパーティションが、前記静的データを含み、動的データが、リフレッシュされない、請求項1に記載の方法。
【請求項１０】
データイメージが記憶されたNANDメモリデバイスであって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連の静的データパーティションに分割され、第1の静的データパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後の静的データパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各静的データパーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位である、NANDメモリデバイスと、
前記NANDメモリデバイスに結合され、プロセッサ実行可能命令を用いて、
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーする動作を含む動作を実行するように構成されたプロセッサと
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーする動作が、
前記最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位のアドレスを占有するとき、前記第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、コンピューティングデバイス。
【請求項１１】
前記プロセッサが、プロセッサ実行可能命令を用いて、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、前記データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、プロセッサ実行可能命令を用いて、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、プロセッサ実行可能命令を用いて、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、プロセッサ実行可能命令を用いて、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１５】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１６】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１７】
NANDメモリデバイス内に順次に記憶された一連のパーティションに分割されたデータイメージを記憶するNANDメモリデバイスであって、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位である、NANDメモリデバイスと、
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションの各々を順次にコピーするための手段と
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーするための手段が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位のアドレスを占有するとき、第1の静的データパーティションに順次に進むための手段と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むための手段と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するための手段と
を備える、コンピューティングデバイス。
【請求項１８】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するための手段と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２０】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２１】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２２】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーするための手段が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するための手段を含む、請求項17に記載のコンピューティングデバイス。
【請求項２３】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するための手段が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するための手段を備える、請求項17に記載のコンピューティングデバイス。
【請求項２４】
NANDメモリデバイス上のデータイメージをリフレッシュするための動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位であり、前記動作が、
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションの各々を順次にコピーする動作を含む動作を含み、前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーする動作が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位のアドレスを占有するとき、第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令が、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令が、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションの各々を順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、すべての目的のために参照によりその全体の内容が本明細書に組み込まれている、「Fail Safe Refresh of Data Stored in NAND Memory Device」と題する、2013年11月11日に出願した、米国仮出願第61/902,394号の優先権を主張するものである。
【背景技術】
【０００２】
フラッシュメモリとは、電気的に消去し、プログラムし直すことができる不揮発性コンピュータ記憶チップである。NANDフラッシュメモリ(「NANDメモリデバイス」または単に「NAND」とも呼ばれる)は、ブロックまたはページにおいてプログラムされ、読み出され得る高密度タイプの読み書きメモリである。NANDメモリデバイスは、メモリカード、USBフラッシュデバイス、ソリッドステートドライブ、および、一般的なデータの記憶および転送のための同様の製品において使用され、ならびに、コンピューティングデバイスを含む多数のデジタルデバイス内に構成データを記憶するために使用される。NANDの特性は、その中に記憶されたデータイメージのすべてまたは一部が、書き換えられ得、したがって、更新され得ることである。本明細書で使用するとき、「データイメージ」という用語は、NANDの1つまたは複数のメモリセル内に記憶された情報を指す。
【０００３】
NANDは、典型的には、各ブロックがいくつかのページからなるいくつかのブロックに編成される。「ブロック」は、それがフラッシュメモリ、特にNANDに関するとき、公称長さを有する、記憶バイトまたはビットの配列を含む。その長さは、ブロックサイズと呼ばれる。ブロック中にデータを記憶するプロセスは通常1つのページとして一度に遂行されるが、データの消去は、ブロック単位で行われる。
【０００４】
NAND上に記憶されるデータイメージは、一般的に、「パーティション」と呼ばれる複数の論理記憶ユニットに分割される。パーティションは、互いに関連するブロックを一緒にグループ化する。ブロックおよびそれらの関連するパーティションの編成は、ブロックアドレスをマッピングするポインタを含む、NAND上のパーティションテーブルによって維持され得る。
【０００５】
NANDメモリデバイスは、しばしば、2つのカテゴリのデータ、すなわち、静的データおよび動的データを記憶するために使用される。静的データは、一般的に、安定している特定の機能をコンピューティングデバイスに与えるなど、コンピューティングデバイスを構成するために使用され、したがって、静的データは、典型的には、決してまたは非常にまれにしか修正されない。ブートローダ、コアセキュリティ、リソース接続、および電源管理に関連したコンパイルされたコードは、しばしばNANDメモリデバイス内に記憶された静的データのいくつかの例である。対照的に、動的データは、典型的には、アプリケーションデータ、ファイル、およびシステムオペレーティングデータなどの、頻繁に変更されるデータを含む。
【０００６】
時間の経過とともに、いくつかのデータビットが失われる原因となり得る熱拡散プロセスのため、データを記憶するために使用される材料の状態が変化する可能性があるので、NAND内に記憶されたデータイメージは、劣化する可能性があり、これは、破損したデータイメージをもたらす可能性がある。データイメージの損失を回避するために、NANDメモリデバイスは、データイメージをリフレッシュするために、定期的に再プログラムされなければならない。
【発明の概要】
【課題を解決するための手段】
【０００７】
様々な態様は、NANDメモリデバイス上に記憶されたデータイメージをリフレッシュするための方法、システム、およびデバイスを含む。NANDメモリデバイス上に記憶されたデータは、NANDメモリデバイス内に順次に記憶されたパーティションに分割され得る。データの第1のパーティションは、第1のアドレスにおいて開始するNANDメモリデバイス内に記憶され得、データの最後のパーティションは、最後のアドレスにおいて終了するNANDメモリデバイス内に記憶され得、各パーティションのアドレスは、パーティションテーブル内に記憶される。NANDメモリデバイス上に記憶されたデータは、頻繁に書き換えられるまたは変更される動的データと、変化したとしてもまれである静的データ(たとえば、オペレーティングシステムソフトウェア)とを含む可能性がある。したがって、NANDメモリデバイス上に記憶されたデータは、静的データのいくつかのパーティションが続く(または、先行する)動的データのいくつかのパーティションを含む可能性がある。NANDメモリ空間のいくつかの部分は、パーティションテーブル内でもはや参照されないデータを含まない可能性または含む可能性があり、この未使用のメモリ空間は、データイメージをリフレッシュする目的のために使用され得、本明細書では一般に「スクラブ(scrub)部分」と呼ばれる。
【０００８】
一態様において、NANDメモリデバイス上に記憶された静的データイメージをリフレッシュするための方法は、パーティションテーブル内で識別されるデータイメージパーティションを記憶しないNANDメモリデバイスのスクラブ部分内に一連の静的データパーティションの各々を順次にコピーするステップを含むことができる。一連の静的データパーティションの各々を順次コピーするステップは、最後の静的データパーティションで開始し、スクラブ部分が最後の静的データパーティションの最後のアドレスよりも上位のアドレスを占有するとき、第1の静的データパーティションに順次に進み、一連の静的データパーティションの各々を順次コピーするステップは、第1の静的データパーティションで開始し、スクラブ部分が第1の静的データパーティションの第1のアドレスよりも下位のアドレスを占有するとき、最後の静的データパーティションに順次に進む。また、パーティションテーブルは、各静的データパーティションがスクラブ部分に記憶されたときに更新される。
【０００９】
さらなる態様は、NANDメモリデバイス上のデータイメージをリフレッシュする際に、クロックを読み出すまたは開始するステップを含む。その後、データイメージがリフレッシュされるべきであることをクロックが示しているか否かについて決定が行われ得、NANDメモリデバイス上のデータイメージをリフレッシュする動作は、データイメージがリフレッシュされるべきであることをクロックが示しているという決定に応答して実行され得る。
【００１０】
さらなる態様は、パーティションテーブル内に記憶されたパーティションアドレスに基づいて、スクラブ部分が一連の静的データパーティションよりも上位のアドレスを占有しているか否かを決定するステップを含むことができる。また、スクラブ部分が一連の静的データパーティションよりも上位のアドレスを占有しているか否かを決定するステップは、パーティションが最後の静的データパーティションよりも上位のアドレスまたは第1の静的データパーティションよりも下位のアドレスのいずれに最後にコピーされたのかに基づいて設定されたNANDメモリデバイス内に記憶されたデータに基づき得る。加えて、NANDメモリデバイスは、一連の静的データパーティションが静的データを含み、一連の静的データパーティション内に含まれない他のパーティションが動的データを含むように、データイメージの一部として記憶された静的データと動的データの両方を含むことができる。
【００１１】
さらなる態様は、スクラブ部分が最後の静的データパーティションの最後のアドレスよりも上位のアドレスを占有するときにNANDメモリデバイス内の最上位のアドレスにおいて終了するように、最後の静的データパーティションをコピーするステップを含むことができる。代替的には、第1の静的データパーティションは、スクラブ部分が第1の静的データパーティションの第1のアドレスよりも下位のアドレスを占有するときにNANDメモリデバイス内の最下位のアドレスにおいて開始するように、コピーされ得る。加えて、一連の静的データパーティションのうちの少なくとも1つは、NANDデバイス上のデータイメージをリフレッシュする動作を実行する前に、一連の静的データパーティションのうちの少なくとも1つの他のものによって以前に占有されたアドレスにコピーされ得る。
【００１２】
さらなる態様において、NANDデバイス内に記憶されたデータにアクセスするためにコンピューティングシステムによって使用される後に更新されるパーティションテーブルを有する2つのパーティションテーブルが存在してもよい。この態様において、パーティションテーブルを更新するステップは、2つのパーティションテーブルのうちの更新された一方のローリングカウンタを更新するステップを含み、2つのパーティションテーブル間で交互になっていてもよい。そのようなローラカウンタは、2つのパーティションテーブルのうちのどちらが最後にリフレッシュされたのかを示すことができ、および/または、一連のパーティションの各々がコピーされた後に更新される必要がある2つのパーティションテーブルのうちの古い方を示すことができる。また、パーティションテーブルを更新するステップは、パーティションテーブルが最後に更新されたときを反映するシステムファイル内の時刻値を保存するステップを含むことができる。
【００１３】
さらなる態様は、NANDメモリデバイスと、上記で論じた方法に対応する様々な動作を実行するようにプロセッサ実行可能命令を用いて構成された、NANDメモリデバイスに結合されたプロセッサとを有するコンピューティングデバイスを含む。
【００１４】
さらなる態様は、上記で説明した方法動作に対応する機能を実行するための様々な手段を有するコンピューティングデバイスを含む。
【００１５】
さらなる態様は、上記で説明した方法動作に対応する様々な動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した、非一時的プロセッサ可読記憶媒体を含む。
【００１６】
本明細書に組み込まれ、本明細書の一部を成す添付の図面は、本発明の例示的な態様を示し、上記の概略的な説明および下記の発明を実施するための形態とともに、本発明の特徴について説明するのに役立つ。
【図面の簡単な説明】
【００１７】
【図１】一態様による読み書きメモリデバイスパッケージングの概略的なブロック図である。
【図２Ａ】一態様によるNANDデバイスをリフレッシュするための一連の初期プロセスステップを示す一連の概略図である。
【図２Ｂ】一態様による図2Aのステップに続くプロセスステップをさらに示す一連の概略図である。
【図３Ａ】一態様によるNANDデバイスをリフレッシュするための後のプロセスステップを示す一連の概略図である。
【図３Ｂ】一態様による図3Aのステップに続くプロセスステップをさらに示す一連の概略図である。
【図４】読み書きメモリ上のデータイメージをリフレッシュする一態様の方法を示すプロセスフロー図である。
【図５】様々な開示された態様による、NANDを含むコンピューティングデバイスを示す概略構成図である。
【発明を実施するための形態】
【００１８】
様々な態様は、添付図面を参照して詳細に説明される。可能な限り、同じ参照番号は、図面全体を通して、同じまたは同様の部分を指すために使用される。特定の例および実施態様になされる参照は、例示目的のためであり、本発明の範囲または特許請求の範囲を限定するものではない。本開示の範囲から逸脱することなく、代替の態様が考案され得る。加えて、本開示の周知の要素は、本開示の関連する詳細を不明瞭にしないように、詳細には説明されず、または、省略される。
【００１９】
「例示的」という語は、本明細書において、「例、事例、または例示として役に立つ」ことを意味するために使用される。「例示的」として本明細書で説明される任意の実施態様は、必ずしも、他の実施態様よりも好ましいまたは有利であると解釈されるべきではない。加えて、「第1の」、「第2の」、「第3の」、「初期」という語、または同様の言い回しの使用は、本明細書では、様々な説明した要素を区別するための、明瞭さの目的のためのものであり、本発明を要素の特定の順序または階層に限定するものではない。
【００２０】
本明細書で使用する「アクセス」または「アクセスする」という用語は、その上のデータもしくは情報を走査または読み出す目的のために、電子記憶デバイスと、または、指定された場合、その特定の部分と対話する作用を指す。また、本明細書で使用する「走査」または「走査する」という用語は、特に電子記憶デバイス中のデータまたは情報を調べ、解釈し、または吟味することを意味する。対照的に、本明細書で使用する「読出し」または「読み出す」という用語は、特に電子記憶デバイス中のデータまたは情報を取得する、抽出する、または検索することを意味する。本明細書で使用する「コピー」または「コピーする」という用語は、1つの場所からのデータの1つのセットの実質的に同一のバージョンを別の場所において再生するまたは作成することを意味する。本明細書で使用する「順次」または「順次に」という用語は、最初から最後へ、最後から最初へ、最下位アドレスから最上位アドレスへ、最上位アドレスから最下位アドレスへ、などの順序において生じるまたは続くことを指す。
【００２１】
様々な態様は、NANDメモリデバイス上の静的データイメージをリフレッシュするための方法、デバイス、および/またはシステムを提供する。再プログラミングすることによってデータイメージのすべてまたは一部をリフレッシュするプロセスは、本明細書では「スクラビング」または「スクラブ」とも呼ばれる。スクラビングのプロセスは、特定のメモリ位置から読み出すことと、誤り訂正コード(ECC)を用いて(もしあれば)ビット誤りを訂正することと、訂正されたデータを別の位置にまたは同じ位置に書き込むこととを含むことができる。NANDメモリデバイス上に記憶された静的データイメージは、データが時間の経過とともに正確で読出し可能なままであることを保証するために、定期的にスクラブされ得る(すなわち、再プログラミングによってリフレッシュされ得る)。しかしながら、NANDメモリデバイスの再プログラミングは、再プログラミングされることを意図していない動的データまたは他の静的データに影響を与えず、再プログラミングの途中での電力の損失などの、可能性があるイベントに対応することができるフェールセーフな方法において行われなければならいという事実によって、複雑化される可能性がある。また、特定のNANDを劣化させるのに要する正確な時間は、温度、それが露出する条件、および使用法に応じて、大きく異なる。期間は、3もしくは4カ月と短い、または長年にわたる可能性がある。したがって、データ損失を防止するために、NAND上に記憶された静的データは、そこに記憶された動的データなどの他のデータに影響を与えることなく、定期的にリフレッシュされるべきである。様々な態様は、静的データのフェールセーフな更新およびその処理を可能にすることによって、NANDメモリデバイスなどの読み書きメモリデバイスにおけるデータ保持を促進する。
【００２２】
マスターブートレコード(MBR)またはGUIDパーティションテーブル(GPT)パーティション構成と同様に、NANDパーティションは、ソフトウェアにおいて管理され得る。そのソフトウェアは、静的データをリフレッシュすることの一部として、NANDメモリデバイス内に記憶されたパーティションテーブルを維持し、更新することができる。また、静的データがリフレッシュされる必要があるか否かを決定するために、静的データイメージの最後のリフレッシュ、または、静的データイメージの次に必要とされるリフレッシュのカウンタ、時間値、または他の指標は、システムメモリなどのファイルシステムにおいて、または、NANDメモリデバイス上に記憶された他の動的データとともに記憶され得る。そのカウンタ、時間値、または他の指標は、定期的にチェックされ得、および/または、静的データがスクラブされた最後の時間から4カ月などの、将来における所望の時間において静的データイメージのリフレッシュをトリガするために使用され得るタイマ設定であり得る。
【００２３】
図1は、本明細書に開示される態様によるNANDメモリデバイス110を含むコンピューティングデバイス100のブロック図を示す。コンピューティングデバイス100は、プロセッサ102、読出し専用メモリ(ROM)106、1つまたは複数の入力/出力ポート108、およびメモリコントローラ104が通信することを可能にするシステムバス101を含むことができる。加えて、NANDメモリデバイス110は、メモリコントローラ104を介してシステムバス101とインターフェースするように構成され得る。コンピューティングデバイス100は、ディスプレイ/出力デバイスまたはネットワーキングデバイスなどの、図示されていない他の構成要素を含むことができる。また、コンピューティングデバイス100は、単一のコンピュータチップ上に、またはシステムオンチップ(SOC)として実装され得る。
【００２４】
NANDメモリデバイス110は、永続的メモリデバイスとして、コンピューティングデバイス100のハードウェア内に含まれ得る。また、NANDメモリデバイス110は、マルチチップモジュールとして、または、チップセットを形成することができ、一緒に使用され得る複数のディスクリート構成要素上に実装され得る。データは、記憶され、アクセスされ、NANDメモリデバイス110から読み出され得る。加えて、NANDメモリデバイス110内に記憶されたデータは、適宜、書き込まれ、消去され得る。メモリコントローラ104は、単一のチップとして、または別個の構成要素として、NANDメモリデバイス110内に組み込まれ得る。メモリコントローラ104は、データを分割する、1つまたは複数のパーティションテーブルを更新する、データを読み出す、データをコピーする、データを記憶する、およびデータを消去するプロセスなど、NANDメモリデバイス110を制御するように構成され得る。様々な態様において、NANDメモリデバイス110上に記憶されたデータイメージは、一連の静的データパーティションP1〜P3、ならびに、空きブロックPEmptyを含む追加のパーティションと、動的データを記憶するために使用される動的データパーティションPnを含むさらなるパーティションとに分割され得る。
【００２５】
図2Aおよび図2Bは、様々な態様によるNANDデバイスをリフレッシュするための一連のプロセスステップを示す一連の概略図を示す。図2Aおよび図2B中の概略図の各々は、一態様のデータイメージリフレッシュプロセスの異なる段階における同じNANDメモリデバイスを表す。同様に、図3Aおよび図3Bは、開示された態様によるNANDデバイスをリフレッシュするための一連のプロセスステップを示す一連の概略図を示す。図3Aおよび図3B中の概略図の各々は、データイメージリフレッシュプロセスの異なる段階における同じNANDメモリデバイスを表す。また、図2Aおよび図2Bに示すプロセスステップは、図3Aおよび図3Bに示すものと同じNANDメモリデバイスであり得るが、異なる時間においてNAND上で実行され得る。一態様によれば、図2Aおよび図2Bに示すプロセスは、NANDメモリデバイスに記憶された静的データイメージがリフレッシュされる度に、図3Aおよび図3Bに示すプロセスと交互にされ得る。
【００２６】
図2Aおよび図2Bを参照すると、NANDは、リフレッシュされるように選択された一連の静的データパーティションP1、P2、P3と、パーティションテーブルTP内で識別されるデータイメージパーティションを記憶しないスクラブパーティションPScrubと、追加のパーティションPnとを含む、多数のパーティションに分割されたデータイメージを含む。また、NANDは、ブロックを特定のパーティションに関連付けるポインタを各々が含む2つの別個のパーティションテーブルTP1、TP2を含むことができる。パーティションテーブルは、NANDメモリデバイスの初期領域を占有する所定の範囲のブロック内に記憶される。図2A、図2B、図3A、および図3Bにおいて、パーティションテーブルは、例示の目的のためにブロック0およびブロック1を占有しているように示されているが、パーティションテーブルは、2つよりも多くのブロックを占有することができ、ブロック0において開始する必要はなく、互いに連続的である必要はない。不良ブロックおよび他の要素に適応するために、所定のアドレスの範囲は、本明細書におけるリフレッシュプロセス中に更新されるパーティションテーブルのコピーをそのまま記憶するために予約され得る。2つの異なるパーティションテーブルTP1、TP2は、静的データイメージがリフレッシュされる度に、交互の順序において更新され得る。パーティションテーブルが更新される度に、その更新されたパーティションテーブルは、それが2つの別個のパーティションテーブルのうち最近更新されたものであることの指示を含むことができる。そのような指示は、図2A、図2B、図3A、および図3Bにおいて、パーティションテーブル参照下付き文字TPxの文字「x」における増分変化として示されている。図3Aおよび図3Bにおいて、2つの別個のパーティションテーブルは、パーティションテーブルTP5、TP4として開始し、交互に更新されるように継続する。このように、2つの別個のパーティションテーブルのうちの一方TP5は、最近更新されたものであり、2つの別個のパーティションテーブルのうちの他方TP4は、最近更新されたものではない。この二重パーティションテーブル構成は、NANDを更新するためのフェールセーフな方法を提供し、他のパーティションの更新中に問題(たとえば、リフレッシュ中の電力損失)が生じた場合、または、他のなにかが他方のパーティションテーブルに起こった場合、一方のパーティションテーブルが使用可能であることを保証する。
【００２７】
リフレッシュされるように選択された一連のパーティションP1、P2、P3は、トラストゾーン(TZ)パーティション、リソース電力管理(RPM)パーティション、およびブートローダパーティションなどの静的データの特定のパーティションまたはセグメント、ならびに、定期的にリフレッシュされることから利益を得ることができる追加の静的データパーティションに割り振られ得る。そのような静的データパーティションは、NANDメモリデバイスのメモリアドレス内で連続的に一緒にグループ化される。一態様において、リフレッシュされるべき一連のパーティションは、動的データを含む他のパーティションがリフレッシュされる一連の静的データパーティションの前および/または後に配置され得るような、連続した静的データパーティションである。代替態様において、1つまたは複数の動的データパーティションは、静的データパーティションの前および/または後に連続的に一緒にグループ化され得、本明細書で説明するようにリフレッシュされる一連のパーティションの中に含まれ得る。そのような代替態様において、リフレッシュされる対象となるそのような動的データパーティションは、それらがリフレッシュされる静的データパーティションであり、リフレッシュされる実際の静的データパーティションと一緒にグループ化されたかのように処理され得る。
【００２８】
加えて、1つまたは複数の連続的なパーティションの領域は、本明細書では「スクラブ部分」とも呼ばれる、スクラブパーティションPScrubとして示される。「スクラブパーティション」およびスクラブ部分という用語は、本明細書では、パーティションテーブル内で識別されるデータイメージパーティションを記憶しないNANDメモリ空間の部分を指すために使用される。言い換えれば、メモリのスクラブ部分は、メモリレジスタおよび部分が、空であるか、または、コンピューティングデバイスにもはや利用可能ではない(すなわち、パーティションテーブル内で識別されない)データを記憶しているので、データを書き込むために利用可能である。
【００２９】
静的データイメージをリフレッシュするプロセスの間、NANDメモリデバイス内のスクラブパーティションPScrubの一部は、データイメージの一連のパーティションを順次コピーする間にパーティションが移動される(すなわち、メモリ位置の1つのグループからスクラブパーティションの一部にコピーされる)につれて、シフトすることができる。
【００３０】
NANDは、動的データを含むデータの追加のパーティションPnを記憶することができ、追加のパーティションPnは、それらの定期的な更新が、データがフレッシュのままであることを保証するので、リフレッシュされる必要はない。動的データパーティションは、一般的に、静的データパーティションとインターリーブされない。
【００３１】
データイメージ内のパーティションの各々は、いくつかのブロックで構成され得るが、各パーティション内のブロックの数は、同じである必要はない。例示の目的のために、第1のパーティションP1は、10のブロック(B1...B10)を含むものとして示され、第2のパーティションP2は、20のブロック(B1...B20)を含むものとして示され、第3のパーティションP3は、100のブロック(B1...B100)を含むものとして示され、スクラブパーティションPScrubは、200のブロック(B1...B200)を含むものとして示されている。各パーティション内のブロックの数は、異なるNANDデバイスごとに、異なるデータイメージごとに、および、データイメージの様々な部分が更新または変更される時間の経過とともに変化してもよい。
【００３２】
図2Aおよび図2Bは、スクラブパーティションPScrubがリフレッシュされるべきデータを記憶する一連のパーティションよりも上位のアドレスを占有するときの、NANDメモリデバイス内に記憶された静的データイメージをリフレッシュするための一連のプロセスステップを示す。図2Aに示すステップ200において、逆のパーティション順(すなわち、最後のパーティションで開始し、第1のパーティションを目指す)で一連のパーティションP1、P2、P3をスクラブ部分にコピーすることは、スクラブ部分に書き込むためにコピーされている最後の部分で開始することができ、したがって、その最上位のデータは、スクラブ部分内の最上位アドレスに記憶される。一連のパーティションP1、P2、P3の順次コピーは、一連のリフレッシュされたパーティションP1r、P2r、P3rを生成する。逆のパーティション順で一連のパーティションP1、P2、P3をコピーするプロセスは、一連のパーティションP1、P2、P3の最後のパーティションP3をスクラブ部分の最後に(すなわち、パーティションを記憶することになる最上位アドレスに)コピーすることによって開始する。ステップ202は、スクラブパーティションPScrubの最後を占有する最後のリフレッシュされたパーティションP3rを生成するために使用されている一連のパーティションのうちの最後の1つP3のコピーを示す。最後のリフレッシュされたパーティションP3rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。最後のリフレッシュされたパーティションP3rが不良コピーである場合、プロセスは、ステップ200においてパーティションをコピーする動作を繰り返すことができ、これは、ステップ202においてリフレッシュされたパーティションを生成する。そうでなければ、ステップ204において、パーティションテーブルTP3は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP3rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP3の開始アドレスからポインタを変更するために更新され得る。また、最新のパーティションテーブルポインタが、もはや一連のパーティションのうちの最後の1つP3によって以前に占有されたNANDメモリの領域を指さないとき、ステップ204において、最後のリフレッシュされたパーティションP3rは、一連のパーティションのうちの最後の1つP3と再び呼ばれ得る。加えて、ステップ204によって、スクラブパーティションPScrubは、一連のパーティションのうちの最後の1つP3の初期位置がスクラブパーティションPScrubの一部になっているので、実質的に左にシフトされている。このように、スクラブパーティションPScrubは、また、ここで、静的データパーティションの間にインターリーブされる。ステップ200、202、および204は、すべて、一連の直接隣接するステップとして一緒に起こり得ることに留意すべきである。ステップ204は、また、以前にコピーされたパーティションに隣接するNANDメモリの部分内に、まだコピーされていない一連のパーティション内の次の1つP2をコピーするステップを含むことができる。
【００３３】
図2Bに示すステップ206において、コピーされたパーティションP2は、次のリフレッシュされたパーティションP2rを生成するために使用される。実際には、この次のリフレッシュされたパーティションP2rは、新たにシフトされたスクラブパーティションPScrubの末尾を占有することができる。次のリフレッシュされたパーティションP2rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。次のリフレッシュされたパーティションP2rが不良コピーである場合、ステップ206においてリフレッシュされたパーティションを生成するステップ204のコピープロセスは、繰り返され得る。そうでなければ、ステップ208において、パーティションテーブルTP4は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP2rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP2の開始アドレスからポインタを変更するために更新され得る。最新のパーティションテーブルポインタは、もはや、一連のパーティションのうちのコピーされた第2のパーティションP2によって以前に占有されたNANDメモリの領域を指さない可能性がある。したがって、ステップ208において、次のリフレッシュされたパーティションP2rは、一連のパーティションのうちの第2のものP2と呼ばれ得る。このように、リフレッシュされたパーティションがコピーされた元のパーティションは、スクラブパーティション内に吸収されており、もはや認識されないので、リフレッシュされたパーティションは、それがコピーされた元のパーティションを置き換える。加えて、一連のパーティションのうちの第2のものP2の初期位置は、スクラブパーティションPScrubの一部になっているので、ステップ208において、スクラブパーティションPScrubは、実質的にさらに左にシフトされている。スクラブパーティションPScrubは、依然として静的データパーティション間でインターリーブされ得る。ステップ204、206、および208は、すべて、一連の直接隣接するステップとして一緒に起こり得ることに留意すべきである。また、ステップ208は、以前にコピーされたパーティションに隣接するNANDメモリの部分内に、まだコピーされていない一連のパーティションにおける次の1つをコピーするステップを含むことができる。この図示の例において、まだコピーされていない一連のパーティションのうちの次の1つは、一連のパーティション内の第1のものP1である。
【００３４】
ステップ210において、まだコピーされていない一連のパーティション内の次の1つP1のコピーは、以前にコピーされたパーティションに隣接するメモリレジスタを占有する、したがって、シフトされたスクラブパーティションPScrubの末尾において開始する別のリフレッシュされたパーティションP1rを生成するために使用される。第1のリフレッシュされたパーティションP1rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。第1のリフレッシュされたパーティションP1rが不良コピーである場合、ステップ210においてリフレッシュされたパーティションを生成するステップ208のコピープロセスは、繰り返され得る。そうでなければ、ステップ212において、パーティションテーブルTP5は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP1rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP1の開始アドレスからポインタを変更するために更新され得る。また、最新のパーティションテーブルポインタが、もはや一連のパーティションのうちの第1のものP1によって以前に占有されたNANDメモリの領域を指さないとき、ステップ212において、第1のリフレッシュされたパーティションP1rは、一連のパーティションのうちの第1のものP1と再び呼ばれ得る。したがって、一連のパーティションのうちの第1の1つP1をコピーした後、一連のパーティションのうちの第1の1つP1の以前の位置は、スクラブパーティションPScrubの一部になっているので、スクラブパーティションPScrubは、ずっと左にシフトされている。また、それは、一連のパーティションのうちのコピーされるべき最後のパーティションであったので、スクラブパーティションPScrubは、もはや、パーティションテーブルTP5、TP4以外で、リフレッシュされている静的データパーティション間でインターリーブされていない。
【００３５】
リフレッシュされるべき一連のデータイメージパーティションは、典型的には、3つよりも多くのパーティションを含む。たとえば、静的データの8〜12のパーティションがリフレッシュされ得、この場合、上記で説明したプロセスステップは、すべてのパーティションがこの方法においてリフレッシュされるまで繰り返され得る。
【００３６】
NANDメモリデバイス内の静的データイメージがリフレッシュされる次の時間、パーティションは、図3Aおよび図3Bに示すような他の方向かつ逆の順序でコピーされ得、図3Aおよび図3Bは、スクラブパーティションPScrubがリフレッシュされるべき一連のパーティションの第1のアドレスよりも下位のアドレスを占有するとき、NANDメモリデバイス上に記憶されたデータイメージをリフレッシュするためのプロセス動作を示す。この状況においてデータイメージをリフレッシュする発端では、一連のパーティションP1、P2、P3は、スクラブパーティションの少なくとも一部を置き換える一連のリフレッシュされたパーティションを生成するために、連続したパーティションの順序においてコピーされ得る。
【００３７】
図3Aに示すステップ300において、一連のパーティションのうちの第1の1つP1は、第1のリフレッシュされたパーティションを生成するためにコピーされる。ステップ302において、一連のパーティションのうちの第1の1つP1のコピーは、スクラブパーティションPScrubの先頭(すなわち、最下位メモリアドレス)を占有する第1のリフレッシュされたパーティションP1rを生成するために使用される。連続したパーティションの順序において一連のパーティションP1、P2、P3をコピーするプロセスは、最初に、スクラブパーティションの先頭(すなわち、スクラブパーティション内の最下位アドレスの範囲)に一連の第1のパーティションのうちの第1の1つP1をコピーする。第1のリフレッシュされたパーティションP1rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。第1のリフレッシュされたパーティションP1rが不良コピーである場合、ステップ302においてリフレッシュされたパーティションを生成するステップ300におけるコピープロセスは、繰り返され得る。そうでなければ、ステップ304において、パーティションテーブルTP6は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP1rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP1の開始アドレスからポインタを変更するために更新され得る。また、最新のパーティションテーブルポインタが、もはや一連のパーティションのうちの第1のものP1によって以前に占有されたNANDメモリの領域を指さないとき、ステップ304において、第1のリフレッシュされたパーティションP1rは、一連のパーティションのうちの第1のものP1と再び呼ばれ得る加えて、ステップ304によって、スクラブパーティションPScrubは、一連のパーティションのうちの第1のものP1の初期位置がスクラブパーティションPScrubの一部になっているので、実質的に右にシフトされている。このように、スクラブパーティションPScrubは、また、ここで、リフレッシュされている静的データパーティションの間にインターリーブされる。ステップ300、302、および304は、すべて、一連の直接隣接するステップとして一緒に起こり得ることに留意すべきである。ステップ304は、また、以前にコピーされたパーティションに隣接するNANDメモリの部分内に、まだコピーされていない一連のパーティション内の次の1つP2をコピーするステップを含むことができる。
【００３８】
ステップ306において、まだコピーされていない一連のパーティション中のコピーされる次の1つP2は、スクラブパーティションPScrubの先頭を占有する次のリフレッシュされたパーティションP2rを生成するために使用される。次のリフレッシュされたパーティションP2rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。次のリフレッシュされたパーティションP2rが不良コピーである場合、ステップ306においてリフレッシュされたパーティションを生成するステップ304のコピープロセスは、繰り返され得る。そうでなければ、図3Bに示すステップ308において、パーティションテーブルTP7は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP2rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP2の開始アドレスからポインタを変更するために更新され得る。また、最新のパーティションテーブルポインタが、もはや一連のパーティションのうちの第2のものP2によって以前に占有されたNANDメモリの領域を指さないとき、ステップ308において、次のリフレッシュされたパーティションP2rは、一連のパーティションのうちの第2のものP2と再び呼ばれ得る加えて、一連のパーティションのうちの第2のものP2の初期位置は、スクラブパーティションPScrubの一部になっているので、ステップ308において、スクラブパーティションPScrubは、実質的にさらに右にシフトされている。この時点で、スクラブパーティションPScrubは、依然として、リフレッシュされている静的データパーティション間でインターリーブされている。ステップ304、306、および308は、すべて、一連の直接隣接するステップとして一緒に起こり得ることに留意すべきである。また、ステップ308は、以前にコピーされたパーティションに隣接するNANDメモリの部分内に、まだコピーされていない一連のパーティション内の次の1つをコピーするステップを含むことができる。この図示の例において、まだコピーされていない一連のパーティションのうちの次の1つは、一連のパーティション内の最後の1つP3である。
【００３９】
やはり図3Bに示すステップ310において、まだコピーされていない一連のパーティション内の最後の1つP3のコピーは、スクラブパーティションPScrubの先頭に隣接するメモリレジスタを占有する最後のリフレッシュされたパーティションP3rを生成するために使用される。第3のリフレッシュされたパーティションP3rが生成されると、それが正確なコピーであることを保証するために、検証チェックが実行され得る。第3のリフレッシュされたパーティションP3rが不良コピーである場合、ステップ310においてリフレッシュされたパーティションを生成するステップ308のコピープロセスは、繰り返され得る。そうでなければ、ステップ312において、パーティションテーブルTP8は、NANDメモリデバイス内に記憶されたリフレッシュされたパーティションP3rのアドレスまたはアドレスの範囲を指すように、コピーされたパーティションP3の開始アドレスからポインタを変更するために更新され得る。また、最新のパーティションテーブルポインタが、もはや一連のパーティションのうちの最後のものP3によって以前に占有されたNANDメモリの領域を指さないとき、ステップ312において、最後のリフレッシュされたパーティションP3rは、一連のパーティションのうちの最後の1つP3と再び呼ばれ得る。したがって、一連のパーティションのうちの最後の1つP3をコピーした後、一連のパーティションのうちの最後の1つP3の以前の位置は、スクラブパーティションPScrubの一部になっているので、スクラブパーティションPScrubは、再びずっと右にシフトされている。また、それは、一連のパーティションのうちのコピーされるべき最後のパーティションであったので、スクラブパーティションPScrubは、もはや、パーティションテーブルTP7、TP8以外で、リフレッシュされている静的データパーティション間でインターリーブされていない。
【００４０】
再び、リフレッシュされるべき一連のデータイメージパーティションは、典型的には、3つよりも多くのパーティションを含む。たとえば、静的データの8〜12のパーティションがリフレッシュされ得、この場合、上記で説明したプロセスステップは、すべてのパーティションがこの方法においてリフレッシュされるまで繰り返され得る。
【００４１】
図2Aおよび図2Bに示すリフレッシュプロセスステップ200〜212が実行されたとき、クロックが開始され得、または、プロセッサは、現在のクロック値をメモリレジスタに記憶することができる。そのようなクロック(または、クロック値)は、メモリコントローラ(または、他のプロセッサ)が静的データイメージの次のリフレッシュを実行するときを決定することを可能にする。たとえば、現在のクロックがNANDに記憶された最後にリフレッシュされたクロック値から4カ月異なるときなど、クロック(または、クロック値)が、最後のデータイメージリフレッシュから4カ月が経過したことを示すとき、図3Aおよび図3Bに示すリフレッシュプロセスステップ300〜312は、実行され得、クロックは、再起動され得、または、プロセッサは、現在のクロック値を同じメモリレジスタに記憶することができる。
【００４２】
データイメージパーティションをNANDメモリデバイス内にコピーするための態様のプロセスは、リフレッシュサイクルの任意の部分の間の電力障害の場合にフェールセーフなバックアップを提供するように設計される。加えて、プロセスの上記で説明したグループの各々の利点は、一連のパーティションをリフレッシュするために必要な空きブロックの量が、コピーされるブロックの合計量よりも大幅に少ないことである。
【００４３】
さらなる態様において、2つの別個のパーティションテーブルは、リフレッシュプロセス中に失われた電力によって生じる可能性がある誤りに対するさらなる保護として使用され得る。この態様において、第1のパーティションテーブルは、リフレッシュされるデータイメージにおけるパーティションのアドレス範囲を指し、第2のパーティションテーブルは、リフレッシュされたデータイメージの新しいアドレス範囲を指すように更新され得る。リフレッシュプロセスが完了すると、タイムスタンプ(または、パーティションテーブルの年齢を示す他のデータ)が、第2のパーティションテーブルに追加され得る。このタイムスタンプ(または、他の年齢識別データ)は、NANDメモリデバイス内に記憶されたデータイメージにアクセスするときに使用されるべきパーティションテーブルをメモリマネージャに知らせる。リフレッシュプロセスは、データイメージが信頼できなくなる前に達成されるので、2つのパーティションテーブルの使用は、プロセスが電力損失によって中断された場合でも、少なくとも1つのパーティションテーブルが有効なデータを指していることを保証する。
【００４４】
図4は、NANDメモリデバイスに結合された、またはNANDメモリデバイス内に含まれるプロセッサによって実行され得るNANDメモリデバイス上のデータイメージをリフレッシュするための態様の方法400を示す。ブロック410および決定ブロック415において、プロセッサは、NAND内のスクラブパーティションが、リフレッシュされるべきデータイメージの一連のパーティションよりも上位のアドレスを占有しているか否かを決定することができる。この決定は、パーティションテーブル内に記憶された情報に基づき得る。上述したように、スクラブパーティションは、NANDメモリデバイス内に記憶されたデータのパーティションテーブル内で識別されるメモリアドレスの範囲内に含まれるそれらのメモリアドレスであり得る。
【００４５】
スクラブパーティションがリフレッシュされるべき一連のパーティションよりも上位のアドレスを占有していると決定する(すなわち、決定ブロック415=「Yes」)プロセッサに応答して、プロセッサは、図2Aおよび図2Bに示すように、一連のリフレッシュされたパーティションを生成するために逆のパーティション順にデータイメージを構成して一連のパーティションのコピーを実行することができる。逆のパーティション順は、最上位のアドレスに関連するパーティションが、最初に、隣接するパーティションが続くスクラブパーティションの末尾にコピーされることを意味し、プロセスは、第1のパーティションがコピーされるまで続く。参照のみの目的のため、スクラブパーティション内にコピーされた第1のパーティションは、第1のリフレッシュされたパーティションと呼ばれ、一連のリフレッシュされたパーティションの最後になる。
【００４６】
したがって、ブロック420において、まだリフレッシュされていないリフレッシュされるべき一連のパーティション内の最後の1つは、プロセッサによって、リフレッシュプロセスの一部においてその最上位アドレスが書き込まれていないスクラブパーティションの最上位アドレスを占有するように、スクラブパーティションの末尾にコピーされる。それが正確な複製であることを確認するために、リフレッシュされたパーティションに対して検証チェックが実行され得る。検証チェックが否定的であると決定するプロセッサに応答して、プロセッサは、ブロック420においてコピーを繰り返すことができる。検証チェックが肯定的であると決定するプロセッサに応答して、ブロック425において、プロセッサは、リフレッシュされたパーティションを指すようにパーティションテーブルを更新することができる。パーティションテーブルTPは、2つの別個のパーティションテーブルを含むことができ、パーティションテーブルを更新するステップは、2つのパーティションテーブルのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを更新するステップを含むことができる。したがって、パーティションテーブルを更新するステップは、2つのパーティションテーブルのうちの最も古い1つを更新し、パーティションテーブルが更新されたときに基づいて時間値を保存するステップを含むことができる。関係なく、パーティションテーブルを更新することは、それがもはや、最近コピーされたパーティションによって以前に占有されたアドレスへのポインタを含まないことを意味する。このように、スクラブパーティションは、一方の端においてブロックを解放するが、他方の端において追加された等しい数のブロックを得る。したがって、スクラブパーティションは、ブロック420〜425を介するコピーの各サイクルで、位置をシフトする。決定ブロック430において、リフレッシュプロセスを管理するプロセッサは、一連のパーティション中のパーティションのすべてがコピーまたはリフレッシュされたか否かを決定することができる。
【００４７】
リフレッシュされるべきより多くのパーティションが存在すると決定する(すなわち、決定ブロック430=「No」)プロセッサに応答して、プロセッサは、上記で説明したように、ブロック420においてスクラブパーティションの新しい末尾に一連のパーティション内の次のものをコピーすることができる。ブロック420〜430内の動作は、一連のパーティションの全体が逆のパーティション順においてコピーされるまで、サイクル中にプロセッサによって繰り返され得る。パーティションコピーサイクルを通る第2の通過において、まだコピーされていない一連のパーティション内の最後の1つは、一連のパーティションの最後のパーティションに対して2番めである。また、まだ置き換えられていないスクラブパーティションの末尾は、第1のリフレッシュされたパーティションが初期のスクラブパーティションの最後の部分を置き換えているので、スクラブパーティションの先頭(すなわち、より下位のアドレス)に向かって移動されていることになる。このように、一連のパーティションすべてがコピーされるまで、一連のパーティションのうちの最後の1つは、最初にコピーされ、一連のパーティションの最後の1つに対して次のものは、次にコピーされる、など以下同様に続く。また、一連のパーティションのすべてがコピーされるまで、一連のリフレッシュされたパーティションのうちの最後の1つは、スクラブパーティションの最後の部分を置き換え、一連のリフレッシュされたパーティションのうちの最後の1つに対して次のものは、元のスクラブパーティションの最後の部分に対して次のものを置き換える、など以下同様に続く。一連のパーティションのすべてがコピーされると、スクラブパーティションは、データイメージを構成する現在リフレッシュされた一連のパーティションのものよりも下位のブロックを含んで、実質的に再確立される。
【００４８】
決定ブロック415に戻って、スクラブパーティションが、リフレッシュされるべき一連のパーティションよりも下位のアドレスを占有すると決定する(すなわち、決定ブロック415=「No」)プロセッサに応答して、プロセッサは、逆の方法でリフレッシュプロセスを進めることができる。ブロック440において、プロセッサは、まだコピーされていないリフレッシュされるべき一連のパーティション内の第1のパーティションを、まだ置き換えられていないスクラブパーティションの先頭に(すなわち、下位アドレスにおいて)コピーすることができる。この状況において、一連のパーティションのコピーは、一連のリフレッシュされたパーティションを生成するために、順次のパーティション順において実行される。順次のパーティション順は、最下位アドレスに関連するパーティション(すなわち、一連における第1のもの)が、最初にスクラブパーティションの先頭(すなわち、第1のアドレスにおいて開始する)にコピーされることを意味する。したがって、コピーは、元のスクラブパーティションの第1の部分を置き換える。この第1のリフレッシュされたパーティションP1rは、一連のリフレッシュされたパーティションのうちの第1のものである。プロセッサは、第1のリフレッシュされたパーティションに対して、それが正確な複製であることを確認するために、検証チェックを実行することができる。検証チェックが否定的であると決定するプロセッサに応答して、プロセッサは、ブロック440においてコピー動作を繰り返すことができる。検証チェックが肯定的であると決定するプロセッサに応答して、ブロック445において、プロセッサは、リフレッシュされたパーティションを指すようにパーティションテーブルを更新することができる。決定ブロック450において、リフレッシュプロセスを管理するプロセッサは、一連のパーティション中のパーティションのすべてがコピーまたはリフレッシュされたか否かを決定することができる。
【００４９】
リフレッシュするより多くのパーティションが存在すると決定する(すなわち、決定ブロック450=「No」)プロセッサに応答して、プロセッサは、上記で説明したように、ブロック440においてスクラブパーティションの新しい先頭に一連のパーティション内の次のものをコピーすることができる。プロセッサは、一連のパーティションの全体が順次のパーティション順においてコピーされるまで、サイクル中にブロック440〜450内の動作を繰り返すことができる。リフレッシュサイクルを通る第2の通過において、まだコピーされていない一連の第1のリフレッシュされたパーティション内の第1の1つは、データイメージを構成する一連のパーティション内の第2のパーティションである。また、まだ置き換えられていないスクラブパーティションの先頭は、第2のリフレッシュされたパーティションがスクラブパーティションの第1の部分を置き換えているので、スクラブパーティションの末尾(すなわち、より上位のアドレス)に向かって移動されていることになる。このように、一連のパーティションすべてがコピーされるまで、一連のパーティションのうちの第1の1つは、最初にコピーされ、一連のパーティションの次の1つは、次にコピーされる、など以下同様に続く。また、一連のパーティションのすべてが初期のスクラブパーティション内にコピーされるまで、最初に、一連のパーティションのうちの第1の1つは、スクラブパーティションの第1の部分を置き換え、一連のパーティションのうちの次の1つは、スクラブパーティションの次の部分を置き換える、など以下同様に続く。一連のパーティションのすべてがコピーされると、スクラブパーティションは、より上位のアドレスを有するブロックと、データイメージを構成する新たにリフレッシュされた一連のパーティションとを含んで、実質的に再確立される。したがって、次のリフレッシュプロセスは、上記で説明したように、動作420〜430を介して逆の順序で実行されることになる。
【００５０】
一連のパーティション内のすべてのパーティションがコピーまたはリフレッシュされたと決定する(すなわち、決定ブロック430=「Yes」または決定ブロック450=「Yes」)プロセッサに応答して、決定ブロック460において、プロセッサは、データイメージを再びリフレッシュする時間であるか否かを決定するために、クロックをチェックする、または、記憶された最後のリフレッシュのクロック値(たとえば、日付/時刻値)を現在のクロックと比較することができる。たとえば、NANDメモリデバイスは、最悪な場合の設計条件下でもデータイメージが信頼できるままであることを保証するために、4カ月ごとにリフレッシュされることを必要とすることがある。プロセッサは、決定ブロック460において、定期的に、クロックをチェックする、または、現在のクロックを記憶された最後にリフレッシュされたクロック値と比較することができ、プロセッサがデータイメージをリフレッシュする時間ではないと決定する(すなわち、決定ブロック460=「No」)限り、待機し続けることができる。データイメージをリフレッシュする時間であると決定する(すなわち、決定ブロック460=「Yes」)NANDメモリデバイスを管理するプロセッサに応答して、ブロック405において、プロセッサは、NANDメモリデバイスのリフレッシュを管理するプロセッサが次のリフレッシュが行われるべきときを後に決定することができるように、クロックをリセットする、または、現在の時間を最後のリフレッシュ日付/時刻としてレジスタ内に記憶することができる。次のスクラブが自動的に実行されたとき、または実行されるようにスケジュールされたとき、将来の所望の時間において静的データイメージのリフレッシュをトリガするために、ブロック405からのリセットされたクロック時間または記憶された日付/時刻を使用して、最後のスクラブの時間が、チェックされ得、および/または、タイマが設定され得る。ブロック420、425、430、440、445、450に関して上記で説明したパーティションをリフレッシュするプロセスは、起動時にデバイスが「リフレッシュ」動作を再開すべきであるように、長期間中断され得る(たとえば、NANDメモリデバイスは、長期間パワーダウンされ得る)。したがって、リフレッシュプロセスの前にブロック405においてクロックをリセットするおよび/または現在の時刻を記憶することは、より短い期間でなくても、遅くとも所与の期間の終了までに、すべての静的データがリフレッシュされることを保証することができる。最後のリフレッシュされた日付/時刻は、NANDメモリデバイスのファイルシステム部分(すなわち、動的データが記憶される場所)内に記憶され得る。ブロック405においてクロックがリセットされるか、現在の日付/時刻が記憶されると、プロセッサは、ブロック410における動作で開始するリフレッシュプロセスを繰り返すことができる。
【００５１】
ブロック410および415において、スクラブパーティションが、リフレッシュされるべきデータイメージよりも上位または下位のアドレス範囲を占有するか否かを決定するよりも、パーティション順(すなわち、ブロック440〜450における動作を実行する)または逆パーティション順(すなわち、ブロック420〜430における動作を実行する)のいずれにおいてパーティションをリフレッシュするのかのプロセッサの決定は、実行される最後のリフレッシュの順序または実行されるべき次のリフレッシュの順序のいずれかを示すメモリに記憶されたデータまたはフラグに基づくことができる。このデータまたはフラグは、すべてのパーティションがリフレッシュされた後(すなわち、決定ブロック430=「Yes」または決定ブロック450=「Yes」)など、リフレッシュサイクルの終了時に設定され得る。リフレッシュが行われるべき次の時間(すなわち、決定ブロック460=「Yes」)、プロセッサは、データまたはフラグをチェックし、ブロック420〜430における動作またはブロック440〜450における動作のいずれかに従って進めることができる。
【００５２】
各パーティションの正確なコピーが生成されることを保証することの一部として、検証チェックが、上記で説明したリフレッシュプロセス中に実行され得る。検証チェックは、ハッシュベースおよびビットごとの分析方法を含む様々な方法によって実行され得る。ハッシュベースの方法において、ハッシュ関数は、それぞれのハッシュ値を生成するために、各パーティションとそのコピーとに対して実行され得、2つのハッシュ値は、それらが同じであるかどうかを決定するために(たとえば、値を減算することによって)比較され得る。2つのハッシュ値が等しくない場合、これは、コピーされたパーティション中にビット誤りが存在することを意味し、その場合、コピー動作は、繰り返され得る。ハッシュ関数によって生成されたハッシュ値は、コピーがオリジナルと一致するか否かを決定するために、単純な算術関数において素早く操作され得るパーティション内のオリジナルおよびコピーされたデータのためのプロキシとして作用する。第1および第2のハッシュ値の比較が一致するとき、検証チェックは、肯定的であり、第1および第2のハッシュ値の比較が一致しないとき、検証チェックは、否定的である。ハッシュ値は、実行するのが迅速であり、比較は、単純な算術関数であるので、ハッシュベースの検証方法は、オリジナルおよびコピーのパーティションのビットごとの比較よりも、はるかに高速にし、消費する処理リソースを少なくすることができる。
【００５３】
様々な態様は、その例がセルラー電話の形態において図5中に示されている様々なコンピューティングデバイスのいずれかにおいて、および/またはそれを用いて実施され得る。様々な態様は、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、または他のコンピューティングデバイスなどの、様々な他のコンピューティングデバイスのいずれかにおいて、および/またはそれを用いて実施され得る。様々な態様において、コンピューティングデバイス500は、タッチスクリーンコントローラ504と内部メモリ506とに結合されたプロセッサ502を含むことができる。プロセッサ502は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコアICであり得る。内部メモリ506は、NANDなどの揮発性または不揮発性メモリであり得、セキュアおよび/もしくは暗号化メモリ、または、アンセキュアおよび/もしくは非暗号化メモリ、またはそれらの任意の組合せでもあり得る。プロセッサ502は、タッチスクリーンコントローラ504に結合され得る。タッチスクリーンコントローラ504およびプロセッサ502は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル512に結合される場合もある。代替的には、様々な態様は、データカード、ワイヤレスホットスポットデバイス、ネットワーク構成要素、周辺メモリデバイス、または同様の「ヘッドレス」デバイスなどの、タッチスクリーンコントローラ、タッチスクリーン、または任意の形のスクリーンもしくは直接データインターフェースを含まない様々なデバイスのいずれかにおいて、またはそれを用いて実施され得る。コンピューティングデバイス500は、互いにおよび/またはプロセッサ502に結合された、1つまたは複数の無線信号トランシーバ508(たとえば、Peanut(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、Wi-Fi、RF無線)と、送受信のためのアンテナ510とを有することができる。トランシーバ508およびアンテナ510は、様々なワイヤレス送信プロトコルスタックおよびインターフェースを実装するために、上述した回路とともに使用され得る。コンピューティングデバイス500は、セルラーネットワークを介する通信を可能にし、プロセッサに結合された、セルラーネットワークワイヤレスモデムチップ516を含むことができる。コンピューティングデバイス500は、プロセッサ502に結合された周辺デバイス接続インターフェース518を含むことができる。周辺デバイス接続インターフェース518は、1つのタイプの接続を受け入れるように単独で構成され得、または、USB、FireWire、Thunderbolt、またはPCIeなどの、共通または独自の様々なタイプの物理的接続および通信接続を受け入れるように多様に構成され得る。周辺デバイス接続インターフェース518は、単独で構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。コンピューティングデバイス500は、オーディオ出力を提供するためのスピーカ514を含むこともできる。コンピューティングデバイス500は、本明細書で論じた構成要素のすべてまたは一部を含むための、プラスチック、金属、または材料の組合せで構成されたハウジング520を含むこともできる。コンピューティングデバイス500は、使い捨てまたは充電式のバッテリなどの、プロセ��サ502に結合された電源522を含むことができる。充電式バッテリは、また、コンピューティングデバイス500の外部のソースから充電電流を受け取るために、周辺デバイス接続ポートに結合され得る。
【００５４】
本明細書で説明した様々な態様におけるプロセッサは、上記で説明した様々な態様の機能を含む様々な機能を実行するように命令(すなわち、アプリケーションなどのソフトウェア命令)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または多重プロセッサチップであり得る。いくつかのデバイスにおいて、ワイヤレス通信機能専用の1つのプロセッサ、および、他のアプリケーションを実行する専用の1つのプロセッサなどの、複数のプロセッサが設けられ得る。典型的には、ソフトウェアアプリケーションは、アクセスされプロセッサにロードされる前に、内部メモリに記憶され得る。プロセッサは、アプリケーション命令を記憶するのに十分な内部メモリを含むことができる。多くのデバイスにおいて、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の組合せであり得る。本明細書の目的のために、メモリへの一般的な言及は、内部メモリまたはデバイスに差し込まれるリムーバブルメモリと、プロセッサ自体の内部のメモリとを含む、プロセッサによってアクセス可能なメモリを指す。
【００５５】
前述の方法の説明、およびプロセスフロー図は、単に例示的な例として提供され、様々な態様のブロックが提示された順序で実行されなければならないことを必要とするまたは意味するものではない。当業者により諒解されるように、前述の態様におけるブロックの順序は、どのような順序で実行されてもよい。
【００５６】
「その後」、「次いで」、「次に」などの語は、ブロックの順序を限定するものではなく、これらの語は、単に、方法の説明を通じて読者を導くために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形での請求要素へのいかなる言及も、その要素を単数形に限定するものとして解釈されるべきではない。
【００５７】
本明細書で論じた態様に関連して説明した様々な例示的な論理ブロックおよびプロセスフロー図のブロックは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実施され得る。このハードウェアおよびソフトウェアの互換性を明確に説明するために、様々な例示的構成要素、ブロック、モジュール、回路、およびブロックが、それらの機能の観点から一般的に上記で説明されている。そのような機能性がハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例とシステム全体に課せられる設計制約とに依存する。当業者は、説明された機能性を、各特定の応用例のために様々な形で実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されてはならない。
【００５８】
本明細書で論じた態様に関連して説明した様々な例示的ロジック、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェア構成要素、または、本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、1つまたは複数のマイクロプロセッサとDSPコア、あるいは任意の他のそのような構成として実装され得る。代替的には、いくつかのブロックまたは方法は、所与の機能に固有の回路によって実行され得る。
【００５９】
1つまたは複数の例示的な態様において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に1つまたは複数の命令またはコードとして記憶され得る。本明細書において開示されている方法またはアルゴリズムの操作は、非一時的コンピュータ可読記憶媒体上または非一時的プロセッサ可読記憶媒体上に常駐させることができるプロセッサ実行可能ソフトウェアモジュールの中で具体化することができる。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスすることができる任意の記憶媒体であってもよい。非限定の例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROM、もしくは他の光ディスク(disk)記憶装置、磁気ディスク(disk)記憶装置、または他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で記憶するために使用することができ、かつ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびblu-rayディスクを含み、ここで、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記の組合せは、また、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品内に組み込まれ得る、非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令のうちの1つまたは任意の組合せもしくはセットとして存在することができる。
【００６０】
当業者は、同じ基本的な基礎となる機構および方法論を依然として用いながら、開示された態様の多くの可能な修正および態様の組合せが使用され得ることを認識するであろう。前述の説明は、説明の目的のために、特定の態様を参照して記述されている。しかしながら、上記の例示的な考察は、網羅的であること、または、開示された正確な形態に本開示を限定することを意図するものではない。以上の教示を鑑みると、多くの修正例および変更例が可能である。態様は、本開示の原理およびそれらの実際的な用途について説明し、当業者が、考えられる特定の使用に適するような様々な修正とともに本開示および様々な態様を最良に利用することを可能にするために、選択され、説明された。したがって、本開示は、本明細書に示し、説明した、開示された技術の態様および個々の態様に限定されるものではなく、以下の特許請求の範囲、ならびに、本明細書に開示した原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００６１】
100  コンピューティングデバイス
101  システムバス
102  プロセッサ
104  メモリコントローラ
106  読出し専用メモリ(ROM)
108  入力/出力ポート
110  NANDメモリデバイス
500  コンピューティングデバイス
502  プロセッサ
504  タッチスクリーンコントローラ
506  内部メモリ
508  無線信号トランシーバ
510  アンテナ
512  タッチスクリーンパネル
514  スピーカ
516  セルラーネットワークワイヤレスモデムチップ
518  周辺デバイス接続インターフェース
520  ハウジング
522  電源
【図１】
2016540297.tif 000003
【図２Ａ】
2016540297.tif 000004
【図２Ｂ】
2016540297.tif 000005
【図３Ａ】
2016540297.tif 000006
【図３Ｂ】
2016540297.tif 000007
【図４】
2016540297.tif 000008
【図５】
2016540297.tif 000009
【手続補正書】
【提出日】平成28年5月12日(2016.5.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
NANDメモリデバイス上のデータイメージをリフレッシュする方法であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスであり、前記方法が、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーするステップを含み、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするステップが、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進むステップと、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むステップと、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するステップと
を含む、方法。
【請求項２】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するステップと、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするステップが、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するステップを含む、請求項1に記載の方法。
【請求項７】
前記一連の静的データパーティションのうちの少なくとも1つが、前記NANDメモリデバイス上の前記データイメージをリフレッシュする前に、前記一連の静的データパーティションのうちの少なくとも1つの他のものによって以前に占有されたアドレスにコピーされる、請求項1に記載の方法。
【請求項８】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するステップが、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するステップを含む、請求項1に記載の方法。
【請求項９】
前記NANDメモリデバイスが、前記データイメージの一部として静的データと動的データの両方を含み、リフレッシュされる前記一連の静的データパーティションが、前記静的データを含み、動的データが、リフレッシュされない、請求項1に記載の方法。
【請求項１０】
データイメージが記憶されたNANDメモリデバイスであって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連の静的データパーティションに分割され、第1の静的データパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後の静的データパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各静的データパーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスである、NANDメモリデバイスと、
前記NANDメモリデバイスに結合され、プロセッサ実行可能命令を用いて、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作を含む動作を実行するように構成されたプロセッサと
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、
前記最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、前記第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、コンピューティングデバイス。
【請求項１１】
前記プロセッサが、プロセッサ実行可能命令を用いて、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、前記データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、プロセッサ実行可能命令を用いて、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、プロセッサ実行可能命令を用いて、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、プロセッサ実行可能命令を用いて、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１５】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１６】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１７】
NANDメモリデバイス内に順次に記憶された一連のパーティションに分割されたデータイメージを記憶するNANDメモリデバイスであって、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスである、NANDメモリデバイスと、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーするための手段と
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするための手段が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進むための手段と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むための手段と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するための手段と
を備える、コンピューティングデバイス。
【請求項１８】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するための手段と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２０】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２１】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２２】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするための手段が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するための手段を含む、請求項17に記載のコンピューティングデバイス。
【請求項２３】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するための手段が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するための手段を備える、請求項17に記載のコンピューティングデバイス。
【請求項２４】
NANDメモリデバイス上のデータイメージをリフレッシュするための動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスであり、前記動作が、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーする動作を含む動作を含み、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令が、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令が、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【手続補正書】
【提出日】平成28年7月1日(2016.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
NANDメモリデバイス上のデータイメージをリフレッシュする方法であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスであり、前記方法が、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーするステップを含み、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするステップが、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進むステップと、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むステップと、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するステップと
を含む、方法。
【請求項２】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するステップと、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するステップと、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするステップが、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するステップを含む、請求項1に記載の方法。
【請求項７】
前記一連の静的データパーティションのうちの少なくとも1つが、前記NANDメモリデバイス上の前記データイメージをリフレッシュする前に、前記一連の静的データパーティションのうちの少なくとも1つの他のものによって以前に占有されたアドレスにコピーされる、請求項1に記載の方法。
【請求項８】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するステップが、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するステップを含む、請求項1に記載の方法。
【請求項９】
前記NANDメモリデバイスが、前記データイメージの一部として静的データと動的データの両方を含み、リフレッシュされる前記一連の静的データパーティションが、前記静的データを含み、動的データが、リフレッシュされない、請求項1に記載の方法。
【請求項１０】
データイメージが記憶されたNANDメモリデバイスであって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連の静的データパーティションに分割され、第1の静的データパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後の静的データパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各静的データパーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスである、NANDメモリデバイスと、
前記NANDメモリデバイスに結合され、プロセッサ実行可能命令を用いて、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーする動作を含む動作を実行するように構成されたプロセッサと
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、
前記最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、前記第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、コンピューティングデバイス。
【請求項１１】
前記プロセッサが、プロセッサ実行可能命令を用いて、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、前記データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、プロセッサ実行可能命令を用いて、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサが、プロセッサ実行可能命令を用いて、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１４】
前記プロセッサが、プロセッサ実行可能命令を用いて、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１５】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１６】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記プロセッサが、プロセッサ実行可能命令を用いて、動作を実行するように構成された、請求項10に記載のコンピューティングデバイス。
【請求項１７】
NANDメモリデバイス内に順次に記憶された一連のパーティションに分割されたデータイメージを記憶するNANDメモリデバイスであって、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスである、NANDメモリデバイスと、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーするための手段と
を備えるコンピューティングデバイスであって、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするための手段が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進むための手段と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進むための手段と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新するための手段と
を備える、コンピューティングデバイス。
【請求項１８】
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶するための手段と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項１９】
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定するための手段と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュするための動作を開始するための手段と
をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２０】
前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２１】
パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定するための手段をさらに備える、請求項17に記載のコンピューティングデバイス。
【請求項２２】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーするための手段が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行するための手段を含む、請求項17に記載のコンピューティングデバイス。
【請求項２３】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新するための手段が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存するための手段を備える、請求項17に記載のコンピューティングデバイス。
【請求項２４】
NANDメモリデバイス上のデータイメージをリフレッシュするための動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令が記憶された非一時的プロセッサ可読記憶媒体であって、前記データイメージが、前記NANDメモリデバイス内に順次に記憶された一連のパーティションに分割され、第1のパーティションが、第1のアドレスにおいて開始する前記NANDメモリデバイス内に記憶され、最後のパーティションが、最後のアドレスにおいて終了する前記NANDメモリデバイス内に記憶され、各パーティションのアドレスが、パーティションテーブル内に記憶され、前記第1のアドレスが、前記最後のアドレスよりも下位のアドレスであり、前記動作が、
1つのリフレッシュサイクルの一部として、前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスのスクラブ部分内に一連の静的データパーティションを順次にコピーする動作を含む動作を含み、前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、
最後の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティション内の前記最後の静的データパーティションの前記最後のアドレスよりも上位の1つまたは複数のアドレスを占有するとき、第1の静的データパーティションに順次に進む動作と、
前記第1の静的データパーティションで開始して前記一連の静的データパーティションの各々を個別にコピーし、前記スクラブ部分が前記一連の静的データパーティションの前記第1の静的データパーティションの前記第1のアドレスよりも下位の1つまたは複数のアドレスを占有するとき、前記最後の静的データパーティションに順次に進む動作と、
各静的データパーティションが前記スクラブ部分に記憶されたとき、前記パーティションテーブルを更新する動作と
を含む、非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令が、
現在のクロック値を前記NANDメモリデバイス内に記憶された最後のリフレッシュのクロック値と比較することによって、データイメージがリフレッシュされるべきか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであるという決定に応答して、前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶する動作と、
前記最後のリフレッシュのクロック値を置き換える前記現在のクロック値を記憶することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、
前記NANDメモリデバイス上の前記データイメージをリフレッシュする前にクロックを開始する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すか否かを決定する動作と、
前記データイメージがリフレッシュされるべきであることを前記クロックが示すことを決定することに応答して、前記NANDメモリデバイス上の前記データイメージをリフレッシュする動作と
をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、前記パーティションテーブル内に記憶されたパーティションアドレスに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能命令が、パーティションが前記最後の静的データパーティションまたは前記第1の静的データパーティションのいずれで開始して最後にリフレッシュされたのかに基づく、前記NANDメモリデバイス内に記憶されたデータに基づいて、前記スクラブ部分が前記一連の静的データパーティションよりも上位のアドレスを占有するか否かを決定する動作をさらに含む動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
前記パーティションテーブル内で識別されるデータイメージパーティションを記憶しない前記NANDメモリデバイスの前記スクラブ部分内に前記一連の静的データパーティションを順次にコピーする動作が、前記一連の静的データパーティションの各コピーに対して検証チェックを実行する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
前記パーティションテーブルが、各々がそれぞれのうちのどちらが最後にリフレッシュされたのかを示すローリングカウンタを記憶する2つのパーティションテーブルを含み、前記パーティションテーブルを更新する動作が、前記2つのパーティションテーブルのうちの最も古い1つを更新し、前記パーティションテーブルが更新されたときに基づいて、システムファイル内に時間値を保存する動作を含むように、前記記憶されたプロセッサ実行可能命令が、動作を前記プロセッサに実行させるように構成された、請求項24に記載の非一時的プロセッサ可読記憶媒体。
【国際調査報告】
2016540297.tif 000010
2016540297.tif 000011
2016540297.tif 000012