JP6823734B2 - ソリッドステートディスクアクセス - Google Patents

ソリッドステートディスクアクセス Download PDF

Info

Publication number
JP6823734B2
JP6823734B2 JP2019556277A JP2019556277A JP6823734B2 JP 6823734 B2 JP6823734 B2 JP 6823734B2 JP 2019556277 A JP2019556277 A JP 2019556277A JP 2019556277 A JP2019556277 A JP 2019556277A JP 6823734 B2 JP6823734 B2 JP 6823734B2
Authority
JP
Japan
Prior art keywords
data
sector
stripe
cache
flash memory
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
JP2019556277A
Other languages
English (en)
Other versions
JP2020517026A (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.)
New H3C Information Technologies Co Ltd
Original Assignee
New H3C Information Technologies Co Ltd
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 New H3C Information Technologies Co Ltd filed Critical New H3C Information Technologies Co Ltd
Publication of JP2020517026A publication Critical patent/JP2020517026A/ja
Application granted granted Critical
Publication of JP6823734B2 publication Critical patent/JP6823734B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/10Address translation
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/068Hybrid storage device
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/1008Correctness of operation, e.g. memory ordering
    • 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/1016Performance improvement
    • 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Description

[関連出願の相互引用]
本願は、出願日が2017年4月14日であり、出願番号が201710244793.5であり、発明名称が「ソリッドステートディスクアクセス方法及び装置」である中国特許出願の優先権を主張し、当該出願の全文が引用により本願に組み込まれる。
SSD(Solid State Disk、ソリッドステートディスク)は、主にコントローラとフラッシュメモリ(Flash)とによって構成される。現在、SSDは、より高速なデータ読み書き速度が与えられるように、一般的にマルチチャンネル並行技術が採用されている。具体的に、コントローラは、複数の物理チャンネル(Channel)を用いて複数のフラッシュメモリを並行に操作する。
本発明の実施例に示す、ストライプ化技術が採用されていない場合とストライプ化技術が採用されている場合とのデータ記憶対比模式図である。 本発明の実施例に示すSSDの構造模式図である。 本発明の実施例に示すSSDアクセス方法のフローチャートである。 本発明の実施例に示すデータ書き込み命令を受信した後の書き込み操作のフローチャートである。 本発明の実施例に示すストライプエージング操作のフローチャートである。 本発明の実施例に示すデータ読み取り命令を受信した後の読取操作のフローチャートである。 本発明の実施例に示す物理チャンネルの失効時のデータ回復および移転操作のフローチャートである。 本発明の実施例に示すSSDアクセス装置の所在するSSDのハードウェア構造模式図である。 本発明の実施例に示すSSDアクセス装置の1種の構造模式図である。 本発明の実施例に示すSSDアクセス装置のもう1種の構造模式図である。
ここで、例示的な実施例を詳細に説明する。その例示は、図面に示される。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同じ符号が同じ又は類似する要素を示す。以下の例示的な実施例に記述される実施形態が本発明と一致する全ての実施形態を代表するわけではない。逆に、それらは、単に添付する特許請求の範囲に詳細に記述されるような、本発明の幾つかの態様に一致する装置及び方法の例である。
本発明で使用される用語は、単に特定の実施例を記述する目的であり、本発明を制限するためのものではない。本発明及び添付する特許請求の範囲で使用される単数形式の「一種」、「前記」及び「当該」も、文脈から他の意味を明瞭で分かる場合でなければ、複数の形式を含むことを意図する。理解すべきことは、本文で使用される用語「および/または」が、1つまたは複数の関連する列挙項目を含む如何なる或いは全ての可能な組み合わせを指す。
理解すべきことは、本発明において第1、第2、第3等という用語を用いて各種の情報を記述するが、これらの情報は、これらの用語に限定されるものではない。これらの用語は、単に同一のタイプの情報同士を区分するために用いられる。例えば、本発明の範囲を逸脱しない限り、第1情報が第2情報と呼称されてもよく、類似的に、第2情報が第1情報と呼称されてもよい。これは、コンテキストに依存する。例えば、ここで使用される言葉「場合」は、「…とき」や「…ときに」あるいは「特定の状況に応じて」として解釈されてもよい。
マルチチャンネル並行技術の使用により、データ読み書きの並行実行が可能であるが、実際の応用にデータ読み書きが必ずしも連続的とは限らず、ほとんどの場合にランダムな読み書きである。このように、同一の物理チャンネルにマウントされたフラッシュメモリへ同時にアクセスすると、アクセスの衝突になってしまう。上記アクセス衝突問題を解決する手法は、主にデータをストライプ化することである。ストライプ化技術は、データ読み書きの負荷を各物理チャンネルにマウントされたフラッシュメモリへ自動的に均一化させる技術である。
図1に示すように、ストライプ化技術の使用により、データを複数の所定大きさのサブデータに分割し、それらを異なる物理チャンネルにマウントされたフラッシュメモリにそれぞれ記憶可能である。これにより、データ並行読み書きが図られ、アクセス衝突が効果的に回避される。
また、フラッシュメモリは、先に消去(erase)しないと書き込み(program)できない特性を有する。消去の最小単位は、ブロック(Block)であり、読み書きの最小単位は、ページ(Page)であり、1つのブロックは、複数のページを含んでもよい。したがって、フラッシュメモリにおけるデータを変更する際には、直接既存データを新データで上書きすることができず、全ブロックにおけるデータを読み取ってメモリに保存し、メモリにおいて変更すべきデータを新データに更新し、全ブロックにおけるデータを消去し、メモリにおける変更後のデータを当該ブロックに書き込む必要がある。このように、SSDの書き込み拡大(Write Application)問題が生じる。例えば、1つのブロックにおける1024個のページが全部書き尽くされたと仮定すれば、その中の1つのページにおけるデータを変更する必要がある場合に、当該ページの所属するブロックにおける全てのデータをメモリに読み取って当該ページにおけるデータを変更し、その後フラッシュメモリにおける当該ブロックの全てのデータを消去し、メモリにおける変更後のデータを当該ブロックに書き込む必要はある。その際の書き込み拡大倍率は、1024となる。
SSDには書き込み拡大倍率が非常に大きいという問題が存在するため、SSDの性能および使用寿命が影響されてしまう。
上記問題を解決すべく、本発明の以下の実施例は、SSDアクセス方法、および当該方法に適用可能な装置を提供する。図2に示すように、本発明の実施例のSSDは、コントローラ201、キャッシュ(Cache)202、3つ以上の物理チャンネル204、およびそれぞれの物理チャンネル204にマウントされたフラッシュメモリ(Flash)203を備える。キャッシュ202は、メモリ中で区分された記憶空間であってもよい。本発明の実施例のSSDは、マルチチャンネル並行技術およびストライプ化技術を用いてデータ読み書きを行ってもよい。
これに基づくと、図3に示すように、本発明の実施例のSSDアクセス方法は、以下のステップを含む。
ステップS301では、データ書き込み命令を受信し、当該データ書き込み命令に付加される書き込み待ちデータのLBA(Logical Block Address、論理ブロックアドレス)に対応する第1ストライプと第1セクタとを特定する。
それぞれのストライプは、3つ以上のセクタを含んでもよく、且つそれぞれのストライプに含まれるセクタの数がSSDにおける物理チャンネル数に等しく、SSDにおけるフラッシュメモリの数にも相当する。例えば、SSDにおける物理チャンネル数が4であるときに、それぞれのストライプは、4個のセクタを含む。
ステップS302では、キャッシュに第1ストライプが存在するか否かを判断し、そうであれば、ステップS303を実行し、そうでなければ、ステップS304を実行する。
ステップS303では、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込む。
ステップS304では、第1ストライプを作成し、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込む。
本発明の上記実施例の方法では、SSDにキャッシュ202が設けられ、SSDがデータ書き込み命令を受信した後、更に書き込み待ちデータをキャッシュ202に格納する。このように、変更頻度の高いホットスポットデータについて、当該ホットスポットデータがキャッシュ202に格納可能であるため、単にキャッシュ202におけるデータを変更すればよく、フラッシュメモリ203に対する消去・書き込みを繰り返す必要がなくなり、これにより書き込み拡大倍率が低減される。
以下では、上記SSDアクセス方法を詳細に記述する。SSDは、冗長のチェックデータを算出することでフォールトトレラントメカニズムを供給できる。その原理としては、キャッシュの各ストライプにおけるユーザデータに対してチェック演算を行ってチェックデータを取得し、チェックデータを一定のルールに従って異なる物理チャンネルにマウントされたフラッシュメモリに分散させる。このように、ある物理チャンネルが失効したときに、例えば、当該物理チャンネルに障害が発生し、または当該物理チャンネルにマウントされたフラッシュメモリに障害が発生したときに、データ回復を実現できる。また、ストライプにおけるあるセクタのデータ読取に失敗したときにも、データ回復を実現できる。
メモリ中で1つの記憶空間をキャッシュとして区分してもよい。当該記憶空間は、あるストライプのあるセクタのデータをキャッシュし、且つ当該ストライプの記録情報を記憶する。
本発明の実施例では、セクタ(sector)大きさをストライプ深度、物理チャンネル数Nをストライプ幅としてもよい。即ち、それぞれのストライプは、N個のセクタを含む。フォールトトレラントメカニズムが供給されるように、それぞれのストライプのN個のセクタは、ユーザデータを格納するためのN1個のユーザデータセクタと、チェックデータを格納するためのN2個のチェックデータセクタとを含む。N1+N2=N、N1>N2を満たす。例えば、1つのセクタの大きさは、4Kビットであってもよい。
1つの例示では、それぞれのストライプ(strip)におけるN個のセクタを0から番号付け、順にセクタ0、セクタ1、セクタ2、…、セクタN−1とし、且つ最後N2個のセクタをチェックデータセクタとして固定使用してもよい。
これに基づくと、本発明の実施例のSSDアクセス方法は、以下の内容を含む。
データ書き込み
図4に示すように、SSDは、ホスト(Host)から送信されたデータ書き込み命令を受信した後、書き込み操作を以下のように実行する。
ステップS401では、ホストから送信されたデータ書き込み命令を受信した後、当該データ書き込み命令に付加される書き込み待ちデータのLBAに対応する第1ストライプと第1セクタとを特定する。
LBAに対応する第1ストライプのインデックスstrip_indexと第1セクタの識別子sector_idとを特定する算出方法は、数式(1)及び数式(2)を参照してもよい。
Figure 0006823734
Figure 0006823734
ただし、
Figure 0006823734
は、小数点以下の切り捨て演算子を示し、%は、モジュロ演算子を示す。
数式(1)により、各LBAは、異なるストライプに配分可能である。そして、LBAの初期値から、N1個ずつの連続するLBAは、同一のストライプに配分可能である。
N1=4であるときに、数式(1)と数式(2)に応じて算出された各LBAに対応するストライプのインデックスとセクタの識別子は、表1に示される。
Figure 0006823734
ステップS401における書き込み待ちデータのLBAが14であると仮定すれば、数式(1)と数式(2)に応じて、当該書き込み待ちデータに対応する第1ストライプのインデックス:3および第1セクタの識別子:2は、特定される。
ステップS402では、キャッシュに第1ストライプが存在するか否かを判断し、そうであれば、ステップS403を実行し、そうでなければ、ステップS406を実行する。
例えば、メモリに複数のHashバケット(bucket)を予め作成してもよく、それぞれのHashバケットが複数のストライプのインデックスと記録情報のキャッシュアドレスを格納する。これにより、ステップS402においてキャッシュに第1ストライプが存在するか否かを判断する方法は、以下のようになる。
第1ストライプのインデックスおよび物理チャンネル数Nに対してハッシュ演算を行い、ハッシュ演算結果をバケットID(識別子)とし、メモリにおいて当該バケットIDでマークされるHashバケットを検索する。例えば、第1ストライプのインデックスとNとの和に対してCRC32(Cyclic Redundancy Check、巡回冗長検査)演算を行ってから、演算結果の下位18ビットをバケットIDとする。
検索されたHashバケットに第1ストライプのインデックスが存在するか否かを判断し、存在すれば、キャッシュに第1ストライプが存在すると特定し、当該Hashバケットから第1ストライプの記録情報キャッシュアドレスを取得してもよい。そうでなければ、キャッシュに第1ストライプが存在しないと特定する。
ステップS403では、キャッシュに第1セクタのデータが格納されたか否かを判断し、そうであれば、ステップS404を実行し、そうでなければ、ステップS405を実行する。
第1ストライプの記録情報キャッシュアドレスが取得された後、キャッシュにおいて第1ストライプの記録情報を検索し、当該取得された記録情報に基づいて、キャッシュに第1セクタのデータが格納されたか否かを判断してもよい。ストライプエージング時にキャッシュに格納された当該ストライプのデータをフラッシュメモリに書き込み可能であり、当該ストライプにおけるあるセクタのデータを変更する必要があるときにキャッシュへ当該セクタの変更後の新データを書き込む。したがって、キャッシュには、これらのセクタの変更後のデータ(最新データとも称する)が格納され、フラッシュメモリには、当該セクタの変更前のデータ(旧データとも称する)が格納される。よって、セクタのデータがキャッシュに格納されたかそれともフラッシュメモリに格納されたかを容易に判断するために、当該ストライプの記録情報には、対応する第1識別子と第2識別子をそれぞれのセクタへ設置してもよい。第1識別子と第2識別子は、連携してキャッシュおよびフラッシュメモリにおけるデータ記憶状況を表してもよい。例えば、セクタの第1識別子が有効、第2識別子が有効であるときに、キャッシュとフラッシュメモリとのいずれにも当該セクタのデータが記憶されたことは、表せる。しかし、キャッシュに記憶されたのが当該セクタの最新データであり、フラッシュメモリに記憶されたのが当該セクタの旧データである可能性はある。セクタの第1識別子が有効、第2識別子が無効であるときに、キャッシュに当該セクタのデータが記憶されたが、フラッシュメモリに当該セクタのデータが存在しないことは、表せる。セクタの第1識別子が無効、第2識別子が有効であるときに、キャッシュに当該セクタのデータが存在せず、フラッシュメモリに当該セクタのデータが記憶されたことは、表せる。セクタの第1識別子が無効、第2識別子が無効であるときに、キャッシュとフラッシュメモリとの何れにも当該セクタのデータが存在しないことは、表せる。
その中、ストライプにおけるあるセクタのデータがキャッシュに記憶されたときに、当該ストライプの記録情報には、当該セクタのデータがキャッシュに位置するキャッシュアドレスを記録する。
このように、ステップS403において第1セクタの第1識別子が有効であるか否かを判断してもよい。そうであれば、キャッシュに第1セクタのデータが格納されたと特定する。
ステップS404では、キャッシュに格納された第1セクタのデータを書き込み待ちデータとして更新する。その際、当該書き込み待ちデータは、第1セクタの最新データとなる。
例えば、ステップS404において、キャッシュに格納された第1セクタのデータを書き込み待ちデータに更新する方式は、以下のようになってもよい。つまり、書き込み待ちデータをキャッシュに書き込み、第1ストライプの記録情報に記録された第1セクタのデータのキャッシュアドレスを、当該書き込み待ちデータがキャッシュに書き込まれたキャッシュアドレスとして更新し、第1セクタに対応する第1識別子を有効として維持する。また、後で空きアドレスに他のデータが書き込まれるように、第1セクタの更新前のデータのキャッシュアドレスを当該空きアドレスとして記録してもよい。
例えば、キャッシュに格納された更新前データをDada A、Dada AのキャッシュアドレスをAddr A、当該書き込み待ちデータをDada Bと仮定すれば、ステップS404において、キャッシュに格納された第1セクタのデータDada Aを書き込み待ちデータDada Bに更新する方式は、下記のようになってもよい。つまり、Dada Bをキャッシュに書き込み、キャッシュアドレスがAddr Bであり、第1ストライプの記録情報に記録された第1セクタのデータのキャッシュアドレスをAddr AからAddr Bに更新し、また、第1セクタの更新前データDada AのキャッシュアドレスAddr Aを空きアドレスとして記録してもよい。このように、引き続きAddr Aに他のデータを書き込むことは容易になる。
第1ストライプにおける第1セクタのデータが頻繁に変更されると、上記ステップS401からステップS404を繰り返し実行する。ステップS404が実行されるたびに、キャッシュに格納された第1セクタのデータを更新する。更新前データは、その際、無効データとして見なされ、後で他のデータで上書きされることを待機する。第1ストライプエージングに至るとき、キャッシュに格納された第1ストライプのデータをフラッシュメモリに書き込む。具体的な方法は、図5を参照すればよく、ここで繰り返し説明しない。
ステップS405では、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込んでもよい。また、第1ストライプの記録情報に第1セクタのデータのキャッシュアドレスを当該書き込み待ちデータのキャッシュアドレスとして記録し、第1セクタの第1識別子を有効にセットしてもよい。
ステップS406では、第1ストライプを作成し、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込んでもよい。また、第1ストライプの記録情報に第1セクタのデータのキャッシュアドレスを当該書き込み待ちデータのキャッシュアドレスとして記録し、第1セクタの第1識別子を有効にセットしてもよい。
例えば、ストライプを作成する手順は、下記のようになってもよい。当該ストライプに対応するHashバケットに、当該ストライプのインデックスと記録情報のキャッシュアドレスを記録し、当該ストライプにおける、それぞれのセクタに対応する論理チャンネルを算出して当該ストライプの記録情報に記録し、当該ストライプの記録情報にそれぞれのセクタの第1識別子と第2識別子とをともに無効にセットする。
数式(3)に応じてチェックデータセクタに対応する論理チャンネルの識別子p_logic_channel_idを算出してもよい。
Figure 0006823734
数式(4)に応じてユーザデータセクタに対応する論理チャンネルの識別子d_logic_channel_idを算出してもよい。
Figure 0006823734
sector_idは、セクタの識別子を示し、strip_indexは、セクタの所在するストライプのインデックスを示し、%は、モジュロ演算子を示す。
SSDにおける論理チャンネルの総数が物理チャンネルの総数と同じであってもよい。初期時に、論理チャンネルと物理チャンネルとが1対1の対応関係を有してもよい。例えば、初期時に、論理チャンネル0が物理チャンネル0に対応し、論理チャンネル1が物理チャンネル1に対応し、それを持って類推してもよい。その後、SSDにおける物理チャンネルが失効する可能性がある。例えば、物理チャンネル自身に障害が発生し、あるいは当該チャンネルにマウントされたフラッシュメモリに障害が発生する。その際、失効した物理チャンネルに元々対応する論理チャンネルは、他の正常の物理チャンネルとは対応関係を確立してもよい。論理チャンネルと物理チャンネルとの間の対応関係は、チャンネルマッピング表に保存可能である。
数式(3)から分かるように、異なるストライプにおいて、チェックデータセクタに対応する論理チャンネルが全ての論理チャンネルに均一に分散されてもよい。このように、異なるストライプにおけるチェックデータが均一に全ての物理チャンネルにマウントされたフラッシュメモリに分散される。これにより、全てのチェックデータが同一物理チャンネルにマウントされたフラッシュメモリに格納されることによって当該フラッシュメモリの使用寿命へ影響を与えてしまうことは、有効に回避できる。
数式(3)と数式(4)から分かるように、同一ストライプにおけるそれぞれのセクタに対応する論理チャンネルも、全ての論理チャンネルに均一に分散されてもよい。これにより、SSDの並行アクセス能力が向上する。
図4に示す方法によると、SSDは、ホストから送信されたデータ書き込み命令を受信した後、先に書き込み待ちデータをキャッシュに格納してもよい。このように、変更頻度の高いホットスポットデータについて、単にキャッシュにおけるデータを変更すればよく、フラッシュメモリに対する消去・書き込みを繰り返す必要がなくなり、これによりSSDの書き込み拡大倍率が低減される。
ストライプエージング
また、キャッシュに何れか1つのストライプを作成した後、当該ストライプのインデックスをエージング連結リストに追加する。エージング連結リストにおけるそれぞれのストライプは、対応する優先度を有する。ストライプに対応する優先度は、キャッシュの記憶空間の大きさ、データ読み取り/書き込み命令数、ストライプ使用頻度、ストライプ直近使用時間、ストライプ有効データ量等のパラメータのうちの1つまたは複数の組み合わせに関連する。例えば、使用頻度が高いストライプの優先度は、低くされる。このように、よく変更される必要のあるデータをできるだけキャッシュに格納することが確保され、フラッシュメモリに対する消去・書き込み回数の低減も容易になる。例えば、エージング連結リストから1つの最も高い優先度のストライプを周期的に選択してエージングを行う。
あるストライプに対してエージングを行う必要が生じるとき、即ち、キャッシュにおける当該ストライプのデータをフラッシュメモリへ書き込むとき、SSDで実行されるステップは、図5に示され、以下のステップを含む。
ステップS501では、第2ストライプにおけるユーザデータセクタごとに、当該セクタのデータが当該セクタに対応するフラッシュメモリに記憶された場合に、当該セクタのデータをフラッシュメモリから読み取ってキャッシュに書き込む。
例えば、第2ストライプにおけるユーザデータセクタごとに、当該セクタの第1識別子が無効、第2識別子が有効である場合は、当該セクタのデータがフラッシュメモリに記憶されたことを意味する。当該セクタに対応するLBAを特定し、アドレス変換表から当該LBAに対応するPBA(Physical Block Address、物理ブロックアドレス)を検索し、検索されたPBAに基づいて当該セクタのデータをフラッシュメモリから読み取ってキャッシュに書き込んでもよい。また、更に、当該ユーザデータセクタの第1識別子を有効にセットし、第2ストライプの記録情報に当該ユーザデータセクタのデータのキャッシュアドレスを記録してもよい。ただし、セクタに対応するLBAを特定する方式は、下記のようになってもよい。つまり、ストライプのインデックスとセクタの識別子が既知である場合に、数式(1)と数式(2)に応じて当該セクタに対応するLBAを算出する。
このように、ステップS501の実行が完成された後、第2ストライプにおけるそれぞれのユーザデータセクタのデータは、いずれもキャッシュに格納される。
ステップS502では、キャッシュに格納された第2ストライプの全てのユーザデータセクタのデータに対してチェック演算を行ってチェックデータを取得し、当該チェックデータを第2ストライプのチェックデータセクタのデータとしてキャッシュに書き込む。その際、第2ストライプにおけるそれぞれのセクタ(ユーザデータセクタとチェックデータセクタを含む)のデータは、何れもキャッシュに格納される。
これで、ストライプにおけるデータをフラッシュメモリへ書き込む際、ストライプにおけるユーザデータに基づいてチェックデータを算出してもよい。
ステップS503では、キャッシュに格納された第2ストライプのそれぞれのセクタのデータをフラッシュメモリに書き込む。具体的に、第2ストライプにおけるそれぞれのセクタについて、当該セクタに対応する論理チャンネルを特定し、当該論理チャンネルに対応する物理チャンネルを検索し、当該セクタのデータをキャッシュから読み取って当該物理チャンネルにマウントされたフラッシュメモリに書き込み、書き込みの完成後、LBAとPBAとの対応関係をアドレス変換表に記録する。LBAは、ストライプのインデックスとセクタの識別子が既知である場合に、数式(1)と数式(2)に応じて取得可能であり、PBAは、データ書き込みの完成後で分かることができる。例えば、PBAは、フラッシュメモリのブロック、ページにおけるデータのシフト位置を認識できる。
キャッシュに格納された第2ストライプのそれぞれのセクタのデータをフラッシュメモリに書き込んだ後、キャッシュにおける第2ストライプを削除してもよい。例えば、第2ストライプを削除する方法は、具体的に下記のようになってもよい。つまり、Hashバケットに記録された第2ストライプのインデックスと記録情報のキャッシュアドレスを削除し、第2ストライプの記録情報を削除する。また、更に、後で他のデータを書き込むことが容易になるように、これらのデータのキャッシュアドレスを空きアドレスとして記録してもよい。
図5に示す方法によると、あるストライプのエージング時に、当該ストライプにおけるユーザデータとチェックデータとをともにフラッシュメモリに書き込む。
データ読取
図6に示すように、ホストから送信されたデータ読み取り命令が受信された後、SSDで実行される読取操作は、下記のようになる。
ステップS601では、ホストから送信されたデータ読み取り命令を受信した後、当該データ読み取り命令に付加される読み取り待ちデータのLBAに対応する第3ストライプと第3セクタとを特定する。
ステップS601では、数式(1)と数式(2)に応じてLBAに対応する第3ストライプと第3セクタとを特定してもよい。
ステップS602では、キャッシュに第3ストライプが存在するか否かを判断し、存在すれば、ステップS603を実行し、そうでなければ、ステップS606を実行する。
例えば、メモリに複数のHashバケットを予め作成してもよく、それぞれのHashバケットが複数のストライプのインデックスと記録情報のキャッシュアドレスを格納する。このように、ステップS602においてキャッシュに第3ストライプが存在するか否かを判断する具体的な方法は、下記のようになる。
第3ストライプのインデックスと物理チャンネル数Nとに対してハッシュ演算を行い、ハッシュ演算結果をバケットIDとし、メモリにおいて当該バケットIDでマークされるHashバケットを検索する。例えば、第3ストライプのインデックスとNとの和に対してCRC32演算を行い、その後演算結果の下位18ビットをバケットIDとする。
検索されたHashバケットに第3ストライプのインデックスが存在するか否かを判断し、存在すれば、キャッシュに第3ストライプが存在すると特定し、当該Hashバケットから第3ストライプの記録情報のキャッシュアドレスを取得してもよい。そうでなければ、キャッシュに第3ストライプが存在しないと特定する。
ステップS603では、第3セクタのデータがキャッシュに記憶されたか否かを判断する。そうであれば、ステップS604を実行し、そうでなければ、第3セクタのデータがフラッシュメモリに格納されたことを意味するため、ステップS606を実行する。
第3ストライプの記録情報のキャッシュアドレスが取得された後、キャッシュにおいて第3ストライプの記録情報を検索し、当該第3ストライプの記録情報に基づいて第3セクタのデータがキャッシュに記憶されたか否かを判断してもよい。例えば、当該第3ストライプの記録情報に記録された第3セクタの第1識別子が有効である場合に、第3セクタのデータがキャッシュに記憶されたと判断する。そうでなければ、第3セクタのデータがフラッシュメモリに記憶されたと判断する。しかし、第3セクタのデータがフラッシュメモリに記憶されたか否かは、第3ストライプの記録情報に記録された第3セクタの第2識別子に基づいて判断可能である。例えば、第3ストライプの記録情報に記録された第3セクタの第2識別子が有効である場合に、第3セクタのデータがフラッシュメモリに記憶されたと判断する。そうでなければ、フラッシュメモリに第3セクタのデータが記憶されていないと判断する。このような場合に、読み取り障害が発生する恐れがあり、ホストへ報告する必要がある可能性は存在する。
ステップS604では、キャッシュから第3セクタのデータを読み取った後、ステップS605を実行する。
例えば、第3ストライプの記録情報から第3セクタのデータのキャッシュアドレスを取得する。このように、当該キャッシュアドレスに基づいて第3セクタのデータを読み取る。
ステップS605では、読み出されたデータをホストへ返信する。
ステップS606では、フラッシュメモリから第3セクタのデータを読み取り、その後、ステップS605を実行する。
フラッシュメモリからデータを読み取る方式は、下記のようになってもよい。つまり、データのLBAに基づいて、アドレス変換表から当該LBAに対応するPBAを検索し、検索されたPBAに基づいてフラッシュメモリからデータを読み取る。
1つの例示によると、ステップS606においてフラッシュメモリから第3セクタのデータを読み取ることに失敗した場合に、第3ストライプのうち、第3セクタ以外の他のセクタのデータをフラッシュメモリから読み取り、読み出された他のセクタのデータを用いて第3セクタのデータを回復してホストへ返信する。
図6に示す方法によると、データの読み取り時、キャッシュに読み取り待ちデータが存在する場合に、キャッシュから当該データを読み取り、キャッシュに読み取り待ちデータが存在しない場合に、フラッシュメモリから当該データを読み取ってもよい。このように、キャッシュからデータを読み取る速度がより高速であるため、より高速のデータ読み書き速度をユーザへ供給可能である。
物理チャンネル失効時のデータ回復および移転
SSDの信頼性が向上されるように、ある物理チャンネルが失効したときに、サービスを中断せずに、失効した物理チャンネルにマウントされたフラッシュメモリに記憶されたデータを回復し、且つ、失効前のストライプ(以下、旧ストライプとも称する)におけるデータを新ストライプに移転する必要はある。データ回復および移転が完成された旧ストライプを特定するために、旧ストライプにおいてデータ回復および移転を完成した後、当該旧ストライプのインデックスをストライプ回復(strip_recover)表に記録してもよい。
例えば、図7に示すように、ある物理チャンネルの失効が検出されたときに、キャッシュにおけるそれぞれの旧ストライプに対して以下のステップを実行する。
ステップS701では、当該旧ストライプのうちの失効セクタ以外の他のセクタのデータをフラッシュメモリから読み取り、読み出されたデータ(ユーザデータとチェックデータを含む)を用いて失効セクタのデータを回復し、回復されたデータを失効セクタのデータとしてキャッシュに書き込む。
旧ストライプにおけるセクタの数が失効前の物理チャンネル数に等しい。ある物理チャンネルが失効したときに、当該物理チャンネルにバインディングされた論理チャンネルに対応するセクタも相応に失効する。その際、SSDにおける有効物理チャンネルの数に基づいて新たなストライプとセクタを再特定してもよい。
仮に、失効前、SSDにおける物理チャンネル数をNとすれば、その際のストライプが旧ストライプと呼ばれ、それぞれの旧ストライプのN個のセクタは、N1個のユーザデータセクタとN2個のチェックデータセクタを含む。
ある物理チャンネルが失効した後、SSDにおける物理チャンネル数がN−1であり、その際のストライプが新ストライプと呼ばれ、それぞれの新ストライプのN−1個のセクタは、N1−1個のユーザデータセクタと、N2個のチェックデータセクタを含んでもよい。その際、読み書きデータ操作を実行するときに、N1−1に準じてLBAに対応する新ストライプと新セクタとを特定してもよい。
ステップS702では、当該旧ストライプにおけるそれぞれの旧ユーザデータセクタについて、当該旧ユーザデータセクタのLBAに基づいて当該LBAに対応する新ストライプと新ユーザデータセクタとを特定してもよい。当該旧ユーザデータセクタのデータがキャッシュに記憶された場合に、当該旧ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転してもよい。当該旧ユーザデータセクタのデータがフラッシュメモリに記憶された場合に、当該ユーザデータセクタのデータをフラッシュメモリから読み取ってキャッシュに書き込み、当該旧ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転してもよい。
それから、旧ストライプのデータ移転の完成後、当該旧ストライプを削除し、当該旧ストライプのインデックスをstrip_recover表に記録してもよい。
例えば、数式(1)と数式(2)に応じて、LBAに対応する新ストライプと新ユーザデータセクタを特定する。
当該旧ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転する方式は、下記のようになってもよい。つまり、当該新ストライプの記録情報に、当該新ユーザデータセクタのデータのキャッシュアドレスを当該旧ユーザデータセクタのデータのキャッシュアドレスとして記録する。
明らかに、ステップS702では、当該旧ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転する前に、キャッシュに当該新ストライプが存在するか否かを判断する必要もある。存在しない場合に、当該新ストライプを先に作成し、その後、当該旧ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転する必要がある。
失効前よりも、失効後の物理チャンネル数が減っている。新ストライプにおけるセクタ数は、旧ストライプにおけるセクタ数よりも少なくなる。したがって、1つの新ストライプにおけるユーザデータは、1つまたは2つの旧ストライプからのものである。この1つまたは2つの旧ストライプは、当該新ストライプに関連する旧ストライプと呼称されてもよい。
実際の実施過程に、何れかの新ストライプが作成された後、当該新ストライプをエージング連結リストに追加してもよい。データ回復および移転過程において、エージング連結リストに旧ストライプも新ストライプも存在する。旧ストライプと新ストライプを容易に区別するために、エージング連結リストにそれぞれのストライプに対応するSSDモードをマークしてもよい。旧ストライプに対応するのが失効前のSSDモードであり、例えば、失効前のSSDモードがN1+N2モードである。新ストライプに対応するのが失効後のSSDモードであり、例えば、失効後のSSDモードが(N1−1)+N2モードである。所定の周期に達するとき、エージング連結リストから優先度の最も高い新ストライプを選択してエージングを行い、旧ストライプについてエージングを行う必要がない。なお、ある新ストライプに対してエージングを行う必要があるとき、当該新ストライプに関連する旧ストライプがデータ回復および移転を完成したか否かを先に判断する必要がある。データ回復および移転が完成されてから初めて当該新ストライプに対してエージングを行い、当該新ストライプのデータをフラッシュメモリに書き込む。データ回復および移転が完成されていない場合に、一旦当該新ストライプに対してエージングを行わず、関連する旧ストライプに対してデータ回復を行った後、旧ストライプのデータを新ストライプに移転する。これにより、旧ストライプのデータが破壊されてデータを回復できないことは、回避可能である。
ただし、ある新ストライプに関連する旧ストライプを特定する方法は、下記のようになってもよい。つまり、数式(1)に応じて当該新ストライプのインデックスが既知である場合に、当該新ストライプに対応するLBA範囲を特定し、当該LBA範囲中の最小値について、数式(1)に応じて対応する第1旧ストライプのインデックスを特定し、当該LBA範囲中の最大値について、数式(1)に応じて対応する第2旧ストライプのインデックスを特定し、第1旧ストライプのインデックスと第2旧ストライプのインデックスとが同じである場合に、当該新ストライプに関連する旧ストライプが1つしかなく、即ち、第1旧ストライプ(つまり、第2旧ストライプ)であると特定し、第1旧ストライプのインデックスと第2旧ストライプのインデックスとが異なり、且つ両者の差分が1である場合に、当該新ストライプに関連する旧ストライプが2つあり、それぞれ第1旧ストライプと第2旧ストライプであると特定する。
データ回復および移転過程に、SSDがホストから送信されたデータ読み取り命令を受信すると、当該データ読み取り命令に付加される読み取り待ちデータのLBAに対応する新ストライプを特定する。キャッシュに当該新ストライプが存在しない場合に、以下のステップを実行する。
当該LBAに対応する旧ストライプと旧セクタとを特定する。
キャッシュに当該旧ストライプが存在する場合に、当該旧セクタに対応する論理チャンネルにバインディングされた物理チャンネルが正常であるとき、キャッシュまたはメモリから当該旧セクタのデータを読み取ってホストに返信し、当該旧セクタに対応する論理チャンネルにバインディングされた物理チャンネルが失効したとき、当該旧ストライプのデータに対してデータ回復および移転を行う。
キャッシュに当該旧ストライプが存在しない場合に、当該旧セクタに対応する論理チャンネルにバインディングされた物理チャンネルが正常であるとき、アドレス変換表から当該LBAに対応するPBAを検索し、当該PBAに基づいてフラッシュメモリからデータを読み取ってホストに返信し、当該旧セクタに対応する論理チャンネルにバインディングされた物理チャンネルが失効したとき、当該旧ストライプのデータに対してデータ回復および移転を行う。
上記データ回復および移転方法により、物理チャンネルが失効したときに、失効した物理チャンネルにマウントされたフラッシュメモリに記憶されたデータに対して回復を行い、失効前のストライプにおけるデータを新ストライプへ移転することができるため、サービスの継続性が保証され、SSDのフォールトトレラント能力が向上し、サービスの高可用性(HA)が向上し、且つ、データ回復および移転過程に、SSDがデータ読み書きを正常に実行可能であり、新旧ストライプが並行に存在可能である。
上記SSDアクセス方法の実施例に対応し、本発明は、SSDアクセス装置の実施例を更に提供する。
本発明のSSDアクセス装置の実施例は、SSDに適用可能である。ハードウェア実装から言えば、図8は、本発明のSSDアクセス装置の所在するSSDの1種のハードウェア構造模式図である。当該SSDは、コントローラ10、3つ以上の物理チャンネル20、各物理チャンネル20にマウントされたフラッシュメモリ30、バス40、および機器読み取り可能な記憶媒体50を備える。ただし、機器読み取り可能な記憶媒体50から1つの記憶空間をキャッシュ70として区画してもよいが、これに限定されず、キャッシュ70は、他の実施形態もあり得る。コントローラ10は、機器読み取り可能な記憶媒体50における機器の実行可能な指令を読み取ることにより、上述したSSDアクセス方法を実行可能である。コントローラ10は、例えば、CPU等のプロセッサであってもよい。実の実施中に、当該SSDの実際の機能に基づき、他のハードウェアを備えてもよいが、ここで繰り返し説明しない。
本文における機器読み取り可能な記憶媒体50は、如何なる電気的なもの、磁気的なもの、光学的なものまたは他の物理的記憶装置であってもよく、情報(例えば、実行可能な指令、データ等)を含むか記憶可能である。例えば、機器読み取り可能な記憶媒体は、揮発性メモリ或いは不揮発性メモリ、例えば、RAM(Random Access Memory、ランダムアクセスメモリ)、フラッシュメモリ、記憶ドライバ(例えば、ハードディスクドライバ)、如何なるタイプの記憶ディスク、または上記1種或いは複数種の組み合わせであってもよい。
本発明のSSDアクセス装置60の実施例は、ソフトウェアにて実現されてもよく、ハードウェアまたはソフト・ハードウェアの組み合わせの方式にて実現されてもよい。ソフトウェアによる実現を例とすると、1つの論理意味での装置は、所在するSSDのコントローラ10が機器読み取り可能な記憶媒体50における機器の実行可能な指令を読み取って実行することで形成されるものである。
図9を参照すると、本発明の実施例のSSDアクセス装置60は、受信手段601および読み書き手段602を備える。
受信手段601は、SSDに対するデータ書き込み命令を受信し、データ書き込み命令に付加される書き込み待ちデータのLBAに対応する第1ストライプと第1セクタとを特定する。SSDがN個の物理チャンネルとキャッシュとを含み、それぞれの物理チャンネルにメモリがマウントされ、キャッシュが複数のストライプを含み、それぞれのストライプがN個のセクタを含み、Nが3以上の整数である。
読み書き手段602は、キャッシュに第1ストライプが存在する場合に、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込み、キャッシュに第1ストライプが存在しない場合に、第1ストライプを作成し、書き込み待ちデータを第1セクタのデータとしてキャッシュに書き込む。
受信手段601は、具体的に、以下の数式に応じてLBAに対応するストライプのインデックスstrip_indexとセクタ識別子sector_idとを特定する。
Figure 0006823734
N1は、1つのストライプにおける、ユーザデータを格納するためのセクタの数を示し、N1は、1より大きくNより小さい整数であり、
Figure 0006823734
は、小数点以下の切り捨て演算子を示し、%は、モジュロ演算子を示す。
図10に示すように、上記SSDアクセス装置60は、算出手段603を更に備える。
読み書き手段602は、第2ストライプにおけるユーザデータセクタごとに、当該セクタのデータがフラッシュメモリに記憶された場合に、当該セクタのデータをフラッシュメモリから読み取ってキャッシュに書き込む。
算出手段603は、キャッシュに格納された第2ストライプの全てのユーザデータセクタのデータに対してチェック演算を行い、第2ストライプのチェックデータセクタのチェックデータを取得する。
読み書き手段602は、算出手段603で算出された第2ストライプのチェックデータセクタのチェックデータをキャッシュに書き込むとともに、キャッシュに格納された第2ストライプの全てのセクタのデータをフラッシュメモリに書き込む。
読み書き手段602は、更に、以下の方式でキャッシュに格納された第2ストライプのセクタのデータをフラッシュメモリに書き込む。
つまり、当該セクタに対応する論理チャンネルを特定し、当該論理チャンネルに対応する物理チャンネルを検索し、キャッシュに格納された当該セクタのデータを当該物理チャンネルにマウントされたフラッシュメモリに書き込む。
当該セクタに対応する論理チャンネルを特定することは、
当該セクタがユーザデータを格納するためのユーザデータセクタであるときに、当該ユーザデータセクタに対応する論理チャンネルの識別子d_logic_channel_idを
Figure 0006823734
で特定することと、
当該セクタがチェックデータを格納するためのチェックデータセクタであるときに、当該チェックデータセクタに対応する論理チャンネルの識別子p_logic_channel_idをp_logic_channel_id=strip_index%Nで特定することとを含む。
sector_idは、セクタ識別子を示し、strip_indexは、セクタの所在するストライプのインデックスを示し、%は、モジュロ演算子を示す。
受信手段601は、更に、SSDに対するデータ読み取り命令を受信し、データ読み取り命令に付加される読み取り待ちデータのLBAに対応する第3ストライプと第3セクタとを特定する。
読み書き手段602は、更に、キャッシュが第3ストライプに存在し、且つ第3セクタのデータがキャッシュに記憶された場合に、キャッシュから第3セクタのデータを読み取り待ちデータとして読み取り、キャッシュに第3ストライプが存在し、且つ第3ストライプにおける第3セクタのデータがフラッシュメモリに格納した場合に、または、キャッシュに第3ストライプが存在しない場合に、第3セクタに対応するフラッシュメモリから第3セクタのデータを読み取り待ちデータとして読み取る。
図10に示すように、上記SSDアクセス装置60は、以下の手段を更に備える。
検出手段604は、物理チャンネルの状態を検出する。
回復移転手段605は、N個の物理チャンネルの1つが失効したと検出手段604によって検出されたときに、キャッシュにおける旧ストライプに対して以下のステップを実行する。
当該旧ストライプのうちの失効セクタ以外の他のセクタのデータをフラッシュメモリから読み取る。ただし、当該失効セクタは、前記失効した物理チャンネルにバインディングされた論理チャンネルに対応するセクタである。
読み出されたデータを用いて失効セクタのデータを回復する。
回復されたデータを失効セクタのデータとしてキャッシュに書き込む。
当該ストライプにおけるそれぞれのユーザデータセクタのLBAに対して当該LBAに対応する新ストライプと新ユーザデータセクタとを特定する。ただし、新ストライプにおけるセクタ数は、SSDにおける有効物理チャンネル数に等しい。
当該ユーザデータセクタのデータがキャッシュに記憶された場合に、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転する。
当該ユーザデータセクタのデータがフラッシュメモリに記憶された場合に、当該ユーザデータセクタのデータをフラッシュメモリから読み取ってキャッシュに書き込み、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転する。
上記装置における各手段の機能及び作用の実現手順は、上記方法の対応ステップの実現手順を詳細に参照すればよいため、ここで繰り返し説明しない。
装置実施例は、方法実施例に基本的に対応するため、その関連箇所が方法実施例部分の説明を参照すればよい。上述した装置実施例は、単に例示であり、その中、分離部品として説明される手段が物理的に分離されるものであってもよくでなくてもよい。また、手段として表示される部品は、物理手段であってもでなくてもよい。更に、それらの手段は、1箇所に位置してもよく、複数のネットワークセルに分散してもよい。実際の需要に応じてその中の一部または全部のモジュールを選択して本実施例の目的を果たすことが可能である。当業者は、進歩性に値する労働をせずに、理解して実施可能である。
説明すべきことは、本文に、第1と第2等のような関係用語は、単に1つの実体や操作を別の実体や操作と区分させるために用いられ、これらの実体や操作の間になんらかの実際的な関係や順序が存在するとは必ずしも要求やヒントすることではない。用語「含む」、「備える」またはほかの何れかの同義語が非排他的含有をカバーすることを狙う。このように、一シリーズの要素を有する手順、方法、物品または機器は、それらの要素を有するだけではなく、明確に挙げられていない他の要素も有し、またはこのような手順、方法、物品または機器に固有の要素も有する。更なる制限がない限り、語句「1つの…を含む」で限定される要素は、前記要素を有する手順、方法、物品または機器に他の同じ要素を更に有することをあえて排除しない。
以上では、本発明の実施例に供される方法と装置を詳細に説明した。本文では、具体的な例を用いて本発明の原理及び実施形態を説明したが、以上の実施例の説明が単に本発明の方法およびその要旨を容易に理解するために用いられる。それとともに、当業者であれば、本発明の思想に基づいて具体的な実施形態及び応用範囲を変更可能である。したがって、本明細書の内容は、本発明に対する制限として理解されるべきではない。

Claims (14)

  1. ソリッドステートディスク(SSD)アクセス方法であって、
    SSDに対するデータ書き込み命令を受信するステップであって、前記SSDがN個の物理チャンネルとキャッシュとを含み、前記物理チャンネルのそれぞれにフラッシュメモリがマウントされ、前記キャッシュが複数のストライプを含み、前記ストライプのそれぞれがN個のセクタを含み、Nが3以上の整数であるステップと、
    前記データ書き込み命令に付加される書き込み待ちデータの論理ブロックアドレス(LBA)に対応する第1ストライプと第1セクタとを特定するステップと、
    前記キャッシュに前記第1ストライプが存在する場合に、前記書き込み待ちデータを前記第1セクタのデータとして前記キャッシュに書き込むステップと、
    前記キャッシュに前記第1ストライプが存在しない場合に、前記第1ストライプを作成し、前記書き込み待ちデータを前記第1セクタのデータとして前記キャッシュに書き込むステップと、を含むことを特徴とするSSDアクセス方法。
  2. 前記データ書き込み命令に付加される書き込み待ちデータのLBAに対応する前記第1ストライプと前記第1セクタとを特定するステップは、
    前記第1ストライプのインデックスを
    Figure 0006823734

    で特定することと、
    前記第1セクタの識別子をsector_id=LBA%N1で特定することと、を含み、
    N1は、1つのストライプにおける、ユーザデータを格納するためのセクタの数を示し、N1は、1より大きくNより小さい整数であり、
    Figure 0006823734

    は、小数点以下の切り捨て演算子を示し、%は、モジュロ演算子を示すことを特徴とする請求項1に記載の方法。
  3. 第2ストライプにおけるユーザデータセクタごとに、当該セクタのデータがフラッシュメモリに記憶された場合に、当該セクタのデータを前記フラッシュメモリから読み取って前記キャッシュに書き込むステップと、
    前記キャッシュに格納された前記第2ストライプの全てのユーザデータセクタのデータに対してチェック演算を行って前記第2ストライプのチェックデータセクタのチェックデータを取得し、当該チェックデータを前記キャッシュに書き込むステップと、
    前記キャッシュに格納された前記第2ストライプの全てのセクタのデータをフラッシュメモリに書き込むステップと、を更に含むことを特徴とする請求項1に記載の方法。
  4. セクタに対応する論理チャンネルを特定することと、
    当該論理チャンネルに対応する物理チャンネルを検索することと、
    前記キャッシュに格納された当該セクタのデータを当該物理チャンネルにマウントされた前記フラッシュメモリに書き込むこととにより、
    前記キャッシュに格納された当該セクタのデータをフラッシュメモリに書き込むステップを更に含むことを特徴とする請求項1に記載の方法。
  5. 当該セクタに対応する論理チャンネルを特定することは、
    当該セクタがユーザデータを格納するためのユーザデータセクタであるときに、当該ユーザデータセクタに対応する論理チャンネルの識別子d_logic_channel_idを
    Figure 0006823734


    で特定することと、
    当該セクタがチェックデータを格納するためのチェックデータセクタであるときに、当該チェックデータセクタに対応する論理チャンネルの識別子p_logic_channel_idをp_logic_channel_id=strip_index%Nで特定することと、を含み、
    sector_idは、当該セクタの識別子を示し、strip_indexは、当該セクタの所在するストライプのインデックスを示し、%は、モジュロ演算子を示すことを特徴とする請求項4に記載の方法。
  6. 前記SSDに対するデータ読み取り命令を受信するステップと、
    前記データ読み取り命令に付加される読み取り待ちデータのLBAに対応する第3ストライプと第3セクタとを特定するステップと、
    前記キャッシュに前記第3ストライプが存在し、且つ前記第3セクタのデータが前記キャッシュに記憶された場合に、前記キャッシュから前記第3セクタのデータを前記読み取り待ちデータとして読み取るステップと、
    前記キャッシュに前記第3ストライプが存在し、且つ前記第3ストライプにおける前記第3セクタのデータがフラッシュメモリに格納された場合に、前記第3セクタに対応するフラッシュメモリから前記第3セクタのデータを前記読み取り待ちデータとして読み取るステップと、
    前記キャッシュに前記第3ストライプが存在しない場合に、前記第3セクタに対応するフラッシュメモリから前記第3セクタのデータを前記読み取り待ちデータとして読み取るステップと、を更に含むことを特徴とする請求項1に記載の方法。
  7. 前記N物理チャンネルの1つが失効したことが検出されたときに、前記キャッシュにおける旧ストライプに対して以下のステップを実行することを更に含み、前記以下のステップは、
    当該ストライプのうちの失効セクタ以外の他のセクタのデータを前記フラッシュメモリから読み取るステップであって、当該失効セクタが前記失効した物理チャンネルにバインディングされた論理チャンネルに対応するセクタであるステップと、
    読み出されたデータを用いて前記失効セクタのデータを回復するステップと、
    回復されたデータを前記失効セクタのデータとして前記キャッシュに書き込むステップと、
    当該ストライプにおけるそれぞれのユーザデータセクタのLBAに基づいて当該LBAに対応する新ストライプと新ユーザデータセクタとを特定するステップであって、当該新ストライプにおけるセクタの数が前記SSDにおける有効物理チャンネルの数に等しいステップと、
    当該ユーザデータセクタのデータが前記キャッシュに記憶された場合に、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転するステップと、
    当該ユーザデータセクタのデータが前記フラッシュメモリに記憶された場合に、当該ユーザデータセクタのデータを前記フラッシュメモリから読み取って前記キャッシュに書き込んだ後、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転するステップと、を含むことを特徴とする請求項1に記載の方法。
  8. ソリッドステートディスク(SSD)であって、
    複数のストライプ(前記ストライプのそれぞれがN個のセクタを含み、Nが3以上の整数である)を含むキャッシュと、
    N個の物理チャンネルと、
    それぞれの前記物理チャンネルにマウントされたフラッシュメモリと、
    コントローラと、
    機器の実行可能な指令が記憶された機器読み取り可能な記憶媒体と、を備え、
    前記コントローラは、前記機器の実行可能な指令を読み取って実行することにより、
    前記SSDに対するデータ書き込み命令を受信することと、
    前記データ書き込み命令に付加される書き込み待ちデータの論理ブロックアドレス(LBA)に対応する第1ストライプと第1セクタとを特定することと、
    前記キャッシュに前記第1ストライプが存在する場合に、前記書き込み待ちデータを前記第1セクタのデータとして前記キャッシュに書き込むことと、
    前記キャッシュに前記第1ストライプが存在しない場合に、前記第1ストライプを作成し、前記書き込み待ちデータを前記第1セクタのデータとして前記キャッシュに書き込むことと、を実行させることを特徴とするSSD。
  9. 前記データ書き込み命令に付加される書き込み待ちデータのLBAに対応する前記第1ストライプと前記第1セクタとを特定する際には、前記コントローラは、更に、前記機器の実行可能な指令により、
    前記第1ストライプのインデックスを
    Figure 0006823734

    で特定することと、
    前記第1セクタの識別子をsector_id=LBA%N1で特定することと、を実行させ、
    N1は、1つのストライプにおける、ユーザデータを格納するためのセクタの数を示し、N1は、1より大きくNより小さい整数であり、
    Figure 0006823734

    は、小数点以下の切り捨て演算子を示し、%は、モジュロ演算子を示すことを特徴とする請求項8に記載のSSD。
  10. 前記コントローラは、更に、前記機器の実行可能な指令により、
    第2ストライプにおけるユーザデータセクタごとに、当該セクタのデータがフラッシュメモリに記憶された場合に、当該セクタのデータを前記フラッシュメモリから読み取って前記キャッシュに書き込むことと、
    前記キャッシュに格納された前記第2ストライプの全てのユーザデータセクタのデータに対してチェック演算を行って前記第2ストライプのチェックデータセクタのチェックデータを取得し、当該チェックデータを前記キャッシュに書き込むことと、
    前記キャッシュに格納された前記第2ストライプの全てのセクタのデータをフラッシュメモリに書き込むことと、を実行させることを特徴とする請求項8に記載のSSD。
  11. 前記コントローラは、更に、前記機器の実行可能な指令で、
    セクタに対応する論理チャンネルを特定することと、
    当該論理チャンネルに対応する物理チャンネルを検索することと、
    前記キャッシュに格納された当該セクタのデータを当該物理チャンネルにマウントされた前記フラッシュメモリに書き込むこととにより、
    前記キャッシュに格納された当該セクタのデータをフラッシュメモリに書き込むことを実行させることを特徴とする請求項8に記載のSSD。
  12. 当該セクタに対応する論理チャンネルを特定する際には、前記コントローラは、更に、前記機器の実行可能な指令により、
    当該セクタがユーザデータを格納するためのユーザデータセクタであるときに、当該ユーザデータセクタに対応する論理チャンネルの識別子d_logic_channel_idを
    Figure 0006823734

    で特定することと、
    当該セクタがチェックデータを格納するためのチェックデータセクタであるときに、当該チェックデータセクタに対応する論理チャンネルの識別子p_logic_channel_idを
    p_logic_channel_id=strip_index%Nで特定することと、を実行させ、
    sector_idは、当該セクタの識別子を示し、strip_indexは、当該セクタの所在するストライプのインデックスを示し、%は、モジュロ演算子を示すことを特徴とする請求項11に記載のSSD。
  13. 前記コントローラは、更に、前記機器の実行可能な指令により、
    前記SSDに対するデータ読み取り命令を受信することと、
    前記データ読み取り命令に付加される読み取り待ちデータのLBAに対応する第3ストライプと第3セクタとを特定することと、
    前記キャッシュに前記第3ストライプが存在し、且つ前記第3セクタのデータが前記キャッシュに記憶された場合に、前記キャッシュから前記第3セクタのデータを前記読み取り待ちデータとして読み取ることと、
    前記キャッシュに前記第3ストライプが存在し、且つ前記第3ストライプにおける前記第3セクタのデータがフラッシュメモリに格納された場合に、前記第3セクタに対応するフラッシュメモリから前記第3セクタのデータを前記読み取り待ちデータとして読み取ることと、
    前記キャッシュに前記第3ストライプが存在しない場合に、前記第3セクタに対応するフラッシュメモリから前記第3セクタのデータを前記読み取り待ちデータとして読み取ることと、を実行させることを特徴とする請求項8に記載のSSD。
  14. 前記コントローラは、更に、前記機器の実行可能な指令により、
    前記N物理チャンネルの1つが失効したことが検出されたときに、前記キャッシュにおける旧ストライプに対して以下のステップを実行することを実行させ、前記以下のステップは、
    当該ストライプのうちの失効セクタ以外の他のセクタのデータを前記フラッシュメモリから読み取るステップであって、当該失効セクタが前記失効した物理チャンネルにバインディングされた論理チャンネルに対応するセクタであるステップと、
    読み出されたデータを用いて前記失効セクタのデータを回復するステップと、
    回復されたデータを前記失効セクタのデータとして前記キャッシュに書き込むステップと、
    当該ストライプにおけるそれぞれのユーザデータセクタのLBAに基づいて当該LBAに対応する新ストライプと新ユーザデータセクタとを特定するステップであって、当該新ストライプにおけるセクタの数が前記SSDにおける有効物理チャンネルの数に等しいステップと、
    当該ユーザデータセクタのデータが前記キャッシュに記憶された場合に、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転するステップと、
    当該ユーザデータセクタのデータが前記フラッシュメモリに記憶された場合に、当該ユーザデータセクタのデータを前記フラッシュメモリから読み取って前記キャッシュに書き込んだ後、当該ユーザデータセクタのデータを当該新ストライプにおける当該新ユーザデータセクタに移転するステップと、を含むことを特徴とする請求項8に記載のSSD。
JP2019556277A 2017-04-14 2018-04-12 ソリッドステートディスクアクセス Active JP6823734B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710244793.5A CN108255414B (zh) 2017-04-14 2017-04-14 固态硬盘访问方法及装置
CN201710244793.5 2017-04-14
PCT/CN2018/082740 WO2018188618A1 (zh) 2017-04-14 2018-04-12 固态硬盘访问

Publications (2)

Publication Number Publication Date
JP2020517026A JP2020517026A (ja) 2020-06-11
JP6823734B2 true JP6823734B2 (ja) 2021-02-03

Family

ID=62721790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019556277A Active JP6823734B2 (ja) 2017-04-14 2018-04-12 ソリッドステートディスクアクセス

Country Status (5)

Country Link
US (1) US11126377B2 (ja)
EP (1) EP3598290B1 (ja)
JP (1) JP6823734B2 (ja)
CN (1) CN108255414B (ja)
WO (1) WO2018188618A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395216A (zh) * 2019-07-31 2021-02-23 北京百度网讯科技有限公司 用于存储管理的方法、装置、设备和计算机可读存储介质
JP7491545B2 (ja) 2019-12-27 2024-05-28 Necソリューションイノベータ株式会社 情報処理方法
CN112130762B (zh) * 2020-09-07 2024-01-26 上海威固信息技术股份有限公司 一种固态硬盘数据存储与操作方法
CN112817533A (zh) * 2021-01-29 2021-05-18 深圳忆联信息系统有限公司 Ssd管理方法、装置计算机设备及存储介质
US11733925B2 (en) * 2021-08-30 2023-08-22 Micron Technology, Inc. Enabling multiple data capacity modes at a memory sub-system
CN113918485B (zh) * 2021-10-12 2023-04-11 广东省高峰科技有限公司 一种闪存资料防丢失方法、装置、设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204872A1 (en) * 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
JP4440803B2 (ja) 2005-03-03 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
CN101727295B (zh) * 2008-10-31 2012-01-04 西安奇维测控科技有限公司 一种基于虚拟块闪存地址映射的数据写入及读出方法
CN101840364A (zh) * 2010-01-29 2010-09-22 成都市华为赛门铁克科技有限公司 一种恢复数据的方法及存储装置
CN101819509A (zh) * 2010-04-19 2010-09-01 清华大学深圳研究生院 一种固态硬盘读写方法
JP2012064158A (ja) * 2010-09-17 2012-03-29 Toshiba Corp メモリ管理装置及びメモリ管理方法
CN102779548A (zh) * 2011-05-09 2012-11-14 深圳市晶凯电子技术有限公司 用闪存介质作为存储体进行分级管理的固态存储装置及其构建方法
CN102713828B (zh) * 2011-12-21 2015-07-08 华为技术有限公司 提供多设备镜像和条带功能的磁盘缓存方法、设备和系统
US9390020B2 (en) * 2012-07-06 2016-07-12 Seagate Technology Llc Hybrid memory with associative cache
US20150160999A1 (en) 2012-07-13 2015-06-11 Samsung Electronics Co., Ltd. Solid state drive controller, solid state drive, data processing method of solid state drive, multi-channel solid state drive, raid controller and computer-readable recording medium having recorded therein computer program for providing sequence information to solid state drive
US11037625B2 (en) * 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
US9811531B2 (en) * 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US9703699B2 (en) * 2014-09-17 2017-07-11 Kabushiki Kaisha Toshiba Hybrid-HDD policy for what host-R/W data goes into NAND
KR102368071B1 (ko) * 2014-12-29 2022-02-25 삼성전자주식회사 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템
KR20160083762A (ko) * 2015-01-02 2016-07-12 삼성전자주식회사 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
EP3367251B1 (en) * 2016-12-29 2023-06-21 Huawei Technologies Co., Ltd. Storage system and solid state hard disk

Also Published As

Publication number Publication date
EP3598290A1 (en) 2020-01-22
CN108255414A (zh) 2018-07-06
EP3598290B1 (en) 2024-02-28
JP2020517026A (ja) 2020-06-11
CN108255414B (zh) 2020-04-03
WO2018188618A1 (zh) 2018-10-18
EP3598290A4 (en) 2020-04-08
US11126377B2 (en) 2021-09-21
US20200159458A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
JP6823734B2 (ja) ソリッドステートディスクアクセス
JP5907739B2 (ja) 不揮発性記憶装置
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
EP3399421B1 (en) Flash memory device access method and apparatus
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
US9990277B2 (en) System and method for efficient address translation of flash memory device
TWI494761B (zh) 分割實體區塊之方法及記憶體系統
EP3376394B1 (en) Method and device for processing access request, and computer system
CN110678836A (zh) 用于键值存储的持久性存储器
KR100526178B1 (ko) 플래시 메모리 액세스 장치 및 방법
EP3754508B1 (en) Access request processing method and apparatus, and computer system
US20100318726A1 (en) Memory system and memory system managing method
US20200133543A1 (en) Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications
KR20110139956A (ko) 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
KR20170065427A (ko) Ssd의 데이터 프로세싱 방법 및 장치
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
CN107273306B (zh) 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN115904255A (zh) 一种数据请求方法、装置、设备及存储介质
WO2016206070A1 (zh) 一种文件更新方法及存储设备
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
EP2381354A2 (en) Data recording device
JP2011022963A (ja) 情報処理装置および情報処理方法
US20210390048A1 (en) Method and system for facilitating log-structure data organization
JP2017045177A (ja) ストレージシステム、ホスト計算機、ストレージコントローラ及びデータ重複検出方法
KR101379161B1 (ko) 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210108

R150 Certificate of patent or registration of utility model

Ref document number: 6823734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250