JP7026833B1 - 記憶装置、フレッシュメモリコントローラ及びその制御方法 - Google Patents
記憶装置、フレッシュメモリコントローラ及びその制御方法 Download PDFInfo
- Publication number
- JP7026833B1 JP7026833B1 JP2021029144A JP2021029144A JP7026833B1 JP 7026833 B1 JP7026833 B1 JP 7026833B1 JP 2021029144 A JP2021029144 A JP 2021029144A JP 2021029144 A JP2021029144 A JP 2021029144A JP 7026833 B1 JP7026833 B1 JP 7026833B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- fresh memory
- access mode
- area
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000010586 diagram Methods 0.000 abstract description 10
- 238000013507 mapping Methods 0.000 description 117
- 230000008569 process Effects 0.000 description 10
- 239000002699 waste material Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002356 single layer 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1004—Compatibility, e.g. with legacy hardware
-
- 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
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7202—Allocation control and policies
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)
- Read Only Memory (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
110:主装置
120_1、120_2、120_N:記憶装置
122:フレッシュメモリコントローラ
124:フレッシュメモリモジュール
212:マイクロプロセッサー
212C:プログラムコード
212M:リードオンリーメモリ
214:制御ロジック
216:バッファメモリ
218:インターフェースロジック
232:エンコーダー
234:デコーダー
240:動的ランダムアクセスメモリ
200:ブロック
BL1、BL2、BL3:ビットライン
WL0~WL2、WL4~WL6:ワードライン
310_1、310_2:ZNS
320_1、320_2:一般記憶空間
Z0、Z1、Z2、Z3:領域
LBA_k~LBA_(k+x-1):論理アドレス
500~508:ステップ
B3、B7、B8、B12、B99、B6:ブロック
P1~PM:データページ
700、710、720、730:L2Pマッピング表
800~806:ステップ
900~906:ステップ
1100A、1100B:L2Pマッピング表
1130A、1130B:共通ブロック表
1230:共通ブロック表
1300~1306:ステップ
1400~1408:ステップ
B20、B30、B35:ブロック
1600:L2Pマッピング表
1700~1706:ステップ
1800~1806:ステップ
2000:L2Pマッピング表
2100~2106:ステップ
2210、2220、2230、2240:フレッシュメモリチップ
2212、2214、2222、2224、2232、2234、2242、2244:データプレーン
2261、2262:スーパーブロック
2300~2306:ステップ
2412、2414、2422、2424、2432、2434、2442,2444:データプレーン
2461、2462:スーパーブロック
Claims (20)
- フレッシュメモリコントローラに応用される制御方法であって、
前記フレッシュメモリコントローラは、フレッシュメモリモジュールにアクセスするために用いられ、前記フレッシュメモリモジュールは複数のブロックを含み、各ブロックは複数のデータページを含み、
前記制御方法は、
主装置からの設定指令を受信し、前記設定指令はフレッシュメモリモジュールの少なくとも一部をZNS(zoned namespace)と設定するために用いられ、前記ZNSは複数の領域(zone)を論理的に含み、前記主装置の前記ZNSに対してのデータの書き込み及びアクセスは必ず領域を単位として行われ、各領域のサイズはすべて同じであり、各領域内の対応する論理アドレスは必ず連続したものであり、領域の間にはオーバーラップした論理アドレスが存在せず;
第一アクセスモード、第二アクセスモード、第三アクセスモード及び第四アクセスモードのうちの1つを用いて、前記主装置からのデータを前記フレッシュメモリモジュールに書き込み、前記データは特定領域のすべてのデータであり;
前記第一アクセスモードを用いる場合、
前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの複数の特定ブロックに順次書き込み;及び
前記データの書き込みが完了した後に、前記複数の特定ブロックの最後の1つの特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;
前記第二アクセスモードを用いる場合、
前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの前記複数の特定ブロックに順次書き込み;及び
前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができ;
前記第三アクセスモードを用いる場合、
前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び
前記データの書き込みが完了した後に、前記特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;及び
前記第四アクセスモードを用いる場合、
前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び
前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができるステップを含む、制御方法。 - 請求項1に記載の制御方法であって、
前記第一アクセスモード、前記第二アクセスモード、前記第三アクセスモード及び前記第四アクセスモードのうちの1つを用いるステップは、
各領域のサイズが各ブロックのサイズよりも大きい場合、前記第一アクセスモード又は前記第二アクセスモードを使用し;及び
各領域のサイズが各ブロックのサイズよりも小さい場合、前記第三アクセスモード又は前記第四アクセスモードを使用することを含む、制御方法。 - 請求項2に記載の制御方法であって、
前記第一アクセスモード、前記第二アクセスモード、前記第三アクセスモード及び前記第四アクセスモードのうちの1つを用いるステップは、
各領域のサイズが各ブロックのサイズよりも大きく、且つ前記ZNSの、前記第一アクセスモードを用いるときに計画される容量が前記主装置の第一基準より高い場合、前記第一アクセスモードを使用し;
各領域のサイズが各ブロックのサイズよりも大きく、且つ前記ZNSの、前記第一アクセスモードを用いて計画される容量が前記主装置の前記第一基準よりも低い場合、前記第二アクセスモードを使用し;
各領域のサイズが各ブロックのサイズよりも小さく、且つ前記ZNSの、前記第三アクセスモードを用いるときに計画される容量が前記主装置の第二基準よりも高い場合、前記第三アクセスモードを使用し;及び
各領域のサイズが各ブロックのサイズよりも小さく、且つ前記ZNSの、前記第三アクセスモードを用いるときに計画される容量が前記主装置の前記第二基準よりも低い場合、前記第四アクセスモードを使用することを含む、制御方法。 - 請求項1に記載の制御方法であって、さらに、
前記第一アクセスモードを用いる場合、
前記主装置が前記データを伝送し、及び論理アドレスが前記データの最後の1つの論理アドレスに接続される他のデータを伝送するときに、前記他のデータを前記複数の特定ブロックとは異なる他のブロックに書き込み、前記他のデータを前記複数の特定ブロックの最後の1つの特定ブロックの剰余データページに書き込まないことを含む、制御方法。 - 請求項4に記載の制御方法であって、
前記第一アクセスモードを用いる場合、前記主装置からのデータを記憶する角度から見れば、単一のブロックは単一の領域のデータのみを記憶し得る、制御方法。 - 請求項1に記載の制御方法であって、さらに。
前記第二アクセスモードを用いる場合、
前記主装置からの第一データを受信し、前記第一データは第一領域のすべてのデータであり;
前記第一データの論理アドレスの順序に従って、前記第一データを前記フレッシュメモリモジュールの前記少なくとも1つの第一特定ブロック及び共通ブロックに順次書き込み、前記第一データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第一特定ブロックに記憶され、前記第一データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶され;
前記主装置からの第二データを受信し、前記第二データは第二領域のすべてのデータであり;及び
前記第二データの論理アドレスの順序に従って、前記第二データを前記フレッシュメモリモジュールの前記少なくとも1つの第二特定ブロック及び前記共通ブロックに順次書き込むことを含む、制御方法。 - 請求項6に記載の制御方法であって、
前記第二データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第二特定ブロックに記憶され、前記第二データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶される、制御方法。 - 請求項6に記載の制御方法であって、
前記主装置からのデータを記憶する角度から見れば、前記少なくとも1つの第一特定ブロックは前記第一領域に対応するデータのみを記憶し、前記少なくとも1つの第二特定ブロックは前記第二領域に対応するデータのみを記憶する、制御方法。 - 請求項6に記載の制御方法であって、
前記第二データの1番目の論理アドレスは前記第一データの最後の1つの論理アドレスに接続され、前記主装置は前記第一データ及び前記第二データを前記フレッシュメモリコントローラに連続して伝送して、前記第一データの少なくとも一部及び前記第二データの少なくとも一部を前記共通ブロックに書き込むよう要求する、制御方法。 - 請求項1に記載の制御方法であって、
前記主装置からのデータを記憶する角度から見れば、前記第三アクセスモードを用いる場合、単一のブロックは単一の領域のデータのみを記憶し得る、制御方法。 - 請求項1に記載の制御方法であって、さらに、
前記第四アクセスモードを用いる場合、
前記主装置からの第一データを受信し、前記第一データは第一領域のすべてのデータであり;
前記第一データの論理アドレスの順序に従って、前記第一データを共通ブロックに順次書き込み;
前記主装置からの第二データを受信し、前記第二データは第二領域のすべてのデータであり;及び
前記第二データの論理アドレスの順序に従って、前記第二データを前記共通ブロック中の剰余データページに順次書き込むことを含む、制御方法。 - 請求項11に記載の制御方法であって、
前記第四アクセスモードを用いる場合、データにより満たされた何れのブロックは必ず複数の領域のデータを記憶する、制御方法。 - フレッシュメモリコントローラであって、
前記フレッシュメモリコントローラはフレッシュメモリモジュールにアクセスするために用いられ、前記フレッシュメモリモジュールは複数のブロックを含み、各ブロックは複数のデータページを含み、
前記フレッシュメモリコントローラは、
プログラムコードを記憶するためのリードオンリーメモリ;
前記プログラムコードを実行して、前記フレッシュメモリモジュールに対してのアクセスを制御するためのマイクロプロセッサー;及び
バッファメモリを含み、
前記マイクロプロセッサーは主装置からの設定指令を受信し、前記設定指令はフレッシュメモリモジュールの少なくとも一部をZNS(zoned namespace)と設定し、前記ZNSは複数の領域(zone)を論理的に含み、前記主装置の前記ZNSに対してのデータの書き込み及びアクセスは必ず領域を単位として行われ、各領域のサイズはすべて同じであり、各領域内の対応する論理アドレスは必ず連続したものであり、領域の間にはオーバーラップした論理アドレスが存在せず;
前記マイクロプロセッサーは第一アクセスモード、第二アクセスモード、第三アクセスモード及び第四アクセスモードのうちの1つを用いて、前記主装置からのデータを前記フレッシュメモリモジュールに書き込み、前記データは特定領域のすべてのデータであり;
前記マイクロプロセッサーが前記第一アクセスモードを用いる場合、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの複数の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後に、前記複数の特定ブロックの最後の1つの特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;
前記マイクロプロセッサーが前記第二アクセスモードを用いる場合、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの前記複数の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができ;
前記マイクロプロセッサーが前記第三アクセスモードを用いる場合、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後に、前記特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;
前記マイクロプロセッサーが前記第四アクセスモードを用いるときに、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができる、フレッシュメモリコントローラ。 - 請求項13に記載のフレッシュメモリコントローラであって、
各領域のサイズが各ブロックのサイズよりも大きい場合、前記マイクロプロセッサーは前記第一アクセスモード又は前記第二アクセスモードを使用し;各領域のサイズが各ブロックのサイズよりも小さい場合、前記マイクロプロセッサーは前記第三アクセスモード又は前記第四アクセスモードを使用する、フレッシュメモリコントローラ。 - 請求項13に記載のフレッシュメモリコントローラであって、
前記第一アクセスモードを選択する場合、前記主装置が前記データを伝送し、及び論理アドレスが前記データの最後の1つの論理アドレスに接続される他のデータを伝送するときに、前記マイクロプロセッサーは前記他のデータを前記複数の特定ブロックとは異なる他のブロックに書き込み、前記他のデータを前記複数の特定ブロックの最後の1つの特定ブロックの剰余データページに書き込まない、フレッシュメモリコントローラ。 - 請求項15に記載のフレッシュメモリコントローラであって、
前記第一アクセスモードを選択する場合、単一のブロックは単一の領域のデータのみを記憶する、フレッシュメモリコントローラ。 - 請求項13に記載のフレッシュメモリコントローラであって、
前記マイクロプロセッサーが前記第二アクセスモードを用いる場合、前記マイクロプロセッサーは、以下の操作を実行し、即ち、前記主装置からの第一データを受信し、前記第一データは第一領域のすべてのデータであり;前記第一データの論理アドレスの順序に従って、前記第一データを前記フレッシュメモリモジュールの前記少なくとも1つの第一特定ブロック及び共通ブロックに順次書き込み、前記第一データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第一特定ブロックに記憶され、前記第一データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶され;前記主装置からの第二データを受信し、前記第二データは第二領域のすべてのデータであり;及び、前記第二データの論理アドレスの順序に従って、前記第二データを前記フレッシュメモリモジュールの前記少なくとも1つの第二特定ブロック及び前記共通ブロックに順次書き込み、前記第二データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第二特定ブロックに記憶され、且つ前記第二データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶される、フレッシュメモリコントローラ。 - 記憶装置であって、
複数のブロックを含み、各ブロックが複数のデータページを含むフレッシュメモリモジュール;及び
前記フレッシュメモリモジュールにアクセスするために用いられるフレッシュメモリコントローラを含み、
前記フレッシュメモリコントローラは主装置からの設定指令を受信し、前記設定指令はフレッシュメモリモジュールの少なくとも一部をZNS(zoned namespace)と設定し、前記ZNSは論理的に複数の領域(zone)を含み、前記主装置の前記ZNSに対してのデータの書き込み及びアクセスは必ず領域を単位として行われ、各領域のサイズはすべて同じであり、各領域内の対応する論理アドレスは必ず連続したものであり、且つ領域の間にはオーバーラップした論理アドレスが存在せず;
前記フレッシュメモリコントローラは第一アクセスモード、第二アクセスモード、第三アクセスモード及び第四アクセスモードのうちの1つを用いて、前記主装置からのデータを前記フレッシュメモリモジュールに書き込み、前記データは特定領域のすべてのデータであり;
前記フレッシュメモリコントローラが前記第一アクセスモードを用いる場合、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの複数の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後に、前記複数の特定ブロックの最後の1つの特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;
前記フレッシュメモリコントローラが前記第二アクセスモードを用いる場合、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの前記複数の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができ;
前記フレッシュメモリコントローラが前記第三アクセスモードを用いるときに、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後に、前記特定ブロックの剰余データページに無効データを書き込み、又は剰余データページを空白に維持し且つ消去前に前記主装置の書き込み指令に基づいて前記主装置からのデータを書き込まず;
前記フレッシュメモリコントローラが前記第四アクセスモードを用いるときに、前記データの論理アドレスの順序に従って、前記データを前記フレッシュメモリモジュールの単一の特定ブロックに順次書き込み;及び、前記データの書き込みが完了した後にのみ、前記最後の1つの特定ブロックの剰余データページは他の領域のデータの書き込み用に供することができる、記憶装置。 - 請求項18に記載の記憶装置であって、
各領域のサイズが各ブロックのサイズよりも大きい場合、前記フレッシュメモリコントローラは前記第一アクセスモード又は前記第二アクセスモードを選択し;各領域のサイズが各ブロックのサイズよりも小さい場合、前記フレッシュメモリコントローラは前記第三アクセスモード又は前記第四アクセスモードを選択する、記憶装置。 - 請求項18に記載の記憶装置であって、
前記前記フレッシュメモリコントローラが前記第二アクセスモードを用いる場合、前記フレッシュメモリコントローラは、以下の操作を実行し、即ち、前記主装置からの第一データを受信し、前記第一データは第一領域のすべてのデータであり;前記第一データの論理アドレスの順序に従って、前記第一データを前記フレッシュメモリモジュールの前記少なくとも1つの第一特定ブロック及び共通ブロックに順次書き込み、前記第一データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第一特定ブロックに記憶され、前記第一データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶され;前記主装置からの第二データを受信し、前記第二データは第二領域のすべてのデータであり;及び、前記第二データの論理アドレスの順序に従って、前記第二データを前記フレッシュメモリモジュールの前記少なくとも1つの第二特定ブロック及び前記共通ブロックに順次書き込み、前記第二データにおいて1番目の論理アドレスに対応する内容は前記少なくとも1つの第二特定ブロックに記憶され、且つ前記第二データにおいて最後の1つの論理アドレスに対応する内容は前記共通ブロックに記憶される、記憶装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110100581A TWI775268B (zh) | 2021-01-07 | 2021-01-07 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TW110100581 | 2021-01-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP7026833B1 true JP7026833B1 (ja) | 2022-02-28 |
JP2022106634A JP2022106634A (ja) | 2022-07-20 |
Family
ID=79025089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021029144A Active JP7026833B1 (ja) | 2021-01-07 | 2021-02-25 | 記憶装置、フレッシュメモリコントローラ及びその制御方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11593008B2 (ja) |
EP (1) | EP4033364A1 (ja) |
JP (1) | JP7026833B1 (ja) |
KR (1) | KR102596244B1 (ja) |
CN (1) | CN114741330A (ja) |
TW (1) | TWI775268B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
TWI775268B (zh) | 2021-01-07 | 2022-08-21 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
US11940925B2 (en) * | 2021-12-29 | 2024-03-26 | Micron Technology, Inc. | Performing memory access operations with a logical-to-physical mapping table with reduced size |
US11966605B2 (en) * | 2022-03-09 | 2024-04-23 | Kioxia Corporation | Superblock-based write management in non-volatile memory devices |
US12056361B2 (en) | 2022-07-26 | 2024-08-06 | Macronix International Co., Ltd. | Memory device and operation method thereof |
TWI835221B (zh) * | 2022-07-26 | 2024-03-11 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
JP2024036068A (ja) * | 2022-09-05 | 2024-03-15 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US12158841B2 (en) * | 2023-03-20 | 2024-12-03 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007517335A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | 不揮発性メモリおよびブロック管理システムを伴う方法 |
JP2010521718A (ja) * | 2007-12-28 | 2010-06-24 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122179B2 (en) * | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
US9811462B2 (en) * | 2015-04-30 | 2017-11-07 | Toshiba Memory Corporation | Memory system executing garbage collection |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US20170123928A1 (en) * | 2015-10-30 | 2017-05-04 | Netapp, Inc. | Storage space reclamation for zoned storage |
US20170124104A1 (en) * | 2015-10-31 | 2017-05-04 | Netapp, Inc. | Durable file system for sequentially written zoned storage |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
TWI659304B (zh) * | 2017-10-20 | 2019-05-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US10437476B2 (en) | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
JP2019191909A (ja) * | 2018-04-25 | 2019-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI708144B (zh) | 2018-06-22 | 2020-10-21 | 慧榮科技股份有限公司 | 快閃記憶體的命名空間操作裝置及電腦程式產品 |
US11204721B2 (en) | 2019-05-06 | 2021-12-21 | Micron Technology, Inc. | Input/output size control between a host system and a memory sub-system |
KR102739224B1 (ko) * | 2019-05-10 | 2024-12-05 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US20200409601A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Hold of Write Commands in Zoned Namespaces |
US11416161B2 (en) * | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
US20200089407A1 (en) * | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
US20210182166A1 (en) * | 2019-12-12 | 2021-06-17 | Western Digital Technologies, Inc. | Zoned namespace management of non-volatile storage devices |
CN111124305B (zh) * | 2019-12-20 | 2021-08-31 | 浪潮电子信息产业股份有限公司 | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 |
US11797433B2 (en) * | 2019-12-20 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Zoned namespace with zone grouping |
JP7366795B2 (ja) * | 2020-02-14 | 2023-10-23 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11586385B1 (en) * | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
CN111694515B (zh) * | 2020-05-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于ZNS固态硬盘的zone写分发方法及系统 |
US12093545B2 (en) * | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
TWI775268B (zh) | 2021-01-07 | 2022-08-21 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
US11733895B2 (en) * | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US20230236765A1 (en) * | 2022-01-26 | 2023-07-27 | Samsung Electronics Co., Ltd. | Storage controller performing active zone refresh, method of operating storage controller, and method of operating storage device having storage controller |
-
2021
- 2021-01-07 TW TW110100581A patent/TWI775268B/zh active
- 2021-02-25 KR KR1020210025650A patent/KR102596244B1/ko active IP Right Grant
- 2021-02-25 JP JP2021029144A patent/JP7026833B1/ja active Active
- 2021-03-26 CN CN202110323973.9A patent/CN114741330A/zh active Pending
- 2021-08-05 US US17/394,401 patent/US11593008B2/en active Active
- 2021-12-22 EP EP21217129.2A patent/EP4033364A1/en not_active Withdrawn
-
2023
- 2023-01-18 US US18/098,129 patent/US12014063B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007517335A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | 不揮発性メモリおよびブロック管理システムを伴う方法 |
JP2010521718A (ja) * | 2007-12-28 | 2010-06-24 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20220099874A (ko) | 2022-07-14 |
CN114741330A (zh) | 2022-07-12 |
JP2022106634A (ja) | 2022-07-20 |
US12014063B2 (en) | 2024-06-18 |
US20230153002A1 (en) | 2023-05-18 |
US20220214808A1 (en) | 2022-07-07 |
KR102596244B1 (ko) | 2023-10-30 |
TWI775268B (zh) | 2022-08-21 |
EP4033364A1 (en) | 2022-07-27 |
TW202228136A (zh) | 2022-07-16 |
US11593008B2 (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7026833B1 (ja) | 記憶装置、フレッシュメモリコントローラ及びその制御方法 | |
TWI418980B (zh) | 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 | |
TWI808384B (zh) | 儲存裝置、快閃記憶體控制器及其控制方法 | |
TWI828085B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TWI821151B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
CN108932107A (zh) | 数据存储装置及其操作方法 | |
TWI859853B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TWI844891B (zh) | 儲存裝置、快閃記憶體控制器及其控制方法 | |
TWI821152B (zh) | 儲存裝置、快閃記憶體控制器及其控制方法 | |
US11693574B2 (en) | Method of writing data in storage device and storage device performing the same | |
TWI867597B (zh) | 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 | |
US20240320173A1 (en) | Storage device providing direct memory access, computing system including the same, and operating method of the storage device | |
TW202403548A (zh) | 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 | |
CN118672937A (zh) | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210225 |
|
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: 20220118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7026833 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |