TW202008176A - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TW202008176A TW202008176A TW107125923A TW107125923A TW202008176A TW 202008176 A TW202008176 A TW 202008176A TW 107125923 A TW107125923 A TW 107125923A TW 107125923 A TW107125923 A TW 107125923A TW 202008176 A TW202008176 A TW 202008176A
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- space
- block
- item
- replacement
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
非揮發式記憶體的多通道存取。一控制器係以三種表格管理跨通道存取空間於該非揮發式記憶體之配置,據以實施該非揮發式記憶體的多通道存取。上述跨通道存取空間各自包括M個單位空間,M為複數。第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊。上述頂替資訊是以第二表格以及第三表格儲存。關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
Description
本發明係有關於資料儲存裝置以及其中非揮發式記憶體的控制方法。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存。
非揮發式記憶體可採多通道存取(multi-channel accessing),並行存取數據以提升操作效率。然而,為了避開各通道損毀空間之使用,各通道乃不規則提供空間組成跨通道存取空間,映射表管理需求相應而生。隨著非揮發式記憶體尺寸越來越大,此映射表尺寸可能變成一種負擔。
本案提出非揮發式記憶體之跨通道存取空間的管理技術,以期精簡之。
根據本案一種實施方式實現的一資料儲存裝置包括一非揮發式記憶體以及一控制器。該控制器以多通道方式存取該非揮發式記憶體。該控制器以一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於該非揮發式記憶體之配置,據以實施該非揮發式記憶體的多通道存取。上述跨通道存取空間各自包括M個單位空間,M為複數。上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊。上述頂替資訊是以上述第二表格以及第三表格儲存。關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
一種實施方式中,上述第三表格略去為無頂替需求的單位空間記錄資訊。
一種實施方式中,上述第三表格各欄位佔據一預設空間量。關於有單位空間頂替需求的各跨通道存取空間,上述第二表格的上述M個位元也是規畫該預設空間量記載,且頂替用之單位空間係接續記載。基於以上架構,上述第一表格是以該預設空間量為單位之計數,指向上述第二表格中對應內容。
一種實施方式是在開卡時,令該控制器根據該非揮發式記憶體上的一損毀空間記錄建立上述第一表格、第二表格以及第三表格,以避免配置該非揮發式記憶體的損毀空間做上述跨通道存取空間。該損毀空間記錄可以是在該非揮發式記憶體量產時,由工廠機台掃描該非揮發式記憶體而建立。
本案更揭露非揮發式記憶體控制方法。
一種實施方式中,非揮發式記憶體控制方法包括:建立一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於一非揮發式記憶體之配置;以及根據上述第一表格、第二表格以及第三表格以多通道方式存取該非揮發式記憶體。上述跨通道存取空間各自包括M個單位空間,M為複數。上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊。上述頂替資訊是以上述第二表格以及第三表格儲存。關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體,可用於實現資料儲存裝置、或應用於數據中心。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,用來實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)…等產品。有一種應用是採多晶片封裝(Multi-Chip Packaging)、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置上。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備、行車電腦…等。電子裝置的運算模塊可視為一主機(Host),操作電子裝置所使用的資料儲存裝置,透過資料儲存裝置中的控制器存取資料儲存裝置中的快閃記憶體。
快閃記憶體實現的資料儲存裝置也可用於建構數據中心(Data Center)。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為一主機(Host),操作所連結之固態硬碟,以存取其中快閃記憶體。
快閃記憶體的儲存空間可採以下結構。快閃記憶體包括複數個平面(Planes),例如:2個平面。每一平面包括複數個區塊(Blocks),例如:2048個區塊。各區塊包括複數頁面(Pages),例如:1024個頁面。考量操作效率,快閃記憶體控制器可以採用多通道方式存取(Multi-Channel Accessing) 快閃記憶體。另外,各通道可提供複數路徑(Ways),各路徑可涉及單一或複數個平面之存取,快閃記憶體控制器較佳採用交錯式(Interleaving)存取方式來存取複數個平面。各個平面可以區塊為單位提供空間,組成跨通道存取空間,以發揮多通道效應,達到資料並行存取。
第1圖舉例示意快閃記憶體儲存空間,其中採用四通道Ch#0…Ch#3。各通道提供兩條路徑Way#0以及Way#1。各路徑涉及兩個平面Plane#0以及Plane#1之存取。一平面佈有N(如,N=1024)個區塊Blk#0、Blk#1、Blk#2…以及Blk#(N-1)。如圖中標號Blk#0區塊所示,頁面Page為資料編程的最小單位。圖示實施方式的16個平面(通道數4、各通道路徑數2、以及各路徑平面數2之乘積)中的區塊(Block)可以組成一個超級區塊FBlock,並以超級區塊FBlock作為跨通道存取空間。
超級區塊FBlock包含不同平面提供的16個區塊,此16個區塊為超級區塊FBlock的成員區塊,其中,成員區塊較佳具有相同區塊編號。為了依序編程超級區塊FBlock的頁面,因此,超級區塊FBlock中每一成員區塊的一個頁面可組成超級頁面(Super Page)即超級頁面可由16個成員頁面(參考圖中斜線標示)所組成,其中,成員頁面較佳具有相同頁面編號。快閃記憶體控制器較佳是依序(依頁面編號)對超級頁面進行編程。
特別注意是,由於快閃記憶體有可能存在損毀區塊(Bad Block),因此,在組成超級區塊FBlock時會避開使用損毀區塊。例如,倘若通道Ch#0路徑Way#0平面Plane#0的區塊Blk#1損毀,一種實施方式是將同平面提供的其他區塊─如,區塊Blk#191─拿來頂替之,與其他15個平面的區塊Blk#1組成一超級區塊FBlock#1,如此一來,快閃記憶體控制器即可正常地操作超級區塊FBlock#1。
第2圖圖解重新對應(Re-mapping)表200的部份內容,顯示超級區塊FBlock#1的實際配置,也顯示超級區塊FBlock#1中成員區塊的替代關係。如圖所示,超級區塊FBlock#1由16個位於不同平面的區塊所組成,並由位於通道Ch#0、路徑Way#0、平面Plane#0的區塊Blk#191頂替同平面上的損毀區塊Blk#1(也可由其他平面的區塊替代),與其餘15個位於不同平面的區塊Blk#1組成超級區塊FBlock#1。以如此四通道x雙路徑x雙平面架構為例,重新對應表200記錄一個超級區塊FBlock的實際配置需要32位元組資料儲存空間。甚至,四通道x八路徑x四平面的快閃記憶體架構一重新對應表200記錄一個超級區塊FBlock的實際配置則需要高達256位元組的資料儲存空間。當需記錄多個超級區塊FBlock的實際配置時,重新對應表200需要的資料儲存空間將倍增至複數倍,不只佔用過多的資料儲存空間,當快閃記憶體控制器上傳重新對應表200至隨機記憶體空間(如DRAM或SRAM)時,重新對應表200也佔用過多的隨機記憶體空間,這問題在僅配置少量隨機記憶體空間的資料儲存裝置中更顯嚴重,因此,重新對應表200存在改善的空間。
第3圖為流程圖,說明本案建立超級區塊FBlock的方法實施例。經過系統初始化之後,在步驟S302,快閃記憶體控制器取得一系統架構參數,其中,系統架構參數包括用以建立超級區塊FBlock的通道數量、路徑數量以及平面數量,例如:通道數量為2,路徑數量為2,平面數量為2。
在步驟S304,快閃記憶體控制器依據系統架構參數建立一超級區塊FBlock。快閃記憶體控制器將位於不同通道、路徑以及平面的區塊,例如:總共8個區塊,作為成員區塊以組成超級區塊FBlock#1,成員區塊較佳具有相同區塊編號,例如:區塊Blk#1,參考第2圖。
在步驟S306,快閃記憶體控制器判斷超級區塊FBlock的複數成員區塊中是否有一損毀區塊。在執行本案建立超級區塊FBlock的方法之前,快閃記憶體控制器較佳對快閃記憶體進行損毀區塊的掃描,並將損毀區塊的區塊編號記錄至損毀區塊表(後面討論以BadBlks標號)中。此時,快閃記憶體控制器僅需讀取損毀區塊表BadBlks的內容即可判斷超級區塊FBlock#1的複數成員區塊中是否有損毀區塊,即判斷成員區塊的通道編號、路徑編號、平面編號以及區塊編號是否記錄於損毀區塊表BadBlks中,如果是則執行步驟S308。
在步驟S308,快閃記憶體控制器以一正常區塊替代損毀區塊。正常區塊與損毀區塊較佳置於相同的通道編號、路徑編號以及平面編號,但是不同的區塊編號。如圖2所示,快閃記憶體控制器選取置於通道編號為0、路徑編號為0以及平面編號為0的區塊Blk#191替代同樣置於通道編號為0、路徑編號為0以及平面編號為0的區塊Blk#1(損毀區塊),如此一來,快閃記憶體控制器以最佳化的方式對超級區塊FBlock#1進行存取。當然地,快閃記憶體控制器亦可選取置於通道編號為0、路徑編號為0以及平面編號為1的區塊Blk#191替代置於通道編號為0、路徑編號為0以及平面編號為0的區塊Blk#1(損毀區塊),然而,當正常區塊與損毀區塊並非置於相同的通道編號、路徑編號以及平面編號,導致快閃記憶體控制器無法同時或平行的存取區塊Blk#191與通道編號為0、路徑編號為0以及平面編號為1的區塊Blk#1,只能依序存取,例如:先存取區塊Blk#1,再存取區塊Blk#191;或者,先存取區塊Blk#191,再存取區塊Blk#1。依序存取將降低快閃記憶體控制器對超級區塊FBlock#1的存取效能。
在步驟S310,快閃記憶體控制器將超級區塊記錄至差異補償表。本案使用了三種表格,包括:DiffOffset(差異補償表)、DiffBlkBitMap(區塊位元表)以及BlkAddr(區塊位址表)替代重新對應表200,其中,區塊位元表DiffBlkBitMap與區塊位址表BlkAddr可合併成為DiffAddr(差異位址表),以簡化表格的管理。
差異補償表DiffOffset的大小較佳與超級區塊FBlock的總數成正比,例如:差異補償表DiffOffset的大小為128位元,每個位元的值皆對應至一個超級區塊FBlock,值為”1”表示超級區塊FBlock有損毀區塊,值為”0”表示超級區塊FBlock沒有損毀區塊。
或者,差異補償表DiffOffset的大小亦可為128位元組,每個位元組的值皆對應至一個超級區塊FBlock的損毀區塊的資訊。如圖4A所示,超級區塊FBlock#0、#2~#127沒有損毀區塊,因此,快閃記憶體控制器將超級區塊FBlock#0、#2~#127在差異補償表DiffOffset中所對應的值設為0xFFFF。超級區塊FBlock#1含有損毀區塊,因此,快閃記憶體控制器將超級區塊FBlock#1在差異補償表DiffOffset中所對應的值設為非0xFFFF,例如,為0x0000,此值表示損毀區塊的資訊乃記錄在差異位址表DiffAddr的第0x0000個預設長度的位址,其中,預設長度較佳為字組(Word)。
在步驟S312,快閃記憶體控制器將損毀區塊記錄至區塊位元表DiffBlkBitMap。通道編號為0、路徑編號為0以及平面編號為0的區塊Blk#1為損毀區塊,因此,快閃記憶體控制器將區塊位元表DiffBlkBitMap中對應至通道編號為0、路徑編號為0以及平面編號為0的位元設定為1,其他元位設定為0,因此,區塊位元表DiffBlkBitMap的值為”10000000”,如第4A圖所示。
在步驟S314,快閃記憶體控制器將正常區塊記錄至區塊位址表BlkAddr。快閃記憶體控制器選取任何一個區塊,例如區塊Blk#191,由於區塊Blk#191並未記錄於損毀區塊表BadBlks中,因此,快閃記憶體控制器以區塊Blk#191替代區塊Blk#1,並將區塊Blk#191記錄至區塊位址表BlkAddr中,如第4A圖所示,此時,差異位址表DiffAddr具有2個預設長度的大小。
假如,超級區塊FBlock#1中,不只通道編號為0、路徑編號為0以及平面編號為0的區塊Blk#1為損毀區塊,通道編號為1、路徑編號為1以及平面編號為1的區塊Blk#1也是損毀區塊。則在步驟S312時,快閃記憶體控制器將此兩個損毀區塊皆記錄至區塊位元表DiffBlkBitMap,此時,區塊位元表DiffBlkBitMap的值將由”10000000”變更為”10000001”。在步驟S314時,快閃記憶體控制器分別選取區塊Blk#191以及區塊Blk#234以替代兩個損毀區塊,並將區塊Blk#191以及區塊Blk#234記錄至區塊位址表BlkAddr,如第4B圖所示,此時,差異位址表DiffAddr具有3個預設長度的大小。
當本案建立超級區塊FBlock的方法再度執行時,除了超級區塊FBlock#1,快閃記憶體控制器於步驟S306判斷超級區塊FBlock#2中通道編號為0、路徑編號為1以及平面編號為1的區塊Blk#2為損毀區塊。於步驟S308,快閃記憶體控制器選取區塊Blk#128替代損毀區塊,並於步驟S310,快閃記憶體控制器將超級區塊FBlock#2在差異補償表DiffOffset中所對應的值設為0x03,此值表示損毀區塊的資訊乃記錄在差異位址表DiffAddr的第4個預設長度的位址。則在步驟S312時,快閃記憶體控制器將損毀區塊皆記錄至超級區塊FBlock#2的區塊位元表DiffBlkBitMap,此時,區塊位元表DiffBlkBitMap的值設定為”00010000”。在步驟S314時,快閃記憶體控制器將區塊Blk#128記錄至區塊位址表BlkAddr,如第4C圖所示。
藉由重覆執行本案建立超級區塊FBlock的方法後,所有超級區塊FBlock,例如:超級區塊FBlock#0~#127,已完成建立,且差異補償表DiffOffset、區塊位元表DiffBlkBitMap以及區塊位址表BlkAddr(或DiffBlkBitMap以及BlkAddr統整的差異位址表DiffAddr)亦完成建立。之後,快閃記憶體控制器使用本案超級區塊FBlock資料編程的方法,如第5圖所示,依據外部指令(如,寫入指令)或內部程序(例如:垃圾回收程序或耗損平均程序),將使用者資料編程至超級區塊FBlock中。
在步驟S502,快閃記憶體控制器選取一超級區塊,例如,超級區塊FBlock#0已完成使用者資料的編程,此時,快閃記憶體控制器選取超級區塊FBlock#1以進行使用者資料的編程。
在步驟S504,快閃記憶體控制器依一預設政策取得超級區塊的複數成員區塊。快閃記憶體控制器選取所有位於不同通道、路徑以及平面而具有相同區塊編號的區塊,例如:區塊Blk#1,作為超級區塊FBlock#1的成員區塊。
在步驟S506,快閃記憶體控制器判斷此超級區塊是否記錄於差異補償表DiffOffset。快閃記憶體控制器依讀取差異補償表DiffOffset,由於超級區塊FBlock#1在步驟S310時已記錄於差異補償表DiffOffset,因此,判斷的結果為正,故執行步驟S508。
在步驟S508,快閃記憶體控制器依據差異補償表DiffOffset、區塊位元表DiffBlkBitMap以及區塊位址表BlkAddr取得一正常區塊。快閃記憶體控制器依據差異補償表DiffOffset的值為0x00,因此,讀取差異位址表DiffAddr中的位址0x00以取得區塊位元表DiffBlkBitMap。由區塊位元表DiffBlkBitMap的值(”10000000”)得知超級區塊FBlock#1有一個損毀區塊,因此,從區塊位址表BlkAddr中讀取一筆資料,資料為區塊Blk#191,如圖4A所示。
在步驟S510,快閃記憶體控制器以正常區塊替代超級區塊中損毀的成員區塊。快閃記憶體控制器在同平面中以區塊Blk#191替換損毀區塊Blk#1。完成替代之後,除了該平面提供區塊Blk#191,超級區塊FBlock#1的其他平面提供的成員區塊皆是區塊Blk#1。
在步驟S512,快閃記憶體控制器將使用者資料編程至超級區塊。由於損毀區塊已被正常區塊所替代,快閃記憶體控制器可以將使用者資料編程至超級區塊FBlock#1。快閃記憶體控制器可重新執行本案超級區塊FBlock資料編程的方法,將後續的使用者資料編程至後續的超級區塊中。
另一種狀況下,在步驟S508中,快閃記憶體控制器可由區塊位元表DiffBlkBitMap的值(”10000001”)得知超級區塊FBlock#1有二個損毀區塊,因此,從區塊位址表BlkAddr中讀取二筆資料,第一筆資料為區塊Blk#191,第一筆資料為區塊Blk#234,如第4B圖所示。
在原本通道數量為2,路徑數量為2,平面數量為2的架構下,僅有一個損毀區塊時,以重新對應表200記錄一個超級區塊FBlock需要16位元組資料儲存空間。相反地,使用差異補償表DiffOffset、區塊位元表DiffBlkBitMap以及區塊位址表BlkAddr記錄一個超級區塊FBlock僅需要4位元組資料儲存空間。當有二個損毀區塊時,使用差異補償表DiffOffset、區塊位元表DiffBlkBitMap以及區塊位址表BlkAddr記錄一個超級區塊FBlock也僅需要6位元組資料儲存空間,遠小於重新對應表200所需的16位元組資料儲存空間,因此,本案建立超級區塊FBlock的方法以及本案超級區塊FBlock資料編程的方法具有顯著的進步性。
第6圖為方塊圖,圖解根據本案一種實施方式所實現的一資料儲存裝置600,其中包括一快閃記憶體602以及一控制器604。一主機606係透過該控制器604操作該快閃記憶體602。控制器604可包括一微處理器608以及一靜態隨機存取記憶體610。快閃記憶體602上則規劃有一系統資訊區塊InfoBlk,其中載有一損毀區塊表BadBlks以及本案表格(包括DiffOffset與DiffAddr,標號612)。損毀區塊表BadBlks可以是快閃記憶體602量產時,由工廠機台執行工具建立。管理跨通道存取空間用的表格612(包括DiffOffset與DiffAddr)可以是開卡時由微處理器608基於損毀區塊表BadBlks而建立。開卡後,控制器604得以根據主機606要求操作快閃記憶體602(操作模式)。隨著資料儲存裝置600上電,微處理器608會將表格612包含的表格DiffOffset與DiffAddr自快閃記憶體602的系統資訊區塊InfoBlk載出至靜態隨機存取記憶體610,據以得知各個跨通道存取空間之配置,實現快閃記憶體之多通道存取。本案成功以精簡的表格架構管理跨通道存取空間,實施快閃記憶體602之多通道存取。如圖所示,資料儲存裝置600受益於表格612之精簡,無設置動態隨機存取記憶體(DRAM)的需求,成本極低。
舉凡採用本案所提出的表格612管理非揮發式記憶體之跨通道空間者,即有可能涉及本案所欲保護的範圍。基於以上技術內容,本案更涉及非揮發式記憶體操作方法,包括建立表格612以及表格612之應用。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
200‧‧‧重新對應表600‧‧‧資料儲存裝置602‧‧‧快閃記憶體604‧‧‧控制器606‧‧‧主機608‧‧‧微處理器610‧‧‧靜態隨機存取記憶體612‧‧‧表格,包括DiffOffset與DiffAddrBadBlks‧‧‧損毀區塊紀錄Blk#0、Blk#1、Blk#2…Blk#(N-2)、Blk#(N-1)‧‧‧區塊BlkAddr‧‧‧區塊位址表C0W0P0…C1W1P1‧‧‧通道、路徑以及平面編號Ch#0…Ch#3‧‧‧通道DiffAddr‧‧‧差異位址表DiffBlkBitMap‧‧‧區塊位元表DiffOffset‧‧‧差異補償表InfoBlk‧‧‧系統資訊區塊Page‧‧‧頁面Plane#0、Plane#1‧‧‧平面S302…S314、S502…S512‧‧‧步驟Way#0、Way#1‧‧‧路徑
第1圖舉例示意快閃記憶體儲存空間; 第2圖圖解重新對應表200,顯示超級區塊FBlock#1的實際配置; 第3圖為流程圖,說明本案建立超級區塊FBlock的方法實施例; 第4A、4B、4C圖圖解本案差異補償表DiffOffset、區塊位元表DiffBlkBitMap以及區塊位址表BlkAddr,更圖解包括區塊位元表DiffBlkBitMap與區塊位址表BlkAddr的差異位址表DiffAddr; 第5圖為流程圖,圖解快閃記憶體控制器使用本案超級區塊FBlock資料編程的方法;且 第6圖為方塊圖,圖解根據本案一種實施方式所實現的一資料儲存裝置600。
Blk#128、Blk#191、Blk#234‧‧‧區塊
BlkAddr‧‧‧區塊位址表
C0W0P0…C1W1P1‧‧‧通道、路徑以及平面編號
DiffAddr‧‧‧差異位址表
DiffBlkBitMap‧‧‧區塊位元表
DiffOffset‧‧‧差異補償表。
Claims (20)
- 一種資料儲存裝置,包括: 一非揮發式記憶體;以及一控制器,以多通道方式存取該非揮發式記憶體,其中:該控制器以一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於該非揮發式記憶體之配置,據以實施該非揮發式記憶體的多通道存取;上述跨通道存取空間各自包括M個單位空間,M為複數;上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊;上述頂替資訊是以上述第二表格以及第三表格儲存;且關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 上述第三表格略去為無頂替需求的單位空間記錄資訊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 上述第三表格各欄位佔據一預設空間量;關於有單位空間頂替需求的各跨通道存取空間,上述第二表格的上述M個位元也是規畫該預設空間量記載,且頂替用之單位空間係接續記載;且 上述第一表格是以該預設空間量為單位之計數指向上述第二表格中對應內容。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 開卡時,該控制器根據該非揮發式記憶體上的一損毀空間記錄建立上述第一表格、第二表格以及第三表格,以避免配置該非揮發式記憶體的損毀空間做上述跨通道存取空間。
- 如申請專利範圍第4項所述之資料儲存裝置,其中: 該損毀空間記錄是在該非揮發式記憶體量產時,由工廠機台掃描該非揮發式記憶體而建立。
- 如申請專利範圍第1項所述之資料儲存裝置,更包括一揮發式記憶體,其中: 該控制器是將非揮發式儲存於該非揮發式記憶體的上述第一表格、第二表格以及第三表格載至該揮發式記憶體,據以實施該非揮發式記憶體的多通道存取。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該非揮發式記憶體為快閃記憶體,具有複數個區塊,各區塊包括複數頁面,上述區塊即用作上述單位空間;且M個上述區塊組成一超級區塊,用作上述跨通道存取空間。
- 如申請專利範圍第7項所述之資料儲存裝置,其中: 該控制器係逐超級頁面將資料寫入上述超級區塊;且一個超級頁面包括一個超級區塊之M個區塊所各自提供的一頁面。
- 如申請專利範圍第7項所述之資料儲存裝置,其中: 組成一超級區塊的M個區塊分屬M個平面;且該快閃記憶體是以上述M個平面提供上述區塊。
- 如申請專利範圍第9項所述之資料儲存裝置,其中: M為通道數、各通道路徑數、以及各路徑平面數之乘積。
- 一種非揮發式記憶體控制方法,包括: 建立一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於一非揮發式記憶體之配置;以及根據上述第一表格、第二表格以及第三表格以多通道方式存取該非揮發式記憶體,其中:上述跨通道存取空間各自包括M個單位空間,M為複數;上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊;上述頂替資訊是以上述第二表格以及第三表格儲存;且關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 上述第三表格略去為無頂替需求的單位空間記錄資訊。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 上述第三表格各欄位佔據一預設空間量;關於有單位空間頂替需求的各跨通道存取空間,上述第二表格的上述M個位元也是規畫該預設空間量記載,且頂替用之單位空間係接續記載;且上述第一表格是以該預設空間量為單位之計數指向上述第二表格中對應內容。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 根據該非揮發式記憶體上的一損毀空間記錄,於開卡時建立上述第一表格、第二表格以及第三表格,以避免配置該非揮發式記憶體的損毀空間做上述跨通道存取空間。
- 如申請專利範圍第14項所述之非揮發式記憶體控制方法,其中: 該損毀空間記錄是在該非揮發式記憶體量產時,由工廠機台掃描該非揮發式記憶體而建立。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 提供一揮發式記憶體;且將非揮發式儲存於該非揮發式記憶體的上述第一表格、第二表格以及第三表格載至該揮發式記憶體,據以實施該非揮發式記憶體的多通道存取。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 該非揮發式記憶體為快閃記憶體,具有複數個區塊,各區塊包括複數頁面,上述區塊即用作上述單位空間;且M個上述區塊組成一超級區塊,用作上述跨通道存取空間。
- 如申請專利範圍第17項所述之非揮發式記憶體控制方法,更包括: 逐超級頁面將資料寫入上述超級區塊,其中,一個超級頁面包括一個超級區塊之M個區塊所各自提供的一頁面。
- 如申請專利範圍第17項所述之非揮發式記憶體控制方法,其中: 組成一超級區塊的M個區塊分屬M個平面;且該快閃記憶體是以上述M個平面提供上述區塊。
- 如申請專利範圍第19項所述之非揮發式記憶體控制方法,其中: M為通道數、各通道路徑數、以及各路徑平面數之乘積。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107125923A TWI668575B (zh) | 2018-07-26 | 2018-07-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| CN201811128457.5A CN110764691B (zh) | 2018-07-26 | 2018-09-27 | 数据储存装置以及非挥发式存储器控制方法 |
| US16/255,925 US10719272B2 (en) | 2018-07-26 | 2019-01-24 | Data storage device and control method for non-volatile memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107125923A TWI668575B (zh) | 2018-07-26 | 2018-07-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI668575B TWI668575B (zh) | 2019-08-11 |
| TW202008176A true TW202008176A (zh) | 2020-02-16 |
Family
ID=68316194
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107125923A TWI668575B (zh) | 2018-07-26 | 2018-07-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10719272B2 (zh) |
| CN (1) | CN110764691B (zh) |
| TW (1) | TWI668575B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI812012B (zh) * | 2021-09-06 | 2023-08-11 | 日商鎧俠股份有限公司 | 資訊處理裝置 |
| TWI831704B (zh) * | 2023-06-12 | 2024-02-01 | 慧榮科技股份有限公司 | 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置 |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11561870B2 (en) * | 2020-03-30 | 2023-01-24 | Kioxia Corporation | SSD with compressed superblock mapping table |
| CN112527201B (zh) * | 2020-12-11 | 2022-08-09 | 成都佰维存储科技有限公司 | Ssd坏块替换方法、装置、可读存储介质及电子设备 |
| TWI753761B (zh) * | 2021-01-27 | 2022-01-21 | 慧榮科技股份有限公司 | 記憶體裝置啟動資訊還原方法及其系統 |
| TWI767584B (zh) * | 2021-02-24 | 2022-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| CN113220508B (zh) * | 2021-05-08 | 2022-09-23 | 联芸科技(杭州)股份有限公司 | 存储器块的管理方法、存储器的写操作方法以及存储器 |
| US11733892B2 (en) * | 2021-06-29 | 2023-08-22 | Micron Technology, Inc. | Partial superblock memory management |
| CN114461542B (zh) * | 2021-12-23 | 2025-07-22 | 合肥沛睿微电子股份有限公司 | 一种数据存取管理方法和存储装置 |
| US20250060893A1 (en) * | 2023-08-15 | 2025-02-20 | Micron Technology, Inc. | Tracking latch upset events using block status data |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070156587A1 (en) * | 2000-01-06 | 2007-07-05 | Super Talent Electronics Inc. | Content Protection Using Encryption Key Embedded with Content File |
| US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
| WO2008042605A1 (en) | 2006-09-29 | 2008-04-10 | Sandisk Corporation | Reverse reading in non-volatile memory with compensation for coupling |
| US7965554B2 (en) | 2008-07-02 | 2011-06-21 | Sandisk Corporation | Selective erase operation for non-volatile storage |
| WO2012115056A1 (ja) * | 2011-02-22 | 2012-08-30 | 三菱電機株式会社 | 入力ビット誤り率推定方法、及びその装置 |
| CN102779096B (zh) * | 2012-07-11 | 2015-02-04 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
| EP2713616A1 (en) * | 2012-09-27 | 2014-04-02 | British Telecommunications public limited company | Perceptually driven error correction for video transmission |
| US9419655B2 (en) * | 2014-04-04 | 2016-08-16 | Seagate Technology Llc | Error correction code (ECC) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes |
| CN104809075B (zh) * | 2015-04-20 | 2017-09-12 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
| CN105630705B (zh) * | 2015-06-10 | 2019-09-17 | 上海磁宇信息科技有限公司 | 数据存储装置及使用块替换表的读写方法 |
| TWI613665B (zh) * | 2015-11-27 | 2018-02-01 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
| TWI588833B (zh) | 2015-11-27 | 2017-06-21 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
| KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
| CN108121672B (zh) * | 2017-08-08 | 2024-05-24 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
| CN108121503B (zh) * | 2017-08-08 | 2021-03-05 | 鸿秦(北京)科技有限公司 | 一种NandFlash地址映射及块管理方法 |
| US10719394B2 (en) * | 2017-10-25 | 2020-07-21 | Innogrit Technologies Co., Ltd. | Systems and methods for fast access of non-volatile storage devices |
-
2018
- 2018-07-26 TW TW107125923A patent/TWI668575B/zh active
- 2018-09-27 CN CN201811128457.5A patent/CN110764691B/zh active Active
-
2019
- 2019-01-24 US US16/255,925 patent/US10719272B2/en active Active
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI812012B (zh) * | 2021-09-06 | 2023-08-11 | 日商鎧俠股份有限公司 | 資訊處理裝置 |
| TWI831704B (zh) * | 2023-06-12 | 2024-02-01 | 慧榮科技股份有限公司 | 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置 |
| US12498852B2 (en) | 2023-06-12 | 2025-12-16 | Silicon Motion, Inc. | Method and apparatus for performing storage space management of memory device with aid of dynamic block configuration |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110764691A (zh) | 2020-02-07 |
| US20200034080A1 (en) | 2020-01-30 |
| TWI668575B (zh) | 2019-08-11 |
| US10719272B2 (en) | 2020-07-21 |
| CN110764691B (zh) | 2023-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI668575B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| US11294827B2 (en) | Non-sequential zoned namespaces | |
| US12014063B2 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
| TWI473116B (zh) | 多通道記憶體儲存裝置及其控制方法 | |
| US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
| TWI627531B (zh) | 資料儲存裝置以及其操作方法 | |
| KR102656959B1 (ko) | 존 구획 네임스페이스를 갖는 호스트 관리 하드웨어 압축 | |
| TW201926059A (zh) | 資料儲存裝置、主機裝置、以及資料寫入方法 | |
| CN109521944B (zh) | 数据储存装置以及数据储存方法 | |
| CN109976664B (zh) | 固态存储设备的日志数据组织 | |
| US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
| US20230075329A1 (en) | Super Block Allocation Across Super Device In ZNS SSD | |
| US20220269440A1 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
| TWI591533B (zh) | 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置 | |
| TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| TWI724483B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| US20130262737A1 (en) | Storage control apparatus , storage apparatus, information processing system and processing method | |
| TW201329999A (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
| CN109656834B (zh) | 数据管理方法以及数据储存系统 | |
| US11966618B2 (en) | Purposeful super device imbalance for ZNS SSD efficiency | |
| US20230061979A1 (en) | Solution For Super Device Imbalance In ZNS SSD | |
| US20170046170A1 (en) | Operating methods of computing devices comprising storage devices including nonvolatile memory devices, buffer memories and controllers | |
| US20250165154A1 (en) | Storage device based on flash memory and method for managing super block thereof | |
| TWI714889B (zh) | 涉及命名空間規劃的資料管理方法以及資料儲存系統 | |
| TW202013191A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 |