[go: up one dir, main page]

TWI668575B - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents

資料儲存裝置以及非揮發式記憶體控制方法 Download PDF

Info

Publication number
TWI668575B
TWI668575B TW107125923A TW107125923A TWI668575B TW I668575 B TWI668575 B TW I668575B TW 107125923 A TW107125923 A TW 107125923A TW 107125923 A TW107125923 A TW 107125923A TW I668575 B TWI668575 B TW I668575B
Authority
TW
Taiwan
Prior art keywords
volatile memory
space
block
replacement
item
Prior art date
Application number
TW107125923A
Other languages
English (en)
Other versions
TW202008176A (zh
Inventor
陳良政
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW107125923A priority Critical patent/TWI668575B/zh
Priority to CN201811128457.5A priority patent/CN110764691B/zh
Priority to US16/255,925 priority patent/US10719272B2/en
Application granted granted Critical
Publication of TWI668575B publication Critical patent/TWI668575B/zh
Publication of TW202008176A publication Critical patent/TW202008176A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking 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與DiffAddr
BadBlks‧‧‧損毀區塊紀錄
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。

Claims (20)

  1. 一種資料儲存裝置,包括: 一非揮發式記憶體;以及一控制器,以多通道方式存取該非揮發式記憶體,其中:該控制器以一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於該非揮發式記憶體之配置,據以實施該非揮發式記憶體的多通道存取;上述跨通道存取空間各自包括M個單位空間,M為複數;上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊;上述頂替資訊是以上述第二表格以及第三表格儲存;且關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中: 上述第三表格略去為無頂替需求的單位空間記錄資訊。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中: 上述第三表格各欄位佔據一預設空間量;關於有單位空間頂替需求的各跨通道存取空間,上述第二表格的上述M個位元也是規畫該預設空間量記載,且頂替用之單位空間係接續記載;且 上述第一表格是以該預設空間量為單位之計數指向上述第二表格中對應內容。
  4. 如申請專利範圍第1項所述之資料儲存裝置,其中: 開卡時,該控制器根據該非揮發式記憶體上的一損毀空間記錄建立上述第一表格、第二表格以及第三表格,以避免配置該非揮發式記憶體的損毀空間做上述跨通道存取空間。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中: 該損毀空間記錄是在該非揮發式記憶體量產時,由工廠機台掃描該非揮發式記憶體而建立。
  6. 如申請專利範圍第1項所述之資料儲存裝置,更包括一揮發式記憶體,其中: 該控制器是將非揮發式儲存於該非揮發式記憶體的上述第一表格、第二表格以及第三表格載至該揮發式記憶體,據以實施該非揮發式記憶體的多通道存取。
  7. 如申請專利範圍第1項所述之資料儲存裝置,其中: 該非揮發式記憶體為快閃記憶體,具有複數個區塊,各區塊包括複數頁面,上述區塊即用作上述單位空間;且M個上述區塊組成一超級區塊,用作上述跨通道存取空間。
  8. 如申請專利範圍第7項所述之資料儲存裝置,其中: 該控制器係逐超級頁面將資料寫入上述超級區塊;且一個超級頁面包括一個超級區塊之M個區塊所各自提供的一頁面。
  9. 如申請專利範圍第7項所述之資料儲存裝置,其中: 組成一超級區塊的M個區塊分屬M個平面;且該快閃記憶體是以上述M個平面提供上述區塊。
  10. 如申請專利範圍第9項所述之資料儲存裝置,其中: M為通道數、各通道路徑數、以及各路徑平面數之乘積。
  11. 一種非揮發式記憶體控制方法,包括: 建立一第一表格、一第二表格以及一第三表格管理各跨通道存取空間於一非揮發式記憶體之配置;以及根據上述第一表格、第二表格以及第三表格以多通道方式存取該非揮發式記憶體,其中:上述跨通道存取空間各自包括M個單位空間,M為複數;上述第一表格條列上述跨通道存取空間各自是否有單位空間頂替需求,並指向頂替資訊;上述頂替資訊是以上述第二表格以及第三表格儲存;且關於有單位空間頂替需求的各跨通道存取空間,上述第二表格以M個位元標示頂替需求所在,且頂替用的單位空間載於上述第三表格。
  12. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 上述第三表格略去為無頂替需求的單位空間記錄資訊。
  13. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 上述第三表格各欄位佔據一預設空間量;關於有單位空間頂替需求的各跨通道存取空間,上述第二表格的上述M個位元也是規畫該預設空間量記載,且頂替用之單位空間係接續記載;且上述第一表格是以該預設空間量為單位之計數指向上述第二表格中對應內容。
  14. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 根據該非揮發式記憶體上的一損毀空間記錄,於開卡時建立上述第一表格、第二表格以及第三表格,以避免配置該非揮發式記憶體的損毀空間做上述跨通道存取空間。
  15. 如申請專利範圍第14項所述之非揮發式記憶體控制方法,其中: 該損毀空間記錄是在該非揮發式記憶體量產時,由工廠機台掃描該非揮發式記憶體而建立。
  16. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 提供一揮發式記憶體;且將非揮發式儲存於該非揮發式記憶體的上述第一表格、第二表格以及第三表格載至該揮發式記憶體,據以實施該非揮發式記憶體的多通道存取。
  17. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,其中: 該非揮發式記憶體為快閃記憶體,具有複數個區塊,各區塊包括複數頁面,上述區塊即用作上述單位空間;且M個上述區塊組成一超級區塊,用作上述跨通道存取空間。
  18. 如申請專利範圍第17項所述之非揮發式記憶體控制方法,更包括: 逐超級頁面將資料寫入上述超級區塊,其中,一個超級頁面包括一個超級區塊之M個區塊所各自提供的一頁面。
  19. 如申請專利範圍第17項所述之非揮發式記憶體控制方法,其中: 組成一超級區塊的M個區塊分屬M個平面;且該快閃記憶體是以上述M個平面提供上述區塊。
  20. 如申請專利範圍第19項所述之非揮發式記憶體控制方法,其中: M為通道數、各通道路徑數、以及各路徑平面數之乘積。
TW107125923A 2018-07-26 2018-07-26 資料儲存裝置以及非揮發式記憶體控制方法 TWI668575B (zh)

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 true TWI668575B (zh) 2019-08-11
TW202008176A 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI753761B (zh) * 2021-01-27 2022-01-21 慧榮科技股份有限公司 記憶體裝置啟動資訊還原方法及其系統

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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坏块替换方法、装置、可读存储介质及电子设备
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
JP7621915B2 (ja) * 2021-09-06 2025-01-27 キオクシア株式会社 情報処理装置
CN114461542B (zh) * 2021-12-23 2025-07-22 合肥沛睿微电子股份有限公司 一种数据存取管理方法和存储装置
TWI831704B (zh) 2023-06-12 2024-02-01 慧榮科技股份有限公司 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置
US20250060893A1 (en) * 2023-08-15 2025-02-20 Micron Technology, Inc. Tracking latch upset events using block status data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200822119A (en) * 2006-09-29 2008-05-16 Sandisk Corp Method and system for reverse reading in non-volatile memory with compensation for coupling
TW201015558A (en) * 2008-07-02 2010-04-16 Sandisk Corp Selective erase operation for non-volatile storage
TW201719673A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
TW201719671A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
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 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200822119A (en) * 2006-09-29 2008-05-16 Sandisk Corp Method and system for reverse reading in non-volatile memory with compensation for coupling
TW201015558A (en) * 2008-07-02 2010-04-16 Sandisk Corp Selective erase operation for non-volatile storage
TW201719673A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
TW201719671A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI753761B (zh) * 2021-01-27 2022-01-21 慧榮科技股份有限公司 記憶體裝置啟動資訊還原方法及其系統

Also Published As

Publication number Publication date
CN110764691A (zh) 2020-02-07
US20200034080A1 (en) 2020-01-30
US10719272B2 (en) 2020-07-21
TW202008176A (zh) 2020-02-16
CN110764691B (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
TWI668575B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI661307B (zh) 資料儲存裝置、主機裝置、以及資料寫入方法
US12014063B2 (en) Control method for flash memory controller and associated flash memory controller and storage device
TWI627531B (zh) 資料儲存裝置以及其操作方法
KR102656959B1 (ko) 존 구획 네임스페이스를 갖는 호스트 관리 하드웨어 압축
CN109976664B (zh) 固态存储设备的日志数据组织
CN109521944B (zh) 数据储存装置以及数据储存方法
TWI591533B (zh) 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置
CN102479549A (zh) 半导体存储装置
TWI724483B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI718709B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TW201329999A (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN109783404B (zh) 具有非对称通道的固态存储设备
US20130262737A1 (en) Storage control apparatus , storage apparatus, information processing system and processing method
CN109656834B (zh) 数据管理方法以及数据储存系统
CN112148626A (zh) 压缩数据的存储方法及其存储设备
US20200098442A1 (en) Data storage device and control method for non-volatile memory
US10810016B2 (en) Operating methods of computing devices comprising storage devices including nonvolatile memory devices, buffer memories and controllers
TWI710893B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI897545B (zh) 非揮發式記憶體控制器、控制方法、以及電腦程式產品
TWI574153B (zh) 減少固態硬碟中dram使用的方法及使用該方法的固態硬碟
TWI669610B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI714889B (zh) 涉及命名空間規劃的資料管理方法以及資料儲存系統
CN107643987A (zh) 减少固态硬盘中dram使用的方法及使用其的固态硬盘
TWI587212B (zh) 高效能固態硬碟與其操作方法