JP2018506109A - データ読出方法及び装置 - Google Patents

データ読出方法及び装置 Download PDF

Info

Publication number
JP2018506109A
JP2018506109A JP2017534266A JP2017534266A JP2018506109A JP 2018506109 A JP2018506109 A JP 2018506109A JP 2017534266 A JP2017534266 A JP 2017534266A JP 2017534266 A JP2017534266 A JP 2017534266A JP 2018506109 A JP2018506109 A JP 2018506109A
Authority
JP
Japan
Prior art keywords
address
data
page
target address
storage space
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.)
Granted
Application number
JP2017534266A
Other languages
English (en)
Other versions
JP6399720B2 (ja
Inventor
チョウ、チアホア
リー、ヤン
チャン、ポー
ワン、フェイ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2018506109A publication Critical patent/JP2018506109A/ja
Application granted granted Critical
Publication of JP6399720B2 publication Critical patent/JP6399720B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

データ読出方法及び装置が提供される。当該方法は、読み出しターゲットアドレスを含む読み出し命令を受信した場合、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているかを判断する段階(101)と、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされている場合、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレスが指すデータを読み出す段階であって、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられる、段階(102)と、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていない場合、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出す段階(103)とを備える。当該方法によれば、書き込み干渉により引き起こされるデータ読み出し誤りを低減することができる。

Description

本出願は、ストレージ分野に関し、特に、データ読出方法及び装置に関する。
現在、ソリッドステートドライブ(英語表記:Solid State Drive、略してSSD)上の、記憶のために用いられる各フローティングゲートトランジスタは、2つ又は3つのビット(英語表記:bit)を記憶することができる。各フローティングゲートトランジスタに記憶されるビットは、異なるページ(英語表記:page)上に別々に分布する。従って、各ブロックにおけるページは、フローティングゲートトランジスタにおける記憶位置に応じて、2つ又は3つの異なる種類に分類される。
マルチレベルセル記憶(英語表記:Multi Level Cell、略してMLC)を例として用いて、マルチレベルセル記憶のフローティングゲートトランジスタの2つのビットはそれぞれ、最下位ビット(英語表記:Least Significant Bit、略してLSB)、及び最上位ビット(英語表記:Most Significant Bit、略してMSB)と称される。従って、各ブロックにおいて、フローティングゲートトランジスタにおける異なるビットが別々に位置するページは、LSBページ(フローティングゲートトランジスタのLSBを記憶するためのものであり、LSBページはまた、下位ページと称され得るが、本出願においては統一してLSBページが用いられる)、及びMSBページ(フローティングゲートトランジスタのMSBを記憶するためのものであり、MSBページはまた、上位ページと称され得るが、本出願においては統一してMSBページが用いられる)といった2種類に分類される。LSBページ及びMSBページの対応ビットのデータが同一のフローティングゲートトランジスタに記憶されることに基づき、LSBページ及びMSBページは、1つの共有ページ(英語表記:shared pages)グループに属する。具体的には、表1は、あるベンダのMLCのブロックにおける共有ページを説明する。
Figure 2018506109
データが書き込まれているとき、LSBがMSBの前に書き込まれることが必要である。従って、データは、LSBページ全体が満ちている後にのみ、対応するMSBページに書き込まれることができる。しかしながら、データをMSBページに書き込むことは、前にLSBページに書き込まれていたデータへの干渉を生じさせる。前述のベンダのMLCを例として用いて、表2は、実験によりデータ書き込み中に取得された干渉データを説明する。
Figure 2018506109
前述の表2は、データが横方向のページに書き込まれたときの縦方向のページ上の干渉を説明する。データがMSBページに書き込まれているとき、比較的重大な誤り訂正符号(英語表記:Error Correcting Code、略してECC)誤り、又は訂正不可能なECC誤り(英語表記:Uncorrectable ECC Error、略してUNC)が、MSBページの共有LSBページ上で、及び隣接するMSBページの共有LSBページ上で発生し得ることは、前述の表2から分かる。表2に示されているように、下線が施されたデータは、比較的重大な誤りを有する。
同様に、そのフローティングゲートトランジスタがより多くのビットを記憶する記憶デバイス、例えば、そのフローティングゲートトランジスタが3つのビットを記憶する記憶デバイスに対して、それは、共有ページグループが、LABページと、中位ビットページ(英語表記:middle significant bit、略してCSB)ページと、MSBページとを含むことを意味し、上位ページに書き込むことはまた、下位ページへの書き込み干渉を生じさせる。
従って、下位ページが書き込み干渉を受けるとき、データがその下位ページから読み出される場合、データ読み出し誤りが発生する。この課題に対する既存の一般的な解決手段は、SSDのECC誤り訂正能力を改善することを目的とし、これにより、記憶デバイスのコントローラが、書き込み干渉を受けるページからデータを読み出すとき、ECCを用いることによってデータ読み出し誤りを訂正する。しかしながら、ECC誤り訂正能力を改善することは、コントローラによるサポートを必要とする。加えて、記憶デバイスにより提供される、ECCのための予備エリアの空間が与えられたとき、ECC誤り訂正能力をさらに改善することは困難である。従って、データの読み出し中に、読み出し誤りは、書き込み干渉に起因し依然として発生する。
本出願は、書き込み干渉により引き起こされるデータ読み出し誤りを低減するように、データ読出方法及び装置を提供する。
本出願の第1態様は、データ読出方法を提供する。方法は、読み出しターゲットアドレスを含む読み出し命令を受信したとき、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているかを判断する段階と、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされている場合、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレスが指すデータを読み出す段階であって、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられる、段階、又は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていない場合、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出す段階とを備える。
第1態様に関連して、第1態様の第1の可能な実施方式において、方法は、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが不揮発性記憶空間における最上位ビットページMSBページに属するかを判断する段階であって、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む、段階と、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さない場合、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、その書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立する段階、又は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶する段階とをさらに備える。
第1態様の第1の可能な実施方式に関連して、第1態様の第2の可能な実施方式において、方法は、不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得する段階であって、mは自然数である、段階と、予め設定されたキャッシュエリアに対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当てる段階であって、pは、不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは自然数であって少なくとも1である、段階とをさらに備える。
第1態様の第2の可能な実施方式に関連して、第1態様の第3の可能な実施方式において、方法は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、書き込みターゲットアドレスが位置するMSBページは、ブロックblockにおける最後のMSBページであるかを判断する段階と、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではない場合、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる段階、又は、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページである場合、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる段階と、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係からデータ解放アドレスを削除する段階とをさらに備える。
第1態様、又は第1態様の第1から第3の可能な実施方式に関連して、第1態様の第4の可能な実施方式において、方法は、パワーオフ中、不揮発性記憶空間に、予め設定されたキャッシュエリアにおけるデータを保存し、キャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立する段階と、パワーオン中、第2マッピング関係に従って予め設定されたキャッシュエリアにおけるキャッシュアドレスに、不揮発性記憶空間における保存アドレスが指すデータをキャッシュする段階とをさらに備える。
第1態様、又は第1態様の第1から第3の可能な実施方式に関連して、第1態様の第5の可能な実施方式において、予め設定されたキャッシュエリアは、ダブルデータレート同時ダイナミックランダムアクセスメモリDDR、又はスタティックランダムアクセスメモリSRAMに位置する。
第1態様、又は第1態様の第1から第3の可能な実施方式に関連して、第1態様の第6の可能な実施方式において、不揮発性記憶空間は、ソリッドステートドライブSSDの記憶空間である。
本出願の第2態様では、データ読出装置を提供する。装置は、第1判断モジュールと、第1読み出しモジュールと、第2読み出しモジュールとを備える。第1判断モジュールは、読み出しターゲットアドレスを含む読み出し命令を受信した場合、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリアにキャッシュされているかを判断し、第1判断結果を、第1及び第2読み出しモジュールに送信するよう構成される。第1読み出しモジュールは、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているとき、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレスが指すデータを読み出すよう構成され、ここで、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられる。第2読み出しモジュールは、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていないとき、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出すよう構成される。
第2態様に関連して、第2態様の第1の可能な実施方式において、装置は、第2判断モジュールと、第1書き込みモジュールと、第2書き込みモジュールとをさらに備える。第2判断モジュールは、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが、不揮発性記憶空間における最上位ビットページMSBページに属するかを判断し、第2判断結果を、第1及び第2書き込みモジュールに送信するよう構成され、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む。第1書き込みモジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さないと判断されたとき、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立するよう構成される。第2書き込みモジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断されたとき、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶するよう構成される。
第2態様の第1の可能な実施方式に関連して、第2態様の第2の可能な実施方式において、装置は、第3取得モジュールと割り当てモジュールとをさらに備える。第3取得モジュールは、不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得し、割り当てモジュールに、mを送信するよう構成され、ここで、mは自然数である。割り当てモジュールは、予め設定されたキャッシュエリアに対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当てるよう構成され、ここで、pは、不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは、自然数であって少なくとも1である。
第2態様の第2の可能な実施方式に関連して、第2態様の第3の可能な実施方式において、装置は、第3判断モジュールと、第1取得モジュールと、第2取得モジュールと、解放モジュールとをさらに備える。第3判断モジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページがブロックblockにおける最後のMSBページであるかを判断し、第3判断結果を、第1及び第2取得モジュールに送信するよう構成される。第1取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではないとき、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュールに送信するよう構成される。第2取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページであるとき、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュールに送信するよう構成される。解放モジュールは、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係から、データ解放アドレスを削除するよう構成される。
第2態様、又は第2態様の第1から第3の可能な実施方式に関連して、第2態様の第4の可能な実施方式において、装置は、保存モジュールとキャッシングモジュールとをさらに備える。保存モジュールは、パワーオフ中、不揮発性記憶空間に、予め設定されたキャッシュエリアにおけるデータを保存し、キャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立し、第2マッピング関係をキャッシングモジュールに送信するよう構成される。キャッシングモジュールは、パワーオン中、第2マッピング関係に従って、予め設定されたキャッシュエリアにおけるキャッシュアドレスに、不揮発性記憶空間における保存アドレスが指すデータをキャッシュするよう構成される。
第2態様、又は第2態様の第1から第3の可能な実施方式に関連して、第2態様の第5の可能な実施方式において、予め設定されたキャッシュエリアは、ダブルデータレート同時ダイナミックランダムアクセスメモリDDR、又はスタティックランダムアクセスメモリSRAMに位置する。
第2態様、又は第2態様の第1から第3の可能な実施方式に関連して、第2態様の第6の可能な実施方式において、不揮発性記憶空間は、ソリッドステートドライブSSDの記憶空間である。
前述の解決手段において、キャッシュされたデータが優先的に読み出される方式が用いられる。読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているとき、データは、予め設定されたキャッシュエリアから優先的に読み出される。キャッシュエリアにおけるデータは、不揮発性記憶空間におけるデータのように書き込み干渉を受けないので、書き込み干渉により引き起こされる読み出し誤りが低減され、記憶デバイスの信頼性が改善される。
本出願に係るデータ読出方法の実施方式のフローチャートである。
本出願に係るデータ読出方法の別の実施方式の部分フローチャートである。
本出願に係るデータ読出方法のさらに別の実施方式のフローチャートである。
本出願に係るデータ読出方法のさらに別の実施方式の部分フローチャートである。
本出願に係るデータ読出装置の実施方式の模式的な構造図である。
本出願に係るデータ読出装置の別の実施方式の模式的な構造図である。
本出願に係るコントローラの実施方式の模式的な構造図である。
以下の説明において、制限ではなく図示するために、特定のシステム構造、インターフェース、及び技術などの具体的な詳細が提供され、本出願に対する十分な理解を図る。しかしながら、当業者であれば、本出願はこれらの具体的な詳細なしで他の実施方式において実施され得ることを理解すべきである。他の場合において、周知の装置、回路、及び方法についての詳細な説明が省略され、これにより、本出願は、不必要な詳細に妨げられることなく、説明される。
図1を参照すると、図1は、本出願に係るデータ読出方法の実施方式のフローチャートである。本実施方式における方法は、記憶デバイスのコントローラにより実行される。本出願における記憶デバイスは、そのフローティングゲートトランジスタが、例えば、MLC型のSSD(各フローティングゲートトランジスタが2つのビットを記憶する)、又は、TLC(英語全表記:Trinary−Level Cell)型(各フローティングゲートトランジスタが3つのビットを記憶する)などの、少なくとも2つのビットを記憶できる任意の不揮発性記憶デバイスであり得る。記憶デバイスは、不揮発性記憶空間を含む。不揮発性記憶空間は、フローティングゲートトランジスタによって形成された記憶空間であり、例えば、具体的には、SSDの記憶マトリックスである。記憶デバイスの不揮発性記憶空間は、複数の共有ページグループを含む。例えば、MLC型の記憶デバイスの不揮発性記憶空間は、複数の共有ページグループを含み、各共有ページグループは、MSBページとLSBページとを含む。TLC型の記憶デバイスの不揮発性記憶空間は、複数の共有ページグループを含み、各共有ページグループは、MSBページと、CSBページと、LSBページとを含む。
具体的には、この実施方式における方法は、以下の段階を含む。
101.読み出しターゲットアドレスを含む読み出し命令を受信したとき、記憶デバイスのコントローラは、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリアにキャッシュされているかを判断する。
背景技術において説明されたように、データが記憶デバイスの不揮発性記憶空間におけるMSBページに書き込まれているとき、対応するLSBページ又はCSBページなどのMSBページの共有ページに、書き込み干渉が生じ、データ読み出し誤りが、結果として発生し得る。MSBページを書き込むことによってもたらされる書き込み干渉を回避するために、本出願によれば、書き込み干渉を受けるデータがバックアップのためにキャッシュされ、そのような種類のデータが読み出されたとき、予め設定されたキャッシュエリアから読み出すことが、優先的に考慮される。
具体的には、例えば、データが書き込まれているとき、記憶デバイスのコントローラは、予め設定されたキャッシュエリア及び不揮発性記憶空間の両方に、記憶デバイスのデータであって書き込み干渉を受けるデータを記憶し、キャッシュアドレスと不揮発性記憶空間のアドレスとの間の第1マッピング関係を確立する。記憶デバイスのコントローラが、SATA/SAS/PCIeインターフェースから、ホストにより送信された読み出し命令を受信したとき、読み出し命令は、読み出しターゲットアドレスを含み、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出すよう、コントローラに命令する。コントローラは、読み出しターゲットアドレスの第1マッピング関係が存在するかをチェックする。第1マッピング関係が存在する場合、コントローラは、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていると判断し、段階102を実行する。第1マッピング関係が存在しない場合、コントローラは、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていないと判断し、段階103を実行する。
記憶デバイスのコントローラは、第1マッピング関係を用いることによらないで、読み込まれるべきデータがキャッシュされているかを判断し得ることが、理解され得る。別の実施方式において、コントローラはさらに、アドレス上のデータがキャッシュされているかを記録する識別子を追加的に設定し得る。データが読み出されているとき、アドレスの識別子が読み出され、読み出しターゲットアドレス上のデータがキャッシュされているかを判断する。従って、読み込まれるべきデータがキャッシュされているかを判断する方式は、本明細書において具体的に限定されない。
加えて、代替的に、読み出し命令を受信しているとき、記憶デバイスのコントローラは、まず、読み出しターゲットアドレスが指すデータが書き込み干渉を受けるデータであるかを判断し得、例えば、読み出しターゲットアドレスがMSBページに属するかを判断し得る。読み出しターゲットアドレスがMSBページに属さない場合、読み出しターゲットアドレスが指すデータは、書き込み干渉を受けるデータである。この場合、コントローラは、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているかを判断する。
102.記憶デバイスのコントローラは、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレスが指すデータを読み出し、ここで、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられる。
キャッシュから優先的に読み出す原則に従って、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていると判断された場合、記憶デバイスのコントローラは、保存した第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレス上のデータを読み出し、これにより、データの読み出しを実施する。キャッシュエリアにおけるデータは、記憶マトリックスにおける書き込み干渉を受けないので、キャッシュエリアからデータを読み出すことが、データ読み出しの正確さを保証する。
103.記憶デバイスのコントローラは、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出す。
読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていないと判断した場合、記憶デバイスのコントローラは、通常の読み出し方式で、不揮発性記憶空間から読み出しターゲットアドレス上のデータを読み出し、これにより、データの読み出しを実施する。
この実施方式において、キャッシュされたデータが優先的に読み出される方式が用いられる。読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているとき、データは、予め設定されたキャッシュエリアから優先的に読み出される。キャッシュエリアにおけるデータは、不揮発性記憶空間における書き込み干渉を受けないので、書き込み干渉により引き起こされる読み出し誤りが低減され、記憶デバイスの信頼性が改善される。
図2を参照すると、図2は、本出願に係るデータ読出方法の別の実施方式の部分フローチャートである。この実施方式において、前述の実施方式の方法段階を実行する前に、記憶デバイスのコントローラは、以下の段階をさらに実行する。
201.書き込み命令を受信したとき、記憶デバイスのコントローラは、書き込み命令における書き込みターゲットアドレスが、不揮発性記憶空間におけるMSBページに属するかを判断し、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む。
本出願における記憶デバイスの各フローティングゲートトランジスタは、少なくとも2つのビットを記憶し得る。従って、記憶デバイスの不揮発性記憶空間のページは、LSBページ及びMSBページといった、少なくとも2種類に分類される。フローティングゲートトランジスタが3つのビットを記憶し得るとき、記憶デバイスの不揮発性記憶空間のページは、CSBページをさらに含む。
記憶デバイスのコントローラは、SATA/SAS/PCIeインターフェースなどのインターフェースから、ホストにより送信される書き込み命令を受信する。書き込み命令は、書き込まれるべきデータと、書き込みターゲットアドレスとを含み、これにより、書き込みターゲットアドレスが指す不揮発性記憶空間に、書き込まれるべきデータを記憶するよう、コントローラに命令する。書き込み命令を受信した後、コントローラは、まず、書き込みターゲットアドレスが、不揮発性記憶空間におけるMSBページに属するかを判断する。書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さない場合、コントローラは、段階202を実行する。書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、コントローラは、段階203を実行する。
202.記憶デバイスのコントローラは、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、書き込まれるべきデータを記憶し、キャッシュアドレスと書き込みターゲットアドレスとの間の第1マッピング関係を確立する。
背景技術において説明されたように、データが、記憶デバイスの不揮発性記憶空間におけるMSBページに書き込まれているとき、対応するLSBページ又はCSBページなどのMSBページの共有ページに、書き込み干渉が生じ、結果として、データ読み出し誤りが発生し得る。従って、コントローラは、書き込みターゲットアドレスがMSBページに属さないと判断した場合、データがその後、MSBページに書き込まれているとき、書き込まれるべきデータは、書き込み干渉を受け得ることを意味する。従って、コントローラは、書き込みターゲットアドレスが指す不揮発性記憶空間に、書き込まれるべきデータを記憶し、バックアップとして、データを予め設定されたキャッシュエリアにキャッシュする。予め設定されたキャッシュエリアは、記憶デバイスにおけるダブルデータレート同時ダイナミックランダムアクセスメモリ(英語表記:Double Data Rate、略してDDR)であり得る。例えば、従来のSSDにはDDRが本質的に提供され、データは、データの書き込みにおいても、又はデータの読み出しにおいても、DDRを通る。この記憶方式に基づき、予め設定されたキャッシュエリアは、DDR上に優先的に構成され得る。すなわち、あるキャッシュ空間が、予め設定されたキャッシュエリアとして、DDR上に提供される。もちろん、予め設定されたキャッシュエリアは代替的に、例えば、スタティックランダムアクセスメモリ(英語表記:Static Random−Access Memory、略してSRAM)などの、不揮発性記憶空間以外のメモリであり得る。
前述の書き込みが完了した後に、コントローラは、書き込まれるべきデータが予め設定されたキャッシュエリアにキャッシュされるキャッシュアドレスを取得し、キャッシュアドレスと書き込みターゲットアドレスとの間の第1マッピング関係を確立し、これにより、予め設定されたキャッシュエリアにおけるデータが、不揮発性記憶空間におけるデータに対応する。第1マッピング関係は、記憶デバイスの不揮発性記憶空間に、又は予め設定されたキャッシュエリアに、表形式で保存され得る。
203.記憶デバイスのコントローラは、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶する。
不揮発性記憶空間におけるMSBページは、書き込み干渉を受けないので、コントローラが、書き込まれるべきデータが不揮発性記憶空間におけるMSBページに属すると判断したとき、書き込まれるべきデータは、バックアップのためにキャッシュされる必要がなく、データは、書き込みターゲットアドレスに応じて、不揮発性記憶空間に直接記憶される。
前述の段階201−203を実行した後、記憶デバイスのコントローラは、図1に示されている段階101−103を実行する。
この実施方式において、MSBページの書き込み干渉に起因して読み出し誤りが発生し得るデータは、バックアップのためにキャッシュされる。加えて、データのこの部分を読み出し中、データは、キャッシュから優先的に読み出される。このことは、データが現に書き込み干渉を受けていることに起因する、データ読み出しにおける誤りの発生を回避し、これにより、書き込み干渉により引き起こされる読み出し誤りを低減し、記憶デバイスの信頼性を改善する。
図3を参照すると、図3は、本出願に係るデータ読出方法のさらに別の実施方式のフローチャートである。具体的には、方法は、以下の段階を備える。
301.記憶デバイスのコントローラは、不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得し、ここで、mは自然数である。
異なるベンダの記憶デバイスは、異なる共有ページを提供する。背景技術において表1に示されている記憶デバイスを例として用いて、記憶デバイスの各ブロックにおける第1共有ページグループは、ページ0からページ2である。すなわち、MSBページとLSBページとの間には、2ページの差が存在する。第2共有ページグループは、ページ1からページ4である。すなわち、MSBページとLSBページとの間には、3ページの差が存在する。記憶デバイスのブロックにおける全ての共有ページグループにわたって見ると、MSBページと対応するLSBページとの間のページ数の差は全て、2又は3であることが分かる。従って、記憶デバイスの全ての共有ページグループにおけるMSBページとLSBページとの間の最大のページ数の差は、3である。
302.記憶デバイスのコントローラは、予め設定されたキャッシュエリアに対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当て、ここで、pは、不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは、自然数であって、少なくとも1である。
可能な限り、キャッシュ空間の占有量を低減するために、もう書き込み干渉を受けないデータに対するキャッシュ空間は、この実施方式で、動的に解放される。予め設定されたキャッシュエリアにより必要とされるキャッシュ空間の大きさは、記憶デバイスの全ての共有ページグループにおけるMSBページとLSBページとの間の最大のページ数の差であるmと、動的解放規則とに関連する。記憶デバイスの不揮発性記憶空間の共有ページグループにおけるMSBページとLSBページとの間の最大のページ数の差であるmが存在する。予め設定されたキャッシュエリアは、少なくともmのページのキャッシュ空間を必要とし、MSBページの共有ページ(LSBページ又はMSBページに対応するCSBページなど)が、MSBページが全て書き込まれる前に、予め設定されたキャッシュエリアにキャッシュされ得ることを保証することを意味し、これにより、MSBページの書き込み干渉に起因する読み出し誤りを回避する。加えて、本出願の動的解放規則は、データがMSBページに書き込まれているとき、当該MSBページから前へ数えて少なくともnのMABページの共有ページ(LSBページ又はMSBページに対応するCSBページなど)が、予め設定されたキャッシュエリアにキャッシュされ得ることを保証できることである。実験データによると、nが少なくとも1であるとき、比較的重大な書き込み干渉を現に受けているデータは全て、キャッシュされ得ることを実質的に保証できる。
キャッシュ空間の大きさを特定するための前述の原則、及び記憶デバイスの不揮発性記憶空間の共有ページグループを設定するための前述の規則によると、比較的重大な書き込み干渉を現に受けているデータが全てキャッシュされ得ることを保証するために、記憶デバイスのコントローラは、予め設定されたキャッシュエリアに対して、少なくともm+n*pのページのキャッシュ空間を割り当て、例えば、m+n*pのページのキャッシュ空間を割り当てる。pは、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数を表す。例えば、MLC型の記憶デバイスの1つの共有ページグループは、MSBページとLSBページとを含む。従って、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数が1であり、すなわち、LSBページである。TLC型の記憶デバイスの1つの共有ページグループは、MSBページと、CSBページと、LSBページとを含む。従って、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数が2であり、CSBページとLSBページとを含む。
303.書き込み命令を受信したとき、記憶デバイスのコントローラは、書き込み命令における書き込みターゲットアドレスが、不揮発性記憶空間におけるMSBページに属するかを判断し、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む。
書き込み命令を受信した後、コントローラは、まず、書き込みターゲットアドレスが、記憶デバイスの不揮発性記憶空間におけるMSBページに属するかを判断する。書き込みターゲットアドレスは、不揮発性記憶空間におけるMSBページに属さない場合、コントローラは、段階304を実行する。書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、コントローラは、段階305を実行する。
304.記憶デバイスのコントローラは、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立する。
305.記憶デバイスのコントローラは、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶し、書き込みターゲットアドレスが位置するMSBページが、ブロックにおける最後のMSBページであるかを判断する。
書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、記憶デバイスのコントローラは、書き込みターゲットアドレスが指す不揮発性記憶空間にのみ、書き込まれるべきデータを記憶し、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページであるかを判断する。例えば、表1に示されるブロックにおける最後のMSBページは、ページ255である。書き込みターゲットアドレスがページ255に属さないと判断された場合、コントローラは、段階306を実行する。書き込みターゲットアドレスがページ255に属すると判断された場合、コントローラは、段階307を実行する。
306.記憶デバイスのコントローラは、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用いる。
この実施方式において、動的キャッシュ解放方式が用いられる。具体的な規則は、データがMSBページに書き込まれているとき、少なくともnのMSBページの共有ページ(LSBページ又はMSBページに対応するCSBページなど)が、予め設定されたキャッシュエリアにキャッシュされ得ることを保証することである。背景技術において表2に示されているMLC型の記憶デバイスを例として用いて、表2から、LSBページに対応するMSBページの書き込みと次のMSBページの書き込みの開始との間の処理において、LSBページは、比較的重大な書き込み干渉を受けることが分かる。nの最小値が1であるときのみ、比較的重大な書き込み干渉を現に受けているデータは全て、キャッシュされ得ることを保証できる。しかしながら、読み出し干渉をさらに低減するために、nは優先的に少なくとも2であり、すなわち、MSBページに対応するLSBページは、当該MSBページの次の少なくとも2のMSBページへのデータの書き込みが完了する前に、削除されない。
具体的には、背景技術において表1にて説明されている記憶デバイスをまた例として用いて、現在の書き込みターゲットアドレスは、MSBページであるページ6に属し、かつ、最後のMSBページに属さないことを仮定する。ページ6から前へ数えて、第1MSBページがページ4であり、第2MSBページがページ2である。nが1である場合、データがページ6に書き込まれた後、ページ4の共有ページ、すなわち、ページ1において、書き込み干渉が生じないであろうとみなされる。従って、コントローラは、ページ1のアドレスを取得し、ページ1のアドレスを、データ解放アドレスとして用い、これにより、予め設定されたキャッシュエリアにあってページ1に対応するキャッシュ空間を解放する。前述の動的キャッシュ解放規則によると、データがページ2に書き込まれているとき、キャッシュエリアにおけるデータは、解放されず、データがページ4に書き込まれているとき、キャッシュエリアにおけるページ0が解放され、データがページ6に書き込まれているとき、キャッシュエリアにおけるページ1が解放され、データがページ8に書き込まれているとき、キャッシュエリアにおけるページ3が解放される、等など。このように、表2の太字体のデータにより示されている書き込み干渉が除去される前に、正確なデータが、キャッシュから読み出されることができる。
このことは、そのフローティングゲートトランジスタが2つより多くのビットを記憶する記憶デバイスに関しても同じである。すなわち、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレス(フローティングゲートトランジスタが3つのビットを記憶する場合、対応するLSBページと対応するCBSページが含まれる)が取得され、データ解放アドレスとして用いられる。
307.記憶デバイスのコントローラは、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用いる。
書き込みターゲットアドレスが位置するMSBページが、ブロックにおける最後のMSBページである場合、ブロックにおける全てのページの書き込み干渉が除去されることを意味し、従って、ブロックの全てのデータキャッシュ空間が解放され得る。前述の段階306のキャッシュ解放規則によると、データが最後のMSBページに書き込まれているとき、ブロックにおける最後のn+1のMSBページの共有ページのデータは、予め設定されたキャッシュエリアにキャッシュされたままであり、ここで、nは、自然数であって少なくとも1である。従って、コントローラは、ブロックにおける最後のn+1のMSBページの共有ページ(フローティングゲートトランジスタが2つのビットを記憶する場合はLSBページであり、又は、フローティングゲートトランジスタが3つのビットを記憶する場合、LSBページ及びCSBページを含む)のアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる。
308.記憶デバイスのコントローラは、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係からデータ解放アドレスを削除する。
記憶デバイスのコントローラは、第1マッピング関係に従って、データ解放アドレスとの第1マッピング関係を有するキャッシュアドレスを取得し、キャッシュアドレス上のデータを解放する。このように、重大な書き込み干渉を現に受けているデータがキャッシュされたままであることを保証しつつ、キャッシュ空間が動的に解放され得る。キャッシュ空間が既に解放されているので、第1マッピング関係のデータ解放アドレス及びキャッシュアドレスが削除される。
309.読み出しターゲットアドレスを含む読み出し命令を受信したとき、記憶デバイスのコントローラは、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリアにキャッシュされているかを判断する。読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされている場合、コントローラは、段階310を実行する。読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされていない場合、コントローラは、段階311を実行する。
310.記憶デバイスのコントローラは、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリアから、キャッシュアドレスが指すデータを読み出す。
311.記憶デバイスのコントローラは、不揮発性記憶空間から、読み出しターゲットアドレスが指すデータを読み出す。
この実施方式において、MSBページの書き込み干渉に起因して読み出し誤りが発生し得るデータは、バックアップのためにキャッシュされる。加えて、データのこの部分の読み出し中、データは、キャッシュから優先的に読み出される。このことは、データが現に書き込み干渉を受けていることに起因するデータ読み出しにおける誤りの発生を回避し、これにより、書き込み干渉により引き起こされる読み出し誤りを格段に低減する。さらに、この実施方式において、データが記憶デバイスのMSBページに書き込まれているとき、書き込み干渉は、当該MSBページの共有ページと、当該MSBページの前の隣接するMSBページの共有ページとにのみ生じるので、キャッシュを動的に解放する方式が用いられ、必要とされるキャッシュ空間を低減する。加えて、本出願において、記憶デバイスの共有ページグループの最大のページ数の差であるmに従って、キャッシュ空間が割り当てられ、これにより、異なるベンダの記憶デバイスとの適合性を可能にする。
図4を参照すると、図4は、本出願に係るデータ読出方法のさらに別の実施方式の部分フローチャートである。この実施方式における方法は、前述の実施方式における段階を備え、以下の段階をさらに備える。
401.パワーオフ中、記憶デバイスのコントローラは、不揮発性記憶空間に、予め設定されたキャッシュエリアにおけるデータを保存し、キャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立する。
記憶デバイスがパワーオフされた後に、予め設定されたキャッシュエリアにおけるデータが失われる。不揮発性記憶空間におけるデータが、次のパワーオンの後にも依然として正しく読み出され得ることを保証するために、パワーオフ中、コントローラは、不揮発性記憶空間に、予め設定されたキャッシュエリアにおけるデータを保存し、予め設定されたキャッシュエリアにおけるキャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立し、これにより、前に予め設定されたキャッシュエリアにキャッシュされたデータは、不揮発性記憶デバイスに保存されたデータに対応し得る。
402.パワーオン中、記憶デバイスのコントローラは、第2マッピング関係に従って、予め設定されたキャッシュエリアにおけるキャッシュアドレスに、不揮発性記憶空間における保存アドレスが指すデータをキャッシュする。
再度パワーオンされたとき、記憶デバイスのコントローラは、不揮発性記憶空間にあって第2マッピング関係にある保存アドレスを取得し、これに対応して、保存アドレスとの第2マッピング関係を有するキャッシュアドレスに、保存アドレス上のデータをキャッシュし、これにより、元のキャッシュアドレスに従って、パワーオフの前に予め設定されたキャッシュエリアにキャッシュされたデータを再度キャッシュする。このように、不揮発性記憶空間にあってキャッシュされているデータが読み出される必要があるとき、対応するキャッシュされたデータは、前に確立された第1マッピング関係に従って読み出され得て、これにより、正確なデータの読み出しが実施される。
図5を参照すると、図5は、本出願に係るデータ読出装置の実施方式の模式的な構造図である。この実施方式において、データ読出装置500は具体的に、記憶デバイスのコントローラであり得る。記憶デバイスは、例えば、MLC型又はTLC型のSSDなどの、そのフローティングゲートトランジスタが少なくとも2つのビットを記憶し得る任意の不揮発性記憶デバイスであり得る。データ読出装置500は、第1判断モジュール510と、第1読み出しモジュール520と、第2読み出しモジュール530とを含む。データ読出装置500は、予め設定されたキャッシュエリア570と不揮発性記憶空間580とに接続される。
第1判断モジュール510は、読み出しターゲットアドレスを含む読み出し命令を受信した場合、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリア570にキャッシュされているかを判断し、第1判断結果を、第1読み出しモジュール520及び第2読み出しモジュール530に送信するよう構成される。
MSBページを書き込むことによってもたらされる書き込み干渉を回避するために、本出願によれば、書き込み干渉を受け得るデータは、バックアップのためにキャッシュされ、そのような種類のデータが読み出されたとき、予め設定されたキャッシュエリア570から読み出すことが優先的に考慮される。
具体的には、例えば、第1判断モジュール510は、SATA/SASインターフェースから、ホストにより送信された読み出し命令を受信する。読み出し命令は、読み出しターゲットアドレスを含み、これにより、不揮発性記憶空間580から、読み出しターゲットアドレスが指すデータを読み出すよう命令する。第1判断モジュール510は、読み出しターゲットアドレスの第1マッピング関係が存在するかをチェックする。第1マッピング関係が存在する場合、第1判断モジュール510は、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリア570にキャッシュされていると判断する。第1マッピング関係が存在しない場合、第1判断モジュール510は、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリア570にキャッシュされていないと判断する。
第1判断モジュール510は、第1マッピング関係を用いて、読み込まれるべきデータがキャッシュされたかを判断しない場合があることは、理解され得る。別の実施方式において、第1判断モジュール510はさらに、アドレス上のデータがキャッシュされているかを記録する識別子を追加的に設定し得る。データが読み出されているとき、アドレスの識別子が読み出され、読み出しターゲットアドレス上のデータがキャッシュされているかを判断する。従って、読み込まれるべきデータがキャッシュされているかを判断する方式は、本明細書において具体的に限定されない。
加えて、読み出し命令を受信したとき、第1判断モジュール510はさらに、まず、読み出しターゲットアドレスが指すデータが書き込み干渉を受けるデータであるかを判断し得て、例えば、読み出しターゲットアドレスがMSBページに属するかを判断し得る。読み出しターゲットアドレスがMSBページに属さない場合、第1判断モジュール510は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリア570にキャッシュされているかをさらに判断する。
第1読み出しモジュール520は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているとき、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリア570から、キャッシュアドレスが指すデータを読み出すよう構成され、ここで、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられる。
キャッシュから優先的に読み出す原則に従って、第1判断モジュール510は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリア570にキャッシュされていると判断したとき、第1読み出しモジュール520は、保存した第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを取得し、予め設定されたキャッシュエリア570から、キャッシュアドレス上のデータを読み出し、これにより、データの読み出しを実施する。キャッシュエリアにおけるデータは、記憶マトリックスにおける書き込み干渉を受けないので、キャッシュエリアからデータを読み出すことは、データ読み出しの正確さを保証する。
第2読み出しモジュール530は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリア570にキャッシュされていないとき、不揮発性記憶空間580から、読み出しターゲットアドレスが指すデータを読み出すよう構成される。
第1判断モジュール510は、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリア570にキャッシュされていないと判断したとき、第2読み出しモジュール530は、通常の読み出し方式で、不揮発性記憶空間580から、読み出しターゲットアドレス上のデータを読み出し、これにより、データの読み出しを実施する。
任意で、この実施方式におけるデータ読出装置500は、第2判断モジュール540と、第1書き込みモジュール550と、第2書き込みモジュール560とをさらに備え得る。
第2判断モジュール540が書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが、不揮発性記憶空間におけるMSBページに属するかを判断し、第2判断結果を、第1書き込みモジュール550及び第2書き込みモジュール560に送信するよう構成され、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む。
第2判断モジュール540は、SATA/SAS/PCIeインターフェースなどのインターフェースから、ホストにより送信された書き込み命令を受信する。書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含み、これにより、書き込みターゲットアドレスが指す不揮発性記憶空間580(記憶デバイスの記憶マトリックスなど)に、書き込まれるべきデータを記憶するよう命令する。書き込み命令を受信した後、第2判断モジュール540は、まず、記憶デバイスの書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属するかを判断する。
第1書き込みモジュール550は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さないと判断されたとき、予め設定されたキャッシュエリア570と、書き込みターゲットアドレスに対応する不揮発性記憶空間580とに、書き込まれるべきデータを記憶し、キャッシュアドレスと書き込みターゲットアドレスとの間の第1マッピング関係を確立するよう構成される。
第2判断モジュール540が書き込みターゲットアドレスがMSBページに属さないと判断した場合、データが後続のMSBページに書き込まれているとき、書き込まれるべきデータは、書き込み干渉を受け得ることを意味する。従って、第1書き込みモジュール550は、書き込みターゲットアドレスが指す不揮発性記憶空間580に、書き込まれるべきデータを記憶し、バックアップとして、データを、予め設定されたキャッシュエリアにキャッシュする。予め設定されたキャッシュエリア570は、記憶デバイスにおけるDDR又はSRAMであり得る。
前述の書き込みが完了した後、第1書き込みモジュール550は、書き込まれるべきデータが予め設定されたキャッシュエリア570にキャッシュされているキャッシュアドレスを取得し、キャッシュアドレスと書き込みターゲットアドレスとの間の第1マッピング関係を確立し、これにより、予め設定されたキャッシュエリア570におけるデータは、不揮発性記憶空間580におけるデータに対応する。第1マッピング関係は、記憶デバイスの不揮発性記憶空間580に、又は、予め設定されたキャッシュエリア570に、表形式で保存され得る。
第2書き込みモジュール560は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断されたとき、書き込みターゲットアドレスに対応する不揮発性記憶空間580に、書き込まれるべきデータを記憶するよう構成される。
不揮発性記憶空間におけるMSBページは、書き込み干渉を受けないので、第2判断モジュール540は、書き込まれるべきデータが不揮発性記憶空間におけるMSBページに属すると判断したとき、書き込まれるべきデータは、バックアップのためにキャッシュされる必要がなく、データは、書き込みターゲットアドレスに従って、不揮発性記憶空間580に直接記憶される。
この実施方式において、MSBページの書き込み干渉に起因して読み出し誤りが発生し得るデータは、バックアップのためにキャッシュされる。加えて、データのこの部分の読み出し中、データは、キャッシュから優先的に読み出される。このことは、データが書き込み干渉を現に受けていることに起因する、データの読み出しにおける誤りの発生を回避し、これにより、書き込み干渉により引き起こされる読み出し誤りを低減し、記憶デバイスの信頼性を改善する。
図6を参照すると、図6は、本出願に係るデータ読出装置の実施方式の模式的な構造図である。具体的には、前述の実施方式に含まれるモジュールに加えて(図5のあるモジュールが、この実施方式の以下の説明において言及されていない場合、そのモジュールは、図6に示されないが、この実施方式におけるデータ読出装置は、そのモジュールを含まないことを意味するわけではない)、データ読出装置600は、第3取得モジュール610と、割り当てモジュール620と、第3判断モジュール630と、第1取得モジュール640と、第2取得モジュール650と、解放モジュール660と、保存モジュール670と、キャッシングモジュール680とをさらに備える。
第3取得モジュール610は、不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得し、割り当てモジュール620に、mを送信するよう構成され、ここで、mは自然数である。
異なるベンダの記憶デバイスは、異なる共有ページを提供する。背景技術において表1に示されている記憶デバイスを例として用いて、記憶デバイスの各ブロックにおける第1共有ページグループは、ページ0からページ2である。すなわち、MSBページとLSBページとの間に2ページの差が存在する。第2共有ページグループは、ページ1からページ4である。すなわち、MSBページとLSBページとの間に3ページの差が存在する。記憶デバイスのブロックにおける全ての共有ページグループにわたって見ると、MSBページと対応するLSBページとの間のページ数の差は全て、2又は3であることが分かる。従って、記憶デバイスの全ての共有ページグループにおけるMSBページとLSBページとの間の最大のページ数の差は、3である。
割り当てモジュール620は、予め設定されたキャッシュエリア570に対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当てるよう構成され、ここで、pは、不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは、自然数であって少なくとも1である。
可能な限り、キャッシュ空間の占有量を低減するために、もう書き込み干渉を受けないデータに対するキャッシュ空間は、この実施方式で動的に解放される。予め設定されたキャッシュエリア570により必要とされるキャッシュ空間の大きさは、記憶デバイスの全ての共有ページグループにおけるMSBページとLSBページとの間の最大のページ数の差であるmと、動的解放規則とに関連する。
キャッシュ空間の大きさを特定するための前述の原則と、記憶デバイスの不揮発性記憶空間の共有ページグループを設定するための前述の規則とによると、比較的重大な書き込み干渉を現に受けているデータが全てキャッシュされることを保証するために、割り当てモジュール620は、予め設定されたキャッシュエリアに対して、少なくともm+n*pのページのキャッシュ空間を割り当て、例えば、m+n*pのページのキャッシュ空間を割り当てる。pは、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数を表す。例えば、MLC型の記憶デバイスの1つの共有ページグループは、MSBページとLSBページとを含む。従って、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数は、1であり、すなわち、LSBページである。TLC型の記憶デバイスの1つの共有ページグループは、MSBページと、CSBページと、LSBページとを含む。従って、記憶デバイスの不揮発性記憶空間におけるMSBページの共有ページの数は、2であり、CSBページとLSBページとを含む。
第3判断モジュール630は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページは、ブロックblockにおける最後のMSBページであるかを判断し、第3判断結果を、第1取得モジュール640及び第2取得モジュール650に送信するよう構成される。
例えば、第2判断モジュール540は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断したとき、第3判断モジュール630は、書き込みターゲットアドレスが位置するMSBページが、ブロックにおける最後のMSBページであるかを判断する。
第1取得モジュール640は、書き込みターゲットアドレスが位置するMSBページが、ブロックにおける最後のMSBページではないとき、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュール660に送信するよう構成される。
この実施方式において、動的キャッシュ解放方式が用いられる。具体的な規則は、データがMSBページに書き込まれているとき、少なくともnのMSBページの共有ページ(LSBページ又はMSBページに対応するCSBページなど)が予め設定されたキャッシュエリアにキャッシュされ得ることを保証できることである。背景技術において表2に示されているMLC型の記憶デバイスを例として用いて、表2から、LSBページに対応するMSBページの書き込みと、次のMSBページの書き込みの開始との間の処理において、そのLSBページは、比較的重大な書き込み干渉を受けることが分かる。nの最小値が1であるときのみ、比較的重大な書き込み干渉を現に受けているデータが全てキャッシュされることを保証できる。しかしながら、読み出し干渉をさらに低減するために、nは優先的に、少なくとも2である。すなわち、MSBページに対応するLSBページは、そのMSBページの次の少なくとも2のMSBページへのデータの書き込みが完了する前に、削除されない。
具体的には、背景技術において表1にて説明されている記憶デバイスをまた例として用いて、現在の書き込みターゲットアドレスは、MSBページであるページ6に属し、かつ、最後のMSBページに属さないことを仮定する。ページ6から前へ数えて、第1MSBページはページ4であり、第2MSBページはページ2である。nが1である場合、データがページ6に書き込まれた後、ページ4の共有ページ、すなわち、ページ1において、書き込み干渉が生じないとみなされる。従って、第1取得モジュール640は、ページ1のアドレスを、データ解放アドレスとして用い、これにより、予め設定されたキャッシュエリア570にあってページ1に対応するキャッシュ空間を解放する。
このことは、そのフローティングゲートトランジスタが2つより多くのビットを記憶する記憶デバイスに関しても同じである。すなわち、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページ(フローティングゲートトランジスタが3つのビットを記憶する場合、対応するLSBページ及び対応するCSBページが含まれる)のアドレスが、取得され、データ解放アドレスとして用いられる。
第2取得モジュール650は、書き込みターゲットアドレスが位置するMSBページは、ブロックにおける最後のMSBページであるとき、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュール660に送信するよう構成される。
書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページである場合、ブロックにおける全てのページの書き込み干渉が除去されることを意味し、従って、ブロックの全てのデータキャッシュ空間が解放され得る。前述の第1取得モジュール640のキャッシュ解放規則によると、データが最後のMSBページに書き込まれているとき、ブロックにおける最後のn+1のMSBページの共有ページのデータは、予め設定されたキャッシュエリアにキャッシュされたままでり、ここで、nは自然数であって、少なくとも1である。従って、第2取得モジュール650は、ブロックにおける最後のn+1のMSBページの共有ページ(フローティングゲートトランジスタが2つのビットを記憶する場合、LSBページであり、又は、フローティングゲートトランジスタが3つのビットを記憶する場合、LSBページとCSBページとを含む)のアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる。
解放モジュール660は、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係から、データ解放アドレスを削除するよう構成される。
解放モジュール660は、第1マッピング関係に従って、データ解放アドレスとの第1マッピング関係を有するキャッシュアドレスを取得し、キャッシュアドレス上のデータを解放する。このように、重大な書き込み干渉を現に受けているデータがキャッシュされたままであることを保証しつつ、キャッシュ空間は、動的に解放され得る。キャッシュ空間が既に解放されているので、第1マッピング関係におけるデータ解放アドレス及びキャッシュアドレスは、削除される。
保存モジュール670は、パワーオフ中、不揮発性記憶空間に、予め設定されたキャッシュエリア570におけるデータを保存し、キャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立し、第2マッピング関係を、キャッシングモジュール680に送信するよう構成される。
記憶デバイスがパワーオフされた後、予め設定されたキャッシュエリア570におけるデータが失われる。次のパワーオンの後に、不揮発性記憶空間におけるデータが、依然として正しく読み出され得ることを保証するために、パワーオフ中、保存モジュール670は、不揮発性記憶空間に、予め設定されたキャッシュエリアにおけるデータを保存し、予め設定されたキャッシュエリアにおけるキャッシュアドレスと不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立し、これにより、前に予め設定されたキャッシュエリアにキャッシュされたデータは、不揮発性記憶デバイスに保存されたデータに対応し得る。
キャッシングモジュール680は、パワーオン中、第2マッピング関係に従って、予め設定されたキャッシュエリア570におけるキャッシュアドレスに、不揮発性記憶空間における保存アドレスが指すデータをキャッシュするよう構成される。
再度パワーオンされたとき、キャッシングモジュール680は、不揮発性記憶空間にあって第2マッピング関係における保存アドレスを取得し、これに対応して、保存アドレスとの第2マッピング関係を有するキャッシュアドレスに、保存アドレス上のデータをキャッシュし、これにより、元のキャッシュアドレスに従って、パワーオフされる前に、予め設定されたキャッシュエリアにキャッシュされたデータを再度キャッシュする。このように、不揮発性記憶空間にあってキャッシュされているデータが読み出される必要があるとき、対応するキャッシュされたデータは、前に確立された第1マッピング関係に従って読み出され得て、これにより、正確なデータの読み出しが実施される。
本出願におけるデータ読出装置は、この実施方式における全てのモジュールを含むことに限定されることが、理解され得る。異なる実施方式では、図5に示されているモジュールに加えて、データ読出装置は、第3取得モジュールと割り当てモジュールとのみをさらに含み得、若しくは、第3判断モジュールと、第1取得モジュールと、第2取得モジュールと、解放モジュールとのみをさらに含み得、若しくは、保存モジュールと、キャッシングモジュールとのみをさらに含み得、又は、これら3つの選択肢のうちの2つのモジュールをさらに含み得る。
図7を参照すると、図7は、本出願に係るコントローラの実施方式の模式的な構造図である。この実施方式におけるコントローラ700は、受信器701と、プロセッサ702と、メモリ703と、バス704とを含む。コントローラ700は、予め設定されたキャッシュエリア710と不揮発性記憶空間720とに接続される。
受信器701は、書き込み命令と読み出し命令とを受信するよう構成される。
プロセッサ702は、読み出しターゲットアドレスを含む読み出し命令を受信したとき、読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリア710にキャッシュされているかを判断し、読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているとき、第1マッピング関係に従って、読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、予め設定されたキャッシュエリア710から、キャッシュアドレスが指すデータを読み出し、ここで、第1マッピング関係は、ターゲットアドレスとキャッシュアドレスとの間の対応関係を記録するために用いられ、又は、読み出しターゲットアドレスが指すデータは、予め設定されたキャッシュエリアにキャッシュされていないとき、不揮発性記憶空間720から、読み出しターゲットアドレスが指すデータを読み出すよう構成される。
任意で、プロセッサ702は、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが不揮発性記憶空間720における最上位ビットページMSBページに属するかを判断し、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含み、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さないと判断されたとき、予め設定されたキャッシュエリア710と、書き込みターゲットアドレスに対応する不揮発性記憶空間720とに、書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立し、又は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断されたとき、書き込みターゲットアドレスに対応する不揮発性記憶空間720に、書き込まれるべきデータを記憶するようさらに構成され得る。
任意で、プロセッサ702は、書き込みターゲットアドレスが不揮発性記憶空間720におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページがブロックblockにおける最後のMSBページであるかを判断し、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではないとき、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いるようさらに構成され、ここで、nは自然数であって少なくとも1であり、又は、第2取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページであるとき、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用い、nは自然数であって少なくとも1であり、予め設定されたキャッシュエリア710にあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係から、データ解放アドレスを削除するよう構成される。
任意で、プロセッサ702は、不揮発性記憶空間720における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得し、mは自然数であり、予め設定されたキャッシュエリア710に対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当てるようさらに構成され、pは、不揮発性記憶空間720におけるMSBページの共有ページの数を表し、nは自然数であって少なくとも1である。
任意で、プロセッサ702は、パワーオフ中、不揮発性記憶空間720に、予め設定されたキャッシュエリア710におけるデータを保存し、キャッシュアドレスと不揮発性記憶空間720における保存アドレスとの間の第2マッピング関係を確立し、パワーオン中、第2マッピング関係に従って、予め設定されたキャッシュエリア710におけるキャッシュアドレスに、不揮発性記憶空間720における保存アドレスが指すデータをキャッシュするようさらに構成される。
メモリ703は、リードオンリメモリとランダムアクセスメモリとを含み、プロセッサ702に対して、命令及びデータを提供し得る。メモリ703の一部は、不揮発性ランダムアクセスメモリ(NVRAM)をさらに含み得る。別の実施方式において、メモリ703は、代替的に、不揮発性記憶空間610と同一の記憶媒体に位置し得る。
メモリ703は、以下の要素、実行可能なモジュール又はデータ構造、それらのサブセット、又はそれらの拡張セットを記憶する。様々なオペレーションを実施するために用いられる様々な操作命令を含む操作命令、及び、様々な基本サービスを実施し、ハードウェアベースのタスクを処理するために用いられる様々なシステムプログラムを含むオペレーティングシステムである。
本発明の実施形態において、プロセッサ702は、メモリ703に記憶されている操作命令を呼び出すことによって前述のオペレーションを実行する(操作命令は、オペレーティングシステムに記憶され得る)。
プロセッサ702はまた、CPU(Central Processing Unit、中央演算処理装置)と称され得る。具体的な応用において、コントローラの構成部品は、バス704を用いることによって、共に結合される。バス704は、データバスを含み、加えて、電力バス、制御バス、状態信号バス、及び同様のものをさらに含み得る。しかしながら、説明を明確にするために、図面において、様々なバスは、バス704と表記されている。
本発明の前述の実施形態に開示されている方法は、プロセッサ702に適用され得て、又は、プロセッサ702により実施され得る。プロセッサ702は、集積回路チップであってよく、信号処理能力を有する。実施処理において、前述の方法の段階は、プロセッサ702のハードウェアの論理集積回路又はソフトウェア命令を用いることによって、完了され得る。プロセッサ702は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特殊用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又は別のプログラマブル論理デバイス、分離型ゲート又はトランジスタ論理デバイス、又は分離型ハードウェア構成部品であり得る。本発明の実施形態において開示されている方法、段階、及び論理ブロック図は、実施又は実行され得る。汎用プロセッサは、マイクロプロセッサであってよく、又は、プロセッサは、任意の従来のプロセッサ又は同様のものであってよい。本発明の実施形態において開示されている方法の段階は、ハードウェアのデコードプロセッサにより直接実行されてよく、又は、デコードプロセッサにおけるハードウェアとソフトウェアモジュールとの組み合わせにより実行されてよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、リードオンリメモリ、プログラマブルリードオンリメモリ、電気的消去可能なプログラマブルメモリ、又はレジスタなどの、当該技術分野において成熟した記憶媒体に位置し得る。記憶媒体は、メモリ703に位置する。プロセッサ702は、メモリ703から情報を読み出し、プロセッサ702のハードウェアとの組み合わせにおいて前述の方法の段階を実施する。
前述の解決手段において、記憶空間にあって書き込み干渉に起因するデータ読み出し誤りの影響を受けやすいページのデータが、予め設定されたキャッシュエリアにキャッシュされ、ページのデータが読み出されたとき、当該データは、キャッシュエリアから選択的に読み出され、これにより、記憶空間から誤りを含み得るデータを読み出すことを回避する。このことは、書き込み干渉により引き起こされるデータ読み出し誤りを低減し、記憶デバイスの信頼性を改善する。
本出願に提供されているいくつかの実施形態において、開示されたシステム、装置、及び方法は、他の方式で実施され得ることが、理解されるべきである。例えば、説明された装置の実施形態は、単に例示的なものである。例えば、モジュール又はユニットの区分は単に論理的な機能区分であり、実際の実施において、他の区分であり得る。例えば、複数のユニット又は構成部品は、別のシステムに組み合わされ又は統合されてよく、又は、いくつかの特徴が、無視されてよく、又は実行されなくてよい。加えて、表示された若しくは議論された相互結合又は直接結合若しくは通信接続は、インターフェース、装置、及びユニットの間の間接結合又は通信接続であってよく、又は、電子、機械、又は他の形態で実施されてよい。
別々の部分として説明されているユニットは、物理的に別々のものであってもよく、又はそうでなくてもよい。ユニットとして表示されている部分は、物理的ユニットであってもよく、又はそうでなくてもよく、1つの場所に位置してよく、又は複数のネットワークユニット上に分布してよい。ユニットのいくつか又は全てが、実施形態の解決手段の目的を達成するように、実際の要求に応じて選択され得る。
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、又は、ユニットのそれぞれは、物理的に単独で存在してよく、又は、2つ以上のユニットが1つのユニットに統合される。統合ユニットは、ハードウェアの形態で実装されてよく、又は、ソフトウェア機能ユニットの形態で実装されてよい。
統合ユニットがソフトウェア機能ユニットの形態で実装され、独立な製品として販売され又は用いられるとき、当該統合ユニットは、コンピュータ可読記憶媒体に記憶され得る。そのような理解に基づき、本出願の本質的な技術的解決手段、又は従来技術に寄与する部分、又は技術的解決手段の全て若しくは一部が、ソフトウェア製品の形態で実施され得る。ソフトウェア製品は、記憶媒体において記憶され、(パーソナルコンピュータ、サーバ、又はネットワークデバイスであり得る)コンピュータデバイス、又はプロセッサ(processor)に対して、本出願の実施方式において説明されている方法の段階の全て又は一部を実行するよう命令するいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、又は光ディスクなどの、プログラムコードを記憶し得る任意の媒体を含む。
データが書き込まれているとき、LSBがMSBの前に書き込まれることが必要である。従って、データは、LSBページ全体が満ちている後にのみ、対応するMSBページに書き込まれることができる。しかしながら、データをMSBページに書き込むことは、前にLSBページに書き込まれていたデータへの干渉を生じさせる。前述のベンダのMLCを例として用いて、表2は、実験によりデータ書き込み中に取得された干渉データを説明する。
Figure 2018506109
同様に、そのフローティングゲートトランジスタがより多くのビットを記憶する記憶デバイス、例えば、そのフローティングゲートトランジスタが3つのビットを記憶する記憶デバイスに対して、それは、共有ページグループが、LABページと、中位ビッ(英語表記:middle significant bit、略してCSB)ページと、MSBページとを含むことを意味し、上位ページに書き込むことはまた、下位ページへの書き込み干渉を生じさせる。
第1態様に関連して、第1態様の第1の可能な実施方式において、方法は、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが不揮発性記憶空間における最上位ビットページMSBページに属するかを判断する段階であって、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む、段階と、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さない場合、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、その書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立する段階、又は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶する段階とをさらに備える。
第1態様の第2の可能な実施方式に関連して、第1態様の第3の可能な実施方式において、方法は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属する場合、書き込みターゲットアドレスが位置するMSBページは、ブロックblockにおける最後のMSBページであるかを判断する段階と、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではない場合、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる段階、又は、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページである場合、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いる段階と、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係からデータ解放アドレスを削除する段階とをさらに備える。
第2態様に関連して、第2態様の第1の可能な実施方式において、装置は、第2判断モジュールと、第1書き込みモジュールと、第2書き込みモジュールとをさらに備える。第2判断モジュールは、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが、不揮発性記憶空間における最上位ビットページMSBページに属するかを判断し、第2判断結果を、第1及び第2書き込みモジュールに送信するよう構成され、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含む。第1書き込みモジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さないと判断されたとき、予め設定されたキャッシュエリアと書き込みターゲットアドレスに対応する不揮発性記憶空間とに、書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立するよう構成される。第2書き込みモジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断されたとき、書き込みターゲットアドレスに対応する不揮発性記憶空間に、書き込まれるべきデータを記憶するよう構成される。
第2態様の第2の可能な実施方式に関連して、第2態様の第3の可能な実施方式において、装置は、第3判断モジュールと、第1取得モジュールと、第2取得モジュールと、解放モジュールとをさらに備える。第3判断モジュールは、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページがブロックblockにおける最後のMSBページであるかを判断し、第3判断結果を、第1及び第2取得モジュールに送信するよう構成される。第1取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではないとき、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュールに送信するよう構成される。第2取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページであるとき、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスを、データ解放アドレスとして用い、データ解放アドレスを、解放モジュールに送信するよう構成される。解放モジュールは、予め設定されたキャッシュエリアにあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係から、データ解放アドレスを削除するよう構成される。
第1判断モジュール510は、第1マッピング関係を用いることによらないで、読み込まれるべきデータがキャッシュされたかを判断し得ることは、理解され得る。別の実施方式において、第1判断モジュール510はさらに、アドレス上のデータがキャッシュされているかを記録する識別子を追加的に設定し得る。データが読み出されているとき、アドレスの識別子が読み出され、読み出しターゲットアドレス上のデータがキャッシュされているかを判断する。従って、読み込まれるべきデータがキャッシュされているかを判断する方式は、本明細書において具体的に限定されない。
第3判断モジュール630は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページは、ブロックblockにおける最後のMSBページであるかを判断し、第3判断結果を、第1取得モジュール640及び第2取得モジュール650に送信するよう構成される。
任意で、プロセッサ702は、書き込み命令を受信したとき、書き込み命令における書き込みターゲットアドレスが不揮発性記憶空間720における最上位ビットページMSBページに属するかを判断し、ここで、書き込み命令は、書き込まれるべきデータと書き込みターゲットアドレスとを含み、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属さないと判断されたとき、予め設定されたキャッシュエリア710と、書き込みターゲットアドレスに対応する不揮発性記憶空間720とに、書き込まれるべきデータを記憶し、キャッシュアドレスとターゲットアドレスとの間の第1マッピング関係を確立し、又は、書き込みターゲットアドレスが不揮発性記憶空間におけるMSBページに属すると判断されたとき、書き込みターゲットアドレスに対応する不揮発性記憶空間720に、書き込まれるべきデータを記憶するようさらに構成され得る。
任意で、プロセッサ702は、書き込みターゲットアドレスが不揮発性記憶空間720におけるMSBページに属するとき、書き込みターゲットアドレスが位置するMSBページがブロックblockにおける最後のMSBページであるかを判断し、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページではないとき、書き込みターゲットアドレスが位置するMSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用いるようさらに構成され、ここで、nは自然数であって少なくとも1であり、又は、第2取得モジュールは、書き込みターゲットアドレスが位置するMSBページがブロックにおける最後のMSBページであるとき、ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、取得したアドレスをデータ解放アドレスとして用い、nは自然数であって少なくとも1であり、予め設定されたキャッシュエリア710にあってデータ解放アドレスとの第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、第1マッピング関係から、データ解放アドレスを削除するよう構成される。
メモリ703は、リードオンリメモリとランダムアクセスメモリとを含み、プロセッサ702に対して、命令及びデータを提供し得る。メモリ703の一部は、不揮発性ランダムアクセスメモリ(NVRAM)をさらに含み得る。別の実施方式において、メモリ703は、代替的に、不揮発性記憶空間720と同一の記憶媒体に位置し得る。

Claims (14)

  1. 読み出しターゲットアドレスを含む読み出し命令を受信したとき、前記読み出しターゲットアドレスが指すデータが予め設定されたキャッシュエリアにキャッシュされているかを判断する段階と、
    前記読み出しターゲットアドレスが指す前記データが前記予め設定されたキャッシュエリアにキャッシュされている場合、第1マッピング関係に従って、前記読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、前記予め設定されたキャッシュエリアから、前記キャッシュアドレスが指すデータを読み出す段階であって、前記第1マッピング関係は、前記ターゲットアドレスと前記キャッシュアドレスとの間の対応関係を記録するために用いられる、段階、又は、前記読み出しターゲットアドレスが指す前記データが前記予め設定されたキャッシュエリアにキャッシュされていない場合、不揮発性記憶空間から、前記読み出しターゲットアドレスが指す前記データを読み出す段階と
    を備える
    データ読出方法。
  2. 書き込み命令を受信したとき、前記書き込み命令における書き込みターゲットアドレスが前記不揮発性記憶空間における最上位ビットページMSBページに属するかを判断する段階であって、前記書き込み命令は、書き込まれるべきデータと前記書き込みターゲットアドレスとを含む、段階と、
    前記書き込みターゲットアドレスが前記不揮発性記憶空間におけるMSBページに属さない場合、前記予め設定されたキャッシュエリアと前記書き込みターゲットアドレスに対応する前記不揮発性記憶空間とに、前記書き込まれるべきデータを記憶し、前記キャッシュアドレスと前記ターゲットアドレスとの間の前記第1マッピング関係を確立する段階、又は、前記書き込みターゲットアドレスが前記不揮発性記憶空間におけるMSBページに属する場合、前記書き込みターゲットアドレスに対応する前記不揮発性記憶空間に、前記書き込まれるべきデータを記憶する段階と
    をさらに備える請求項1に記載の方法。
  3. 前記不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得する段階であって、mは自然数である、段階と、
    前記予め設定されたキャッシュエリアに対して、少なくともn*p+mのページの大きさでキャッシュ空間を割り当てる段階であって、pは、前記不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは、自然数であって少なくとも1である、段階と
    をさらに備える請求項2に記載の方法。
  4. 前記書き込みターゲットアドレスが前記不揮発性記憶空間におけるMSBページに属する場合、前記書き込みターゲットアドレスが位置する前記MSBページが、ブロックblockにおける最後のMSBページであるかを判断する段階と、
    前記書き込みターゲットアドレスが位置する前記MSBページが前記ブロックにおける最後のMSBページではない場合、前記書き込みターゲットアドレスが位置する前記MSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、前記取得したアドレスを、データ解放アドレスとして用いる段階、又は、前記書き込みターゲットアドレスが位置する前記MSBページは、前記ブロックにおける最後のMSBページである場合、前記ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、前記取得したアドレスを前記データ解放アドレスとして用いる段階と、
    前記予め設定されたキャッシュエリアにあって前記データ解放アドレスとの前記第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、前記第1マッピング関係から前記データ解放アドレスを削除する段階と
    をさらに備える請求項3に記載の方法。
  5. パワーオフ中、前記不揮発性記憶空間に、前記予め設定されたキャッシュエリアにおけるデータを保存し、前記キャッシュアドレスと前記不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立する段階と、
    パワーオン中、前記第2マッピング関係に従って、前記予め設定されたキャッシュエリアにおけるキャッシュアドレスに、前記不揮発性記憶空間における前記保存アドレスが指す前記データをキャッシュする段階と
    をさらに備える請求項1から4の何れか一項に記載の方法。
  6. 前記予め設定されたキャッシュエリアは、ダブルデータレート同時ダイナミックランダムアクセスメモリDDR、又はスタティックランダムアクセスメモリSRAMに位置する、請求項1から4の何れか一項に記載の方法。
  7. 前記不揮発性記憶空間は、ソリッドステートドライブSSDの記憶空間である、請求項1から4の何れか一項に記載の方法。
  8. 第1判断モジュールと、
    第1読み出しモジュールと、
    第2読み出しモジュールと
    を備えるデータ読出装置であって、
    前記第1判断モジュールは、読み出しターゲットアドレスを含む読み出し命令を受信したとき、前記読み出しターゲットアドレスが指すデータが、予め設定されたキャッシュエリアにキャッシュされているかを判断し、第1判断結果を、前記第1読み出しモジュール及び前記第2読み出しモジュールに送信するよう構成され、
    前記第1読み出しモジュールは、前記読み出しターゲットアドレスが指す前記データが、前記予め設定されたキャッシュエリアにキャッシュされているとき、第1マッピング関係に従って、前記読み出しターゲットアドレスに対応するキャッシュアドレスを見付け、前記予め設定されたキャッシュエリアから、前記キャッシュアドレスが指すデータを読み出すよう構成され、前記第1マッピング関係は、前記ターゲットアドレスと前記キャッシュアドレスとの間の対応関係を記録するために用いられ、
    前記第2読み出しモジュールは、前記読み出しターゲットアドレスが指す前記データが、前記予め設定されたキャッシュエリアにキャッシュされていないとき、不揮発性記憶空間から、前記読み出しターゲットアドレスが指す前記データを読み出すよう構成されている、
    データ読出装置。
  9. 第2判断モジュールと、
    第1書き込みモジュールと、
    第2書き込みモジュールと
    をさらに備え、
    前記第2判断モジュールは、書き込み命令を受信したとき、前記書き込み命令における書き込みターゲットアドレスが前記不揮発性記憶空間における最上位ビットページMSBページに属するかを判断し、第2判断結果を、前記第1書き込みモジュール及び前記第2書き込みモジュールに送信するよう構成され、前記書き込み命令は、書き込まれるべきデータと前記書き込みターゲットアドレスとを含み、
    前記第1書き込みモジュールは、前記書き込みターゲットアドレスが前記不揮発性記憶空間におけるMSBページに属さないと判断されたとき、前記予め設定されたキャッシュエリアと前記書き込みターゲットアドレスに対応する前記不揮発性記憶空間とに、前記書き込まれるべきデータを記憶し、前記キャッシュアドレスと前記ターゲットアドレスとの間の前記第1マッピング関係を確立するよう構成され、
    前記第2書き込みモジュールは、前記書き込みターゲットアドレスが、前記不揮発性記憶空間におけるMSBページに属すると判断されたとき、前記書き込みターゲットアドレスに対応する前記不揮発性記憶空間に、前記書き込まれるべきデータを記憶するよう構成されている、
    請求項8に記載の装置。
  10. 第3取得モジュールと、割り当てモジュールとをさらに備え、
    前記第3取得モジュールは、前記不揮発性記憶空間における全ての共有ページグループのMSBページとLSBページとの間の最大のページ数の差であるmを取得し、前記割り当てモジュールに、mを送信するよう構成され、mは自然数であり、
    前記割り当てモジュールは、前記予め設定されたキャッシュエリアに対して、少なくともn*p+mのページの大きさで、キャッシュ空間を割り当てるよう構成され、pは、前記不揮発性記憶空間におけるMSBページの共有ページの数を表し、nは自然数であって少なくとも1である、
    請求項9に記載の装置。
  11. 第3判断モジュールと、第1取得モジュールと、第2取得モジュールと、解放モジュールとをさらに備え、
    前記第3判断モジュールは、前記書き込みターゲットアドレスが前記不揮発性記憶空間におけるMSBページに属するとき、前記書き込みターゲットアドレスが位置する前記MSBページがブロックblockにおける最後のMSBページであるかを判断し、第3判断結果を、前記第1取得モジュール及び前記第2取得モジュールに送信するよう構成され、
    前記第1取得モジュールは、前記書き込みターゲットアドレスが位置する前記MSBページが、前記ブロックにおける最後のMSBページではないとき、前記書き込みターゲットアドレスが位置する前記MSBページから前へ数えてn番目のMSBページの共有ページのアドレスを取得し、前記取得したアドレスを、データ解放アドレスとして用い、前記データ解放アドレスを、前記解放モジュールに送信するよう構成され、
    前記第2取得モジュールは、前記書き込みターゲットアドレスが位置する前記MSBページが、前記ブロックにおける前記最後のMSBページであるとき、前記ブロックにおける最後のn+1のMSBページの共有ページのアドレスを取得し、前記取得したアドレスを、前記データ解放アドレスとして用い、前記データ解放アドレスを、前記解放モジュールに送信するよう構成され、
    前記解放モジュールは、前記予め設定されたキャッシュエリアにあって前記データ解放アドレスとの前記第1マッピング関係を有するキャッシュアドレスが指すデータを解放し、前記第1マッピング関係から前記データ解放アドレスを削除するよう構成されている、
    請求項10に記載の装置。
  12. 保存モジュールと、キャッシングモジュールとをさらに備え、
    前記保存モジュールは、パワーオフ中、前記不揮発性記憶空間に、前記予め設定されたキャッシュエリアにおけるデータを保存し、前記キャッシュアドレスと、前記不揮発性記憶空間における保存アドレスとの間の第2マッピング関係を確立し、前記第2マッピング関係を、前記キャッシングモジュールに送信するよう構成され、
    前記キャッシングモジュールは、パワーオン中、前記第2マッピング関係に従って、前記予め設定されたキャッシュエリアにおける前記キャッシュアドレスに、前記不揮発性記憶空間における前記保存アドレスが指す前記データをキャッシュするよう構成されている、
    請求項8から11の何れか一項に記載の装置。
  13. 前記予め設定されたキャッシュエリアは、ダブルデータレート同時ダイナミックランダムアクセスメモリDDR、又はスタティックランダムアクセスメモリSRAMに位置する、請求項8に記載の装置。
  14. 前記不揮発性記憶空間は、ソリッドステートドライブSSDの記憶空間である、請求項8に記載の装置。
JP2017534266A 2014-12-24 2015-12-16 データ読出方法及び装置 Active JP6399720B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410817949.0A CN104503707B (zh) 2014-12-24 2014-12-24 读取数据的方法以及装置
CN201410817949.0 2014-12-24
PCT/CN2015/097586 WO2016101828A1 (zh) 2014-12-24 2015-12-16 读取数据的方法以及装置

Publications (2)

Publication Number Publication Date
JP2018506109A true JP2018506109A (ja) 2018-03-01
JP6399720B2 JP6399720B2 (ja) 2018-10-03

Family

ID=52945108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017534266A Active JP6399720B2 (ja) 2014-12-24 2015-12-16 データ読出方法及び装置

Country Status (8)

Country Link
US (1) US10261906B2 (ja)
EP (2) EP3584706B1 (ja)
JP (1) JP6399720B2 (ja)
CN (1) CN104503707B (ja)
AU (1) AU2015371849B2 (ja)
CA (1) CA2971913C (ja)
SG (1) SG11201705180VA (ja)
WO (1) WO2016101828A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503707B (zh) 2014-12-24 2018-03-06 华为技术有限公司 读取数据的方法以及装置
WO2017031637A1 (zh) * 2015-08-21 2017-03-02 华为技术有限公司 一种内存访问方法、装置和系统
CN106557433A (zh) * 2015-09-28 2017-04-05 深圳市博巨兴实业发展有限公司 一种微控制器高速缓存的方法和装置
CN105446701A (zh) * 2015-11-09 2016-03-30 联想(北京)有限公司 一种数据处理方法、电子设备及控制器
CN106022161B (zh) * 2016-05-13 2018-09-25 天脉聚源(北京)传媒科技有限公司 一种数据处理方法及装置
US10019456B2 (en) * 2016-06-29 2018-07-10 Microsoft Technology Licensing, Llc Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
CN106201916B (zh) * 2016-07-25 2019-03-29 中国人民解放军国防科学技术大学 一种面向ssd的非易失缓存方法
CN107807786B (zh) * 2016-09-08 2021-09-07 宏碁股份有限公司 存储装置及其资料映射方法
US10452598B2 (en) * 2016-10-18 2019-10-22 Micron Technology, Inc. Apparatuses and methods for an operating system cache in a solid state device
CN108021513B (zh) * 2016-11-02 2021-09-10 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN107274923A (zh) * 2017-05-24 2017-10-20 记忆科技(深圳)有限公司 一种提高固态硬盘中顺序读取流性能的方法及固态硬盘
CN107247636B (zh) * 2017-06-06 2020-05-26 苏州浪潮智能科技有限公司 一种固态硬盘中数据重建优化的方法及装置
CN111654519B (zh) 2017-09-06 2024-04-30 华为技术有限公司 用于传输数据处理请求的方法和装置
CN109558386A (zh) * 2018-11-26 2019-04-02 北京微播视界科技有限公司 一种客户端数据的缓存方法、装置、设备和介质
CN109739570B (zh) * 2018-12-24 2022-04-08 新华三技术有限公司 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质
CN109947469B (zh) * 2019-03-08 2021-09-17 广州安加互联科技有限公司 地址划分方法、装置及计算机可读存储介质
CN112289352B (zh) * 2019-07-25 2023-10-03 上海磁宇信息科技有限公司 具有ecc功能的mram系统及其操作方法
CN110569329B (zh) * 2019-10-28 2022-08-02 深圳市商汤科技有限公司 数据处理方法及装置、电子设备和存储介质
CN111506261B (zh) * 2020-03-24 2024-05-03 平安国际智慧城市科技股份有限公司 基于双缓存区的缓存方法、装置、设备及存储介质
CN111459893B (zh) * 2020-04-03 2023-08-22 北京字节跳动网络技术有限公司 文件处理方法、装置和电子设备
CN111522506B (zh) * 2020-04-03 2022-08-02 杭州迪普信息技术有限公司 一种数据读取的方法及装置
CN113496745B (zh) * 2020-04-03 2024-03-08 澜起科技股份有限公司 用于修复存储模块缺陷的装置和方法以及存储器系统
CN112559387B (zh) * 2020-12-23 2023-05-02 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质
CN112783802B (zh) * 2021-01-29 2022-11-01 山东华芯半导体有限公司 一种ssd中优化读干扰处理的方法
CN115509828A (zh) * 2021-06-22 2022-12-23 华为技术有限公司 一种数据处理方法及相关装置
CN113342697B (zh) * 2021-07-19 2022-08-26 英韧科技(上海)有限公司 闪存转换层仿真测试系统及方法
CN114063917B (zh) * 2021-11-11 2024-01-30 天津兆讯电子技术有限公司 快速读取程序数据的方法和微控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216775A (ja) * 1991-10-29 1993-08-27 Hitachi Ltd 半導体記憶装置
JP2008181497A (ja) * 2007-01-23 2008-08-07 Samsung Electronics Co Ltd ページデータを保存するための方法と装置
JP2008544345A (ja) * 2005-05-12 2008-12-04 サンディスク アイエル リミテッド 電源喪失によるデータ破損に強いフラッシュメモリ管理方法
WO2014007249A1 (ja) * 2012-07-05 2014-01-09 株式会社日立製作所 I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP2014110057A (ja) * 2012-12-04 2014-06-12 Samsung Electronics Co Ltd 格納装置、フラッシュメモリ及び格納装置の動作方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359569A (en) 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US6660585B1 (en) 2000-03-21 2003-12-09 Aplus Flash Technology, Inc. Stacked gate flash memory cell with reduced disturb conditions
KR100721012B1 (ko) * 2005-07-12 2007-05-22 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
KR100850515B1 (ko) * 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
JP4498426B2 (ja) 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP2009266946A (ja) 2008-04-23 2009-11-12 Toshiba Corp 三次元積層不揮発性半導体メモリ
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8203876B2 (en) 2009-12-01 2012-06-19 Micron Technology, Inc. Reducing effects of erase disturb in a memory device
US8254167B2 (en) 2010-05-17 2012-08-28 Seagate Technologies Llc Joint encoding of logical pages in multi-page memory architecture
US8782370B2 (en) * 2011-05-15 2014-07-15 Apple Inc. Selective data storage in LSB and MSB pages
WO2013048493A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
CN102591807B (zh) * 2011-12-30 2015-03-11 记忆科技(深圳)有限公司 一种固态硬盘掉电和写异常处理方法及系统
KR102025340B1 (ko) * 2012-11-27 2019-09-25 삼성전자 주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템
CN103777905B (zh) * 2014-02-14 2017-04-12 华中科技大学 一种软件定义的固态盘融合存储方法
CN104503707B (zh) * 2014-12-24 2018-03-06 华为技术有限公司 读取数据的方法以及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216775A (ja) * 1991-10-29 1993-08-27 Hitachi Ltd 半導体記憶装置
JP2008544345A (ja) * 2005-05-12 2008-12-04 サンディスク アイエル リミテッド 電源喪失によるデータ破損に強いフラッシュメモリ管理方法
JP2008181497A (ja) * 2007-01-23 2008-08-07 Samsung Electronics Co Ltd ページデータを保存するための方法と装置
WO2014007249A1 (ja) * 2012-07-05 2014-01-09 株式会社日立製作所 I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP2014110057A (ja) * 2012-12-04 2014-06-12 Samsung Electronics Co Ltd 格納装置、フラッシュメモリ及び格納装置の動作方法

Also Published As

Publication number Publication date
EP3229126A4 (en) 2017-11-29
AU2015371849A1 (en) 2017-07-27
SG11201705180VA (en) 2017-07-28
CA2971913A1 (en) 2016-06-30
US20170286306A1 (en) 2017-10-05
AU2015371849B2 (en) 2018-11-29
CN104503707B (zh) 2018-03-06
CN104503707A (zh) 2015-04-08
CA2971913C (en) 2019-04-23
EP3229126B1 (en) 2019-02-20
JP6399720B2 (ja) 2018-10-03
WO2016101828A1 (zh) 2016-06-30
EP3584706A1 (en) 2019-12-25
EP3584706B1 (en) 2021-11-10
US10261906B2 (en) 2019-04-16
EP3229126A1 (en) 2017-10-11

Similar Documents

Publication Publication Date Title
JP6399720B2 (ja) データ読出方法及び装置
CN108073470B (zh) 执行地址映射表的纠错的存储器系统及其控制方法
US10108366B2 (en) Non-volatile memory apparatus and operating method thereof
CN106681931B (zh) 数据储存设备及其操作方法
TWI679537B (zh) 資料移動方法及儲存控制器
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US10635358B2 (en) Memory management method and storage controller
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
US11487669B2 (en) Memory system for storing data of log-structured merge tree structure and data processing system including the same
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
US11886333B2 (en) Memory block reclamation method and apparatus
US10048899B2 (en) Storage device, computing system including the storage device, and method of operating the storage device
US20190004907A1 (en) Method for management tables recovery
CN108628760B (zh) 原子写命令的方法与装置
US20200125285A1 (en) Memory system and operating method thereof
CN108628761B (zh) 原子命令执行方法与装置
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
CN110865945B (zh) 存储设备的扩展地址空间
JP7407230B2 (ja) キー値データ記憶デバイスのためのeccパリティ偏り
US11720276B2 (en) Memory system and controller for managing write status
US9652378B2 (en) Writing method, memory controller and memory storage device
US10579306B1 (en) Memory management method and storage controller

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180709

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: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180903

R150 Certificate of patent or registration of utility model

Ref document number: 6399720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250