TW202401261A - 記憶體系統 - Google Patents
記憶體系統 Download PDFInfo
- Publication number
- TW202401261A TW202401261A TW112131600A TW112131600A TW202401261A TW 202401261 A TW202401261 A TW 202401261A TW 112131600 A TW112131600 A TW 112131600A TW 112131600 A TW112131600 A TW 112131600A TW 202401261 A TW202401261 A TW 202401261A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- aforementioned
- memory
- writing
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title abstract description 22
- 239000003990 capacitor Substances 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000013519 translation Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 description 64
- 238000012005 ligant binding assay Methods 0.000 description 29
- NGVDGCNFYWLIFO-UHFFFAOYSA-N pyridoxal 5'-phosphate Chemical group CC1=NC=C(COP(O)(O)=O)C(C=O)=C1O NGVDGCNFYWLIFO-UHFFFAOYSA-N 0.000 description 28
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000010365 information processing Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
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)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
實現一種能夠特定出是喪失了哪些資料的記憶體系統以及記憶體系統之控制方法。
記憶體系統之控制器,係構成為因應於從主機而收訊了對於邏輯位址作指定之寫入指令一事,而將從主機所收訊之資料寫入至第1寫入目標區塊中。控制器,係對於第1清單與第1記憶位置資訊作管理,該第1清單,係包含有複數之邏輯位址,該些複數之邏輯位址,係分別對應於已從主機而收訊並且對於第1寫入目標區塊之寫入尚未完成的寫入未完成資料,該第1記憶位置資訊,係代表第1寫入目標區塊之中之資料之寫入尚未完成的寫入未完成區域之開頭之記憶位置。控制器,當並無從主機而來之預告地而發生了電力喪失的情況時,係使用從電容器而來之電力,來將第1清單與第1記憶位置資訊寫入至非揮發性記憶體中。
Description
本發明之實施形態,係有關於控制非揮發性記憶體之記憶體系統以及記憶體系統之控制方法。
[關連申請案]
本申請案,係享受以日本專利申請2022-041509號(申請日:2022年3月16日)作為基礎申請之優先權。本申請案,係藉由參照此基礎申請案,而包含基礎申請案之所有的內容。
近年來,具備有非揮發性記憶體之記憶體系統係廣泛普及。作為此種記憶體系統之其中一者,具備有NAND型快閃記憶體之固態硬碟(SSD)係為周知。
在像是SSD一般之記憶體系統中,係會有被使用有用以對於非預期之電力喪失進行對策的斷電保護功能(亦會有被稱作PLP功能的情形)的情況。
斷電保護功能,係為使用被積蓄在電容器中之電力來將被儲存在緩衝中之寫入未完成資料寫入至非揮發性記憶體中之功能。
然而,能夠用被積蓄在電容器中之電力來寫入至非揮發性記憶體中之資料量,係被限制於某一上限值。因此,當寫入未完成資料之量為多的情況時,係會有導致寫入未完成資料之一部分喪失的情況。
本發明之其中一個實施形態所欲解決之課題,係在於實現一種能夠特定出是喪失了哪些資料的記憶體系統以及記憶體系統之控制方法。
若依據實施形態,則能夠與主機作連接之記憶體系統,係包含有:非揮發性記憶體,係包含複數之區塊;和控制器,係構成為因應於從前述主機而收訊了對於邏輯位址作指定之寫入指令一事,而將從前述主機所收訊之資料寫入至從前述複數之區塊所分配的第1寫入目標區塊中。前述控制器,係對於第1清單與第1記憶位置資訊作管理,該第1清單,係包含有複數之邏輯位址,該些複數之邏輯位址,係分別對應於已從前述主機而收訊並且對於前述第1寫入目標區塊之寫入尚未完成的寫入未完成資料,該第1記憶位置資訊,係代表前述第1寫入目標區塊之中之資料之寫入尚未完成的寫入未完成區域之開頭之記憶位置。前述控制器,當並無從前述主機而來之預告地而發生了對於前述記憶體系統之電力的供給被中斷之電力喪失的情況時,係使用從積蓄被供給至前述記憶體系統處之電力的電容器而來之電力,來將前述第1清單與前述第1記憶位置資訊寫入至前述非揮發性記憶體中。
以下,參考圖面,針對實施形態作說明。
圖1,係為對於包含有實施形態的記憶體系統3之資訊處理系統1之構成例作展示之區塊圖。實施形態之記憶體系統3,係為包含有非揮發性記憶體6之儲存裝置。
資訊處理系統1,係包含有主機(主機裝置)2、和記憶體系統3。主機2與記憶體系統3,係能夠經由匯流排4來作連接。
主機2,係為資訊處理裝置。主機2,例如,係為個人電腦或者是伺服器電腦。主機2,係對於記憶體系統3進行存取。具體而言,主機2,係將身為用以將資料作寫入之指令的寫入指令,送訊至記憶體系統3處。又,主機2,係將身為用以將資料作讀出之指令的讀取指令,送訊至記憶體系統3處。
記憶體系統3,係為半導體儲存裝置。記憶體系統3,例如係為固態硬碟(SSD)。記憶體系統3,係包含有非揮發性記憶體6。記憶體系統3,係將資料寫入至非揮發性記憶體6中。又,記憶體系統3,係將資料從非揮發性記憶體6而讀出。
匯流排4,例如係為準據於PCI Express™ (PCIe™)規格之匯流排。匯流排4,係為將主機2與記憶體系統3作連接之傳輸路徑。匯流排4,係為了進行從主機2而至記憶體系統3之資料以及輸入輸出(I/O)指令之送訊、和從記憶體系統3而至主機2之資料以及回應之送訊,而被作使用。I/O指令,係為用以進行針對非揮發性記憶體6之資料之寫入或讀出的指令。I/O指令,係包含寫入指令以及讀取指令。
接著,針對主機2之內部構成作說明。主機2,係包含有處理器21和記憶體22。
處理器21,例如係為CPU(中央處理單元,central processing unit)。處理器21,係經由匯流排4來進行與記憶體系統3之間之通訊。處理器21,係實行從記憶體系統3或者是被與主機2作連接之其他之儲存裝置而被載入至記憶體22中的軟體(主機軟體)。主機軟體,係包含有作業系統、檔案系統、裝置驅動或者是應用程式。
記憶體22,例如係為揮發性之記憶體。記憶體22,例如係為動態隨機存取記憶體(DRAM)。
接著,針對記憶體系統3之內部構成進行說明。記憶體系統3,係包含有控制器5、和非揮發性記憶體6。非揮發性記憶體6之其中一例,係為NAND型快閃記憶體。以下,係將非揮發性記憶體6稱作NAND記憶體6。
控制器5,係為記憶體控制器。控制器5,例如係為如同SoC(System-on-a-chip,SoC)一般之半導體裝置。控制器5,係被與NAND記憶體6作電性連接。控制器5,係實行對於NAND記憶體6之資料之寫入以及讀出。又,控制器5,係經由匯流排4,而實行與主機2之間之通訊。作為將控制器5與NAND記憶體6作連接之物理介面,例如,係使用有Toggle NAND快閃介面或開放NAND快閃介面(ONFI)。控制器5之各部之功能,係可藉由專用硬體、實行程式之處理器、或者是此些之組合,來實現之。
NAND記憶體6,例如,係為2維構造之快閃記憶體、或者是3維構造之快閃記憶體。NAND記憶體6,係包含有複數之區塊。各區塊,係身為被記憶在NAND記憶體6中的資料之刪除之最小單位、亦即是身為資料刪除動作之單位。
記憶體系統3,係除了控制器5和非揮發性記憶體6之外,亦可更進而包含有動態隨機存取記憶體(DRAM)7。DRAM7,係為揮發性之記憶體。DRAM7之記憶區域的一部分,例如,係亦可作為用以將被與從主機2所收訊的寫入資料或者是從NAND記憶體6所讀出的讀取資料暫時性地作保持之內部緩衝73而被使用。
記憶體系統3,係更進而包含有電源電路8。電源電路8,係為電源控制電路。電源電路8,例如,係將從主機2所供給而來之電力,供給至控制器5、NAND記憶體6、DRAM7等之記憶體系統3之各構成要素處。
接著,針對控制器5之內部構成進行說明。控制器5,係包含有主機介面(主機I/F)51、和CPU52、和靜態RAM(SRAM)53、和直接記憶體存取控制器(DMAC) 54、和ECC(Error Checking and Correction)電路55、和DRAM介面(DRAM I/F)56、以及NAND介面(NAND I/F) 57。此些之控制器5內之各部,係經由內部匯流排50而被相互作連接。於此內部匯流排50處,亦係被供給有從電源電路8而來之電力。
主機介面51,係為硬體介面電路。主機介面51,係實行與主機2之間之通訊。主機介面51,例如,係從主機2而收訊I/O指令。又,主機介面51,係將針對所收訊了的I/O指令之回應對於主機2作送訊。
CPU52,係為處理器。CPU52,係對於主機介面51、SRAM53、DMAC54、ECC電路55、DRAM介面56以及NAND介面57作控制。CPU52,係將被儲存於NAND記憶體6或者是未圖示之ROM中的控制程式(韌體)載入至SRAM53,之後藉由實行此韌體來進行各種之處理。另外,韌體,係亦可被載入至DRAM7上。
CPU52,例如,係作為快閃記憶體轉換層(Flash Translation Layer,FTL),而實行被記憶在NAND記憶體6中之資料之管理以及在NAND記憶體6中所包含的區塊之管理。被記憶在NAND記憶體6中之資料之管理,例如,係包含有「代表邏輯位址之各者與物理位址之各者之間的對應關係之映射資訊」之管理。邏輯位址,係為為了對於NAND記憶體6進行存取而被主機2所使用的位址。邏輯位址,例如係為LBA(邏輯區塊位址,Logical Block Address)。物理位址,係為代表在NAND記憶體6中所包含之物理性之記憶位置的位址。CPU52,係使用邏輯物理位址轉換表(Logical-to-Physical translation table:L2P表)71,來對於邏輯位址之各者與物理位址之各者之間的映射作管理。又,在NAND記憶體6中所包含之區塊之管理,例如,係包含有垃圾回收(garbage collection)、不良區塊(損壞區塊)之管理、損耗平均(wear leveling)。CPU62,係使用區塊管理表72,來實行在NAND記憶體6中所包含之區塊之管理。
SRAM53,係為揮發性之記憶體。SRAM 53,例如,係作為CPU52之作業區域而被使用。又,SRAM53,係包含有內部緩衝531。內部緩衝531,係為將被與從主機2所收訊的寫入指令相互附加有關連性之資料暫時性地作記憶之記憶區域。
DMAC54,係為實行直接記憶體存取(DMA)之電路。DMAC54,係實行在主機2之記憶體22與DRAM7或者是SRAM53之間的資料傳輸。
ECC電路55,係為實行資料之編碼和資料之解碼之電路。ECC電路55,在將資料寫入至NAND記憶體6中時,係實行編碼處理。在編碼處理中,ECC電路55,係將ECC同位檢查碼作為冗餘碼而對於應寫入之資料作附加。ECC電路55,係使用被附加在從NAND記憶體6所讀出的資料處之ECC同位檢查碼,來實行解碼處理。在解碼處理中,ECC電路55,係對於被讀出的資料之錯誤進行訂正。
DRAM介面56,係為對於DRAM7作控制之電路。DRAM介面56,係將資料儲存在DRAM7中。又,DRAM介面56,係被儲存在DRAM7中之資料讀出。
NAND介面57,係為對於NAND記憶體6作控制之電路。NAND介面57,例如,係包含有NAND控制器571-0、571-1、571-2、…、571-31。NAND控制器571-0、571-1、571-2、…、571-31之各者,係經由1以上之通道ch0、ch1、ch2、…、ch31之中之所對應之1個的通道,而被與在NAND記憶體6中所包含之1以上之快閃晶粒作連接。快閃晶粒,係亦被稱作快閃晶片。NAND控制器571-0、571-1、571-2、…、571-31,例如,係對於在NAND記憶體6中所包含之快閃晶粒(#0)61-0、快閃晶粒(#1)61-1、…、快閃晶粒(#31)61-31分別作控制。
接下來,針對被儲存在DRAM7中之資訊進行說明。被儲存在DRAM7中之資訊,係包含有L2P表71和區塊管理表72。L2P表71和區塊管理表72之一部分或者是全部,係亦可並非為被儲存在DRAM7中而是被儲存在SRAM53中。
L2P表71,係將邏輯位址之各者與物理位址之各者之間的映射以如同扇區一般之特定之容量單位來作管理。
區塊管理表72,係對於在NAND記憶體6中所包含之各區塊作管理。區塊管理表72,例如,係對於各區塊是否為可利用一事進行管理。又,區塊管理表72,係亦可對於各區塊是否身為斷電保護動作之對象一事進行管理。
記憶體系統3,係更進而包含有電容器81。電容器81,係為能夠積蓄電力之元件。電容器81,係被與電源電路8作電性連接。電源電路8,當從主機2所供給而來之電源電壓之值並未被主機2所預告地而發生了降低的情況時,係將被積蓄在電容器81中之電力供給至記憶體系統3之各構成要素處。被積蓄在電容器81中之電力,例如,係能夠被使用來使控制器5實行LBA清單保存動作。
接著,針對藉由控制器5所被實行的LBA清單保存動作進行說明。LBA清單保存動作,係為了成為能夠特定出起因於非預期之電力喪失所失去的資料,而被實行。非預期之電力喪失,係為在並不存在有從主機2而來之預告(電源遮斷預告通知)的情況下而對於記憶體系統3之電力之供給被作了遮斷的現象。電源遮斷預告通知,係為對於「對於記憶體系統3之電力之供給被中斷」一事進行預告之通知。在主機2之電源成為OFF之前,主機2,係將電源遮斷預告通知對於記憶體系統3作送訊,並將「對於記憶體系統3之電力之供給即將中斷」一事對於記憶體系統3作通知。電源遮斷預告通知,例如,係為藉由NVMe規格所規定之Shutdown Notification、或者是藉由SATA規格所規定之STANDBY IMMEDIATE指令。
控制器5,係從主機2而收訊用以將資料寫入至NAND記憶體6中的寫入指令。寫入指令,係指定開始邏輯位址(開始LBA)、資料容量以及資料指標等。開始LBA,係代表被與寫入指令相互附加有關連性之寫入資料所應被寫入的邏輯位址、亦即是代表寫入資料所應被寫入的最初之邏輯區塊。資料容量,係代表寫入資料之容量。資料容量,例如,係藉由LBA之數量而被作表現。資料指標,係為代表寫入資料所被作儲存的主機2之記憶體22上之位置的緩衝位址。寫入指令,係亦可包含有對於寫入目標之區域作指定的識別符。對於寫入目標之區域作指定的識別符,例如,係可為對於藉由分區名稱空間規格所規定的區域作指定之邏輯位址、對於名稱空間作辨識之名稱空間識別符、或者是,亦可為對於串流作辨識之串流識別符。
控制器5,係因應於從主機2而收訊了對於LBA(開始LBA)作指定之寫入指令一事,而實行針對NAND記憶體6之資料寫入動作。在資料寫入動作中,控制器5,係將從主機2所收訊了的寫入資料,寫入至從「在NAND記憶體6中所包含之複數之區塊」而被分配的寫入目標區塊中。亦即是,控制器5,係對於在NAND記憶體6中所包含之複數之區塊之中的區塊作選擇,之後,控制器5,係將所選擇了的區塊分配為寫入目標區塊。寫入目標區塊,係為資料所應被寫入之區塊。寫入目標區塊,例如,係為超區塊。或者是,寫入目標區塊,係亦可為物理區塊。控制器5,係亦可使分別與相異之複數之區域相對應的複數之寫入目標區塊同時地被作分配。以下,係注目於1個的寫入目標區塊,來對於LBA清單保存動作進行說明。
控制器5,係對於與寫入目標區塊相對應之LBA清單作管理。LBA清單,係為包含有「分別對應於已從主機2而收訊並且對於寫入目標區塊之寫入尚未完成的寫入未完成資料之複數之LBA」之清單。對於寫入目標區塊之資料之寫入,係從寫入目標區塊之開頭起朝向終端地而被實行。因此,正在進行寫入之寫入目標區塊,係包含有寫入完成區域、和寫入未完成區域、以及資料未受取區域。寫入完成區域,係為「已從主機2而收訊寫入資料,並且對於寫入目標區塊之資料之寫入已完成」之區域。被記憶在寫入完成區域中之資料,係為可讀出之資料。寫入未完成區域,係為「已從主機2而收訊寫入資料,並且對於寫入目標區塊之資料之寫入尚未完成」之區域(原本寫入未完成資料應被作寫入之區域)。若是已收訊寫入資料,並且並不存在有「對於寫入目標區塊之寫入為完成」的資料,則與從主機2所被指定的寫入資料之寫入目標相對應之區域之全部,係成為寫入未完成區域。資料未受取區域,係為「雖然尚未從主機2而收訊應寫入之資料,但是當收訊了該資料的情況時,會被寫入至該區域中」之區域。另外,從主機2而來之資料之收訊,係亦被稱作從主機2而來之資料之受取。又,係亦將「尚未從主機2而收訊資料」一事,稱作資料之未受取或者是資料之未收訊,並將「已從主機2而收訊了資料」一事,稱作資料之已收訊或者是資料之已受取。
當並無從主機2而來之預告地而發生了電力喪失的情況時、亦即是當發生了非預期之電力喪失的情況時,失去的資料,係為對應於寫入未完成區域之資料。因此,控制器5,係使用LBA清單,來對於分別對應於身為「預定要寫入至寫入未完成區域中之資料」之寫入未完成資料的複數之LBA進行管理。具體而言,LBA清單,係包含有剩餘之LBA之集合,該剩餘之LBA之集合,係從分別對應於已從主機2而收訊並且應被寫入至寫入目標區塊中之資料之LBA之集合,而將分別對應於對於寫入目標區塊之寫入為完成並且成為了能夠從寫入目標區塊而讀出之資料的LBA之集合作了去除。於此,已從主機2而收訊並且會被寫入至寫入目標區塊中之資料,係包含有「已從主機2而收訊並且對於寫入目標區塊之寫入為完成」的寫入完成資料、和「已從主機2而收訊並且對於寫入目標區塊之寫入尚未完成」之寫入未完成資料。
進而,控制器5,係對於代表寫入未完成區域之開頭之記憶位置的位置資訊作管理。位置資訊,係藉由「寫入目標區塊之區塊位址」和「在寫入目標區塊中之偏位」而被表現。偏位,係代表相對於「寫入目標區塊之開頭之記憶位置」的「寫入未完成區域之開頭之記憶位置之偏位」。
當發生了非預期之電力喪失的情況時,控制器5,係使用從電容器81而來之電力,來並非將寫入未完成資料寫入至NAND記憶體6中而是將LBA清單寫入至NAND記憶體6中。具體而言,控制器5,係使用從電容器81而來之電力,來將LBA清單和代表寫入未完成區域之開頭之記憶位置之位置資訊,寫入至NAND記憶體6中。
如此這般,藉由將LBA清單寫入至NAND記憶體6中,係成為能夠明確地特定出起因於非預期之電力喪失所失去的資料。LBA清單之容量,相較於寫入未完成資料之容量,係為充分小。故而,係能夠在可使用電容器81之電力的有所侷限之期間中,而將LBA清單寫入至NAND記憶體6中。
又,藉由將代表寫入未完成區域之開頭之記憶位置的位置資訊寫入至NAND記憶體6中,係成為能夠特定出起因於非預期之電力喪失而使寫入被作了中斷的記憶位置。
在對於記憶體系統3之電力供給被恢復之後,控制器5,係能夠使用所被保存的LBA清單與位置資訊,來實行回復(recovery)處理。例如,控制器5,係亦可實行將對應於失去的資料之LBA對於主機2作報告的處理。又,控制器5,係亦可實行將寫入被作了中斷的記憶位置設定為錯誤位置之處理。
接著,針對在NAND記憶體6中所包含之快閃晶粒61之構成例進行說明。圖2,係為對於在第1實施形態的記憶體系統3中所包含之NAND記憶體6之快閃晶粒61之構成例作展示之區塊圖。
於此,係注目於快閃晶粒(#0)61-0,來對於快閃晶粒61之構成進行說明。其他之快閃晶粒,亦係具備有與快閃晶粒(#0)61-0相同之構成。快閃晶粒(#0)61-0,係包含有周邊電路611-0、和記憶體胞陣列612-0。
周邊電路611-0,係為對於記憶體胞陣列612-0進行控制之電路。周邊電路611-0,例如,係包含有行解碼器、列解碼器、感測放大器、閂鎖電路以及電壓產生電路。周邊電路611-0,係因應於從NAND控制器571-0而收訊了位址以及指令一事,而對於記憶體胞陣列612-0實行程式化動作、讀取動作或者是刪除動作。
記憶體胞陣列612-0,係包含有複數之平面(plane)。具備有複數之平面之構成,係亦被稱作多平面構成。記憶體胞陣列612-0,係能夠使複數之平面(於此,係為PLANE#0以及PLANE#1)進行平行動作。
記憶體胞陣列612-0之平面,係包含有複數之區塊(BLK0、BLK1、BLK2、…)。區塊BLK,係為非揮發性記憶體胞電晶體(於後,係單純稱作記憶體胞電晶體或者是記憶體胞)之集合。各區塊,係包含有複數之字串單元(SU0、SU1、SU2、SU3)。各字串單元SU,係為記憶體胞電晶體之集合。各字串單元SU,係包含有複數之NAND字串NS(係亦單純稱作字串)。各NAND字串NS,係為記憶體胞電晶體之集合。
在圖2中,係針對「在各區塊處係包含有4個的字串單元SU0、SU1、SU2、SU3」之情況來進行說明。在各區塊中所包含之字串單元SU之數量,係亦可為3個以下,亦可為5個以上。另外,係亦可使用在各區塊中僅包含有1個的字串單元SU之構成。亦即是,各區塊,係包含有1個以上的字串單元SU。
接著,針對區塊之構成例作說明。圖3,係為對於在實施形態的記憶體系統3中所包含之NAND記憶體6之區塊之構成例作展示之圖。
在圖3中,係注目於區塊BLK0來對於區塊之構成作說明。其他之區塊,亦係具備有與區塊BLK0相同之構成。區塊BLK0,係包含有4個的字串單元(SU0、SU1、SU2、SU3)。4個的字串單元(SU0、SU1、SU2、SU3),係被配置在與複數之字元線WL0~WL7所被層積之方向(垂直方向)相正交之方向(水平方向)上。各字串單元SU,係包含有複數之NAND字串NS。各NAND字串NS之其中一端,係被與複數之位元線(BL0~BL(L-1))之中之相對應之位元線作連接。各NAND字串NS,係延伸存在於垂直方向上。在各NAND字串NS中所包含之複數之記憶體胞電晶體之控制閘極,係分別被與複數之字元線(WL0、WL1、…、WL7)作連接。
接著,針對複數之通道與複數之快閃晶粒61之間之關係進行說明。圖4,係為對於在實施形態的記憶體系統3中所被使用之複數之通道ch.0、ch.1、…、ch.31和複數之快閃晶粒61(61-0、61-1、…、61-31)之間的關係之例作展示之圖。
在圖4中,32個的快閃晶粒61之各者,係分別具備有包含2個的平面(PLANE#0、PLANE#1)之多平面構成。各平面,係包含有複數之區塊BLK0~BLKx-1。區塊BLK0~BLKx-1之各者,係包含複數之字元線。對於1個的字元線,與4個的字串單元SU(SU0、SU1、SU2、SU3)相對應之4個的記憶體胞群組係被作連接。區塊BLK0~BLKx-1之各者,係為將資料刪除的資料刪除動作之單位。區塊BLK0~BLKx-1之各者,係亦被稱作物理區塊、物理記憶體區塊、刪除區塊或者是快閃區塊。
32個的快閃晶粒61之各者,係能夠進行平行動作。進而,在各個的快閃晶粒61處,2個的平面之各者,係能夠進行平行動作。
為了平行地實行針對複數之物理區塊之資料寫入動作,複數之區塊群組係藉由控制器5而被作管理。區塊群組,係藉由可進行平行動作之複數之物理區塊而被構成。以下,係將區塊群組稱作超區塊。
接著,針對超區塊之構成例作說明。圖5,係為對於在實施形態的記憶體系統3中之超區塊之構成例和在超區塊中所包含之複數之記憶位置之各者與複數之偏位之各者之間的關係之例作展示之圖。
於此,針對使在任意之快閃晶粒61中所包含的平面#0(PLANE#0)之區塊BLK0以及平面#1(PLANE#1)之區塊BLK0建構出超區塊SB0的情況作考慮。
各區塊,係包含有4個的字串單元(SU0、SU1、SU2以及SU3)。之後,各字串單元,係被與複數之字元線(WL0、WL1、…)作連接。
在以於1個的記憶體胞中而記憶4位元之資料的四級胞(QLC)模式而將資料寫入至超區塊SB0中的情況時,在被與1個的字元線作連接並且被包含於1個的字串單元中之記憶體胞群組處,係被寫入有對應於4個的頁面(lower、middle、upper以及higher)之資料。1個的頁面之容量,例如,係為16KB。1個的頁面,係包含有複數之扇區。例如,當1個的頁面之容量係為4KB的情況時,1個的頁面,係包含有4個的扇區。故而,被與1個的字元線作連接並且被包含於1個的字串單元中之記憶體胞群組,係包含有對應於16個的扇區之16個的記憶位置。
以下,係將被與字元線WLn作連接並且被包含於字串單元SUm中之記憶體胞群組(以下,稱作MG),標記為MG(WLn、SUm)。
代表超區塊SB0之某一記憶位置x之物理位址,係藉由「超區塊SB0之區塊位址」和「相對於超區塊SB0之開頭之記憶位置的記憶位置x之偏位」,而被作表現。偏位,係藉由扇區之倍數而被作表現。
各記憶位置之偏位,係基於針對各扇區之資料所被作寫入的順序,而被作設定。
控制器5,首先,係實行針對平面#0之區塊BLK0之MG(WL0、SU0)之4個頁面(lower、middle、upper以及higher)之量的資料之寫入、和針對平面#1之區塊BLK0之MG(WL0、SU0)之4個頁面(lower、middle、upper以及higher)之量的資料之寫入。平面#0之區塊BLK0之MG(WL0、SU0)與平面#1之區塊BLK0之MG(WL0、SU0),係包含有總計32個的記憶位置(=4扇區×QLC(4頁面)×2平面)。因此,在平面#0之區塊BLK0之MG(WL0、SU0)與平面#1之區塊BLK0之MG(WL0、SU0)中,係被設定有總計32個的偏位(+0~+31)。例如,在平面#0之區塊BLK0之MG(WL0、SU0)中,係能夠在lower頁面之4個扇區處設定偏位(+0~+3),並能夠在middle頁面之4個扇區處設定偏位(+4~+7),並能夠在upper頁面之4個扇區處設定偏位(+8~+11),並且能夠在higher頁面之4個扇處設定偏位(+12~+15)。又,在平面#1之區塊BLK0之MG(WL0、SU0)中,係能夠在lower頁面之4個扇區處設定偏位(+16~+19),並能夠在middle頁面之4個扇區處設定偏位(+20~+23),並能夠在upper頁面之4個扇區處設定偏位(+24~+27),並且能夠在higher頁面之4個扇處設定偏位(+28~+31)。
接著,控制器5,係實行針對平面#0之區塊BLK0之MG(WL0、SU1)之4個頁面之量的資料之寫入、和針對平面#1之區塊BLK0之MG(WL0、SU1)之4個頁面之量的資料之寫入。因此,在平面#0之區塊BLK0之MG(WL0、SU1)與平面#1之區塊BLK0之MG(WL0、SU1)中,係被設定有總計32個的偏位(+32~+63)。例如,在平面#0之區塊BLK0之MG(WL0、SU1)中,係能夠在lower頁面之4個扇區處設定偏位(+32~+35),並能夠在middle頁面之4個扇區處設定偏位(+36~+39),並能夠在upper頁面之4個扇區處設定偏位(+40~+43),並且能夠在higher頁面之4個扇處設定偏位(+44~+47)。又,在平面#1之區塊BLK0之MG(WL0、SU1)中,係能夠在lower頁面之4個扇區處設定偏位(+48~+51),並能夠在middle頁面之4個扇區處設定偏位(+52~+55),並能夠在upper頁面之4個扇區處設定偏位(+56~+59),並且能夠在higher頁面之4個扇處設定偏位(+60~+69)。
接著,控制器5,係實行針對平面#0之區塊BLK0之MG(WL0、SU2)之4個頁面之量的資料之寫入、和針對平面#1之區塊BLK0之MG(WL0、SU2)之4個頁面之量的資料之寫入。因此,在平面#0之區塊BLK0之MG(WL0、SU2)與平面#1之區塊BLK0之MG(WL0、SU2)中,係被設定有總計32個的偏位(+64~+95)。例如,在平面#0之區塊BLK0之MG(WL0、SU2)中,係能夠在lower頁面之4個扇區處設定偏位(+64~+67),並能夠在middle頁面之4個扇區處設定偏位(+68~+71),並能夠在upper頁面之4個扇區處設定偏位(+72~+75),並且能夠在higher頁面之4個扇處設定偏位(+76~+79)。又,在平面#1之區塊BLK0之MG(WL0、SU2)中,係能夠在lower頁面之4個扇區處設定偏位(+80~+83),並能夠在middle頁面之4個扇區處設定偏位(+84~+87),並能夠在upper頁面之4個扇區處設定偏位(+88~+91),並且能夠在higher頁面之4個扇處設定偏位(+92~+95)。
接著,控制器5,係實行針對平面#0之區塊BLK0之MG(WL0、SU3)之4個頁面之量的資料之寫入、和針對平面#1之區塊BLK0之MG(WL0、SU3)之4個頁面之量的資料之寫入。因此,在平面#0之區塊BLK0之MG(WL0、SU3)與平面#1之區塊BLK0之MG(WL0、SU3)中,係被設定有總計32個的偏位(+96~+127)。例如,在平面#0之區塊BLK0之MG(WL0、SU3)中,係能夠在lower頁面之4個扇區處設定偏位(+96~+99),並能夠在middle頁面之4個扇區處設定偏位(+100~+103),並能夠在upper頁面之4個扇區處設定偏位(+104~+107),並且能夠在higher頁面之4個扇處設定偏位(+108~+111)。又,在平面#1之區塊BLK0之MG(WL0、SU3)中,係能夠在lower頁面之4個扇區處設定偏位(+112~+115),並能夠在middle頁面之4個扇區處設定偏位(+116~+119),並能夠在upper頁面之4個扇區處設定偏位(+120~+123),並且能夠在higher頁面之4個扇處設定偏位(+124~+127)。
接著,控制器5,係實行針對平面#0之區塊BLK0之MG(WL1、SU0)之4個頁面之量的資料之寫入、和針對平面#1之區塊BLK0之MG(WL1、SU0)之4個頁面之量的資料之寫入。因此,在平面#0之區塊BLK0之MG(WL1、SU0)與平面#1之區塊BLK0之MG(WL1、SU0)中,係被設定有總計32個的偏位(+128~+159)。
接著,針對複數階段之程式化動作進行說明。在以QLC模式來將資料作寫入的情況時,控制器5,係將針對在寫入目標區塊中所包含之複數之記憶體胞群組之各者所進行的資料寫入動作,使用至少包含有第1階段之程式化動作與第2階段之程式化動作的複數階段之程式化動作來實行之。在第1階段之程式化動作中,應寫入之4個頁面之量的資料係被傳輸至NAND記憶體6處,在寫入目標區塊之記憶體胞群組MG(WLn、SUm)處,此4個頁面之量的資料係被作寫入。在第1階段之程式化動作中,各記憶體胞之臨限值電壓係被作粗略的設定。在此狀態下,係並無法從各記憶體胞而將資料正常地讀出。在第2階段之程式化動作中,與在第1階段之程式化動作中所被作了傳輸的資料相同之4個頁面之量的資料,係再度被傳輸至NAND記憶體6處,在被實行了第1階段之程式化動作的記憶體胞群組MG(WLn、SUm)處,此4個頁面之量的資料係被作寫入。在第2階段之程式化動作中,各記憶體胞之臨限值電壓,係被設定為與應寫入之資料相對應的目標臨限值電壓。若是第2階段之程式化動作完成,則係能夠從記憶體胞群組MG(WLn、SUm)而將資料正確地讀出。
針對記憶體胞群組MG(WLn、SUm)之第2階段之程式化動作,係在針對「隸屬於與記憶體胞群組MG(WLn、SUm)相同之字串單元SUm,並且被與接續於記憶體胞群組MG(WLn、SUm)所被作連接之字元線WLn之後的字元線WL(n+1)作了連接之其他之記憶體胞群組MG(WL(n+1)、SUm)」的第1階段之程式化動作被實行之後,才被實行。
作為複數階段之程式化動作,例如,係可使用foggy-fine程式化動作。foggy-fine程式化動作,係包含有foggy程式化動作和fine程式化動作。foggy程式化動作,係為將各記憶體胞之臨限值電壓作粗略的設定之程式化動作(第1階段之程式化動作)。fine程式化動作,係為對於各記憶體胞之臨限值電壓作調整並將各記憶體胞之臨限值電壓設定為目標臨限值電壓之程式化動作(第2階段之程式化動作)。
對於寫入目標區塊之foggy-fine寫入動作,係如同下述一般地而被實行。以下,針對控制器5將在圖5中所示之超區塊分配為寫入目標區塊的情況作考慮。
(1)首先,針對平面#0之區塊BLK0之MG (WL0、SU0)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU0)的foggy程式化動作係被實行。於此,在NAND記憶體6處,係被傳輸有具有8個頁面之量之容量的寫入資料。頁面容量,係相當於在1個的字串單元SU中所包含之字串之數量、亦即是相當於在1個的記憶體胞群MG中所包含之記憶體胞之數量。
(2)接著,針對平面#0之區塊BLK0之MG (WL0、SU1)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU1)的foggy程式化動作係被實行。
(3)接著,針對平面#0之區塊BLK0之MG (WL0、SU2)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU2)的foggy程式化動作係被實行。
(4)接著,針對平面#0之區塊BLK0之MG (WL0、SU3)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU3)的foggy程式化動作係被實行。
(5)若是針對平面#0之區塊BLK0之MG (WL0、SU0)~MG(WL0、SU3)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU0)~MG(WL0、SU3)的foggy程式化動作完成,則針對平面#0之區塊BLK0之MG(WL1、SU0)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL1、SU0)的foggy程式化動作係被實行。
(6)若是針對平面#0之區塊BLK0之MG (WL1、SU0)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL1、SU0)的foggy程式化動作完成,則針對平面#0之區塊BLK0之MG(WL0、SU0)的fine程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU0)的fine程式化動作係被實行。於此,在NAND記憶體6處,係再度被傳輸有與「在針對平面#0之區塊BLK0之MG(WL0、SU0)和平面#1之區塊BLK0之MG(WL0、SU0)的foggy程式化動作中所被使用之寫入資料」相同的寫入資料。之後,針對平面#0之區塊BLK0之MG(WL0、SU0)的fine程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU0)的fine程式化動作係被實行。若是此fine程式化動作完成,則針對平面#0之區塊BLK0之MG(WL0、SU0)與平面#1之區塊BLK0之MG (WL0、SU0)的寫入係完成。亦即是,被寫入至平面#0之區塊BLK0之MG(WL0、SU0)中的資料和被寫入至平面#1之區塊BLK0之MG(WL0、SU0)中的資料,係成為能夠從NAND記憶體6而正常地讀出的可讀出資料。
(7)接著,針對平面#0之區塊BLK0之MG (WL1、SU1)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL1、SU1)的foggy程式化動作係被實行。
(8)若是針對平面#0之區塊BLK0之MG (WL1、SU1)的foggy程式化動作與針對平面#1之區塊BLK0之MG(WL1、SU1)的foggy程式化動作完成,則針對平面#0之區塊BLK0之MG(WL0、SU1)的fine程式化動作與針對平面#1之區塊BLK0之MG(WL0、SU1)的fine程式化動作係被實行。若是此fine程式化動作完成,則針對平面#0之區塊BLK0之MG(WL0、SU1)與平面#1之區塊BLK0之MG(WL0、SU1)的寫入係完成。亦即是,被寫入至平面#0之區塊BLK0之MG(WL0、SU1)中的資料和被寫入至平面#1之區塊BLK0之MG(WL0、SU1)中的資料,係成為能夠從NAND記憶體6而正常地讀出的可讀出資料。
接著,對於針對寫入目標區塊之寫入動作與斷電保護(PLP)動作進行說明。圖6,係為對於在記憶體系統3處所被實行的針對寫入目標區塊之寫入動作與PLP動作之例作展示之圖。
控制器5,係能夠實行2種類的PLP動作。2種類的PLP動作之其中一者,係為當發生了非預期之電力喪失的情況時,將LBA清單作備份(backup)之PLP動作(第1PLP動作)。2種類的PLP動作之另外一者,係為當發生了非預期之電力喪失的情況時,使對於NAND記憶體6之寫入未完成資料之寫入完成的PLP動作(第2PLP動作)。
控制器5,係針對以「將分別對應於已從主機2而收訊並且對於NAND記憶體6之寫入尚未完成的寫入未完成資料之LBA之清單作備份」之第1模式來對於寫入作控制的第1區塊之集合與「使對於NAND記憶體6之寫入未完成資料之寫入完成」的第2區塊之集合作管理。
以下,將隸屬於第2區塊之集合之區塊,稱作PLP對象之區塊,並將隸屬於第1區塊之集合之區塊,稱作PLP對象外之區塊。
圖6,係作為例子,而對於控制器5將超區塊SB0~SB19之20個的超區塊和1個的單級胞(SLC)區塊分配為寫入目標區塊的情況作展示。SLC區塊,係為以「在1個的記憶體胞處而記憶1位元之資料」的SLC模式來使資料被作寫入之區塊。超區塊SB0~SB14,係為PLP對象之區塊。超區塊SB15~SB19,係為PLP對象外之區塊。
首先,針對將資料寫入至PLP對象之區塊、例如寫入至超區塊SB0中的情況進行說明。
(1)在每次從主機2而收訊寫入指令時,控制器5,係將從主機2所收訊之資料儲存在內部緩衝531中。控制器5係作等待,直到在內部緩衝531中被儲存有寫入容量之量的資料為止。當頁面容量係為4個扇區(=16KB)的情況時,在以QLC模式來將資料寫入至超區塊SB0中的情況時,寫入容量,係為32個扇區(=4個扇區×2平面×4(QLC))。控制器5係作等待,直到在內部緩衝531中被儲存有寫入至超區塊SB0中之32個扇區之量的資料為止。
(2-a)若是在內部緩衝531中積蓄有寫入至超區塊SB0中之32個扇區之量的資料,則控制器5,係實行將32個扇區之量之資料寫入至超區塊SB0中的foggy程式化動作。例如,在超區塊SB0之平面#0之區塊之MG(WL0、SU0)中,係被寫入有4個頁面(=16個扇區之量)之資料。又,在超區塊SB0之平面#1之區塊之MG(WL0、SU0)中,係被寫入有4個頁面(=16個扇區之量)之資料。針對平面#0之區塊之MG(WL0、SU0)的fine程式化動作,係在針對平面#0之區塊之MG(WL0、SU1)~MG(WL0、SU3)的foggy程式化動作被實行之後,成為能夠實行。同樣的,針對平面#1之區塊之MG(WL0、SU0)的fine程式化動作,亦係在針對平面#1之區塊之MG(WL1、SU0)~MG(WL0、SU3)、MG(WL1、SU0)的foggy程式化動作被實行之後,成為能夠實行。故而,若是對於超區塊SB0之寫入被進行,則正在實行「對於超區塊SB0之寫入動作」的總計160個扇區(=4個扇區×2平面×4(QLC)×5字串單元)之量的資料,係被維持於內部緩衝531中。
(3-a)當在寫入正在進行的途中之時序處發生了非預期之電力喪失的情況時,控制器5,係使用從電容器81而來之電力,來將對於超區塊SB0之寫入尚未完成的寫入未完成資料寫入至NAND記憶體6中。寫入未完成資料,係可被寫入至超區塊SB0中,亦可被寫入至NAND記憶體6之單級胞(SLC)區塊中。SLC區塊,係為以「在1個的記憶體胞處而記憶1位元之資料」的SLC模式來使資料被作寫入之區塊。
接著,針對將資料寫入至PLP對象外之區塊、例如寫入至超區塊SB15中的情況進行說明。在超區塊SB15處,係被分配有1個的LBA清單。
(1)在每次從主機2而收訊寫入指令時,控制器5,係將從主機2所收訊之資料儲存在內部緩衝531中。
(2-b)當每次在內部緩衝531中被積蓄有寫入至超區塊SB15中之資料時,控制器5,係將分別與被儲存在內部緩衝531中之資料相對應的LBA之集合,追加至對應於超區塊SB15之LBA清單中。又,控制器5,係將代表超區塊SB15之寫入未完成區域之開頭之記憶位置的位置資訊(超區塊位址SBA、偏位),對於LBA清單而附加關連性並作管理。控制器5係作等待,直到在內部緩衝531中被儲存有寫入至超區塊SB15中之32個扇區之量的資料為止。
(3-b)若是在內部緩衝531中積蓄有寫入至超區塊SB15中之32個扇區之量的資料,則控制器5,係實行將32個扇區之量之資料寫入至超區塊SB15中的foggy程式化動作。例如,在超區塊SB15之平面#0之區塊之MG(WL0、SU0)中,係被寫入有4個頁面(=16個扇區之量)之資料。又,在超區塊SB15之平面#1之區塊之MG(WL0、SU0)中,係被寫入有4個頁面(=16個扇區之量)之資料。針對平面#0之區塊之MG(WL0、SU0)的fine程式化動作,係在針對平面#0之區塊之MG(WL0、SU1)~MG(WL0、SU3)的foggy程式化動作被實行之後,成為能夠實行。同樣的,針對平面#1之區塊之MG(WL0、SU0)的fine程式化動作,亦係在針對平面#1之區塊之MG(WL1、SU0)~MG(WL0、SU3)、MG(WL1、SU0)的foggy程式化動作被實行之後,成為能夠實行。故而,若是對於超區塊SB15之寫入被進行,則正在實行「對於超區塊SB15之寫入動作」的總計160個扇區(=4個扇區×2平面×4(QLC)×5字串單元)之量的資料,係被維持於內部緩衝531中。又,與160個的扇區分別相互對應之160個的LBA,係為分別對應於正被寫入至超區塊SB15中之資料的LBA之集合。在對應於超區塊SB15之LBA清單中,此些之160個的LBA係被作維持。又,在對應於超區塊SB15之LBA清單中,係亦維持有分別對應於「已從主機2而收訊並且對於超區塊SB15之寫入尚未被開始的資料」之LBA。當超區塊SB15之寫入容量係為32個扇區的情況時,已收訊且尚未寫入的資料之最大容量,係為32個扇區。故而,在對應於超區塊SB15之LBA清單中所包含的LBA之最大數量,係為192(=4個扇區×2平面×4(QLC)×(5字串單元+1))。
(4-b)當在寫入正在進行的途中之時序處發生了非預期之電力喪失的情況時,控制器5,係使用從電容器81而來之電力,來將在對應於超區塊SB15之LBA清單中所包含的LBA之集合、和代表超區塊SB15之寫入未完成區域之開頭之記憶位置的位置資訊(超區塊位址SBA、偏位),寫入至NAND記憶體6中。LBA之集合與位置資訊,係亦可被寫入至NAND記憶體6之SLC區塊中。
接著,針對寫入目標區塊與邏輯位址清單(LBA清單)之間之關係作說明。圖7,係為對於在實施形態之記憶體系統3處所被作管理的寫入目標區塊與邏輯位址清單(LBA清單)之間之關係之例作展示之圖。
當PLP對象外之超區塊被分配為寫入目標區塊的情況時,在超區塊處,係被分配有1個的LBA清單。
LBA清單,係為了保持「分別對應於已從主機2而收訊並且對於寫入目標區塊之寫入尚未完成的寫入未完成資料之複數之LBA」,而被作使用。
超區塊,係包含有「寫入未完成」區域和「寫入資料未受取、未寫入」區域。「寫入未完成」區域,係為「已從主機2而收訊,並且對於超區塊之寫入尚未完成」的寫入未完成資料所應被作寫入之區域。
「寫入未完成」區域,係包含有「寫入資料已受取、寫入中」區域和「寫入資料已受取、未寫入」區域。
「寫入資料已受取、寫入中」區域,係為正在實行寫入動作中之區域。當頁面容量係為4個扇區的情況時,在使用foggy-fine程式化動作來對於超區塊而以QLC模式來將資料作寫入的情況時,「寫入資料已受取、寫入中」區域之容量,係為160個扇區(=4個扇區×2平面×4(QLC)×5字串單元)。
「寫入資料已受取、未寫入」區域,係為「已從主機2而收訊寫入資料,但是寫入尚未被開始」之區域。當頁面容量係為4個扇區的情況時,在使用foggy-fine程式化動作來對於超區塊而以QLC模式來將資料作寫入的情況時,「寫入資料已受取、未寫入」區域之最大容量,係為32個扇區(=4個扇區×2平面×4(QLC))。
故而,「寫入未完成」區域之容量,係為192個扇區(=4個扇區×2平面×4(QLC)×(5字串單元+1))。
又,在使用全序列程式化(full sequence program)動作來對於超區塊而以TLC模式來將資料作寫入的情況時,藉由將3個頁面之量的資料寫入至記憶體胞群組中,3個頁面之量的資料之寫入係完成。故而,「寫入資料已受取、寫入中」區域之容量,係為24個扇區(=4個扇區×2平面×3(TLC)×1字串單元)。又,「寫入資料已受取、未寫入」區域之最大容量,係為24個扇區(=4個扇區×2平面×3(TLC))。
故而,「寫入未完成」區域之容量,係為48個扇區(=4個扇區×2平面×4(QLC)×(1字串單元+1))。
以下,係針對使用foggy-fine程式化動作來對於超區塊而以QLC模式來將資料作寫入的情況作考慮。
在LBA清單中所包含之160個的LBA(LBA#0~#31、LBA#32~#63、LBA#64~#95、LBA#96~#127、LBA#128~#159),係為分別與「已從主機2而收訊並且對於超區塊之寫入尚未完成的寫入未完成資料」相對應之LBA。
例如,最初之32個的LBA#0~#31,係為分別與「被寫入至對應於偏位#0~#31之超區塊之32個的記憶位置處之資料」相對應之LBA。偏位#0~#31,係為藉由在圖5中所說明之偏位+0~+31所展示的記憶位置。
LBA#0~#31之後續之32個的LBA#32~#63,係為分別與「被寫入至對應於偏位#32~#63之超區塊之32個的記憶位置處之資料」相對應之LBA。偏位#32~#63,係為藉由在圖5中所說明之偏位+32~+63所展示的記憶位置。
LBA#32~#63之後續之32個的LBA#64~#95,係為分別與「被寫入至對應於偏位#64~#95之超區塊之32個的記憶位置處之資料」相對應之LBA。偏位#64~#95,係為藉由在圖5中所說明之偏位+64~+95所展示的記憶位置。
LBA#64~#95之後續之32個的LBA#96~#127,係為分別與「被寫入至對應於偏位#96~#127之超區塊之32個的記憶位置處之資料」相對應之LBA。偏位#96~#127,係為藉由在圖5中所說明之偏位+96~+127所展示的記憶位置。
LBA#96~#127之後續之32個的LBA#128~#159,係為分別與「被寫入至對應於偏位#128~#159之超區塊之32個的記憶位置處之資料」相對應之LBA。偏位#128~#159,係為藉由在圖5中所說明之偏位+128~+159所展示的記憶位置。
又,若是被寫入至「寫入資料已受取、未寫入區域」中之資料被儲存在內部緩衝531中,則與被作了儲存的資料分別相對應之LBA(例如,LBA#160~#n)係被追加至LBA清單中。此時,係亦可與LBA#160~#n一同地,而使偏位#160~#n被追加至LBA清單中。
如此這般,在LBA清單中,分別與寫入未完成資料相對應之LBA(LBA#0~#159、#160~#n),係以與寫入未完成資料之被寫入至寫入未完成區域中的順序相同之順序、亦即是以與偏位#0~#159、#160~#n的順序相同之順序,而被作排列。又,在LBA清單中,係亦可並不僅是被保持有LBA#0~#159、#160~#n,而亦被保持有偏位#0~#159、#160~#n。
LBA清單,係藉由2個的指標P1、P2而被作管理。指標P1,係為代表被從LBA清單而刪除或取出之下一個的LBA之位置之指標。指標P2,係為代表將新的LBA作儲存之位置之指標。
又,在圖7中,代表寫入未完成區域之開頭之記憶位置的位置資訊,係藉由超區塊位址SBA與偏位#0而被作表現。
圖8,係為對於在實施形態之記憶體系統3處所被作管理的寫入目標區塊與邏輯位址清單(LBA清單)之間之關係之其他例作展示之圖。
圖8,係以「對應於LBA#0~#31之32個扇區之量的資料之寫入為完成,32個扇區之量的資料之讀出係成為可能」的情況作為例子,來作展示。
超區塊之開頭之32個的記憶位置,係成為「寫入完成、可讀出」區域。「寫入完成、可讀出」區域,係為「寫入已完成並成為了能夠從超區塊而讀出」的資料所被作記憶之區域。若是32個扇區之量之資料成為可讀出,則與可讀出資料相對應之32個的LBA#0~#31係被從LBA清單而刪除。藉由此,在LBA清單中係確保有用以儲存新的32個的LBA之空閒區域。又,代表寫入未完成區域之開頭之記憶位置的位置資訊,係被作寫入容量(32個扇區)之量的前進。
在圖8中,於LBA清單中,160個的LBA#32~#191,係作為分別與正被寫入至「寫入資料已受取、寫入中」區域中之資料相對應之LBA而被作保持。
又,若是被寫入至「寫入資料已受取、未寫入區域」中之資料被儲存在內部緩衝531中,則與被作了儲存的資料分別相對應之LBA(例如,LBA#192~#m)係被追加至LBA清單中。
當在LBA清單正保持有LBA#32~#191、LBA#192~#m之狀態下,而發生了非預期之電力喪失的情況時,「LBA#32~#191以及LBA#192~#m」和「代表寫入未完成區域之開頭之記憶位置之位置資訊(超區塊位址SBA、偏位#32),係被寫入至NAND記憶體6中。
另外,若是針對超區塊全體之資料之寫入完成,則超區塊全體係成為「寫入完成、可讀出」區域。於此情況,LBA清單係成為空白。之後,控制器5,係將對於此超區塊之LBA清單之分配解除。使對於超區塊之分配被作了解除後的LBA清單,係被分配給「被新分配來作為寫入目標區塊之超區塊」。
接著,針對環型緩衝之構成作說明。圖9,係為對於為了保持LBA清單而被作使用的環型緩衝之構成例作展示之圖。
環型緩衝,係包含複數之登錄(entry),例如包含192個的登錄。環型緩衝之複數之登錄的各者,係身為將1個的LBA作保持之區域。指標P1,係為代表被從環型緩衝而刪除或取出之下一個的LBA所被作儲存之登錄之指標。指標P1,係亦被稱作標頭指標。指標P2,係為代表用以將新的LBA作儲存之下一個的登錄之指標。指標P2,係亦被稱作標尾指標。
在圖9(A)中,在藉由指標P1~指標P2所展示之登錄#0~#q中,係分別被儲存有LBA。
若是從主機2而新收訊有寫入至超區塊中之資料,則如同在圖9(B)中所示一般,與所收訊了的資料分別相對應之LBA係被追加至環型緩衝中。指標P2之值,係被作與所被作了追加的LBA之數量相對應之量的增數。在圖9(B)中,在藉由「指標P1」~「被作了增數後的指標P2」所展示之登錄#0~#r中,係分別被儲存有LBA。
若是與「對應於登錄#0~#31之32個的LBA」相對應之資料的fine程式化動作完成,則如同在圖9(C)中所示一般,指標P1之值係被作增數並被更新為32。藉由此,由於登錄#0~#31係被釋放,因此32個的LBA係被從環型緩衝而刪除。在圖9(C)中,在藉由「被作了增數的指標P1」~「指標P2」所展示之登錄#32~#s中,係分別被儲存有LBA。此時,指標P2亦係被作更新。
若是在指標P2之值處加上1後之值成為192,則指標P2之值係被重置為0。藉由此,係能夠在環型緩衝之開頭之空白登錄之各者處而追加LBA。在圖9(D)中,係對於在此種環型緩衝之開頭之空白登錄之各者處而被追加有LBA的情況作展示。在圖9(D)中,係針對指標P1為代表登錄#32而指標P2為代表#t(<32)的狀態作展示。如此這般,在圖9(D)中,於登錄#32~#191、登錄#0~#t中係分別被儲存有LBA。
接著,針對資料寫入動作之處理程序進行說明。圖10,係為對於在實施形態之記憶體系統3處所被實行的資料寫入動作之處理程序作展示之流程圖。
控制器5,係判定是否從主機2而收訊了寫入指令(S101)。
當並未收訊有寫入指令的情況時(S101,No),控制器5係等待,直到收訊寫入指令為止。
當收訊了寫入指令的情況時(S101,Yes),控制器5,係從主機2而收訊寫入資料(S102)。控制器5,係將所收訊了的資料儲存在內部緩衝531中。
控制器5,係判定「將所收訊了的寫入資料作寫入之寫入目標區塊」是否為PLP對象(S103)。
當寫入目標區塊係為PLP對象的情況時(S103,Yes),控制器5,係判定寫入資料是否到達了寫入容量(S104)。例如,寫入容量,係為32個扇區之量的資料容量。
當寫入資料並未到達寫入容量的情況時(S104,No),控制器5係等待,直到收訊後續之寫入指令為止(回到S101)。
當寫入資料到達了寫入容量的情況時(S104,Yes),控制器5,係實行將寫入容量之寫入資料寫入至NAND記憶體6中之寫入動作(S105)。
之後,控制器5,係將資料寫入動作結束(結束)。
當寫入目標區塊係並非為PLP對象的情況時(S103,No),控制器5,係將藉由所收訊了的寫入指令而被作了指定之LBA和與寫入資料所被作寫入的記憶位置相對應之偏位,追加至LBA清單中(S106)。控制器5,係選擇與寫入目標區塊相對應之LBA清單。之後,控制器5,係對於所選擇了的LBA清單,而追加LBA和偏位。又,控制器5,係基於追加了LBA一事,而將LBA清單之指標P2作增數。
控制器5,係判定寫入資料是否到達了寫入容量(S107)。
當寫入資料並未到達寫入容量的情況時(S107,No),控制器5係等待,直到收訊後續之寫入指令為止(回到S101)。
當寫入資料到達了寫入容量的情況時(S107,Yes),控制器5,係實行將寫入容量之寫入資料寫入至NAND記憶體6中之寫入動作(S108)。
控制器5,係判定是否存在有「藉由在S108處所實行之寫入動作而成為了能夠讀出的資料」(S109)。控制器5,係判定在S108之寫入動作中,fine寫入動作是否被作了實行。
當並不存在有成為了能夠讀出之資料的情況時(S109,No),控制器5,係將資料寫入動作結束(結束)。
當存在有成為了能夠讀出之資料的情況時(S109,Yes),控制器5,係將與可讀出資料相對應之LBA從LBA清單而刪除,並將與LBA清單相對應之記憶位置資訊作更新(S110)。控制器5,係將與寫入目標區塊相對應之LBA清單的指標P1作增數。
之後,控制器5,係將資料寫入動作結束(結束)。
接著,針對PLP動作之處理程序進行說明。圖11,係為對於在實施形態之記憶體系統3處所被實行的PLP動作之處理程序作展示之流程圖。
控制器5,係判定是否發生了非預期之電力喪失(S201)。控制器5,係判定對於記憶體系統3之電力的供給是否並未被主機2所通知地而作了遮斷。
當並未發生非預期之電力喪失的情況時(S201,No),控制器5係等待。
當發生了非預期之電力喪失的情況時(S201,Yes),控制器5係從寫入目標區塊而選擇任意之區塊(S202)。
控制器5,係判定所選擇的區塊是否為PLP對象(S203)。
當所選擇的區塊係並非為PLP對象的情況時(S203,No),控制器5,係將LBA清單和位置資訊(SBA、偏位)寫入至SLC區塊中(S204)。控制器5,係將與所選擇的區塊相對應之LBA清單、和位置資訊,藉由寫入至SLC區塊中來使其非揮發化。
控制器5,係判定是否全部的寫入目標區塊均被作了選擇(S205)。
當存在有尚未被選擇之寫入目標區塊的情況時(S205,No),控制器5係從尚未被選擇之寫入目標區塊而選擇任意之區塊(S202)。
當所選擇之區塊係為PLP對象的情況時(S203,Yes),控制器5,係使與所選擇的區塊相對應之寫入未完成資料之寫入完成(S206)。例如,控制器5,係藉由將寫入未完成資料與虛擬資料寫入至所選擇的區塊中,來將所選擇的區塊設為關閉(close)狀態。又,控制器5,係亦可將寫入未完成資料寫入至SLC區塊中。
之後,控制器5,係判定是否全部的寫入目標區塊均被作了選擇(S205)。
當全部的寫入目標區塊均被作了選擇的情況時(S205,Yes),控制器5係將PLP動作結束(結束)。
接著,針對LBA通知動作之處理程序進行說明。圖12,係為對於在實施形態之記憶體系統3處所被實行的LBA通知動作之處理程序作展示之流程圖。
若是對於記憶體系統3之電力被恢復(S301,Yes),則控制器5,係判定在SLC區塊中是否存在有LBA清單之資訊(S302)。
當在SLC區塊中係存在有LBA清單之資訊的情況時(S302,Yes),控制器5,係將L2P表71作更新(S303)。控制器5,係在與「在LBA清單之資訊中所包含之LBA」相對應的L2P表71之登錄中,儲存代表「錯誤(error)」之值。代表錯誤之值,例如,係亦可為代表無效的物理位址(PBA)之幻數(magic number)。
控制器5,係將LBA清單之資訊對於主機2作通知(S304)。控制器5,係因應於取得從主機2所收訊了的記憶體系統3之日誌(log)之指令,而將LBA清單之資訊對於主機2作提供。又,控制器5,係亦可在實行S303之處理程序之前,先實行將LBA清單之資訊對於主機2作通知之處理程序。
之後,控制器5,係將LBA通知動作結束(結束)。
又,當在SLC區塊中並不存在有LBA清單之資訊的情況時(S302,No),控制器5,係將LBA通知動作結束(結束)。
接著,針對資料讀出動作之處理程序進行說明。圖13,係為對於在實施形態之記憶體系統3處所被實行的資料讀出動作之處理程序作展示之流程圖。
控制器5,係判定是否從主機2而收訊了讀取指令(S401)。
當並未收訊有讀取指令的情況時(S401,No),控制器5係等待,直到收訊讀取指令為止。
當收訊了讀取指令的情況時(S402,Yes),控制器5,係判定讀出對象LBA是否對應於無效之PBA(S402)。控制器5,係藉由參照L2P表71,而取得與讀取指令所指定的LBA相對應之PBA。控制器5,係判定所取得的PBA是否為無效之值。
當讀出對象LBA係對應於無效之PBA的情況時(S402,Yes),控制器5,係對於主機2而通知錯誤(S403)。控制器5,係作為針對所收訊了的讀取指令之回應,而對於主機2送訊代表錯誤之通知。
之後,控制器5,係將讀取動作結束(結束)。
當讀出對象LBA係並非為對應於無效之PBA的情況時(S402,No),控制器5,係實行讀取動作(S404)。控制器5,係將被記憶在「對應於讀出對象LBA之PBA所代表的記憶位置」中之資料讀出。
控制器5,係將所讀出的資料對於主機2作送訊(S405)。
之後,控制器5,係將讀取動作結束(結束)。
如同以上所作了說明一般,若依據本實施形態,則控制器5,係使用從電容器81而來之電力,來將包含有「分別與寫入未完成資料相對應之LBA之集合」的LBA清單、和代表寫入未完成區域之開頭之記憶位置之位置資訊,寫入至NAND記憶體6中。如此這般,藉由將LBA清單寫入至NAND記憶體6中,係成為能夠明確地特定出起因於非預期之電力喪失所失去的資料。
故而,就算是在起因於非預期之電力喪失而導致失去寫入未完成資料的情況時,控制器5,亦能夠將對應於失去的資料之LBA之資訊對於主機2作提供。
又,藉由將代表寫入未完成區域之開頭之記憶位置的位置資訊寫入至NAND記憶體6中,係成為能夠特定出起因於非預期之電力喪失而使寫入被作了中斷的記憶位置。
又,藉由將對應於失去的資料之LBA與無效之PBA(幻數)相互附加對應,控制器5,就算是當收訊了對於此LBA作指定之讀取指令的情況時,也能夠通知錯誤。此事,係能夠防止控制器5讀出不正確的資料並對於主機2作送訊的情形。
雖係針對本發明之數種實施形態作了說明,但是,該些實施形態,係僅為作為例子所提示者,而並非為對於本發明之範圍作限定者。此些之新穎的實施形態,係可藉由其他之各種形態來實施,在不脫離發明之要旨的範圍內,係可進行各種之省略、置換、變更。此些之實施形態或其變形,係亦被包含於發明之範圍或要旨中,並且亦被包含在申請專利範圍中所記載的發明及其均等範圍內。
1:資訊處理系統
2:主機
3:記憶體系統
4:匯流排
5:控制器
6:非揮發性記憶體
7:DRAM
8:電源電路
21:處理器
22:記憶體
50:內部匯流排
51:主機介面
52:CPU
53:SRAM
54:DMAC
55:ECC電路
56:DRAM介面
57:NAND介面
71:L2P表
72:區塊管理表
81:電容器
531:內部緩衝
[圖1]係為對於包含有實施形態的記憶體系統之資訊處理系統之構成例作展示之區塊圖。
[圖2]係為對於在實施形態的記憶體系統中所包含之NAND型快閃記憶體晶粒(die)之構成例作展示之區塊圖。
[圖3]係為對於在實施形態的記憶體系統中所包含之NAND型快閃記憶體之區塊之構成例作展示之圖。
[圖4]係為對於在實施形態的記憶體系統中所被使用之複數之通道和複數之NAND型快閃記憶體晶粒之間的關係之例作展示之區塊圖。
[圖5]係為對於在實施形態的記憶體系統中所被使用之超區塊(super block)之構成例和在超區塊中所包含之複數之記憶位置之各者與複數之偏位(offset)之各者之間的關係之例作展示之圖。
[圖6]係為對於在實施形態之記憶體系統處所被實行的針對寫入目標區塊之寫入動作與斷電保護(PLP)動作之例作展示之圖。
[圖7]係為對於在實施形態之記憶體系統處所被作管理的寫入目標區塊與邏輯位址清單(LBA清單)之間之關係之例作展示之圖。
[圖8]係為對於在實施形態之記憶體系統處所被作管理的寫入目標區塊與LBA清單之間之關係之其他例作展示之圖。
[圖9]係為對於在實施形態的記憶體系統中為了保持LBA清單而被作使用的環型緩衝(ring buffer)之構成例作展示之圖。
[圖10]係為對於在實施形態之記憶體系統處所被實行的資料寫入動作之處理程序作展示之流程圖。
[圖11]係為對於在實施形態之記憶體系統處所被實行的PLP動作之處理程序作展示之流程圖。
[圖12]係為對於在實施形態之記憶體系統處所被實行的LBA通知動作之處理程序作展示之流程圖。
[圖13]係為對於在實施形態之記憶體系統處所被實行的資料讀出動作之處理程序作展示之流程圖。
LBA:邏輯區塊位址
P1,P2:指標
SBA:超區塊位址
Claims (8)
- 一種記憶體系統,係為能夠與主機作連接之記憶體系統,並具備有: 非揮發性記憶體,係包含有複數之區塊;和 控制器,係構成為因應於從前述主機而收訊了對於邏輯位址作指定之寫入指令一事,而將從前述主機所收訊之資料寫入至從前述複數之區塊所分配的第1寫入目標區塊中;和 電容器,係在電力喪失時對於前述控制器供給電力 前述控制器,係構成為: 對於第1清單與第1記憶位置資訊作管理,該第1清單,係包含有複數之邏輯位址,該些複數之邏輯位址,係分別對應於已從前述主機而收訊並且對於前述第1寫入目標區塊之寫入尚未完成的寫入未完成資料,該第1記憶位置資訊,係代表前述第1寫入目標區塊之中之資料之寫入尚未完成的寫入未完成區域之開頭之記憶位置, 當發生了前述記憶體系統之電力喪失的情況時,藉由從前述電容器而來之電力,來將前述第1清單與前述第1記憶位置資訊寫入至前述非揮發性記憶體中, 在從前述記憶體系統之電力喪失而電力有所恢復之後,前述控制器,係將被記憶在前述非揮發性記憶體中之前述第1清單,作為代表起因於前述電力喪失而失去的資料之資訊而提供給前述主機。
- 如請求項1所記載之記憶體系統,其中, 前述第1清單,係包含有剩餘之邏輯位址之集合,該剩餘之邏輯位址之集合,係從分別對應於已從前述主機而收訊並且被寫入至前述第1寫入目標區塊中之資料的邏輯位址之集合,而將分別對應於對於前述第1寫入目標區塊之寫入為完成並且成為了能夠從前述第1寫入目標區塊而讀出之資料的邏輯位址之集合作了去除。
- 如請求項1所記載之記憶體系統,其中, 在前述第1清單中所包含之前述複數之邏輯位址,係被以與前述寫入未完成資料之被寫入至前述寫入未完成區域中的順序相同之順序而被作並排。
- 如請求項1所記載之記憶體系統,其中, 前述電力喪失,係為並無從前述主機而來之預告地而對於前述記憶體系統之電力之供給被作了中斷的情況,前述控制器,係使用從前述電容器所供給而來之電力,而將前述第1清單與前述第1記憶位置資訊寫入至前述非揮發性記憶體中。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係構成為: 使用邏輯物理位址轉換表,來針對為了對於前述記憶體系統進行存取而被前述主機所使用的邏輯位址之各者與前述非揮發性記憶體之物理位址之各者之間的映射作管理, 在對於前述記憶體系統之電力有所恢復之後,基於被記憶在前述非揮發性記憶體中之前述第1清單,而在與在前述第1清單中所包含之前述複數之邏輯位址之各者相互對應的前述邏輯物理位址轉換表之登錄中,儲存代表錯誤之值。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係構成為: 針對以第1模式來對於寫入進行控制之第1區塊之集合與以第2模式來對於寫入進行控制之第2區塊之集合作管理,該第1模式,係當發生了前述電力喪失的情況時,將分別對應於已從前述主機而收訊並且對於前述非揮發性記憶體之寫入尚未完成的寫入未完成資料之邏輯位址之清單作備份,該第2模式,係當發生了前述電力喪失的情況時,使對於前述非揮發性記憶體之前述寫入未完成資料之寫入完成。
- 如請求項1所記載之記憶體系統,其中, 前述第1記憶位置資訊,係包含有前述第1寫入目標區塊之區塊位址、和相對於前述第1寫入目標區塊之開頭之記憶位置的前述寫入未完成區域之開頭之記憶位置之偏位。
- 如請求項1所記載之記憶體系統,其中, 前述第1寫入目標區塊,係為包含有複數之物理區塊之區塊群組。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022041509A JP2023136083A (ja) | 2022-03-16 | 2022-03-16 | メモリシステムおよび制御方法 |
JP2022-041509 | 2022-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202401261A true TW202401261A (zh) | 2024-01-01 |
Family
ID=88048608
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112131600A TW202401261A (zh) | 2022-03-16 | 2022-05-19 | 記憶體系統 |
TW111118640A TWI816401B (zh) | 2022-03-16 | 2022-05-19 | 記憶體系統及記憶體系統之控制方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111118640A TWI816401B (zh) | 2022-03-16 | 2022-05-19 | 記憶體系統及記憶體系統之控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230297247A1 (zh) |
JP (1) | JP2023136083A (zh) |
CN (1) | CN116795729A (zh) |
TW (2) | TW202401261A (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9836108B2 (en) * | 2014-09-10 | 2017-12-05 | Toshiba Memory Corporation | Memory system and controller |
US20170242822A1 (en) * | 2016-02-18 | 2017-08-24 | Samsung Electronics Co., Ltd. | Dram appliance for data persistence |
JP2017156803A (ja) * | 2016-02-29 | 2017-09-07 | 株式会社東芝 | ストレージ装置及び同装置における管理情報退避方法 |
US9990150B2 (en) * | 2016-03-22 | 2018-06-05 | Toshiba Memory Corporation | Method to provide transactional semantics for updates to data structures stored in a non-volatile memory |
JP6732684B2 (ja) * | 2017-03-15 | 2020-07-29 | キオクシア株式会社 | 情報処理装置、ストレージデバイスおよび情報処理システム |
JP6640776B2 (ja) * | 2017-03-17 | 2020-02-05 | キオクシア株式会社 | メモリシステム |
US10802727B2 (en) * | 2017-06-07 | 2020-10-13 | ScaleFlux, Inc. | Solid-state storage power failure protection using distributed metadata checkpointing |
TWI668700B (zh) * | 2017-12-22 | 2019-08-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
TWI645404B (zh) * | 2017-12-28 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
US11263180B2 (en) * | 2019-02-23 | 2022-03-01 | National Tsing Hua University | Method for facilitating recovery from crash of solid-state storage device, method of data synchronization, computer system, and solid-state storage device |
US11042322B2 (en) * | 2019-09-13 | 2021-06-22 | Toshiba Memory Corporation | SSD supporting low latency operation |
US11726704B2 (en) * | 2020-03-31 | 2023-08-15 | Kioxia Corporation | Buffer optimization for solid-state drives |
US20210382828A1 (en) * | 2020-06-03 | 2021-12-09 | Alibaba Group Holding Limited | Method and system for facilitating acceleration of a mapping table reconstruction |
US11379141B2 (en) * | 2020-07-31 | 2022-07-05 | Kioxia Corporation | SSD supporting read-only mode after PLP backup failure |
US20220187992A1 (en) * | 2020-12-16 | 2022-06-16 | Kioxia Corporation | Systems and methods for data copy offload for storage devices |
TWI787848B (zh) * | 2021-03-17 | 2022-12-21 | 日商鎧俠股份有限公司 | 記憶體系統 |
US20230044942A1 (en) * | 2021-08-03 | 2023-02-09 | Kioxia Corporation | Conditional update, delayed lookup |
-
2022
- 2022-03-16 JP JP2022041509A patent/JP2023136083A/ja active Pending
- 2022-05-19 TW TW112131600A patent/TW202401261A/zh unknown
- 2022-05-19 TW TW111118640A patent/TWI816401B/zh active
- 2022-06-22 CN CN202210711021.9A patent/CN116795729A/zh active Pending
- 2022-09-09 US US17/941,388 patent/US20230297247A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202338620A (zh) | 2023-10-01 |
CN116795729A (zh) | 2023-09-22 |
TWI816401B (zh) | 2023-09-21 |
JP2023136083A (ja) | 2023-09-29 |
US20230297247A1 (en) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957961B (zh) | 存储设备、存储系统和计算设备 | |
US20220113910A1 (en) | Memory system and method of controlling nonvolatile memory | |
US9645895B2 (en) | Data storage device and flash memory control method | |
US8453021B2 (en) | Wear leveling in solid-state device | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20110113184A1 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US20110231713A1 (en) | Flash memory module | |
US9442841B2 (en) | Semiconductor memory device and method for logging monitored events into a buffer | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
US20200394099A1 (en) | Data storage device and non-volatile memory control method | |
US20120278535A1 (en) | Data writing method, memory controller, and memory storage apparatus | |
US9811275B2 (en) | Memory system and data control method | |
US20130275655A1 (en) | Memory management method and memory controller and memory storage device using the same | |
US9305665B2 (en) | Memory system and method of controlling memory system | |
TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
US10181352B2 (en) | Memory system and method of controlling nonvolatile memory | |
US11366751B2 (en) | Storage device and storage control method | |
US9792068B2 (en) | Memory system and method of controlling nonvolatile memory | |
US10635583B2 (en) | Memory management method and storage controller | |
TWI816401B (zh) | 記憶體系統及記憶體系統之控制方法 | |
US11392322B2 (en) | Memory system for read operation and operating method thereof | |
JP2023001494A (ja) | メモリシステムおよび制御方法 | |
US20240202113A1 (en) | Memory system | |
US20230289067A1 (en) | Memory system | |
US20230297262A1 (en) | Memory system and control method |