JP7496841B2 - 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置 - Google Patents
読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置 Download PDFInfo
- Publication number
- JP7496841B2 JP7496841B2 JP2021578160A JP2021578160A JP7496841B2 JP 7496841 B2 JP7496841 B2 JP 7496841B2 JP 2021578160 A JP2021578160 A JP 2021578160A JP 2021578160 A JP2021578160 A JP 2021578160A JP 7496841 B2 JP7496841 B2 JP 7496841B2
- Authority
- JP
- Japan
- Prior art keywords
- write
- processor
- page
- data
- write request
- 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
Links
- 238000000926 separation method Methods 0.000 title description 4
- 230000015654 memory Effects 0.000 claims description 247
- 238000000034 method Methods 0.000 claims description 186
- 238000003860 storage Methods 0.000 claims description 100
- 230000004044 response Effects 0.000 claims description 48
- 230000000153 supplemental effect Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 19
- 238000009738 saturating Methods 0.000 claims description 5
- 238000013459 approach Methods 0.000 description 151
- 230000000875 corresponding effect Effects 0.000 description 78
- 238000013500 data storage Methods 0.000 description 66
- 238000010586 diagram Methods 0.000 description 40
- 238000012545 processing Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 20
- 238000002955 isolation Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000006872 improvement Effects 0.000 description 9
- 238000013403 standard screening design Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 238000005204 segregation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/263—Network storage, e.g. SAN or NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
この説明のSSDメモリ・コントローラの文脈において、ガベージ・コレクションは、将来の使用のために回収するデータ・ブロックを識別し、その中の依然として有効な全てのページを再配置するプロセスを含むことができる。さらに、特定のコントローラおよび/または対応するそれぞれのガベージ・コレクション動作単位に応じて、回収もしくは再配置する論理消去ブロック(logical erase block)(LEB)または回収および再配置するLEBを識別することができる。通常は、1つのLEBが1つのブロック・ストライプに対応するが、代替実施態様は、LEBを構築する固定された数のブロック・ストライプまたは単一のブロックも考慮することができる。
この文脈では、データの「書込みヒート」が、データが更新される(例えば新しいデータで書き換えられる)レート(rate)(例えば頻度)を指す。「ホット(hot)」とみなされるメモリ・ブロックは、頻繁に更新されるレートを有する傾向があり、「コールド(cold)」とみなされるメモリ・ブロックは、ホット・ブロックよりも低い更新レートを有する。
書込み割振り(write allocation)は、オープンLEBのフリー位置(free location)に書込みリクエストのデータを配置することを含む。LEB内の全てのページが書き込まれるとすぐに、そのLEBは閉じられ、占拠されたLEBを保持するプールに入れられる。占拠プール内のLEBは通常、ガベージ・コレクションに対して好適になる。オープンLEBの数は普通、限定されており、閉じられたLEBは、直ちにまたは若干の遅延の後に、開かれた新しいLEBに入れ替えることができる。
次に図4を参照すると、概念図400は、「プレーン0」から「プレーンM」の標識が付けられたM+1個の一組の集約プレーン(aggregated plane)を含む。集約プレーンは、異なるチャネル上の同じプレーン索引を有する全ての物理プレーンからなる。本明細書では集約プレーンを単にプレーンとも呼ぶことに留意すべきである。
図4をさらに参照すると、集約プレーン0の分解図に示されたそれぞれのページ・ブロックは、キャッシュ・アーキテクチャ内に実装されたときに、1つのチャネルからの唯一のブロックを構成することができる。同様に、それぞれのチャネルは、ブロック・ストライプを形成する単一の個々のブロックに寄与する。例えば、概念図400を参照すると、チャネル0からのブロック10は、その中の全てのページ(ページ0からページN)を含み、チャネル4からのブロック41はその中の全てのページに対応する。以下同様である。
Claims (25)
- コンピュータ実施方法であって、
書込みリクエストを受け取ること、
前記書込みリクエストをデステージ・バッファに蓄積すること、
前記書込みリクエストに対応するそれぞれの論理ページの現在の読出しヒート値を決定すること、
前記書込みリクエストに対応するそれぞれの論理ページの前記現在の読出しヒート値に基づいて、それぞれの前記書込みリクエストをそれぞれの書込み待ち行列に割り当てることであって、それぞれの前記書込み待ち行列が、物理ページを含む異なるページ・ストライプに対応し、それぞれの前記ページ・ストライプに含まれる前記物理ページが同じタイプである、前記割り当てること、および
前記書込み待ち行列から、それぞれの前記ページ・ストライプに、前記書込みリクエストの中のデータをデステージすること
を含むコンピュータ実施方法。 - 所与の書込み待ち行列が、それに対応するページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、
前記所与の書込み待ち行列が、それに対応する前記ページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含まないと判定したことに応答して、隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、ならびに
前記隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むと判定したことに応答して、前記所与の書込み待ち行列および前記隣接する書込み待ち行列から、前記所与の書込み待ち行列に対応する前記ページ・ストライプに、前記書込みリクエストの中の前記データをデステージすること
を含む、請求項1に記載のコンピュータ実施方法。 - 1つまたは複数の論理ページに記憶されたデータに対応する読出しリクエストを受け取ること、
前記1つまたは複数の論理ページのそれぞれの論理ページに関連する読出しヒート値を増分すること、および
前記読出しリクエストを履行すること
を含む、請求項1に記載のコンピュータ実施方法。 - 前記書込みリクエストは、新しい書込みリクエストであるホスト書込みリクエストであり、
前記ホスト書込みリクエストを受け取ること、
前記ホスト書込みリクエストを前記デステージ・バッファに記憶すること、
前記デステージ・バッファ内のそれぞれの前記ホスト書込みリクエストを補足書込み待ち行列に割り当てること、
前記補足書込み待ち行列から、前記ページ・ストライプのうちのいずれかのページ・ストライプ内の物理ページに、前記ホスト書込みリクエストの中のデータをデステージすること、および
前記ホスト書込みリクエストの中の前記データがデステージされた前記物理ページにマップする論理ページの前記現在の読出しヒート値をリセットすること
を含む、請求項1に記載のコンピュータ実施方法。 - 前記物理ページが、クアッドレベル・セル(QLC)メモリ内に実装されており、物理ページの前記タイプが、下位ページ、上位ページ、エクストラ・ページおよびトップ・ページを含む、請求項1に記載のコンピュータ実施方法。
- それぞれの前記現在の読出しヒート値が、2ビット飽和カウンタを使用して維持される、請求項1に記載のコンピュータ実施方法。
- プログラム命令が実装されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、
プロセッサによって、書込みリクエストを受け取ること、
前記プロセッサによって、前記書込みリクエストをデステージ・バッファに蓄積すること、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの現在の読出しヒート値を決定すること、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの前記現在の読出しヒート値に基づいて、それぞれの前記書込みリクエストをそれぞれの書込み待ち行列に割り当てることであって、それぞれの前記書込み待ち行列が、物理ページを含む異なるページ・ストライプに対応し、それぞれの前記ページ・ストライプに含まれる前記物理ページが同じタイプである、前記割り当てること、および
前記プロセッサによって、前記書込み待ち行列から、それぞれの前記ページ・ストライプに、前記書込みリクエストの中のデータをデステージすること
を前記プロセッサに実行させるように、前記プロセッサによって読出し可能もしくは実行可能またはその両方である、コンピュータ・プログラム製品。 - 前記プログラム命令が、
前記プロセッサによって、所与の書込み待ち行列が、それに対応するページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、
前記所与の書込み待ち行列が、それに対応する前記ページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含まないと判定したことに応答して、隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを、前記プロセッサによって判定すること、ならびに
前記隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むと判定したことに応答して、前記プロセッサによって、前記所与の書込み待ち行列および前記隣接する書込み待ち行列から、前記所与の書込み待ち行列に対応する前記ページ・ストライプに、前記書込みリクエストの中の前記データをデステージすること
を前記プロセッサに実行させるように、前記プロセッサによって読出し可能もしくは実行可能またはその両方である、請求項7に記載のコンピュータ・プログラム製品。 - 前記プログラム命令が、
前記プロセッサによって、1つまたは複数の論理ページに記憶されたデータに対応する読出しリクエストを受け取ること、
前記プロセッサによって、前記1つまたは複数の論理ページのそれぞれの論理ページに関連する読出しヒート値を増分すること、および
前記プロセッサによって、前記読出しリクエストを履行すること
を前記プロセッサに実行させるように、前記プロセッサによって読出し可能もしくは実行可能またはその両方である、請求項7に記載のコンピュータ・プログラム製品。 - 前記書込みリクエストは、新しい書込みリクエストであるホスト書込みリクエストであり、
前記プログラム命令が、
前記プロセッサによって、前記ホスト書込みリクエストを受け取ること、
前記プロセッサによって、前記ホスト書込みリクエストを前記デステージ・バッファに記憶すること、
前記プロセッサによって、前記デステージ・バッファ内のそれぞれの前記ホスト書込みリクエストを補足書込み待ち行列に割り当てること、
前記プロセッサによって、前記補足書込み待ち行列から、前記ページ・ストライプのうちのいずれかのページ・ストライプ内の物理ページに、前記ホスト書込みリクエストの中のデータをデステージすること、および
前記プロセッサによって、前記ホスト書込みリクエストの中の前記データがデステージされた前記物理ページにマップする論理ページの前記現在の読出しヒート値をリセットすること
を前記プロセッサに実行させるように、前記プロセッサによって読出し可能もしくは実行可能またはその両方である、請求項7に記載のコンピュータ・プログラム製品。 - 前記物理ページが、クアッドレベル・セル(QLC)メモリ内に実装されており、物理ページの前記タイプが、下位ページ、上位ページ、エクストラ・ページおよびトップ・ページを含む、請求項7に記載のコンピュータ・プログラム製品。
- それぞれの前記現在の読出しヒート値が、2ビット飽和カウンタを使用して維持される、請求項7に記載のコンピュータ・プログラム製品。
- システムであって、
データを記憶するように構成された複数の不揮発性ランダム・アクセス・メモリ(NVRAM)ブロックと、
プロセッサおよび論理であって、前記論理が、前記プロセッサと統合されている、もしくは前記プロセッサによって実行可能である、またはその両方である、前記プロセッサおよび論理と
を備え、前記論理が、
前記プロセッサによって、書込みリクエストを受け取ること、
前記プロセッサによって、前記書込みリクエストをデステージ・バッファに蓄積すること、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの現在の読出しヒート値を決定すること、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの前記現在の読出しヒート値に基づいて、それぞれの前記書込みリクエストをそれぞれの書込み待ち行列に割り当てることであって、それぞれの前記書込み待ち行列が、物理ページを含む異なるページ・ストライプに対応し、それぞれの前記ページ・ストライプに含まれる前記物理ページが同じタイプである、前記割り当てること、および
前記プロセッサによって、前記書込み待ち行列から、それぞれの前記ページ・ストライプに、前記書込みリクエストの中のデータをデステージすること
を実行するように構成されている、システム。 - 前記論理が、
前記プロセッサによって、所与の書込み待ち行列が、それに対応するページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、
前記所与の書込み待ち行列が、それに対応する前記ページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含まないと判定したことに応答して、隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを、前記プロセッサによって判定すること、ならびに
前記隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むと判定したことに応答して、前記プロセッサによって、前記所与の書込み待ち行列および前記隣接する書込み待ち行列から、前記所与の書込み待ち行列に対応する前記ページ・ストライプに、前記書込みリクエストの中の前記データをデステージすること
を実行するように構成されている、請求項13に記載のシステム。 - 前記論理が、
前記プロセッサによって、1つまたは複数の論理ページに記憶されたデータに対応する読出しリクエストを受け取ること、
前記プロセッサによって、前記1つまたは複数の論理ページのそれぞれの論理ページに関連する読出しヒート値を増分すること、および
前記プロセッサによって、前記読出しリクエストを履行すること
を実行するように構成されている、請求項13に記載のシステム。 - 前記書込みリクエストは、新しい書込みリクエストであるホスト書込みリクエストであり、
前記論理が、
前記プロセッサによって、前記ホスト書込みリクエストを受け取ること、
前記プロセッサによって、前記ホスト書込みリクエストを前記デステージ・バッファに記憶すること、
前記プロセッサによって、前記デステージ・バッファ内のそれぞれの前記ホスト書込みリクエストを補足書込み待ち行列に割り当てること、
前記プロセッサによって、前記補足書込み待ち行列から、前記ページ・ストライプのうちのいずれかのページ・ストライプ内の物理ページに、前記ホスト書込みリクエストの中のデータをデステージすること、および
前記プロセッサによって、前記ホスト書込みリクエストの中の前記データがデステージされた前記物理ページにマップする論理ページの前記現在の読出しヒート値をリセットすること
を実行するように構成されている、請求項13に記載のシステム。 - 前記物理ページが、クアッドレベル・セル(QLC)メモリ内に実装されており、物理ページの前記タイプが、下位ページ、上位ページ、エクストラ・ページおよびトップ・ページを含む、請求項13に記載のシステム。
- それぞれの前記現在の読出しヒート値が、2ビット飽和カウンタを使用して維持される、請求項13に記載のシステム。
- コンピュータ実施方法であって、
書込みリクエストを受け取ること、
前記書込みリクエストをデステージ・バッファに蓄積すること、
それぞれの前記書込みリクエストがホスト書込みリクエストであるかどうかを判定すること、
書込みリクエストがホスト書込みリクエストではないと判定したことに応答して、
前記書込みリクエストに対応するそれぞれの論理ページの現在の読出しヒート値を決定すること、
前記書込みリクエストに対応するそれぞれの論理ページの前記現在の読出しヒート値に基づいて、前記書込みリクエストを書込み待ち行列に割り当てることであって、それぞれの前記書込み待ち行列が、物理ページを含む異なるページ・ストライプに対応し、それぞれの前記ページ・ストライプに含まれる前記物理ページが同じタイプである、前記割り当てること、および
書込みリクエストがホスト書込みリクエストであると判定したことに応答して、前記書込みリクエストを補足書込み待ち行列に割り当てること
を含むコンピュータ実施方法。 - 前記補足書込み待ち行列から、シングルレベル・セル(SLC)メモリ内に実装された物理ページを含むページ・ストライプ内の物理ページに、前記ホスト書込みリクエストの中のデータをデステージすること
を含む、請求項19に記載のコンピュータ実施方法。 - 前記書込み待ち行列から、それらのそれぞれのページ・ストライプに、前記書込みリクエストの中のデータをデステージすること
を含み、前記デステージすることが、
所与の書込み待ち行列が、それに対応するページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、
前記所与の書込み待ち行列が、それに対応する前記ページ・ストライプを満たすのに十分なデータを、それぞれの前記書込みリクエストの中に含まないと判定したことに応答して、隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むかどうかを判定すること、ならびに
前記隣接する書込み待ち行列が、前記所与の書込み待ち行列に対応する前記ページ・ストライプを満たすことを完了するのに十分なデータを、それぞれの前記書込みリクエストの中に含むと判定したことに応答して、前記所与の書込み待ち行列および前記隣接する書込み待ち行列から、前記所与の書込み待ち行列に対応する前記ページ・ストライプに、前記書込みリクエストの中の前記データをデステージすること
によって実行される、請求項19に記載のコンピュータ実施方法。 - マルチビットパーセル・メモリがクアッドレベル・セル(QLC)メモリであり、物理ページの前記タイプが、下位ページ、上位ページ、エクストラ・ページおよびトップ・ページを含む、請求項21に記載のコンピュータ実施方法。
- 1つまたは複数の論理ページに記憶されたデータに対応する読出しリクエストを受け取ること、
前記1つまたは複数の論理ページのそれぞれの論理ページに関連する読出しヒート値を増分すること、および
前記読出しリクエストを履行すること
を含む、請求項19に記載のコンピュータ実施方法。 - それぞれの前記現在の読出しヒート値が、2ビット飽和カウンタを使用して維持される、請求項19に記載のコンピュータ実施方法。
- プログラム命令が実装されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、
プロセッサによって、書込みリクエストを受け取ること、
前記プロセッサによって、前記書込みリクエストをデステージ・バッファに蓄積すること、
前記プロセッサによって、それぞれの前記書込みリクエストがホスト書込みリクエストであるかどうかを判定すること、
書込みリクエストがホスト書込みリクエストではないと判定したことに応答して、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの現在の読出しヒート値を決定すること、
前記プロセッサによって、前記書込みリクエストに対応するそれぞれの論理ページの前記現在の読出しヒート値に基づいて、前記書込みリクエストを書込み待ち行列に割り当てることであって、それぞれの前記書込み待ち行列が、物理ページを含む異なるページ・ストライプに対応し、それぞれの前記ページ・ストライプに含まれる前記物理ページが同じタイプである、前記割り当てること、および
書込みリクエストがホスト書込みリクエストであると判定したことに応答して、前記プロセッサによって、前記書込みリクエストを補足書込み待ち行列に割り当てること
を前記プロセッサに実行させるように、前記プロセッサによって読出し可能もしくは実行可能またはその両方である、コンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/508,140 US10977181B2 (en) | 2019-07-10 | 2019-07-10 | Data placement in write cache architecture supporting read heat data separation |
US16/508,140 | 2019-07-10 | ||
PCT/IB2020/056017 WO2021005445A1 (en) | 2019-07-10 | 2020-06-25 | Data placement in write cache architecture supporting read heat data separation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022539788A JP2022539788A (ja) | 2022-09-13 |
JP7496841B2 true JP7496841B2 (ja) | 2024-06-07 |
Family
ID=74102302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021578160A Active JP7496841B2 (ja) | 2019-07-10 | 2020-06-25 | 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10977181B2 (ja) |
JP (1) | JP7496841B2 (ja) |
CN (1) | CN114127677B (ja) |
DE (1) | DE112020003290B4 (ja) |
GB (1) | GB2600310B (ja) |
WO (1) | WO2021005445A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977181B2 (en) | 2019-07-10 | 2021-04-13 | International Business Machines Corporation | Data placement in write cache architecture supporting read heat data separation |
US11442809B1 (en) * | 2019-07-17 | 2022-09-13 | Marvell Asia Pte, Ltd. | Double-parity raid enabling recovery of two failed data units |
CN112445412B (zh) * | 2019-08-28 | 2024-06-11 | 华为技术有限公司 | 一种数据存储方法及装置 |
US11119855B2 (en) * | 2019-10-24 | 2021-09-14 | International Business Machines Corporation | Selectively storing parity data in different types of memory |
US11656792B2 (en) * | 2021-06-29 | 2023-05-23 | International Business Machines Corporation | Mirroring data in write caches of a controller of a non-volatile memory |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014776A (ja) | 2000-06-29 | 2002-01-18 | Toshiba Corp | ディスク制御システムおよびデータ再配置方法 |
JP2002182860A (ja) | 2000-12-18 | 2002-06-28 | Pfu Ltd | ディスクアレイ装置 |
JP2010079928A (ja) | 2002-03-21 | 2010-04-08 | Netapp Inc | Raidシステムにおいてストライプの連続アレイに書き込む方法 |
JP2013065310A (ja) | 2011-09-16 | 2013-04-11 | Apple Inc | 不揮発性メモリを有するシステムのための高速ツリー平坦化 |
JP2014160478A (ja) | 2010-08-31 | 2014-09-04 | Micron Technology Inc | ストライプに基づく不揮発性多値メモリ操作 |
US20160179678A1 (en) | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
US20160188223A1 (en) | 2014-12-30 | 2016-06-30 | International Business Machines Corporation | Promoting consistent response times in a data storage system having multiple data retrieval mechanisms |
US20160188211A1 (en) | 2014-12-30 | 2016-06-30 | International Business Machines Corporation | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes |
US20170139768A1 (en) | 2015-11-18 | 2017-05-18 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7255272B2 (en) * | 2003-06-09 | 2007-08-14 | Brush Industries, Inc. | Card reader/writer devices and methods |
US8010337B2 (en) * | 2004-09-22 | 2011-08-30 | Microsoft Corporation | Predicting database system performance |
CN101526923B (zh) * | 2009-04-02 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法、装置和闪存存储系统 |
US8555019B2 (en) * | 2010-09-08 | 2013-10-08 | International Business Machines Corporation | Using a migration cache to cache tracks during migration |
US8661196B2 (en) | 2011-08-15 | 2014-02-25 | International Business Machines Corporation | Optimizing locations of data accessed by client applications interacting with a storage system |
US9645917B2 (en) | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
US9632927B2 (en) | 2014-09-25 | 2017-04-25 | International Business Machines Corporation | Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes |
CN104699424B (zh) | 2015-03-26 | 2018-06-12 | 华中科技大学 | 一种基于页面热度的异构内存管理方法 |
CN107808686B (zh) * | 2016-09-09 | 2020-10-30 | 北京忆恒创源科技有限公司 | 读出错测试方法与装置 |
US10126971B1 (en) | 2017-06-21 | 2018-11-13 | International Business Machines Corporation | Enhanced application performance in multi-tier storage environments |
US10275162B2 (en) * | 2017-06-23 | 2019-04-30 | Dell Products L.P. | Methods and systems for managing data migration in solid state non-volatile memory |
CN108762664B (zh) | 2018-02-05 | 2021-03-16 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
US10977181B2 (en) | 2019-07-10 | 2021-04-13 | International Business Machines Corporation | Data placement in write cache architecture supporting read heat data separation |
-
2019
- 2019-07-10 US US16/508,140 patent/US10977181B2/en active Active
-
2020
- 2020-06-25 JP JP2021578160A patent/JP7496841B2/ja active Active
- 2020-06-25 GB GB2200757.9A patent/GB2600310B/en active Active
- 2020-06-25 WO PCT/IB2020/056017 patent/WO2021005445A1/en active Application Filing
- 2020-06-25 CN CN202080049872.0A patent/CN114127677B/zh active Active
- 2020-06-25 DE DE112020003290.6T patent/DE112020003290B4/de active Active
-
2021
- 2021-02-03 US US17/166,939 patent/US11360903B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014776A (ja) | 2000-06-29 | 2002-01-18 | Toshiba Corp | ディスク制御システムおよびデータ再配置方法 |
JP2002182860A (ja) | 2000-12-18 | 2002-06-28 | Pfu Ltd | ディスクアレイ装置 |
JP2010079928A (ja) | 2002-03-21 | 2010-04-08 | Netapp Inc | Raidシステムにおいてストライプの連続アレイに書き込む方法 |
JP2014160478A (ja) | 2010-08-31 | 2014-09-04 | Micron Technology Inc | ストライプに基づく不揮発性多値メモリ操作 |
JP2013065310A (ja) | 2011-09-16 | 2013-04-11 | Apple Inc | 不揮発性メモリを有するシステムのための高速ツリー平坦化 |
US20160179678A1 (en) | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
US20160188223A1 (en) | 2014-12-30 | 2016-06-30 | International Business Machines Corporation | Promoting consistent response times in a data storage system having multiple data retrieval mechanisms |
US20160188211A1 (en) | 2014-12-30 | 2016-06-30 | International Business Machines Corporation | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes |
US20170139768A1 (en) | 2015-11-18 | 2017-05-18 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
US11360903B2 (en) | 2022-06-14 |
US20210011852A1 (en) | 2021-01-14 |
US20210157735A1 (en) | 2021-05-27 |
WO2021005445A1 (en) | 2021-01-14 |
GB2600310B (en) | 2023-02-15 |
JP2022539788A (ja) | 2022-09-13 |
CN114127677A (zh) | 2022-03-01 |
DE112020003290T5 (de) | 2022-04-28 |
DE112020003290B4 (de) | 2024-09-26 |
GB202200757D0 (en) | 2022-03-09 |
US10977181B2 (en) | 2021-04-13 |
CN114127677B (zh) | 2024-02-09 |
GB2600310A (en) | 2022-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7448569B2 (ja) | データ・ストレージ・システムにおけるブロック・モード・トグリング | |
US10579270B2 (en) | Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes | |
US11138124B2 (en) | Migrating data between block pools in a storage system | |
CN112447245B (zh) | 非易失性随机存取存储器中的混合读取电压校准 | |
JP7496841B2 (ja) | 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置 | |
US11762569B2 (en) | Workload based relief valve activation for hybrid controller architectures | |
US11056199B2 (en) | Updating corrective read voltage offsets in non-volatile random access memory | |
US10613784B2 (en) | Adaptive assignment of open logical erase blocks to data streams | |
US11157379B2 (en) | Managing blocks of memory based on block health using hybrid controllers | |
JP7486534B2 (ja) | ストレージ・システムにおけるブロック・プール・サイズの適合 | |
US11036427B2 (en) | Using content addressable memory to perform read-modify-write operations in non-volatile random access memory (NVRAM) | |
CN112346658B (zh) | 在具有高速缓存体系结构的存储设备中提高数据热量跟踪分辨率 | |
US11119855B2 (en) | Selectively storing parity data in different types of memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220512 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240229 |
|
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: 20240514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240528 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7496841 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |