JP6778170B2 - 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体 - Google Patents

持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体 Download PDF

Info

Publication number
JP6778170B2
JP6778170B2 JP2017212749A JP2017212749A JP6778170B2 JP 6778170 B2 JP6778170 B2 JP 6778170B2 JP 2017212749 A JP2017212749 A JP 2017212749A JP 2017212749 A JP2017212749 A JP 2017212749A JP 6778170 B2 JP6778170 B2 JP 6778170B2
Authority
JP
Japan
Prior art keywords
read
physical
data
physical page
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017212749A
Other languages
English (en)
Other versions
JP2018018557A (ja
JP2018018557A5 (ja
Inventor
ハレー・タブリジ
ラジブ・アガーワル
マイケル・フランシス・バリエントス
ジェフリー・ポール・フェレイラ
ジェフリー・エス・ボンウィック
マイケル・ダブリュ・シャピロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2018018557A publication Critical patent/JP2018018557A/ja
Publication of JP2018018557A5 publication Critical patent/JP2018018557A5/ja
Application granted granted Critical
Publication of JP6778170B2 publication Critical patent/JP6778170B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Description

背景
記憶システムについての1つの重要な性能測定基準は、記憶システムに記憶されるデータの取り出しに関連するレイテンシーである。記憶システムの性能は、読み取りレイテンシーを低下させることによって向上する。記憶システムについての読み取りレイテンシーは、記憶システムが記憶媒体からエラーのないデータを確実に取り出すことが出来る場合に低下し得る。エラーのないデータが取り出されない場合、記憶システムは、取り出されたデータからエラーを取り除くために、付加的な動作を行ない得る。たとえば、記憶システムは、エラー修正コード(ECC)および/またはRAIDなどのエラー修正機構を使用し、取り出されたデータからエラーを取り除き得る、または他の方法としてエラーのないデータを生成し得る。エラー修正機構を使用すると、読み取りレイテンシーが上昇することとなり、これに対応して性能の低下が起こる。
概要
概して、1つの局面において、本発明は、持続性記憶装置からデータを読み取る方法に関し、方法は、データについてのクライアント読み取り要求をクライアントから受け取るステップを含み、クライアント読み取り要求は論理アドレスを含み、方法はさらに、論理アドレスに対応する物理アドレスを判定するステップを含み、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、方法はさらに、物理アドレスと論理アドレスとからなるグループから選択される1つを使用してデータについての保持時間を判定するステップと、物理ページに関連付けられたプログラム/消去(P/E)サイクル値を判定するステップと、P/Eサイクル値、保持時間、ページ番号を使用して少なくとも1つの読み取り閾値を取得するステップと、少なくとも1つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発するステップとを含み、記憶モジュールは物理ページを含み、方法はさらに、少なくとも1つの読み取り閾値を使用してデータを物理ページから取得するステップを含む。
概して、1つの局面において、本発明はシステムに関し、システムは、記憶モジュール制御部と持続性記憶装置とを含む記憶モジュールと、記憶モジュールおよびクライアントに動作的に接続される制御モジュールとを含み、制御モジュールは、データについてのクライアント読み取り要求をクライアントから受け取り、クライアント読み取り要求は論理アドレスを含み、制御モジュールはさらに、論理アドレスに対応する物理アドレスを判定し、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、制御モジュールはさらに、物理アドレスと論理アドレスとからなるグループから選択される1つを使用して物理ページ上に記憶されたデータについての保持時間を判定し、物理ページに関連付けられたプログラム/消去(P/E)サイクル値を判定し、P/Eサイクル値、保持時間、およびページ番号を使用して少なくとも1つの読み取り閾値を取得し、少なくとも1つの読み取り閾値を含む制御モジュール読み取り要求を記憶モジュールに対して発し、記憶モジュールは物理ページを含み、記憶モジュールは、制御モジュール読み取り要求を受け取り、制御モジュール読み取り要求における少なくとも1つの読み取り閾値を使用して物理ページからデータを取得する。
概して、1つの局面において、本発明は、非一時的コンピュータ読み取り可能媒体に関し、非一時的コンピュータ読み取り可能媒体は、コンピュータ読み取り可能プログラムコ
ードを含み、コンピュータ読み取り可能プログラムコードがコンピュータプロセッサによって実行されると、コンピュータプロセッサは、データについてのクライアント読み取り要求をクライアントから受け取り、クライアント読み取り要求は論理アドレスを含み、コンピュータプロセッサはさらに、論理アドレスに対応する物理アドレスを判定し、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、コンピュータプロセッサはさらに、物理アドレスと論理アドレスとからなるグループから選択される1つを使用してデータについての保持時間を判定し、物理ページに関連付けられたプログラム/消去(P/E)サイクル値を判定し、P/Eサイクル値、保持時間、およびページ番号を使用して少なくとも1つの読み取り閾値を取得し、少なくとも1つの読み取り閾値を含む制御モジュール読み取り要求を発し、記憶モジュールは物理ページを含み、コンピュータプロセッサはさらに、少なくとも1つの読み取り閾値を使用して物理ページからデータを取得する。
本発明の他の局面は、以下の記載および添付の請求項から明らかとなるであろう。
本発明の1つ以上の実施形態に従うシステムを示す図である。 本発明の1つ以上の実施形態に従うシステムを示す図である。 本発明の1つ以上の実施形態に従うシステムを示す図である。 本発明の1つ以上の実施形態に従う記憶機器を示す図である。 本発明の1つ以上の実施形態に従う記憶モジュールを示す図である。 本発明の1つ以上の実施形態に従う様々な構成部分間の関係を示す図である。 本発明の1つ以上の実施形態に従う、記憶モジュールからデータを読み取る方法を示す図である。 本発明の1つ以上の実施形態に従う、記憶モジュールからデータを読み取る方法を示す図である。 本発明の1つ以上の実施形態に従う例を示す図である。 本発明の1つ以上の実施形態に従う例を示す図である。
詳細な記載
本発明の具体的な実施形態は、添付の図面を参照してここで詳細に記載される。本発明の実施形態についての以下の詳細な記載においては、本発明についてのより十分な理解を提供するために、多くの具体的な詳細が述べられる。しかしながら、本発明がこれらの具体的な詳細が無くとも実施され得ることは当業者にとって明白である。他の場合において、記載が不必要に複雑化することを避けるべく、周知の特徴については詳細に記載されていない。
図1から図6Bについての以下の記載において、本発明の様々な実施形態で図面に関連して記載される構成部分は、他の図面に関連して記載される1つ以上の同様の名称が付された構成部分と等しいものであり得る。簡潔化のために、これらの構成部分についての記載は各図面に関して繰り返されない。したがって、各図面の構成部分の各々およびすべての実施形態は、引用により援用され、1つ以上の同様の名称が付された構成部品を有するその他すべての図面内において任意で存在するものと仮定される。加えて、本発明の様々な実施形態に従い、図面の構成部分についての記載は、他の図面において対応する同様の名称が付された構成部分に関連して記載される実施形態に加えて、またはそれに関連して、またはそれに代えて実施され得る任意の実施形態として解釈される。
概して、本発明の実施形態は、フラッシュ記憶装置の存続期間にわたって読み取り閾値
を動的に変更することによって固体記憶装置の利用を向上させることに関連する。より具体的には、本発明の実施形態は、以前に固体記憶装置に記憶されたデータを読み取る時に使用する適切な読み取り閾値を判定するためにP/Eサイクル値、保持時間、およびページ番号を使用することに関する。読み取り要求ごとに読み取り閾値を動的に変化させる能力により、エラーのないデータをより多く固体記憶装置から取り出すことができる。エラーのないデータが固体記憶装置から取り出される場合、エラー修正機構を実施する必要はない。結果として、システムの性能が向上する。
以下の記載では、本発明の1つ以上の実施形態を実施するための1つ以上のシステムおよび方法が記載される。
図1Aから図1Cは、本発明の1つ以上の実施形態に従うシステムを示す。図1Aを参照すると、システムは、記憶機器(102)に動作的に接続される1つ以上のクライアント(クライアントA(100A)、クライアントM(100M))を含む。
本発明の一実施形態において、クライアント(100A,100M)は、読み取り要求を記憶機器(102)に対して発する機能、および/または書き込み要求を記憶機器(102)に対して発する機能を含む任意の物理システムに対応する。図1Aには示されていないが、クライアント(100A,100M)の各々は、クライアントプロセッサ(図示せず)、クライアントメモリ(図示せず)、ならびに本発明の1つ以上の実施形態を実施するために必要な任意の他のソフトウェアおよび/またはハードウェアを含み得る。
本発明の一実施形態において、クライアント(100A〜100M)は、ファイルシステムを含むオペレーティングシステム(OS)を実行するように構成される。ファイルシステムは、記憶機器(102)に対するファイルの記憶および取り出しのための機構を提供する。より具体的には、ファイルシステムは、読み取り要求および書き込み要求を記憶機器に対して発するために必要な動作を行なう機能を含む。また、ファイルシステムは、ファイルの作成および削除、ファイルの読み取りおよび書き込み、ファイル内のシーク、ディレクトリの作成および削除、ディレクトリ内容の管理などを可能にするプログラミングインターフェイスを提供する。加えて、ファイルシステムはまた、ファイルシステムを作成および削除する管理インターフェイスを提供する。本発明の一実施形態において、ファイルにアクセスするために、オペレーティングシステムは(ファイルシステムを介して)通常、各ファイル内のデータを開く、閉じる、読み取る、および書き込むための、および/または対応するメタデータを操作するためのファイル操作インターフェイスを提供する。
図1Aについての説明を続けると、本発明の一実施形態において、クライアント(100A,100M)は、周辺構成要素相互接続(Peripheral Component Interconnect)(
PCI)、PCI−Express(PCIe)、PCI−eXtended(PCI−X)、不揮発性メモリExpress(NVMe)、PCI−Expressファブリックにわたる不揮発性メモリExpress(NVMe)、イーサネット(登録商標)ファブリックにわたる不揮発性メモリExpress(NVMe)、およびInfinibandファブリックにわたる不揮発性メモリExpress(NVMe)のうちの1つ以上のプロトコルを使用して記憶機器(102)と通信するように構成される。当業者は、本発明が上記のプロトコルに限定されないことを理解するであろう。
本発明の1つの実施形態において、記憶機器(102)は、揮発性および持続性の記憶装置を含むシステムであり、1つ以上のクライアント(100A,100M)からの読み取り要求および/書き込み要求の処理を行なうように構成される。記憶機器(102)の様々な実施形態は、図2において以下に記載される。
図1Bを参照すると、図1Bは、メッシュ構成で配置される複数の記憶機器(104A,104B,104C,104D)(記憶機器メッシュ(104)として図1Bに示される)にクライアント(100A,100M)が接続されるシステムを示す。図1Bに示されるように、記憶機器メッシュ(104)は、完全接続メッシュ構成で示される。すなわち、記憶機器メッシュ(104)におけるすべての記憶機器(104A,104B,104C,104D)が記憶機器メッシュ(104)におけるすべての他の記憶機器(104A,104B,104C,104D)に直接的に接続される。本発明の一実施形態において、クライアント(100A,100M)の各々は、記憶機器メッシュ(104)における1つ以上の記憶機器(104A,104B,104C,104D)に直接的に接続され得る。当業者は、本発明から逸脱することなく他のメッシュ構成(たとえば、部分的に接続するメッシュ)を使用して記憶機器メッシュが実施され得ることを理解するであろう。
図1Cを参照すると、図1Cは、ファンアウト(fan-out)構成で配置された複数の記
憶機器(104A,104B,104C,104D)にクライアント(100A,100M)が接続されるシステムを示す。この構成において、各クライアント(100A,100M)は記憶機器(104A,104B,104C,104D)のうちの1つ以上に接続されるが、個々の記憶機器(104A,104B,104C,104D)間の通信は無い。
図1Aから図1Cは、限られた数のクライアントに接続される記憶機器を示しているが、記憶機器は本発明から逸脱することなく任意の数のクライアントに接続され得ることを当業者は理解するであろう。図1Aから図1Cは様々なシステム構成を示しているが、本発明は上記のシステム構成に限定されないことを当業者は理解するであろう。さらに、本発明から逸脱することなく任意の他の物理的接続を使用してクライアントが(システムの配置に関係なく)記憶機器に接続され得ることを当業者は理解するであろう。
図2は、本発明の1つ以上の実施形態に従う記憶機器の実施形態を示す。記憶機器は、制御モジュール(200)と記憶モジュールグループ(202)とを含む。これらの構成部分の各々は以下に記載される。概して、制御モジュール(200)は、1つ以上のクライアントからの読み取り要求および書き込み要求の処理を管理するように構成される。特に、制御モジュールは、IOM(以下に記載)を介して1つ以上のクライアントから要求を受け取り、要求を処理し(記憶モジュールへ要求を送ることも含み得る)、要求が処理された後のクライアントへの応答を提供するように構成される。制御モジュールにおける構成部分についての付加的な詳細は、以下に含まれる。さらに、読み取り要求の処理に対する制御モジュールの動作は、図5Aから図5Bを参照して以下に記載される。
図2についての説明を続けると、本発明の一実施形態において、制御モジュール(200)は、入出力モジュール(IOM)(204)と、プロセッサ(208)と、メモリ(210)と、任意のフィールドプログラマブルゲートアレイ(FPGA)(212)とを含む。本発明の一実施形態において、IOM(204)は、クライアント(たとえば、図1Aから図1Cにおける100A、100M)と記憶機器における他の構成部分との間の物理インターフェイスである。IOMは、PCI、PCIe、PCI−X、イーサネット(IEEE802.3a〜802.3bjで規定された様々な規格を含むが、これらに限定されない)、Infiniband、およびコンバージドイーサネット(RoCE)にわたるリモートダイレクトメモリアクセス(RDMA)のプロトコルのうちの1つ以上を支持する。本発明から逸脱することなく上記のプロトコル以外のプロトコルを使用してIOMが実施され得ることを当業者は理解するであろう。
図2について続けると、プロセッサ(208)は、命令を実行するように構成された、
シングルコアもしくはマルチコアの電子回路のグループである。本発明の一実施形態において、プロセッサ(208)は、複雑命令セット(CISC)アーキテクチャまたは縮小命令セット(RISC)アーキテクチャを使用して実施され得る。本発明の1つ以上の実施形態において、プロセッサ(208)は、ルートコンプレックス(PCIeプロトコルによって定義される)を含む。本発明の一実施形態において、制御モジュール(200)がルートコンプレックス(これはプロセッサ(208)に統合され得る)を含む場合、メモリ(210)はルートコンプレックスを介してプロセッサ(208)に接続される。代替的に、メモリ(210)は、他の二地点間接続機構を使用してプロセッサ(208)に直接的に接続される。本発明の一実施形態において、メモリ(210)は、動的ランダムアクセスメモリ(DRAM)、シンクロナスDRAM、SDR SDRAM、およびDD
R SDRAMを含むがこれらに限定されない任意の揮発性メモリに対応する。
本発明の一実施形態において、プロセッサ(208)は、インメモリデータ構造(図示せず)を作成および更新するように構成され、インメモリデータ構造はメモリ(210)に記憶される。本発明の一実施形態において、インメモリデータ構造は、図4に記載される情報を含む。
本発明の一実施形態において、プロセッサは、様々なタイプの処理をFPGA(212)に任せるように構成される。本発明の一実施形態において、FPGA(212)は、記憶モジュールに書き込まれたデータおよび/または記憶モジュールから読み出されたデータについてのチェックサムを計算する機能を含む。さらに、FPGA(212)は、RAIDスキーム(たとえば、RAID2〜RAID6)を使用し、記憶モジュールにデータを記憶する目的でPおよび/またはQパリティ情報を計算する機能、および/またはRAIDスキーム(たとえば、RAID2〜RAID6)を使用し、記憶された破損データを回復するのに必要な様々な計算を行なう機能を含み得る。本発明の一実施形態において、記憶モジュールグループ(202)は、各々がデータを記憶するように構成された1つ以上の記憶モジュール(214A,214N)を含む。記憶モジュールの一実施形態は、図3において以下に記載される。
図3は、本発明の1つ以上の実施形態に従う記憶モジュールを示す。記憶モジュール(300)は、記憶モジュール制御部(302)と、メモリ(図示せず)と、1つ以上の固体メモリモジュール(304A,304N)とを含む。これらの構成部分の各々は、以下に記載される。
本発明の一実施形態において、記憶モジュール制御部(300)は、1つ以上の制御モジュールに対するデータの読み取りおよび/または書き込みの要求を受け取るように構成される。さらに、記憶モジュール制御部(300)は、メモリ(図示せず)および/または固体メモリモジュール(304A,304N)を使用して読み取り要求および書き込み要求を処理するように構成される。
本発明の一実施形態において、メモリ(図示せず)は、動的ランダムアクセスメモリ(DRAM)、シンクロナスDRAM、SDR SDRAM、およびDDR SDRAMを含むがこれらに限定されない任意の揮発性メモリに対応する。
本発明の一実施形態において、固体メモリモジュールは、固体メモリを使用して持続性データを記憶するデータ記憶装置に対応する。本発明の一実施形態において、固体メモリは、NANDフラッシュメモリおよびNORフラッシュメモリを含み得るが、これらに限定されない。さらに、NANDフラッシュメモリおよびNORフラッシュメモリは、シングルレベルセル(SLC)、マルチレベルセル(MLC)、またはトリプルレベルセル(TLC)を含み得る。当業者は、本発明の実施形態が記憶クラスメモリに限定されないこ
とを理解するであろう。
図4は、本発明の1つ以上の実施形態に従う、様々な構成部分間の関係を示す。より具体的に、図4は、制御モジュールのメモリに記憶される様々なタイプの情報を示す。さらに、制御モジュールは、制御モジュールのメモリに記憶された情報を更新する機能を含む。以下に記載される情報は、1つ以上のインメモリデータ構造に記憶され得る。さらに、インメモリデータ構造内の以下の情報を体系化するために任意のデータ構造タイプ(たとえば、アレイ、リンクリスト、ハッシュ表など)が使用され得る。但し、データ構造タイプは情報間の関係(以下に記載)を維持する。
メモリは、物理アドレス(402)に対する論理アドレス(400)のマッピングを含む。本発明の一実施形態において、論理アドレス(400)は、クライアント(たとえば、図1Aにおける100A、100M)の視点からデータが常駐しているように見えるアドレスである。言い換えると、論理アドレス(400)は、記憶機器に対して読み取り要求を発する時にクライアント上のファイルシステムによって使用されるアドレスに対応する。
本発明の一実施形態において、論理アドレスは、ハッシュ関数(たとえば、SHA−1,MD−5など)をn組に対して適用することによって生成されるハッシュ値である(またはこれを含む)。ここでn組は<オブジェクトID,オフセットID>である。本発明の一実施形態において、オブジェクトIDはファイルを定義し、オフセットIDはファイルの開始アドレスに対する位置を定義する。本発明の他の実施形態において、n組は<オブジェクトID,オフセットID,発生時間>であり、ここで発生時間はファイル(オブジェクトIDを使用して識別される)が作成された時間に対応する。代替的に、論理アドレスは、論理オブジェクトIDおよび論理バイトアドレス、または論理オブジェクトIDおよび論理アドレスオフセットを含み得る。本発明の他の実施形態において、論理アドレスは、オブジェクトIDおよびオフセットIDを含む。当業者は、複数の論理アドレスが単一の物理アドレスに対してマッピングされ得ること、ならびに論理アドレスの内容および/またはフォーマットが上記の実施形態に限定されないことを理解するであろう。
本発明の一実施形態において、物理アドレス(402)は、図3の固体メモリモジュール(304A,304N)における物理的位置に対応する。本発明の一実施形態において、物理アドレスは、<記憶モジュール,チャネル,チップイネーブル,LUN,面,ブロック,ページ番号,バイト>のn組として定義される。
本発明の一実施形態において、各物理アドレス(402)は、プログラム/消去(P/E)サイクル値(404)に関連付けられる。P/Eサイクル値は、(i)物理アドレスによって定義される物理的位置上で行われたP/Eサイクルの数、または(ii)P/Eサイクル範囲(たとえば、5,000〜9,999P/Eサイクル)を表わし得て、ここで、物理アドレスによって定義される物理的位置上で行われたP/Eサイクルの数は、P/Eサイクル範囲内である。本発明の一実施形態において、P/Eサイクルは、消去ブロックにおける1つ以上のページ(すなわち、消去動作のための最小のアドレス可能単位であり、通常は複数ページの集合である)に対するデータの書き込み、およびそのブロックの消去であり、順番はいずれでもよい。
P/Eサイクル値は、ページごと、ブロックごと、ブロックの集合ごと、および/または任意の他の細分性のレベルで記憶され得る。制御モジュールは、データが固体記憶モジュールに書き込まれた(および/または消去された)時に適切な方法でP/Eサイクル値(402)を更新する機能を含む。
本発明の一実施形態において、すべてのデータ(すなわち、クライアント上のファイルシステムが固体記憶モジュールに書き込むように要求したデータ)(406)は、発生時間(408)に対応付けられる。発生時間(408)は、(i)固体記憶モジュールにおける物理的位置にデータが書き込まれた(クライアント書き込み要求の結果として、制御モジュールによって開始されたガーベジコレクション動作の結果として、など)時間、(ii)固体記憶モジュールに対してデータを書き込む書き込み要求をクライアントが発した時間、または(iii)上記(i)または(ii)における書き込み事象に対応する無単位値(たとえば、シーケンス番号)に対応し得る。
本発明の一実施形態において、インメモリデータ構造は、1つ以上の読み取り閾値(412)に対する<保持時間,ページ番号,P/Eサイクル値>のマッピングを含む。上記のマッピングは、読み取り閾値に影響を与える任意の他のシステムパラメータ(すなわち、保持時間、ページ番号、P/Eサイクル値に加えて、1つ以上のパラメータ)をさらに含み得る(たとえば、温度、作業負荷など)。本発明の一実施形態において、保持時間は、固体記憶モジュールにおける物理的位置に対するデータの書き込みの間で経過した時間、および固体記憶モジュールにおける同じ物理的位置からデータが読み取られる時間に対応する。保持時間は、時間の単位で表わされ得る、または無単位値で表わされ得る(たとえば、発生時間が無単位値で表わされる場合)。本発明の一実施形態において、<保持時間,ページ番号,P/Eサイクル値>におけるP/Eサイクル値は、P/Eサイクル、またはP/Eサイクル範囲として表わされ得る。
本発明の一実施形態において、読み取り閾値(412)は、電圧またはシフト値に対応し、ここでシフト値はデフォルト読み取り閾値の電圧シフトに対応する。読み取り閾値の各々は、電圧として、または電圧に対応する無単位数として表わされ得る。
本発明の一実施形態において、デフォルト読み取り閾値は、固体メモリモジュールの製造者によって指定される。さらに、シフト値の細分性は、シフト値によって指定され得て、ここでシフト値は、対応するデフォルト読み取り閾値の電圧シフトに対応する。
本発明の一実施形態において、読み取り閾値(デフォルト読み取り閾値を含む)は、固体記憶モジュールに記憶されたデータを読み取るために使用される電圧値に対応する。より具体的には、本発明の一実施形態において、論理値(たとえば、SLCであるメモリセルについては1または0、MLCであるメモリセルについては00,10,11,01)は、メモリセル内の電圧を1つ以上の読み取り閾値と比較することによって判定される。メモリセルに記憶された論理値は、比較の結果に基づいて確かめられ得る。たとえば、所与の電圧(V)がB閾値を上回るとともにC閾値を下回る場合、メモリセルに記憶される論理値は00である(たとえば、図6Bを参照)。本発明の一実施形態において、固体メモリモジュールにおける各ページは、4〜8Kのデータを含み得る。これにより、記憶モジュール制御部は、読み取り要求を処理するために、通常は複数のメモリセルから論理値を取得する。論理値が取得されなければならないメモリセルの特定番号は、要求されるデータ量(読み取り要求を介して)およびメモリセルのタイプ(SLC、MLCなど)に基づいて変化する。
本発明の一実施形態において、読み取り閾値(412)は、保持時間、P/Eサイクル値、およびページ番号などの変数のうちの少なくとも1つが修正された時にどのように読み取り閾値を変更すべきかを判定する実験を行なうことによって確かめられる。読み取り閾値(412)は、固体メモリモジュールからうまくデータを読み取ることができるように最適化される。具体的には、<保持時間,P/Eサイクル値,ページ番号>の各組み合わせについて、最適な読み取り閾値が判定される。所与の<保持時間,P/Eサイクル値,ページ番号>についての最適な読み取り閾値は、固体メモリモジュールにおける、デー
タの所与の保持時間、データが記憶される物理的位置のP/Eサイクル値、およびデータが記憶されるページのページ番号について、固体メモリモジュールから取り出されるデータにおけるビットエラーレート(BER)が最も低くなる読み取り閾値である。
保持時間、P/Eサイクル値、およびページ番号に基づいて読み取り閾値を変更することにより、記憶機器は、所与のメモリセルに記憶される電圧を所与の保持時間、P/Eサイクル値、およびページ番号で変化させ得る様々な変数を考慮に入れる。言い換えると、論理値「01」がメモリセルに記憶される場合、記憶モジュール制御部は、「01」に対応する電圧を有するためにメモリセルに十分な数の電子を格納する。時間の経過とともに、メモリセルに格納された電圧は、保持時間、P/Eサイクル値、およびページ番号に基づいて変化する。上記の変数に基づいて時間の経過とともに電圧がどのように変化するかを理解することにより、「01」を取り出すためにメモリセルから論理値を読み取る時に適切な読み取り閾値が使用され得る。
たとえば、保持時間が4ヶ月であり、P/Eサイクル値が30,000であり、ページ番号が3である場合には、うまくデータを読み取るために第1の読み取り閾値が使用され得る一方、保持時間が5ヶ月であり、P/Eサイクル値が30,000であり、ページ番号が3である場合には、うまくデータを読み取るために第2の読み取り閾値が使用され得る。
デフォルト読み取り閾値が使用される(非デフォルト読み取り閾値の代わりに)場合、誤った論理値(たとえば、「01」の代わりに「11」)がメモリセルの読み取りから取得され得る可能性が高い。これにより、取り出されたデータ内のエラーを修正するとともに、要求するクライアントに対してエラーの無いデータを最後に提供するために、ECCまたはRAID再構成(すなわち、1つ以上のパリティ値を使用して、取り出されたデータ内のエラーを補正する)などの他のエラー修正機構が必要となる。エラー修正機構を使用すると、クライアント読み取り要求を処理するのに必要な時間が増加し、結果的に記憶機器の性能が低下する。
本発明の一実施形態において、各<保持時間,P/Eサイクル値,およびページ番号>の組み合わせについて読み取り閾値が提供され得る。所与の<保持時間,P/Eサイクル値,およびページ番号>についての特定の読み取り閾値は、デフォルト読み取り閾値または非デフォルト読み取り閾値(すなわち、デフォルト読み取り閾値以外の読み取り閾値)に対応し得る。
本発明の他の実施形態において、メモリ(図2の210)は、非デフォルト読み取り閾値に関連付けられた各<保持時間,P/Eサイクル値,およびページ番号>の組み合わせについての非デフォルト読み取り閾値のみを記憶する。このシナリオにおいて、非デフォルト読み取り閾値は、デフォルト読み取り閾値を使用した場合と比して非デフォルト読み取り閾値を使用すると固体メモリモジュールから読み取られるエラーの無いデータの割合が高まる場合に所与の<保持時間,P/Eサイクル値,およびページ番号>の組み合わせに関連付けられる。さらに、このシナリオにおいて、非デフォルト読み取り閾値を使用した場合と比してデフォルト読み取り閾値を使用すると固体メモリモジュールから読み取られるエラーの無いデータの割合が高まる場合には<保持時間,P/Eサイクル値,およびページ番号>の組み合わせについてデフォルト読み取り閾値が記憶されない。
フローチャートを見ると、フローチャートには様々なステップが連続的に示されるとともに記載されるが、当業者は、一部またはすべてのステップが異なる順序で実行されてもよく、結合または省略されてもよく、一部またはすべてのステップが並行して実行されてもよいことを理解するであろう。
図5Aは、本発明の1つ以上の実施形態に係る、記憶機器によってクライアント読み取り要求を処理する方法を示す。
ステップ500において、クライアント読み取り要求が制御モジュールによってクライアントから受け取られ、ここでクライアント読み取り要求は論理アドレスを含む。
ステップ502において、物理アドレス(ページ番号を含む)が論理アドレスから判定される。上述のように、制御モジュールにおけるメモリは、物理アドレスに対する論理アドレスのマッピングを含む(図4の記載、400,402を参照)。本発明の一実施形態において、物理アドレスは、ステップ500においてクライアント要求から取得した論理アドレスとともに物理アドレスに対する論理アドレスのマッピングを使用してルックアップ(またはクエリ)を行なうことによって判定される。
ステップ504において、保持時間(t)は、物理アドレスに記憶されたデータについて判定される。保持時間は、データの発生時間(図4、408を参照)およびクライアント要求の時間(たとえば、クライアントがクライアント要求を発した時間、クライアント要求が記憶機器によって受け取られた時間など)を使用して判定され得る。データの発生時間は、制御モジュールのメモリ(たとえば、図2、210)から取得される。保持時間は、クライアント要求の時間と発生時間との差を判定することによって計算され得る。
ステップ506において、物理アドレスについてのP/Eサイクル値が判定される。P/Eサイクル値は、物理アドレスをキーとして使用してインメモリデータ構造(制御モジュールのメモリ内に位置する)においてルックアップを行なうことによって判定され得る。ステップ506の結果は、物理アドレスに関連付けられた実際のP/Eサイクル値であり得る(たとえば、物理アドレスに対応する物理的位置が置かれるブロックに関連付けられたP/Eサイクル値)、またはP/Eサイクル値範囲(たとえば、5,000〜9,999P/Eサイクル)であり得る。ここで、物理アドレスに関連付けられた実際のP/Eサイクル値は、P/Eサイクル値範囲内にある。
ステップ508において、ゼロ以上の読み取り閾値が、以下のキー<保持時間,P/Eサイクル値,およびページ番号>を使用してインメモリデータ構造(図4、410、412を参照)から取得される。本発明の一実施形態において、物理アドレスからデータを読み取るために記憶モジュール制御部によってデフォルト読み取り閾値が使用される場合、ステップ508の結果はゼロの読み取り閾値であり得る。上述のように、非デフォルト読み取り閾値を使用する場合と比して、デフォルト読み取り閾値を使用することによって固体メモリモジュールから読み取られるエラーのないデータ(すなわち、ビットエラーのないデータ)の割合が高くなる場合、デフォルト読み取り閾値が使用される。本発明の一実施形態において、1つ以上の非デフォルト閾値(図4、412を参照)が取得され得る。上述のように、デフォルト読み取り閾値を使用する場合と比して、非デフォルト読み取り閾値を使用することによって固体メモリモジュールから読み取られるエラーのないデータ(すなわち、ビットエラーのないデータ)の割合が高くなる場合、非デフォルト読み取り閾値が使用される。
本発明の一実施形態において、非デフォルト読み取り閾値を使用するかについての判定は、P/Eサイクル値(ステップ506において判定される)または保持時間(ステップ504において判定される)に基づき得る。たとえば、P/Eサイクル値がP/Eサイクル値の閾値を下回る場合、デフォルト読み取り閾値が使用され、このためステップ508が行われない。付加的または代替的に、保持時間が保持時間の閾値を下回る場合、デフォルト読み取り閾値が使用され、このためステップ508が行われない。P/Eサイクル値
(ステップ506において判定される)がP/Eサイクル値の閾値を上回る場合、および/または保持時間(ステップ504において判定される)が保持時間の閾値を上回る場合、ステップ508において記載されたルックアップが行われる。
図5Aの説明を続けると、ステップ510において、ステップ508において取得された1つ以上の読み取り閾値および物理アドレスを使用して、制御モジュール読み取り要求が生成される。ステップ508において読み取り閾値が取得されない場合、制御モジュール要求は、(i)読み取り閾値を含まない、または(ii)1つ以上のデフォルト読み取り閾値を含み得る。ここで、制御モジュールは、ステップ508において読み取り閾値が取得されなかったことに応答してデフォルト読み取り閾値を取得する。制御モジュール読み取り要求のフォーマットは、記憶モジュール制御部によって支持される任意のフォーマットであり得る。
本発明の一実施形態において、所与の読み取り要求に関連付けられた複数の読み取り閾値がある場合(たとえば、図6B、A閾値、B閾値、C閾値を参照)、上記の閾値のうちの1つ以上がデフォルト読み取り閾値に対応し得て、他の閾値は非デフォルト閾値に対応し得る。たとえば、読み取り閾値は、<デフォルトA読み取り閾値,非デフォルトB読み取り閾値,デフォルトC読み取り閾値>であり得る。さらに、複数の読み取り閾値があるシナリオにおいては、任意で非デフォルト閾値のみがステップ508において判定され得る。たとえば、ステップ508の結果は、<非デフォルトB閾値,非デフォルトC閾値>であり得て、これは、閾値BおよびCについてのデフォルト読み取り閾値とともにデフォルトA読み取り閾値を使用すべきであることを示している。
図5Bは、本発明の1つ以上の実施形態に従う、制御モジュール読み取り要求を処理する方法を示す。より具体的には、図5Bは、記憶モジュール制御部によって行なわれる。
ステップ520において、制御モジュール読み取り要求が制御モジュールから受け取られる。ステップ522において、制御モジュール読み取り要求における1つ以上の読み取り閾値および物理アドレスに基づいて記憶モジュール制御部によって読み取り命令が生成される。本発明の一実施形態において、ステップ522において生成された任意の所与の読み取り命令は、1つ以上の読み取り閾値を指定し得る。制御モジュールが読み取り閾値を含まない場合、読み取り命令を生成するためにデフォルト読み取り閾値が使用される。制御モジュール読み取り要求がシフト値(上に記載)の形態の読み取り閾値を含む場合、読み取り命令の生成は、デフォルト読み取り閾値を取得すること、およびシフト値を使用して1つ以上の読み取り閾値を変更することを含み得る。読み取り命令は、固体メモリモジュールによって支持される任意のフォーマットであり得る。
ステップ524において、読み取り命令が固体メモリモジュールに対して発せられる。ステップ526において、読み取り命令に応答し、記憶モジュール制御部によってデータが受け取られる。ステップ528において、取り出されたデータが制御モジュールに提供される。続いて、制御モジュールは、データをクライアントへ提供する。本発明の一実施形態において、記憶モジュール制御部は、制御モジュール上のメモリに一時的にデータを記憶することを必要とすることなく、取り出されたデータをクライアントへ直接的に転送する機能を含み得る。
図6A〜図6Bは、本発明の1つ以上の実施形態に従う例を示す。以下の例は、本発明の範囲を限定することを意図していない。
図6Aを見て、制御モジュール(604)と少なくとも1つの記憶モジュール(614)とを含む記憶機器に対して論理アドレスを含むクライアント読み取り要求(602)を
クライアント(600)が発するシナリオについて考える。制御モジュール(604)は、制御モジュール上のプロセッサ(606)とメモリ(608)に記憶される1つ以上のインメモリデータ構造(610)とを使用し、図5Aに記載の方法を用いて、クライアント読み取り要求を受け取り、制御部読み取り要求(612)を生成する。より具体的には、制御モジュールは、1つ以上のインメモリデータ構造(610)を使用し、論理アドレスに対応する物理アドレス(PA)を判定する。さらに、制御モジュールは、1つ以上のインメモリデータ構造(610)および物理アドレスを使用し、物理アドレスに記憶されたデータの発生時間を判定する。次に、制御モジュールは、物理アドレスに記憶されたデータの保持時間を判定するために、発生時間と、クライアント読み取り要求が受け取られた時間とを使用する。制御モジュールは、少なくとも1つの読み取り閾値を取得するために、<保持時間,P/Eサイクル値,ページ番号>のインデックスを使用してインメモリデータ構造におけるルックアップを行なう。ここで、P/Eサイクル値はインメモリデータ構造のうちの1つから取得され、ページ番号は物理アドレスから抽出される。
この例においては、固体メモリモジュール(620,622)がMLCを含むこと、および上述のルックアップによって閾値Bおよび閾値Cについてのシフト値の形態の読み取り閾値が返されることが仮定される(図6Bを参照)。次に、制御モジュール(604)は、物理アドレスと、閾値Bについてのシフト値と、閾値Cについてのシフト値とを含む制御部読み取り要求を生成する。次に、物理アドレスに対応する物理的位置を含む固体メモリモジュール(620,622)を含む記憶モジュール(614)に対して制御部読み取り要求(612)が発せられる。
次に、記憶モジュール(614)は、制御部読み取り要求(612)を受け取って処理する。より具体的には、記憶モジュール制御部(612)は、読み取り命令(618)を生成し、物理アドレスに対応する物理的位置を含む固体メモリモジュールに対して読み取り命令(618)を発する。この例において、読み取り命令は、デフォルト読み取り閾値A、非デフォルト読み取り閾値B、および/または非デフォルト閾値Cを使用して生成される。非デフォルト閾値Bは、デフォルト閾値Bおよび閾値Bについてのシフト値を使用して判定される。さらに、非デフォルト閾値Cは、デフォルト閾値Cおよび閾値Cについてのシフト値を使用して判定される。
次に、記憶モジュール制御部は、固体メモリモジュールからデータを受け取り、データを(応答(624)において)クライアント(600)に提供する。データは、記憶モジュール内のメモリ(図示せず)からクライアントメモリ(図示せず)へ直接的にコピーされ得る。
図6Bは、マルチレベルセルのための例示的な電圧の分配を示す。より具体的には、図6Bは、電圧が表わす論理ビット値の2つの異なるマッピングに対する閾値A,B,Cの相対位置を示す。この例において、閾値Bおよび閾値Cについての読み取り閾値は、<保持時間,P/Eサイクル,ページ番号>に関連して変化し、閾値Aについては読み取り閾値が変化しない。
本発明の1つ以上の実施形態は、記憶機器における1つ以上のプロセッサによって実行される命令を使用して実施され得る。さらに、このような命令は、1つ以上の非一時的コンピュータ読み取り可能媒体上に記憶されるコンピュータ読み取り可能命令に対応し得る。
限られた数の実施形態に関して本発明が記載されたが、当業者は、本開示の恩恵を受け、ここに開示される本発明の範囲から逸脱しない他の実施形態を考案することができることを理解するであろう。このため、本発明の範囲は、添付の請求項のみによって限定されるべきである。

Claims (17)

  1. 持続性記憶装置からデータを読み取る方法であって、方法は、
    コンピュータプロセッサが、第1のデータについての第1のクライアント読み取り要求をクライアントから受け取るステップを備え、前記第1のクライアント読み取り要求は第1の論理アドレスを含み、方法はさらに、
    前記コンピュータプロセッサが、前記第1の論理アドレスに対応する第1の物理アドレスを判定するステップを備え、物理アドレスは前記持続性記憶装置における物理ページについてのページ番号を含み、前記第1の物理アドレスは第1の物理ページについての第1のページ番号を含み、方法はさらに、
    前記コンピュータプロセッサが、前記第1の物理アドレスに記憶された前記第1のデータについての第1の保持時間を判定するステップと、
    前記コンピュータプロセッサが、前記第1の物理ページに関連付けられた第1のプログラム/消去(P/E)サイクル値を判定するステップと、
    前記コンピュータプロセッサが、任意の保持時間、任意のページ番号および任意のP/Eサイクル値を各々が含む複数のタプルと、前記複数のタプルの各々に対応する複数の読み取り閾値との間の予め定められたマッピングに基づいて、前記第1の保持時間、前記第1のページ番号および前記第1のP/Eサイクル値を含む第1のタプルに対応する複数の第1の読み取り閾値を識別するステップとを備え、前記複数の第1の読み取り閾値は、少なくとも1つのデフォルト読み取り閾値と、少なくとも1つの非デフォルト読み取り閾値とを含み、方法はさらに、
    前記コンピュータプロセッサが、前記複数の第1の読み取り閾値を含む第1の制御モジュール読み取り要求を、前記持続性記憶装置を含む記憶モジュールに対して発するステップを備え、前記持続性記憶装置は前記第1の物理ページを含み、前記第1の物理ページはマルチレベルセルを含み、方法はさらに、
    前記記憶モジュールが、前記マルチレベルセルに対する複数の読み取り閾値として前記複数の第1の読み取り閾値を使用して前記第1のデータを前記第1の物理ページから取得するステップを備える、方法。
  2. 前記コンピュータプロセッサが、第2のデータについての第2のクライアント読み取り要求を前記クライアントから受け取るステップをさらに備え、前記第2のクライアント読み取り要求は第2の論理アドレスを含み、方法はさらに、
    前記コンピュータプロセッサが、前記第2の論理アドレスに対応する第2の物理アドレスを判定するステップを備え、前記第2の物理アドレスは前記持続性記憶装置における第2の物理ページについての第2のページ番号を含み、方法はさらに、
    前記コンピュータプロセッサが、前記第2の物理アドレスに記憶された前記第2のデータについての第2の保持時間を判定するステップと、
    前記コンピュータプロセッサが、前記第2の物理ページに関連付けられた第2のP/Eサイクル値を判定するステップと、
    前記コンピュータプロセッサが、前記予め定められたマッピングに基づいて、前記第2のP/Eサイクル値、前記第2の保持時間および前記第2のページ番号を含む第2のタプルに対応する複数の第2の読み取り閾値を識別するステップと、
    前記コンピュータプロセッサが、前記複数第2の読み取り閾値を含む第2の制御モジュール読み取り要求を前記記憶モジュールに対して発するステップとを備え、前記持続性記憶装置は前記第2の物理ページを含み、前記第2の物理ページはマルチレベルセルを含み、前記第2の物理ページは前記第1の物理ページとは異なり、方法はさらに、
    前記記憶モジュールが、前記マルチレベルセルに対する複数の読み取り閾値として前記複数第2の読み取り閾値を使用して前記第2の物理ページから前記第2のデータを取得するステップを備える、請求項1に記載の方法。
  3. 前記物理ページは、前記持続性記憶装置における固体モジュール上に位置し、前記固体モジュールはマルチレベルセル(MLC)を含む、請求項1または2に記載の方法。
  4. 前記少なくとも1つのデフォルト読み取り閾値は、A閾値、B閾値、およびC閾値からなる閾値のグループから選択された少なくとも1つに適用され、前記少なくとも1つの非デフォルト読み取り閾値は前記閾値のグループから選択された別の少なくとも1つに適用される、請求項3に記載の方法。
  5. 前記第1の保持時間を判定するステップは、
    前記第1の物理ページに前記第1のデータが書き込まれた第1の時間を判定するステップと、
    前記第1のクライアント読み取り要求に関連付けられた第2の時間を判定するステップと、
    前記第1の時間および前記第2の時間を使用して前記第1の保持時間を判定するステップとを含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記記憶モジュールには制御モジュールが動作的に接続され、
    前記制御モジュールは、前記コンピュータプロセッサとメモリとを含み、
    前記第1の時間は、前記メモリにおけるインメモリデータ構造から取得され、請求項5に記載の方法。
  7. 前記第2の時間は、前記第1のクライアント読み取り要求から取得される、請求項5または6に記載の方法。
  8. 前記複数の第1の読み取り閾値を識別するステップは、インメモリデータ構造においてルックアップを行なうステップを含み、前記インメモリデータ構造は複数のエントリーを含み、前記複数のエントリーの各々は、複数の読み取り閾値を含み、前記複数のエントリーの1つのエントリーは、前記第1のタプル、前記少なくとも1つのデフォルト読み取り閾値および前記少なくとも1つの非デフォルト読み取り閾値を含む、請求項1〜6のいずれか1項に記載の方法。
  9. 前記複数の読み取り閾値の少なくとも1つの読み取り閾値は電圧値を含む、請求項1〜8のいずれか1項に記載の方法。
  10. 前記複数の読み取り閾値の少なくとも1つの読み取り閾値はシフト値を含み、前記シフト値は、デフォルト読み取り閾値の電圧シフトに対応する、請求項1〜9のいずれか1項に記載の方法。
  11. 前記P/Eサイクル値は、P/Eサイクル値範囲である、請求項1〜10のいずれか1項に記載の方法。
  12. システムであって、
    記憶モジュール制御部と持続性記憶装置とを含む記憶モジュールと、
    前記記憶モジュールおよびクライアントに動作的に接続される制御モジュールとを備え、
    前記制御モジュールは、
    第1のデータについての第1のクライアント読み取り要求をクライアントから受け取り、前記第1のクライアント読み取り要求は第1の論理アドレスを含み、前記制御モジュールはさらに、
    前記第1の論理アドレスに対応する第1の物理アドレスを判定し、物理アドレスは前記持続性記憶装置における物理ページについてのページ番号を含み、前記第1の物理アドレスは第1の物理ページについての第1のページ番号を含み、前記制御モジュールはさらに、
    前記第1の物理アドレスに記憶された前記第1のデータについての第1の保持時間を判定し、
    前記第1の物理ページに関連付けられた第1のプログラム/消去(P/E)サイクル値を判定し、
    任意の保持時間、任意のページ番号および任意のP/Eサイクル値を各々が含む複数のタプルと、前記複数のタプルの各々に対応する複数の読み取り閾値との間の予め定められたマッピングに基づいて、前記第1の保持時間、前記第1のページ番号および前記第1のP/Eサイクル値を含む第1のタプルに対応する複数の第1の読み取り閾値を識別し、前記複数の第1の読み取り閾値は、少なくとも1つのデフォルト読み取り閾値と、少なくとも1つの非デフォルト読み取り閾値とを含み、前記制御モジュールはさらに、
    前記複数の第1の読み取り閾値を含む第1の制御モジュール読み取り要求を前記記憶モジュールに対して発し、前記持続性記憶装置は前記第1の物理ページを含み、前記第1の物理ページはマルチレベルセルを含み、
    前記記憶モジュールは、
    前記第1の制御モジュール読み取り要求を受け取り、
    前記第1の制御モジュール読み取り要求における前記複数の第1の読み取り閾値を、前記マルチレベルセルに対する複数の読み取り閾値として使用して前記第1の物理ページから前記第1のデータを取得する、システム。
  13. 前記持続性記憶装置はフラッシュメモリを含み、前記物理ページは前記フラッシュメモリ内に位置する、請求項12に記載のシステム。
  14. 前記フラッシュメモリは、NORフラッシュメモリとNANDフラッシュメモリとからなるグループから選択される1つである、請求項13に記載のシステム。
  15. ンピュータ読み取り可能プログラムであって、前記コンピュータ読み取り可能プログラムがコンピュータプロセッサによって実行されると、コンピュータプロセッサは、
    第1のデータについての第1のクライアント読み取り要求をクライアントから受け取り、前記第1のクライアント読み取り要求は第1の論理アドレスを含み、コンピュータプロセッサはさらに、
    前記第1の論理アドレスに対応する第1の物理アドレスを判定し、物理アドレスは持続性記憶装置における物理ページについてのページ番号を含み、前記第1の物理アドレスは第1の物理ページについての第1のページ番号を含み、コンピュータプロセッサはさらに、
    前記第1の物理アドレスに記憶された前記第1のデータについての第1の保持時間を判定し、
    前記第1の物理ページに関連付けられた第1のプログラム/消去(P/E)サイクル値を判定し、
    任意の保持時間、任意のページ番号および任意のP/Eサイクル値を各々が含む複数のタプルと、前記複数のタプルの各々に対応する複数の読み取り閾値との間の予め定められたマッピングに基づいて、前記第1の保持時間、前記第1のページ番号および前記第1のP/Eサイクル値を含む第1のタプルに対応する複数の第1の読み取り閾値を識別し、前記複数の第1の読み取り閾値は、少なくとも1つのデフォルト読み取り閾値と、少なくとも1つの非デフォルト読み取り閾値とを含み、コンピュータプロセッサはさらに、
    前記複数の第1の読み取り閾値を含む第1の制御モジュール読み取り要求を、前記持続性記憶装置を含む記憶モジュールに対して発し、前記持続性記憶装置は前記第1の物理ページを含み、前記第1の物理ページはマルチレベルセルを含み、コンピュータプロセッサはさらに、
    前記記憶モジュールに、前記マルチレベルセルに対する複数の読み取り閾値として前記複数の第1の読み取り閾値を使用して前記第1の物理ページから前記第1のデータを取得させ、コンピュータ読み取り可能プログラム
  16. 前記制御モジュールはさらに、
    第2のデータについての第2のクライアント読み取り要求を前記クライアントから受け取り、前記第2のクライアント読み取り要求は第2の論理アドレスを含み、前記制御モジュールはさらに、
    前記第2の論理アドレスに対応する第2の物理アドレスを判定し、前記第2の物理アドレスは前記持続性記憶装置における第2の物理ページについての第2のページ番号を含み、前記制御モジュールはさらに、
    前記第2の物理アドレスに記憶された前記第2のデータについての第2の保持時間を判定し、
    前記第2の物理ページに関連付けられた第2のP/Eサイクル値を判定し、
    前記予め定められたマッピングに基づいて、前記第2のP/Eサイクル値、前記第2の保持時間および前記第2のページ番号を含む第2のタプルに対応する複数の第2の読み取り閾値を識別し、
    前記複数第2の読み取り閾値を含む第2の制御モジュール読み取り要求を前記記憶モジュールに対して発し、前記持続性記憶装置は前記第2の物理ページを含み、前記第2の物理ページはマルチレベルセルを含み、前記第2の物理ページは前記第1の物理ページとは異なり、
    前記記憶モジュールはさらに、
    前記マルチレベルセルに対する複数の読み取り閾値として前記複数第2の読み取り閾値を使用して前記第2の物理ページから前記第2のデータを取得する、請求項12に記載のシステム。
  17. コンピュータ読み取り可能プログラムであって、前記コンピュータ読み取り可能プログラムがコンピュータプロセッサによって実行されると、コンピュータプロセッサは、さらに、
    第2のデータについての第2のクライアント読み取り要求を前記クライアントから受け取り、前記第2のクライアント読み取り要求は第2の論理アドレスを含み、コンピュータプロセッサはさらに、
    前記第2の論理アドレスに対応する第2の物理アドレスを判定し、前記第2の物理アドレスは前記持続性記憶装置における第2の物理ページについての第2のページ番号を含み、コンピュータプロセッサはさらに、
    前記第2の物理アドレスに記憶された前記第2のデータについての第2の保持時間を判定し、
    前記第2の物理ページに関連付けられた第2のP/Eサイクル値を判定し、
    前記予め定められたマッピングに基づいて、前記第2のP/Eサイクル値、前記第2の保持時間および前記第2のページ番号を含む第2のタプルに対応する複数の第2の読み取り閾値を識別し、
    前記複数第2の読み取り閾値を含む第2の制御モジュール読み取り要求を前記記憶モジュールに対して発し、前記持続性記憶装置は前記第2の物理ページを含み、前記第2の物理ページはマルチレベルセルを含み、前記第2の物理ページは前記第1の物理ページとは異なり、コンピュータプロセッサはさらに、
    前記記憶モジュールに、前記マルチレベルセルに対する複数の読み取り閾値として前記複数第2の読み取り閾値を使用して前記第2の物理ページから前記第2のデータを取得させる、請求項15に記載のコンピュータ読み取り可能プログラム
JP2017212749A 2014-09-30 2017-11-02 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体 Active JP6778170B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/501,800 US20160093397A1 (en) 2014-09-30 2014-09-30 Method and system for improving flash storage utilization using read-threshold tables
US14/501,800 2014-09-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015191066A Division JP2016071894A (ja) 2014-09-30 2015-09-29 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体

Publications (3)

Publication Number Publication Date
JP2018018557A JP2018018557A (ja) 2018-02-01
JP2018018557A5 JP2018018557A5 (ja) 2018-11-08
JP6778170B2 true JP6778170B2 (ja) 2020-10-28

Family

ID=54291030

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015191066A Pending JP2016071894A (ja) 2014-09-30 2015-09-29 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体
JP2017212749A Active JP6778170B2 (ja) 2014-09-30 2017-11-02 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015191066A Pending JP2016071894A (ja) 2014-09-30 2015-09-29 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体

Country Status (4)

Country Link
US (1) US20160093397A1 (ja)
EP (1) EP3002671B1 (ja)
JP (2) JP2016071894A (ja)
CN (1) CN105468534B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017181432A1 (zh) * 2016-04-22 2017-10-26 华为技术有限公司 一种数据写入的方法和装置
CN108614664B (zh) * 2016-12-09 2021-04-16 北京兆易创新科技股份有限公司 基于NAND flash的读错误处理方法和装置
CN108228075A (zh) * 2016-12-09 2018-06-29 北京忆恒创源科技有限公司 访问存储器的方法和设备
US10095417B1 (en) 2016-12-13 2018-10-09 EMC IP Holding Company LLC Method and system for improving flash storage read performance in partially programmed blocks
US10558381B2 (en) * 2016-12-16 2020-02-11 Sandisk Technologies Llc Dynamic read table generation
CN108255634B (zh) * 2016-12-28 2020-08-07 华为技术有限公司 一种数据读取方法及装置
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US10235283B2 (en) 2017-03-14 2019-03-19 International Business Machines Corporation Techniques for supporting in-place updates with a log-structured array controller
US10289548B1 (en) * 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for garbage collection in a storage system which balances wear-leveling and performance
US10403366B1 (en) * 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
CN107705814A (zh) * 2017-09-20 2018-02-16 深圳市致存微电子企业(有限合伙) 闪存读阈值预测电平确定方法、设备及可读存储介质
US11099760B2 (en) * 2017-12-14 2021-08-24 Intel Corporation Background data refresh using a system timestamp in storage devices
US10496548B2 (en) * 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
TWI692763B (zh) * 2018-09-07 2020-05-01 大陸商合肥沛睿微電子股份有限公司 記憶體控制裝置、快閃記憶體的控制方法及快閃記憶體的安全特徵的生成方法
CN111863109A (zh) * 2020-07-08 2020-10-30 上海威固信息技术股份有限公司 一种三维闪存层间错误率模型及评估方法
US11705206B2 (en) * 2021-08-17 2023-07-18 Sandisk Technologies Llc Modifying program and erase parameters for single-bit memory cells to improve single-bit/multi-bit hybrid ratio

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8189379B2 (en) * 2009-08-12 2012-05-29 Texas Memory Systems, Inc. Reduction of read disturb errors in NAND FLASH memory
US8489966B2 (en) * 2010-01-08 2013-07-16 Ocz Technology Group Inc. Solid-state mass storage device and method for failure anticipation
JP5349256B2 (ja) * 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8819503B2 (en) * 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) * 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
JP2012203957A (ja) * 2011-03-25 2012-10-22 Toshiba Corp メモリシステム
US9047955B2 (en) * 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
EP2549482B1 (en) * 2011-07-22 2018-05-23 SanDisk Technologies LLC Apparatus, system and method for determining a configuration parameter for solid-state storage media
US8693257B2 (en) * 2011-10-18 2014-04-08 Seagate Technology Llc Determining optimal read reference and programming voltages for non-volatile memory using mutual information
US9195586B2 (en) * 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
JP2013176784A (ja) * 2012-02-28 2013-09-09 Daihatsu Motor Co Ltd シリンダヘッドの鋳造方法、及びシリンダヘッドの鋳造に用いられるポート中子の製造方法
JP2014126989A (ja) * 2012-12-26 2014-07-07 Sony Corp 制御装置、制御方法、及び、プログラム
US9213599B2 (en) * 2013-09-18 2015-12-15 Seagate Technology Llc Method of erase state handling in flash channel tracking

Also Published As

Publication number Publication date
EP3002671A1 (en) 2016-04-06
CN105468534B (zh) 2019-01-18
JP2016071894A (ja) 2016-05-09
CN105468534A (zh) 2016-04-06
US20160093397A1 (en) 2016-03-31
EP3002671B1 (en) 2021-12-15
JP2018018557A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6778170B2 (ja) 持続性記憶装置からデータを読み取る方法およびシステム、ならびに非一時的記憶媒体
JP6820248B2 (ja) 持続性記憶装置を管理する方法およびシステム、ならびに非一時的コンピュータ読み取り可能媒体
US11221914B2 (en) Memory system for controlling nonvolatile memory
US9905289B1 (en) Method and system for systematic read retry flow in solid state memory
US10055294B2 (en) Selective copyback for on die buffered non-volatile memory
US9984768B2 (en) Distributing storage of ECC code words
JP2018085122A5 (ja)
CN113126907B (zh) 用于存储器装置的异步电力损失恢复
US20140095555A1 (en) File management device and method for storage system
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US20200264973A1 (en) Method and apparatus for managing map data in memory system
US9798334B1 (en) Method and system for improving flash storage performance for various types of workloads by modulating operating temperature
US10459803B2 (en) Method for management tables recovery
US9619165B1 (en) Convertible leaf memory mapping
US10861556B2 (en) Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
CN108268339B (zh) 用于在线编程/擦除计数估计的方法和系统
US10290331B1 (en) Method and system for modulating read operations to support error correction in solid state memory
US10095417B1 (en) Method and system for improving flash storage read performance in partially programmed blocks
US10289548B1 (en) Method and system for garbage collection in a storage system which balances wear-leveling and performance
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory
CN113064548A (zh) 存储器子系统中的逻辑到物理页转译中的相干性问题解决方案

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201009

R150 Certificate of patent or registration of utility model

Ref document number: 6778170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250