(57)【要約】【課題】固体記憶装置の利用を向上させる。【解決手段】持続性記憶装置からデータを読み取る方法は、データについてのクライアント読取要求をクライアントから受け取るステップを含み、クライアント読取要求は論理アドレスを含み、方法はさらに、論理アドレスを使用して物理アドレスを判定するステップを含み、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、方法はさらに、データについての保持時間を判定するステップと、物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定するステップと、Ｐ／Ｅサイクル値、保持時間、およびページ番号を使用して少なくとも１つの読取閾値を取得するステップと、少なくとも１つの読取閾値を含む制御モジュール読取要求を物理ページを含む記憶モジュールに対して発するステップと、少なくとも１つの読取閾値を使用して前記データを物理ページから取得するステップとを含む。【選択図】図４
2018018557.tif 000002
【特許請求の範囲】
【請求項１】
持続性記憶装置からデータを読み取る方法であって、方法は、
データについてのクライアント読み取り要求をクライアントから受け取るステップを備え、前記クライアント読み取り要求は論理アドレスを含み、方法はさらに、
前記論理アドレスに対応する物理アドレスを判定するステップを備え、前記物理アドレスは前記持続性記憶装置における物理ページについてのページ番号を含み、方法はさらに、
前記物理アドレスと前記論理アドレスとからなるグループから選択される１つを使用し、前記データについての保持時間を判定するステップと、
前記物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定するステップと、
前記Ｐ／Ｅサイクル値、前記保持時間、および前記ページ番号を使用して少なくとも１つの読み取り閾値を取得するステップと、
前記少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発するステップとを備え、前記記憶モジュールは前記物理ページを含み、方法はさらに、
前記少なくとも１つの読み取り閾値を使用して前記データを前記物理ページから取得するステップを備える、方法。
【請求項２】
第２のデータについての第２のクライアント読み取り要求を前記クライアントから受け取るステップをさらに備え、前記第２のクライアント読み取り要求は第２の論理アドレスを含み、方法はさらに、
前記第２の論理アドレスに対応する第２の物理アドレスを判定するステップを備え、前記第２の物理アドレスは前記持続性記憶装置における第２の物理ページについての第２のページ番号を含み、方法はさらに、
前記第２の物理アドレスと前記第２の論理アドレスとからなるグループから選択される１つを使用し、前記第２の物理ページ上に記憶された前記第２のデータについての第２の保持時間を判定するステップと、
前記第２の物理ページに関連付けられた第２のＰ／Ｅサイクル値を判定するステップと、
前記第２のＰ／Ｅサイクル値、前記第２の保持時間、前記第２のページ番号を使用して前記少なくとも１つの読み取り閾値を取得するステップとを備え、前記第２のＰ／Ｅサイクル値は前記Ｐ／Ｅサイクル値と同じであり、前記第２の保持時間は前記保持時間と同じであり、前記第２のページ番号は前記ページ番号と同じであり、方法はさらに、
前記少なくとも１つの読み取り閾値を含む第２の制御モジュール読み取り要求を前記記憶モジュールに対して発するステップを備え、前記記憶モジュールは前記第２の物理ページを含み、前記第２の物理ページは前記物理ページとは異なり、方法はさらに、
前記少なくとも１つの読み取り閾値を使用して前記第２の物理ページから前記第２のデータを取得するステップを備える、請求項１に記載の方法。
【請求項３】
第２のデータについての第２のクライアント読み取り要求を前記クライアントから受け取るステップをさらに備え、前記第２のクライアント読み取り要求は第２の論理アドレスを含み、方法はさらに、
前記第２の論理アドレスに対応する第２の物理アドレスを判定するステップを備え、前記第２の物理アドレスは、前記持続性記憶装置における第２の物理ページについての第２のページ番号を指定し、方法はさらに、
前記第２の物理ページに関連付けられた第２のＰ／Ｅサイクル値を判定するステップを備え、前記第２のＰ／Ｅサイクル値はＰ／Ｅサイクル閾値よりも小さく、方法はさらに、
前記第２のＰ／Ｅサイクル値が前記Ｐ／Ｅサイクル閾値よりも小さい場合、
デフォルト読み取り閾値を含む第２の制御モジュール読み取り要求を前記記憶モジュールに対して発するステップを備え、前記記憶モジュールは前記第２の物理ページを含み、前記第２の物理ページは前記物理ページとは異なり、方法はさらに、
前記デフォルト読み取り閾値を使用して前記第２の物理ページから前記第２のデータを取得するステップを備える、請求項１に記載の方法。
【請求項４】
第２のデータについての第２のクライアント読み取り要求を前記クライアントから受け取るステップをさらに備え、前記第２のクライアント読み取り要求は第２の論理アドレスを含み、方法はさらに、
前記第２の論理アドレスに対応する第２の物理アドレスを判定するステップを備え、前記第２の物理アドレスは前記持続性記憶装置における第２の物理ページについての第２のページ番号を含み、方法はさらに、
前記第２の物理ページに関連付けられた第２のプログラム／消去（Ｐ／Ｅ）サイクル値を判定するステップを備え、前記第２のＰ／Ｅサイクル値は、Ｐ／Ｅサイクル閾値よりも小さく、方法はさらに、
前記第２のＰ／Ｅサイクル値が前記Ｐ／Ｅサイクル閾値よりも小さい場合、
前記第２のデータについての第２の制御モジュール読み取り要求を前記記憶モジュールに対して発するステップを備え、前記第２の制御モジュール読み取り要求はデフォルト読み取り閾値を含まず、方法はさらに、
前記デフォルト読み取り閾値を使用して前記第２の物理ページから前記第２のデータを取得するステップを備える、請求項１に記載の方法。
【請求項５】
前記物理ページは、前記記憶モジュールにおける固体モジュール上に位置し、前記固体モジュールはマルチレベルセル（ＭＬＣ）を含む、請求項１に記載の方法。
【請求項６】
前記少なくとも１つの読み取り閾値は、Ａ閾値、Ｂ閾値、およびＣ閾値からなるグループから選択された少なくとも１つを変更する、請求項５に記載の方法。
【請求項７】
前記保持時間を判定するステップは、
前記物理ページに前記データが書き込まれた第１の時間を判定するステップと、
前記クライアント読み取り要求に関連付けられた第２の時間を判定するステップと、
前記第１の時間および前記第２の時間を使用して前記保持時間を判定するステップとを含む、請求項１に記載の方法。 
【請求項８】
前記第１の時間は、メモリにおけるインメモリデータ構造から取得され、前記メモリは制御モジュール内に位置する、請求項７に記載の方法。
【請求項９】
前記第２の時間は、前記クライアント読み取り要求から取得される、請求項７に記載の方法。
【請求項１０】
前記少なくとも１つの読み取り閾値を取得するステップは、インメモリデータ構造においてルックアップを行なうステップを含み、前記インメモリデータ構造は複数のエントリーを含み、前記複数のエントリーの各々は、複数の読み取り閾値のうちの１つ、複数のＰ／Ｅサイクル値のうちの１つ、複数の保持時間のうちの１つ、および複数のページ番号のうちの１つを含む、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの読み取り閾値は電圧値を含む、請求項１に記載の方法。 
【請求項１２】
前記少なくとも１つの読み取り閾値はシフト値を含み、前記シフト値は、デフォルト読み取り閾値の電圧シフトに対応する、請求項１に記載の方法。
【請求項１３】
前記Ｐ／Ｅサイクル値は、Ｐ／Ｅサイクル値範囲である、請求項１に記載の方法。
【請求項１４】
システムであって、
記憶モジュール制御部と持続性記憶装置とを含む記憶モジュールと、
前記記憶モジュールおよびクライアントに動作的に接続される制御モジュールとを備え、
前記制御モジュールは、
データについてのクライアント読み取り要求をクライアントから受け取り、前記クライアント読み取り要求は論理アドレスを含み、前記制御モジュールはさらに、
前記論理アドレスに対応する物理アドレスを判定し、前記物理アドレスは前記持続性記憶装置における物理ページについてのページ番号を含み、前記記憶モジュールはさらに、
前記物理アドレスと前記論理アドレスとからなるグループから選択される１つを使用し、前記物理ページ上に記憶された前記データについての保持時間を判定し、
前記物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定し、
前記Ｐ／Ｅサイクル値、前記保持時間、および前記ページ番号を使用して少なくとも１つの読み取り閾値を取得し、
前記少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を前記記憶モジュールに対して発し、前記記憶モジュールは前記物理ページを含み、
前記記憶モジュールは、
前記制御モジュール読み取り要求を受け取り、
前記制御モジュール読み取り要求における前記少なくとも１つの読み取り閾値を使用して前記物理ページから前記データを取得する、システム。
【請求項１５】
前記持続性記憶装置はフラッシュメモリを含み、前記物理ページは前記フラッシュメモリ内に位置する、請求項１４に記載のシステム。
【請求項１６】
前記フラッシュメモリは、ＮＯＲフラッシュメモリとＮＡＮＤフラッシュメモリとからなるグループから選択される１つである、請求項１５に記載のシステム。
【請求項１７】
制御モジュールはメモリを含み、前記メモリは、複数のエントリーを含むインメモリデータ構造を含み、前記複数のエントリーの各々は、複数の読み取り閾値のうちの１つ、複数のＰ／Ｅサイクル値のうちの１つ、複数の保持時間のうちの１つ、および複数のページ番号のうちの１つを含み、
前記少なくとも１つの読み取り閾値を取得することは、前記インメモリデータ構造におけるルックアップを行なうことを含む、請求項１４に記載のシステム。
【請求項１８】
前記メモリは、前記持続性記憶装置に記憶されるすべてのデータについての発生時間を含み、前記物理ページ上に記憶される前記データについての前記保持時間を判定することは、前記物理ページ上に記憶される前記データについての発生時間を前記メモリから取得することを含む、請求項１７に記載のシステム。
【請求項１９】
前記少なくとも１つの読み取り閾値は、電圧値とシフト値とからなるグループから選択される１つを含み、前記シフト値は、デフォルト読み取り閾値の電圧シフトに対応する、請求項１４に記載のシステム。
【請求項２０】
コンピュータ読み取り可能プログラムコードを備える非一時的コンピュータ読み取り可能媒体であって、前記コンピュータ読み取り可能プログラムコードがコンピュータプロセッサによって実行されると、コンピュータプロセッサは、
データについてのクライアント読み取り要求をクライアントから受け取り、前記クライ
アント読み取り要求は論理アドレスを含み、コンピュータプロセッサはさらに、
前記論理アドレスに対応する物理アドレスを判定し、前記物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、コンピュータプロセッサはさらに、
前記物理アドレスと前記論理アドレスとからなるグループから選択される１つを使用して前記データについての保持時間を判定し、
前記物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定し、
前記Ｐ／Ｅサイクル値、前記保持時間、および前記ページ番号を使用して少なくとも１つの読み取り閾値を取得し、
前記少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発し、前記記憶モジュールは前記物理ページを含み、コンピュータプロセッサはさらに、
前記少なくとも１つの読み取り閾値を使用して前記物理ページから前記データを取得する、非一時的コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
記憶システムについての１つの重要な性能測定基準は、記憶システムに記憶されるデータの取り出しに関連するレイテンシーである。記憶システムの性能は、読み取りレイテンシーを低下させることによって向上する。記憶システムについての読み取りレイテンシーは、記憶システムが記憶媒体からエラーのないデータを確実に取り出すことが出来る場合に低下し得る。エラーのないデータが取り出されない場合、記憶システムは、取り出されたデータからエラーを取り除くために、付加的な動作を行ない得る。たとえば、記憶システムは、エラー修正コード（ＥＣＣ）および／またはＲＡＩＤなどのエラー修正機構を使用し、取り出されたデータからエラーを取り除き得る、または他の方法としてエラーのないデータを生成し得る。エラー修正機構を使用すると、読み取りレイテンシーが上昇することとなり、これに対応して性能の低下が起こる。
【発明の概要】
【課題を解決するための手段】
【０００２】
概要
概して、１つの局面において、本発明は、持続性記憶装置からデータを読み取る方法に関し、方法は、データについてのクライアント読み取り要求をクライアントから受け取るステップを含み、クライアント読み取り要求は論理アドレスを含み、方法はさらに、論理アドレスに対応する物理アドレスを判定するステップを含み、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、方法はさらに、物理アドレスと論理アドレスとからなるグループから選択される１つを使用してデータについての保持時間を判定するステップと、物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定するステップと、Ｐ／Ｅサイクル値、保持時間、ページ番号を使用して少なくとも１つの読み取り閾値を取得するステップと、少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発するステップとを含み、記憶モジュールは物理ページを含み、方法はさらに、少なくとも１つの読み取り閾値を使用してデータを物理ページから取得するステップを含む。
【０００３】
概して、１つの局面において、本発明はシステムに関し、システムは、記憶モジュール制御部と持続性記憶装置とを含む記憶モジュールと、記憶モジュールおよびクライアントに動作的に接続される制御モジュールとを含み、制御モジュールは、データについてのクライアント読み取り要求をクライアントから受け取り、クライアント読み取り要求は論理アドレスを含み、制御モジュールはさらに、論理アドレスに対応する物理アドレスを判定し、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、制御モジュールはさらに、物理アドレスと論理アドレスとからなるグループから選択される１つを使用して物理ページ上に記憶されたデータについての保持時間を判定し、物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定し、Ｐ／Ｅサイクル値、保持時間、およびページ番号を使用して少なくとも１つの読み取り閾値を取得し、少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発し、記憶モジュールは物理ページを含み、記憶モジュールは、制御モジュール読み取り要求を受け取り、制御モジュール読み取り要求における少なくとも１つの読み取り閾値を使用して物理ページからデータを取得する。
【０００４】
概して、１つの局面において、本発明は、非一時的コンピュータ読み取り可能媒体に関し、非一時的コンピュータ読み取り可能媒体は、コンピュータ読み取り可能プログラムコ
ードを含み、コンピュータ読み取り可能プログラムコードがコンピュータプロセッサによって実行されると、コンピュータプロセッサは、データについてのクライアント読み取り要求をクライアントから受け取り、クライアント読み取り要求は論理アドレスを含み、コンピュータプロセッサはさらに、論理アドレスに対応する物理アドレスを判定し、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、コンピュータプロセッサはさらに、物理アドレスと論理アドレスとからなるグループから選択される１つを使用してデータについての保持時間を判定し、物理ページに関連付けられたプログラム／消去（Ｐ／Ｅ）サイクル値を判定し、Ｐ／Ｅサイクル値、保持時間、およびページ番号を使用して少なくとも１つの読み取り閾値を取得し、少なくとも１つの読み取り閾値を含む制御モジュール読み取り要求を発し、記憶モジュールは物理ページを含み、コンピュータプロセッサはさらに、少なくとも１つの読み取り閾値を使用して物理ページからデータを取得する。
【０００５】
本発明の他の局面は、以下の記載および添付の請求項から明らかとなるであろう。
【図面の簡単な説明】
【０００６】
【図１Ａ】本発明の１つ以上の実施形態に従うシステムを示す図である。
【図１Ｂ】本発明の１つ以上の実施形態に従うシステムを示す図である。
【図１Ｃ】本発明の１つ以上の実施形態に従うシステムを示す図である。
【図２】本発明の１つ以上の実施形態に従う記憶機器を示す図である。
【図３】本発明の１つ以上の実施形態に従う記憶モジュールを示す図である。
【図４】本発明の１つ以上の実施形態に従う様々な構成部分間の関係を示す図である。
【図５Ａ】本発明の１つ以上の実施形態に従う、記憶モジュールからデータを読み取る方法を示す図である。
【図５Ｂ】本発明の１つ以上の実施形態に従う、記憶モジュールからデータを読み取る方法を示す図である。
【図６Ａ】本発明の１つ以上の実施形態に従う例を示す図である。
【図６Ｂ】本発明の１つ以上の実施形態に従う例を示す図である。
【発明を実施するための形態】
【０００７】
詳細な記載
本発明の具体的な実施形態は、添付の図面を参照してここで詳細に記載される。本発明の実施形態についての以下の詳細な記載においては、本発明についてのより十分な理解を提供するために、多くの具体的な詳細が述べられる。しかしながら、本発明がこれらの具体的な詳細が無くとも実施され得ることは当業者にとって明白である。他の場合において、記載が不必要に複雑化することを避けるべく、周知の特徴については詳細に記載されていない。
【０００８】
図１から図６Ｂについての以下の記載において、本発明の様々な実施形態で図面に関連して記載される構成部分は、他の図面に関連して記載される１つ以上の同様の名称が付された構成部分と等しいものであり得る。簡潔化のために、これらの構成部分についての記載は各図面に関して繰り返されない。したがって、各図面の構成部分の各々およびすべての実施形態は、引用により援用され、１つ以上の同様の名称が付された構成部品を有するその他すべての図面内において任意で存在するものと仮定される。加えて、本発明の様々な実施形態に従い、図面の構成部分についての記載は、他の図面において対応する同様の名称が付された構成部分に関連して記載される実施形態に加えて、またはそれに関連して、またはそれに代えて実施され得る任意の実施形態として解釈される。
【０００９】
概して、本発明の実施形態は、フラッシュ記憶装置の存続期間にわたって読み取り閾値
を動的に変更することによって固体記憶装置の利用を向上させることに関連する。より具体的には、本発明の実施形態は、以前に固体記憶装置に記憶されたデータを読み取る時に使用する適切な読み取り閾値を判定するためにＰ／Ｅサイクル値、保持時間、およびページ番号を使用することに関する。読み取り要求ごとに読み取り閾値を動的に変化させる能力により、エラーのないデータをより多く固体記憶装置から取り出すことができる。エラーのないデータが固体記憶装置から取り出される場合、エラー修正機構を実施する必要はない。結果として、システムの性能が向上する。
【００１０】
以下の記載では、本発明の１つ以上の実施形態を実施するための１つ以上のシステムおよび方法が記載される。
【００１１】
図１Ａから図１Ｃは、本発明の１つ以上の実施形態に従うシステムを示す。図１Ａを参照すると、システムは、記憶機器（１０２）に動作的に接続される１つ以上のクライアント（クライアントＡ（１００Ａ）、クライアントＭ（１００Ｍ））を含む。
【００１２】
本発明の一実施形態において、クライアント（１００Ａ，１００Ｍ）は、読み取り要求を記憶機器（１０２）に対して発する機能、および／または書き込み要求を記憶機器（１０２）に対して発する機能を含む任意の物理システムに対応する。図１Ａには示されていないが、クライアント（１００Ａ，１００Ｍ）の各々は、クライアントプロセッサ（図示せず）、クライアントメモリ（図示せず）、ならびに本発明の１つ以上の実施形態を実施するために必要な任意の他のソフトウェアおよび／またはハードウェアを含み得る。
【００１３】
本発明の一実施形態において、クライアント（１００Ａ〜１００Ｍ）は、ファイルシステムを含むオペレーティングシステム（ＯＳ）を実行するように構成される。ファイルシステムは、記憶機器（１０２）に対するファイルの記憶および取り出しのための機構を提供する。より具体的には、ファイルシステムは、読み取り要求および書き込み要求を記憶機器に対して発するために必要な動作を行なう機能を含む。また、ファイルシステムは、ファイルの作成および削除、ファイルの読み取りおよび書き込み、ファイル内のシーク、ディレクトリの作成および削除、ディレクトリ内容の管理などを可能にするプログラミングインターフェイスを提供する。加えて、ファイルシステムはまた、ファイルシステムを作成および削除する管理インターフェイスを提供する。本発明の一実施形態において、ファイルにアクセスするために、オペレーティングシステムは（ファイルシステムを介して）通常、各ファイル内のデータを開く、閉じる、読み取る、および書き込むための、および／または対応するメタデータを操作するためのファイル操作インターフェイスを提供する。
【００１４】
図１Ａについての説明を続けると、本発明の一実施形態において、クライアント（１００Ａ，１００Ｍ）は、周辺構成要素相互接続（Peripheral Component Interconnect）（
ＰＣＩ）、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、ＰＣＩ−ｅＸｔｅｎｄｅｄ（ＰＣＩ−Ｘ）、不揮発性メモリＥｘｐｒｅｓｓ（ＮＶＭｅ）、ＰＣＩ−Ｅｘｐｒｅｓｓファブリックにわたる不揮発性メモリＥｘｐｒｅｓｓ（ＮＶＭｅ）、イーサネット（登録商標）ファブリックにわたる不揮発性メモリＥｘｐｒｅｓｓ（ＮＶＭｅ）、およびＩｎｆｉｎｉｂａｎｄファブリックにわたる不揮発性メモリＥｘｐｒｅｓｓ（ＮＶＭｅ）のうちの１つ以上のプロトコルを使用して記憶機器（１０２）と通信するように構成される。当業者は、本発明が上記のプロトコルに限定されないことを理解するであろう。
【００１５】
本発明の１つの実施形態において、記憶機器（１０２）は、揮発性および持続性の記憶装置を含むシステムであり、１つ以上のクライアント（１００Ａ，１００Ｍ）からの読み取り要求および／書き込み要求の処理を行なうように構成される。記憶機器（１０２）の様々な実施形態は、図２において以下に記載される。
【００１６】
図１Ｂを参照すると、図１Ｂは、メッシュ構成で配置される複数の記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）（記憶機器メッシュ（１０４）として図１Ｂに示される）にクライアント（１００Ａ，１００Ｍ）が接続されるシステムを示す。図１Ｂに示されるように、記憶機器メッシュ（１０４）は、完全接続メッシュ構成で示される。すなわち、記憶機器メッシュ（１０４）におけるすべての記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）が記憶機器メッシュ（１０４）におけるすべての他の記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）に直接的に接続される。本発明の一実施形態において、クライアント（１００Ａ，１００Ｍ）の各々は、記憶機器メッシュ（１０４）における１つ以上の記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）に直接的に接続され得る。当業者は、本発明から逸脱することなく他のメッシュ構成（たとえば、部分的に接続するメッシュ）を使用して記憶機器メッシュが実施され得ることを理解するであろう。
【００１７】
図１Ｃを参照すると、図１Ｃは、ファンアウト（fan-out）構成で配置された複数の記
憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）にクライアント（１００Ａ，１００Ｍ）が接続されるシステムを示す。この構成において、各クライアント（１００Ａ，１００Ｍ）は記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）のうちの１つ以上に接続されるが、個々の記憶機器（１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ）間の通信は無い。
【００１８】
図１Ａから図１Ｃは、限られた数のクライアントに接続される記憶機器を示しているが、記憶機器は本発明から逸脱することなく任意の数のクライアントに接続され得ることを当業者は理解するであろう。図１Ａから図１Ｃは様々なシステム構成を示しているが、本発明は上記のシステム構成に限定されないことを当業者は理解するであろう。さらに、本発明から逸脱することなく任意の他の物理的接続を使用してクライアントが（システムの配置に関係なく）記憶機器に接続され得ることを当業者は理解するであろう。
【００１９】
図２は、本発明の１つ以上の実施形態に従う記憶機器の実施形態を示す。記憶機器は、制御モジュール（２００）と記憶モジュールグループ（２０２）とを含む。これらの構成部分の各々は以下に記載される。概して、制御モジュール（２００）は、１つ以上のクライアントからの読み取り要求および書き込み要求の処理を管理するように構成される。特に、制御モジュールは、ＩＯＭ（以下に記載）を介して１つ以上のクライアントから要求を受け取り、要求を処理し（記憶モジュールへ要求を送ることも含み得る）、要求が処理された後のクライアントへの応答を提供するように構成される。制御モジュールにおける構成部分についての付加的な詳細は、以下に含まれる。さらに、読み取り要求の処理に対する制御モジュールの動作は、図５Ａから図５Ｂを参照して以下に記載される。
【００２０】
図２についての説明を続けると、本発明の一実施形態において、制御モジュール（２００）は、入出力モジュール（ＩＯＭ）（２０４）と、プロセッサ（２０８）と、メモリ（２１０）と、任意のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）（２１２）とを含む。本発明の一実施形態において、ＩＯＭ（２０４）は、クライアント（たとえば、図１Ａから図１Ｃにおける１００Ａ、１００Ｍ）と記憶機器における他の構成部分との間の物理インターフェイスである。ＩＯＭは、ＰＣＩ、ＰＣＩｅ、ＰＣＩ−Ｘ、イーサネット（ＩＥＥＥ８０２．３ａ〜８０２．３ｂｊで規定された様々な規格を含むが、これらに限定されない）、Ｉｎｆｉｎｉｂａｎｄ、およびコンバージドイーサネット（ＲｏＣＥ）にわたるリモートダイレクトメモリアクセス（ＲＤＭＡ）のプロトコルのうちの１つ以上を支持する。本発明から逸脱することなく上記のプロトコル以外のプロトコルを使用してＩＯＭが実施され得ることを当業者は理解するであろう。
【００２１】
図２について続けると、プロセッサ（２０８）は、命令を実行するように構成された、
シングルコアもしくはマルチコアの電子回路のグループである。本発明の一実施形態において、プロセッサ（２０８）は、複雑命令セット（ＣＩＳＣ）アーキテクチャまたは縮小命令セット（ＲＩＳＣ）アーキテクチャを使用して実施され得る。本発明の１つ以上の実施形態において、プロセッサ（２０８）は、ルートコンプレックス（ＰＣＩｅプロトコルによって定義される）を含む。本発明の一実施形態において、制御モジュール（２００）がルートコンプレックス（これはプロセッサ（２０８）に統合され得る）を含む場合、メモリ（２１０）はルートコンプレックスを介してプロセッサ（２０８）に接続される。代替的に、メモリ（２１０）は、他の二地点間接続機構を使用してプロセッサ（２０８）に直接的に接続される。本発明の一実施形態において、メモリ（２１０）は、動的ランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ ＳＤＲＡＭ、およびＤＤ
Ｒ ＳＤＲＡＭを含むがこれらに限定されない任意の揮発性メモリに対応する。
【００２２】
本発明の一実施形態において、プロセッサ（２０８）は、インメモリデータ構造（図示せず）を作成および更新するように構成され、インメモリデータ構造はメモリ（２１０）に記憶される。本発明の一実施形態において、インメモリデータ構造は、図４に記載される情報を含む。
【００２３】
本発明の一実施形態において、プロセッサは、様々なタイプの処理をＦＰＧＡ（２１２）に任せるように構成される。本発明の一実施形態において、ＦＰＧＡ（２１２）は、記憶モジュールに書き込まれたデータおよび／または記憶モジュールから読み出されたデータについてのチェックサムを計算する機能を含む。さらに、ＦＰＧＡ（２１２）は、ＲＡＩＤスキーム（たとえば、ＲＡＩＤ２〜ＲＡＩＤ６）を使用し、記憶モジュールにデータを記憶する目的でＰおよび／またはＱパリティ情報を計算する機能、および／またはＲＡＩＤスキーム（たとえば、ＲＡＩＤ２〜ＲＡＩＤ６）を使用し、記憶された破損データを回復するのに必要な様々な計算を行なう機能を含み得る。本発明の一実施形態において、記憶モジュールグループ（２０２）は、各々がデータを記憶するように構成された１つ以上の記憶モジュール（２１４Ａ，２１４Ｎ）を含む。記憶モジュールの一実施形態は、図３において以下に記載される。
【００２４】
図３は、本発明の１つ以上の実施形態に従う記憶モジュールを示す。記憶モジュール（３００）は、記憶モジュール制御部（３０２）と、メモリ（図示せず）と、１つ以上の固体メモリモジュール（３０４Ａ，３０４Ｎ）とを含む。これらの構成部分の各々は、以下に記載される。
【００２５】
本発明の一実施形態において、記憶モジュール制御部（３００）は、１つ以上の制御モジュールに対するデータの読み取りおよび／または書き込みの要求を受け取るように構成される。さらに、記憶モジュール制御部（３００）は、メモリ（図示せず）および／または固体メモリモジュール（３０４Ａ，３０４Ｎ）を使用して読み取り要求および書き込み要求を処理するように構成される。
【００２６】
本発明の一実施形態において、メモリ（図示せず）は、動的ランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ ＳＤＲＡＭ、およびＤＤＲ ＳＤＲＡＭを含むがこれらに限定されない任意の揮発性メモリに対応する。
【００２７】
本発明の一実施形態において、固体メモリモジュールは、固体メモリを使用して持続性データを記憶するデータ記憶装置に対応する。本発明の一実施形態において、固体メモリは、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリを含み得るが、これらに限定されない。さらに、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリは、シングルレベルセル（ＳＬＣ）、マルチレベルセル（ＭＬＣ）、またはトリプルレベルセル（ＴＬＣ）を含み得る。当業者は、本発明の実施形態が記憶クラスメモリに限定されないこ
とを理解するであろう。
【００２８】
図４は、本発明の１つ以上の実施形態に従う、様々な構成部分間の関係を示す。より具体的に、図４は、制御モジュールのメモリに記憶される様々なタイプの情報を示す。さらに、制御モジュールは、制御モジュールのメモリに記憶された情報を更新する機能を含む。以下に記載される情報は、１つ以上のインメモリデータ構造に記憶され得る。さらに、インメモリデータ構造内の以下の情報を体系化するために任意のデータ構造タイプ（たとえば、アレイ、リンクリスト、ハッシュ表など）が使用され得る。但し、データ構造タイプは情報間の関係（以下に記載）を維持する。
【００２９】
メモリは、物理アドレス（４０２）に対する論理アドレス（４００）のマッピングを含む。本発明の一実施形態において、論理アドレス（４００）は、クライアント（たとえば、図１Ａにおける１００Ａ、１００Ｍ）の視点からデータが常駐しているように見えるアドレスである。言い換えると、論理アドレス（４００）は、記憶機器に対して読み取り要求を発する時にクライアント上のファイルシステムによって使用されるアドレスに対応する。
【００３０】
本発明の一実施形態において、論理アドレスは、ハッシュ関数（たとえば、ＳＨＡ−１，ＭＤ−５など）をｎ組に対して適用することによって生成されるハッシュ値である（またはこれを含む）。ここでｎ組は＜オブジェクトＩＤ，オフセットＩＤ＞である。本発明の一実施形態において、オブジェクトＩＤはファイルを定義し、オフセットＩＤはファイルの開始アドレスに対する位置を定義する。本発明の他の実施形態において、ｎ組は＜オブジェクトＩＤ，オフセットＩＤ，発生時間＞であり、ここで発生時間はファイル（オブジェクトＩＤを使用して識別される）が作成された時間に対応する。代替的に、論理アドレスは、論理オブジェクトＩＤおよび論理バイトアドレス、または論理オブジェクトＩＤおよび論理アドレスオフセットを含み得る。本発明の他の実施形態において、論理アドレスは、オブジェクトＩＤおよびオフセットＩＤを含む。当業者は、複数の論理アドレスが単一の物理アドレスに対してマッピングされ得ること、ならびに論理アドレスの内容および／またはフォーマットが上記の実施形態に限定されないことを理解するであろう。
【００３１】
本発明の一実施形態において、物理アドレス（４０２）は、図３の固体メモリモジュール（３０４Ａ，３０４Ｎ）における物理的位置に対応する。本発明の一実施形態において、物理アドレスは、＜記憶モジュール，チャネル，チップイネーブル，ＬＵＮ，面，ブロック，ページ番号，バイト＞のｎ組として定義される。
【００３２】
本発明の一実施形態において、各物理アドレス（４０２）は、プログラム／消去（Ｐ／Ｅ）サイクル値（４０４）に関連付けられる。Ｐ／Ｅサイクル値は、（ｉ）物理アドレスによって定義される物理的位置上で行われたＰ／Ｅサイクルの数、または（ｉｉ）Ｐ／Ｅサイクル範囲（たとえば、５，０００〜９，９９９Ｐ／Ｅサイクル）を表わし得て、ここで、物理アドレスによって定義される物理的位置上で行われたＰ／Ｅサイクルの数は、Ｐ／Ｅサイクル範囲内である。本発明の一実施形態において、Ｐ／Ｅサイクルは、消去ブロックにおける１つ以上のページ（すなわち、消去動作のための最小のアドレス可能単位であり、通常は複数ページの集合である）に対するデータの書き込み、およびそのブロックの消去であり、順番はいずれでもよい。
【００３３】
Ｐ／Ｅサイクル値は、ページごと、ブロックごと、ブロックの集合ごと、および／または任意の他の細分性のレベルで記憶され得る。制御モジュールは、データが固体記憶モジュールに書き込まれた（および／または消去された）時に適切な方法でＰ／Ｅサイクル値（４０２）を更新する機能を含む。
【００３４】
本発明の一実施形態において、すべてのデータ（すなわち、クライアント上のファイルシステムが固体記憶モジュールに書き込むように要求したデータ）（４０６）は、発生時間（４０８）に対応付けられる。発生時間（４０８）は、（ｉ）固体記憶モジュールにおける物理的位置にデータが書き込まれた（クライアント書き込み要求の結果として、制御モジュールによって開始されたガーベジコレクション動作の結果として、など）時間、（ｉｉ）固体記憶モジュールに対してデータを書き込む書き込み要求をクライアントが発した時間、または（ｉｉｉ）上記（ｉ）または（ｉｉ）における書き込み事象に対応する無単位値（たとえば、シーケンス番号）に対応し得る。
【００３５】
本発明の一実施形態において、インメモリデータ構造は、１つ以上の読み取り閾値（４１２）に対する＜保持時間，ページ番号，Ｐ／Ｅサイクル値＞のマッピングを含む。上記のマッピングは、読み取り閾値に影響を与える任意の他のシステムパラメータ（すなわち、保持時間、ページ番号、Ｐ／Ｅサイクル値に加えて、１つ以上のパラメータ）をさらに含み得る（たとえば、温度、作業負荷など）。本発明の一実施形態において、保持時間は、固体記憶モジュールにおける物理的位置に対するデータの書き込みの間で経過した時間、および固体記憶モジュールにおける同じ物理的位置からデータが読み取られる時間に対応する。保持時間は、時間の単位で表わされ得る、または無単位値で表わされ得る（たとえば、発生時間が無単位値で表わされる場合）。本発明の一実施形態において、＜保持時間，ページ番号，Ｐ／Ｅサイクル値＞におけるＰ／Ｅサイクル値は、Ｐ／Ｅサイクル、またはＰ／Ｅサイクル範囲として表わされ得る。
【００３６】
本発明の一実施形態において、読み取り閾値（４１２）は、電圧またはシフト値に対応し、ここでシフト値はデフォルト読み取り閾値の電圧シフトに対応する。読み取り閾値の各々は、電圧として、または電圧に対応する無単位数として表わされ得る。
【００３７】
本発明の一実施形態において、デフォルト読み取り閾値は、固体メモリモジュールの製造者によって指定される。さらに、シフト値の細分性は、シフト値によって指定され得て、ここでシフト値は、対応するデフォルト読み取り閾値の電圧シフトに対応する。
【００３８】
本発明の一実施形態において、読み取り閾値（デフォルト読み取り閾値を含む）は、固体記憶モジュールに記憶されたデータを読み取るために使用される電圧値に対応する。より具体的には、本発明の一実施形態において、論理値（たとえば、ＳＬＣであるメモリセルについては１または０、ＭＬＣであるメモリセルについては００，１０，１１，０１）は、メモリセル内の電圧を１つ以上の読み取り閾値と比較することによって判定される。メモリセルに記憶された論理値は、比較の結果に基づいて確かめられ得る。たとえば、所与の電圧（Ｖ）がＢ閾値を上回るとともにＣ閾値を下回る場合、メモリセルに記憶される論理値は００である（たとえば、図６Ｂを参照）。本発明の一実施形態において、固体メモリモジュールにおける各ページは、４〜８Ｋのデータを含み得る。これにより、記憶モジュール制御部は、読み取り要求を処理するために、通常は複数のメモリセルから論理値を取得する。論理値が取得されなければならないメモリセルの特定番号は、要求されるデータ量（読み取り要求を介して）およびメモリセルのタイプ（ＳＬＣ、ＭＬＣなど）に基づいて変化する。
【００３９】
本発明の一実施形態において、読み取り閾値（４１２）は、保持時間、Ｐ／Ｅサイクル値、およびページ番号などの変数のうちの少なくとも１つが修正された時にどのように読み取り閾値を変更すべきかを判定する実験を行なうことによって確かめられる。読み取り閾値（４１２）は、固体メモリモジュールからうまくデータを読み取ることができるように最適化される。具体的には、＜保持時間，Ｐ／Ｅサイクル値，ページ番号＞の各組み合わせについて、最適な読み取り閾値が判定される。所与の＜保持時間，Ｐ／Ｅサイクル値，ページ番号＞についての最適な読み取り閾値は、固体メモリモジュールにおける、デー
タの所与の保持時間、データが記憶される物理的位置のＰ／Ｅサイクル値、およびデータが記憶されるページのページ番号について、固体メモリモジュールから取り出されるデータにおけるビットエラーレート（ＢＥＲ）が最も低くなる読み取り閾値である。
【００４０】
保持時間、Ｐ／Ｅサイクル値、およびページ番号に基づいて読み取り閾値を変更することにより、記憶機器は、所与のメモリセルに記憶される電圧を所与の保持時間、Ｐ／Ｅサイクル値、およびページ番号で変化させ得る様々な変数を考慮に入れる。言い換えると、論理値「０１」がメモリセルに記憶される場合、記憶モジュール制御部は、「０１」に対応する電圧を有するためにメモリセルに十分な数の電子を格納する。時間の経過とともに、メモリセルに格納された電圧は、保持時間、Ｐ／Ｅサイクル値、およびページ番号に基づいて変化する。上記の変数に基づいて時間の経過とともに電圧がどのように変化するかを理解することにより、「０１」を取り出すためにメモリセルから論理値を読み取る時に適切な読み取り閾値が使用され得る。
【００４１】
たとえば、保持時間が４ヶ月であり、Ｐ／Ｅサイクル値が３０，０００であり、ページ番号が３である場合には、うまくデータを読み取るために第１の読み取り閾値が使用され得る一方、保持時間が５ヶ月であり、Ｐ／Ｅサイクル値が３０，０００であり、ページ番号が３である場合には、うまくデータを読み取るために第２の読み取り閾値が使用され得る。
【００４２】
デフォルト読み取り閾値が使用される（非デフォルト読み取り閾値の代わりに）場合、誤った論理値（たとえば、「０１」の代わりに「１１」）がメモリセルの読み取りから取得され得る可能性が高い。これにより、取り出されたデータ内のエラーを修正するとともに、要求するクライアントに対してエラーの無いデータを最後に提供するために、ＥＣＣまたはＲＡＩＤ再構成（すなわち、１つ以上のパリティ値を使用して、取り出されたデータ内のエラーを補正する）などの他のエラー修正機構が必要となる。エラー修正機構を使用すると、クライアント読み取り要求を処理するのに必要な時間が増加し、結果的に記憶機器の性能が低下する。
【００４３】
本発明の一実施形態において、各＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞の組み合わせについて読み取り閾値が提供され得る。所与の＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞についての特定の読み取り閾値は、デフォルト読み取り閾値または非デフォルト読み取り閾値（すなわち、デフォルト読み取り閾値以外の読み取り閾値）に対応し得る。
【００４４】
本発明の他の実施形態において、メモリ（図２の２１０）は、非デフォルト読み取り閾値に関連付けられた各＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞の組み合わせについての非デフォルト読み取り閾値のみを記憶する。このシナリオにおいて、非デフォルト読み取り閾値は、デフォルト読み取り閾値を使用した場合と比して非デフォルト読み取り閾値を使用すると固体メモリモジュールから読み取られるエラーの無いデータの割合が高まる場合に所与の＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞の組み合わせに関連付けられる。さらに、このシナリオにおいて、非デフォルト読み取り閾値を使用した場合と比してデフォルト読み取り閾値を使用すると固体メモリモジュールから読み取られるエラーの無いデータの割合が高まる場合には＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞の組み合わせについてデフォルト読み取り閾値が記憶されない。
【００４５】
フローチャートを見ると、フローチャートには様々なステップが連続的に示されるとともに記載されるが、当業者は、一部またはすべてのステップが異なる順序で実行されてもよく、結合または省略されてもよく、一部またはすべてのステップが並行して実行されてもよいことを理解するであろう。
【００４６】
図５Ａは、本発明の１つ以上の実施形態に係る、記憶機器によってクライアント読み取り要求を処理する方法を示す。
【００４７】
ステップ５００において、クライアント読み取り要求が制御モジュールによってクライアントから受け取られ、ここでクライアント読み取り要求は論理アドレスを含む。
【００４８】
ステップ５０２において、物理アドレス（ページ番号を含む）が論理アドレスから判定される。上述のように、制御モジュールにおけるメモリは、物理アドレスに対する論理アドレスのマッピングを含む（図４の記載、４００，４０２を参照）。本発明の一実施形態において、物理アドレスは、ステップ５００においてクライアント要求から取得した論理アドレスとともに物理アドレスに対する論理アドレスのマッピングを使用してルックアップ（またはクエリ）を行なうことによって判定される。
【００４９】
ステップ５０４において、保持時間（ｔ）は、物理アドレスに記憶されたデータについて判定される。保持時間は、データの発生時間（図４、４０８を参照）およびクライアント要求の時間（たとえば、クライアントがクライアント要求を発した時間、クライアント要求が記憶機器によって受け取られた時間など）を使用して判定され得る。データの発生時間は、制御モジュールのメモリ（たとえば、図２、２１０）から取得される。保持時間は、クライアント要求の時間と発生時間との差を判定することによって計算され得る。
【００５０】
ステップ５０６において、物理アドレスについてのＰ／Ｅサイクル値が判定される。Ｐ／Ｅサイクル値は、物理アドレスをキーとして使用してインメモリデータ構造（制御モジュールのメモリ内に位置する）においてルックアップを行なうことによって判定され得る。ステップ５０６の結果は、物理アドレスに関連付けられた実際のＰ／Ｅサイクル値であり得る（たとえば、物理アドレスに対応する物理的位置が置かれるブロックに関連付けられたＰ／Ｅサイクル値）、またはＰ／Ｅサイクル値範囲（たとえば、５，０００〜９，９９９Ｐ／Ｅサイクル）であり得る。ここで、物理アドレスに関連付けられた実際のＰ／Ｅサイクル値は、Ｐ／Ｅサイクル値範囲内にある。
【００５１】
ステップ５０８において、ゼロ以上の読み取り閾値が、以下のキー＜保持時間，Ｐ／Ｅサイクル値，およびページ番号＞を使用してインメモリデータ構造（図４、４１０、４１２を参照）から取得される。本発明の一実施形態において、物理アドレスからデータを読み取るために記憶モジュール制御部によってデフォルト読み取り閾値が使用される場合、ステップ５０８の結果はゼロの読み取り閾値であり得る。上述のように、非デフォルト読み取り閾値を使用する場合と比して、デフォルト読み取り閾値を使用することによって固体メモリモジュールから読み取られるエラーのないデータ（すなわち、ビットエラーのないデータ）の割合が高くなる場合、デフォルト読み取り閾値が使用される。本発明の一実施形態において、１つ以上の非デフォルト閾値（図４、４１２を参照）が取得され得る。上述のように、デフォルト読み取り閾値を使用する場合と比して、非デフォルト読み取り閾値を使用することによって固体メモリモジュールから読み取られるエラーのないデータ（すなわち、ビットエラーのないデータ）の割合が高くなる場合、非デフォルト読み取り閾値が使用される。
【００５２】
本発明の一実施形態において、非デフォルト読み取り閾値を使用するかについての判定は、Ｐ／Ｅサイクル値（ステップ５０６において判定される）または保持時間（ステップ５０４において判定される）に基づき得る。たとえば、Ｐ／Ｅサイクル値がＰ／Ｅサイクル値の閾値を下回る場合、デフォルト読み取り閾値が使用され、このためステップ５０８が行われない。付加的または代替的に、保持時間が保持時間の閾値を下回る場合、デフォルト読み取り閾値が使用され、このためステップ５０８が行われない。Ｐ／Ｅサイクル値
（ステップ５０６において判定される）がＰ／Ｅサイクル値の閾値を上回る場合、および／または保持時間（ステップ５０４において判定される）が保持時間の閾値を上回る場合、ステップ５０８において記載されたルックアップが行われる。
【００５３】
図５Ａの説明を続けると、ステップ５１０において、ステップ５０８において取得された１つ以上の読み取り閾値および物理アドレスを使用して、制御モジュール読み取り要求が生成される。ステップ５０８において読み取り閾値が取得されない場合、制御モジュール要求は、（ｉ）読み取り閾値を含まない、または（ｉｉ）１つ以上のデフォルト読み取り閾値を含み得る。ここで、制御モジュールは、ステップ５０８において読み取り閾値が取得されなかったことに応答してデフォルト読み取り閾値を取得する。制御モジュール読み取り要求のフォーマットは、記憶モジュール制御部によって支持される任意のフォーマットであり得る。
【００５４】
本発明の一実施形態において、所与の読み取り要求に関連付けられた複数の読み取り閾値がある場合（たとえば、図６Ｂ、Ａ閾値、Ｂ閾値、Ｃ閾値を参照）、上記の閾値のうちの１つ以上がデフォルト読み取り閾値に対応し得て、他の閾値は非デフォルト閾値に対応し得る。たとえば、読み取り閾値は、＜デフォルトＡ読み取り閾値，非デフォルトＢ読み取り閾値，デフォルトＣ読み取り閾値＞であり得る。さらに、複数の読み取り閾値があるシナリオにおいては、任意で非デフォルト閾値のみがステップ５０８において判定され得る。たとえば、ステップ５０８の結果は、＜非デフォルトＢ閾値，非デフォルトＣ閾値＞であり得て、これは、閾値ＢおよびＣについてのデフォルト読み取り閾値とともにデフォルトＡ読み取り閾値を使用すべきであることを示している。
【００５５】
図５Ｂは、本発明の１つ以上の実施形態に従う、制御モジュール読み取り要求を処理する方法を示す。より具体的には、図５Ｂは、記憶モジュール制御部によって行なわれる。
【００５６】
ステップ５２０において、制御モジュール読み取り要求が制御モジュールから受け取られる。ステップ５２２において、制御モジュール読み取り要求における１つ以上の読み取り閾値および物理アドレスに基づいて記憶モジュール制御部によって読み取り命令が生成される。本発明の一実施形態において、ステップ５２２において生成された任意の所与の読み取り命令は、１つ以上の読み取り閾値を指定し得る。制御モジュールが読み取り閾値を含まない場合、読み取り命令を生成するためにデフォルト読み取り閾値が使用される。制御モジュール読み取り要求がシフト値（上に記載）の形態の読み取り閾値を含む場合、読み取り命令の生成は、デフォルト読み取り閾値を取得すること、およびシフト値を使用して１つ以上の読み取り閾値を変更することを含み得る。読み取り命令は、固体メモリモジュールによって支持される任意のフォーマットであり得る。
【００５７】
ステップ５２４において、読み取り命令が固体メモリモジュールに対して発せられる。ステップ５２６において、読み取り命令に応答し、記憶モジュール制御部によってデータが受け取られる。ステップ５２８において、取り出されたデータが制御モジュールに提供される。続いて、制御モジュールは、データをクライアントへ提供する。本発明の一実施形態において、記憶モジュール制御部は、制御モジュール上のメモリに一時的にデータを記憶することを必要とすることなく、取り出されたデータをクライアントへ直接的に転送する機能を含み得る。
【００５８】
図６Ａ〜図６Ｂは、本発明の１つ以上の実施形態に従う例を示す。以下の例は、本発明の範囲を限定することを意図していない。
【００５９】
図６Ａを見て、制御モジュール（６０４）と少なくとも１つの記憶モジュール（６１４）とを含む記憶機器に対して論理アドレスを含むクライアント読み取り要求（６０２）を
クライアント（６００）が発するシナリオについて考える。制御モジュール（６０４）は、制御モジュール上のプロセッサ（６０６）とメモリ（６０８）に記憶される１つ以上のインメモリデータ構造（６１０）とを使用し、図５Ａに記載の方法を用いて、クライアント読み取り要求を受け取り、制御部読み取り要求（６１２）を生成する。より具体的には、制御モジュールは、１つ以上のインメモリデータ構造（６１０）を使用し、論理アドレスに対応する物理アドレス（ＰＡ）を判定する。さらに、制御モジュールは、１つ以上のインメモリデータ構造（６１０）および物理アドレスを使用し、物理アドレスに記憶されたデータの発生時間を判定する。次に、制御モジュールは、物理アドレスに記憶されたデータの保持時間を判定するために、発生時間と、クライアント読み取り要求が受け取られた時間とを使用する。制御モジュールは、少なくとも１つの読み取り閾値を取得するために、＜保持時間，Ｐ／Ｅサイクル値，ページ番号＞のインデックスを使用してインメモリデータ構造におけるルックアップを行なう。ここで、Ｐ／Ｅサイクル値はインメモリデータ構造のうちの１つから取得され、ページ番号は物理アドレスから抽出される。
【００６０】
この例においては、固体メモリモジュール（６２０，６２２）がＭＬＣを含むこと、および上述のルックアップによって閾値Ｂおよび閾値Ｃについてのシフト値の形態の読み取り閾値が返されることが仮定される（図６Ｂを参照）。次に、制御モジュール（６０４）は、物理アドレスと、閾値Ｂについてのシフト値と、閾値Ｃについてのシフト値とを含む制御部読み取り要求を生成する。次に、物理アドレスに対応する物理的位置を含む固体メモリモジュール（６２０，６２２）を含む記憶モジュール（６１４）に対して制御部読み取り要求（６１２）が発せられる。
【００６１】
次に、記憶モジュール（６１４）は、制御部読み取り要求（６１２）を受け取って処理する。より具体的には、記憶モジュール制御部（６１２）は、読み取り命令（６１８）を生成し、物理アドレスに対応する物理的位置を含む固体メモリモジュールに対して読み取り命令（６１８）を発する。この例において、読み取り命令は、デフォルト読み取り閾値Ａ、非デフォルト読み取り閾値Ｂ、および／または非デフォルト閾値Ｃを使用して生成される。非デフォルト閾値Ｂは、デフォルト閾値Ｂおよび閾値Ｂについてのシフト値を使用して判定される。さらに、非デフォルト閾値Ｃは、デフォルト閾値Ｃおよび閾値Ｃについてのシフト値を使用して判定される。
【００６２】
次に、記憶モジュール制御部は、固体メモリモジュールからデータを受け取り、データを（応答（６２４）において）クライアント（６００）に提供する。データは、記憶モジュール内のメモリ（図示せず）からクライアントメモリ（図示せず）へ直接的にコピーされ得る。
【００６３】
図６Ｂは、マルチレベルセルのための例示的な電圧の分配を示す。より具体的には、図６Ｂは、電圧が表わす論理ビット値の２つの異なるマッピングに対する閾値Ａ，Ｂ，Ｃの相対位置を示す。この例において、閾値Ｂおよび閾値Ｃについての読み取り閾値は、＜保持時間，Ｐ／Ｅサイクル，ページ番号＞に関連して変化し、閾値Ａについては読み取り閾値が変化しない。
【００６４】
本発明の１つ以上の実施形態は、記憶機器における１つ以上のプロセッサによって実行される命令を使用して実施され得る。さらに、このような命令は、１つ以上の非一時的コンピュータ読み取り可能媒体上に記憶されるコンピュータ読み取り可能命令に対応し得る。
【００６５】
限られた数の実施形態に関して本発明が記載されたが、当業者は、本開示の恩恵を受け、ここに開示される本発明の範囲から逸脱しない他の実施形態を考案することができることを理解するであろう。このため、本発明の範囲は、添付の請求項のみによって限定されるべきである。
【図１Ａ】
2018018557.tif 000003
【図１Ｂ】
2018018557.tif 000004
【図１Ｃ】
2018018557.tif 000005
【図２】
2018018557.tif 000006
【図３】
2018018557.tif 000007
【図４】
2018018557.tif 000008
【図５Ａ】
2018018557.tif 000009
【図５Ｂ】
2018018557.tif 000010
【図６Ａ】
2018018557.tif 000011
【図６Ｂ】
2018018557.tif 000012