TWI723581B - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TWI723581B TWI723581B TW108136998A TW108136998A TWI723581B TW I723581 B TWI723581 B TW I723581B TW 108136998 A TW108136998 A TW 108136998A TW 108136998 A TW108136998 A TW 108136998A TW I723581 B TWI723581 B TW I723581B
- Authority
- TW
- Taiwan
- Prior art keywords
- cyclic redundancy
- redundancy check
- data
- volatile memory
- check code
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
資料儲存之映射資訊管理。所採用的映射資訊格式不包括任何無法校正標示位元(UNC bit)。一控制器提供一循環冗餘校驗(CRC)引擎。根據一主機下達的一無法校正標示指令(如NVMe的WriteUNC指令),該控制器操作該循環冗餘校驗引擎以一偏移編碼種子對一資料樣板編碼,產生一偏移循環冗餘校驗碼。該控制器將該偏移循環冗餘校驗碼隨該資料樣板程式化至該非揮發式記憶體。該資料樣板必然無法通過循環冗餘校驗。該無法校正標示指令成功運作。
Description
本發明係有關於非揮發式記憶體之控制。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
隨著科技進步,資料儲存裝置的儲存能力越發強大。本技術領域需要足以應付大尺寸儲存的映射資訊管理技術。
本案所採用的映射資訊格式不須特意規劃無法校正標示位元(UNC bit)。映射資訊格式因而有充裕位元數用於物理位址標示。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一控制器。該控制器控制該非揮發式記憶體,且包括一循環冗餘校驗(CRC)引擎。根據一主機下達的一無法校正標示指令(如NVMe的WriteUNC指令),該控制器操作該循環冗餘校驗引擎以一偏移編碼種子對一資料樣板編碼,產生一偏移循環冗餘校驗碼。該控制器將該偏移循環冗餘校驗碼隨該資料樣板程式化至該非揮發式記憶體。該資料樣板必然無法通過循環冗餘校驗。該無法校正標示指令成功運作。
一種實施方式中,該無法校正標示指令指示一邏輯位址。該控制器偏移該邏輯位址,產生一偏移邏輯位址。該控制器操作該循環冗餘校驗引擎以該偏移邏輯位址作為該偏移編碼種子。該資料樣板可為零。
一種實施方式中,根據該主機對該邏輯位址所發出的一讀取指令,該控制器自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼。該控制器操作該循環冗餘校驗引擎以該邏輯位址作為一編碼種子。該控制器操作該循環冗餘校驗引擎以該編碼種子對該資料樣板產生一循環冗餘校驗碼。該控制器操作該循環冗餘校驗引擎比對得該循環冗餘校驗碼不同於該偏移循環冗餘校驗碼,並不以該資料樣板回應該主機。
一種實施方式中,該控制器係根據該邏輯位址的一映射資訊自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼。該映射資訊採用的一映射資訊格式不包括任何無法校正標示位元。一種實施方式中,該無法校正標示指令的標示單元小於該映射資訊格式管理的資料單元。
一種實施方式中,關於根據一邏輯位址取自該非揮發式記憶體的一第一區域、且錯誤檢查與糾正失敗的一錯誤資料,該控制器將該錯誤資料以及一循環冗餘校驗碼程式化至該非揮發式記憶體的一第二區域。該循環冗餘校驗碼係隨該錯誤資料由該控制器自該非揮發式記憶體的該第一區域讀出。一種實施方式中,根據該主機對該邏輯位址要求的一讀取指令,該控制器自該非揮發式記憶體的該第二區域取得該錯誤資料以及該循環冗餘校驗碼。該控制器操作該循環冗餘校驗引擎以該邏輯位址作為一編碼種子。該控制器操作該循環冗餘校驗引擎以該編碼種子對該錯誤資料產生一錯誤循環冗餘校驗碼。該控制器操作該循環冗餘校驗引擎比對得該錯誤循環冗餘校驗碼不同於該循環冗餘校驗碼,並不以該錯誤資料回應該主機。
一種實施方式中,上述錯誤檢查與糾正源於該主機對該非揮發式記憶體的一讀取指令。
一種實施方式中,上述錯誤檢查與糾正源於該控制器對該非揮發式記憶體進行的一垃圾回收。
以上記憶體控制器對非揮發式記憶體之操作也可以由其他結構實現。本案更可以前述概念實現非揮發式記憶體的控制方法,包括以下步驟:提供一循環冗餘校驗引擎;根據一主機下達的一無法校正標示指令,操作該循環冗餘校驗引擎以一偏移編碼種子對一資料樣板編碼,產生一偏移循環冗餘校驗碼;且將該偏移循環冗餘校驗碼隨該資料樣板程式化至一非揮發式記憶體。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構資料中心。例如,伺服器可操作固態硬碟(SSD)陣列形成資料中心。伺服器即可視為主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
快閃記憶體有其特殊的儲存特性,以下敘述之。
主機(Host)端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)來區別資料。至於資料實際儲存在快閃記憶體何處,則是以映射資訊管理。
快閃記憶體之物理空間是劃分為複數個區塊(Blocks)配置使用。第1圖圖解快閃記憶體一區塊Blk之結構。區塊Blk包括複數頁面(Pages),例如,頁面0…頁面255。一種實施方式係根據頁面編號─由低編號至高編號─循序使用一區塊的儲存空間。各頁面包括複數個區段(Sectors),例如32個區段,每一區段可儲存512B長度的使用者資料。一次寫入可能涉及多個區段。例如,在4KB資料管理模式下,可將8個區段視為一個資料單元(Unit),進行管理。一次寫入可能涵蓋8個區段(4KB)長度。16KB長度的頁面可由四個資料單元(32個區段)所組成;四個資料單元的邏輯關係可能不連續。
特別是,同樣邏輯位址的資料更新並非覆寫至舊資料的儲存空間,新版本的資料須寫入空白的區段。舊空間的內容無效。一區塊可能僅零星留存有效資料。由於快閃記憶體的儲存空間需抹除(erase)後方能再次使用,備用區塊逐漸消耗。備用區塊數量不足時(如,低於閥值),垃圾回收(Garbage Collection)需求產生。一區塊留存的零星有效資料經垃圾回收集中到其他空間。徒留無效資料的區塊則抹除釋出,拉升備用區塊數量,確保快閃記憶體之正常使用。垃圾回收也可能使得同區塊內容的邏輯關係更零散。
由前述內容可知,快閃記憶體的空間配置相當複雜。一種實施方式是建立邏輯-物理位址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表),記錄邏輯位址與物理位址之間的映射資訊,較佳以邏輯位址為索引,物理位址為內容,其中,物理位址例如是物理區塊位址(Physical Block Address,PBA)。一種實施方式是以區塊資訊Blk#、頁面資訊Page#以及資料單元資訊Unit#(或偏移量offset)標示物理位置。或者,多通道(multi channel)技術更包括通道編號CH#如此物理空間標示。
第2A圖圖解傳統技術所使用的一種映射資訊格式200,包括32位元(四位元組)來記錄物理位址。各位元規劃如下:
l 位元[31]:無法校正(Uncorrectable,UNC)標示位元,用以標示映射資訊所指內容不可靠,或是技術上而言,UNC表示資料已無法透過錯誤檢查與糾正(ECC)而予以修正,當ECC失敗,UNC標示位元例如會從”0”切換成”1”。造成ECC失敗的可能原因包括環境因素或時間因素所造成的物理錯誤,讀取資料的過程中所產生的錯誤,也可能是資料程式化的過程中所造成的錯誤。
l 位元[30:29]:映射資訊模式(Pattern Mode)位元。一種實施方式中,主機要求寫入快閃記憶體的資料是先快取在一暫存記憶體。待一程式化條件滿足(如,快取達一定量、或定時封存),資料才從暫存記憶體移至快閃記憶體。因此,邏輯位址也有可能是映射到暫存記憶體。映射資訊模式(Pattern Mode)顯示映射資訊是指向暫存記憶體、或是快閃記憶體。00/01代表後續位元[28:0]標示快閃記憶體的物理位址,10代表後續位元[28:0]標示暫存記憶體的物理位址,11代表後續位元[28:0]為無意義的虛置(Dummy)數據。
l 位元[28:0]:快閃記憶體或暫存記憶體的物理位址,或虛置數據。
映射資訊格式200設有映射資訊模式位元[30:29],再扣掉UNC標示位元[31],僅有29位元可用於標示物理位址,這將限制資料儲存裝置所能提供的儲存容量。
為了避免上述問題,第2B圖圖解本案一種實施方式所使用的一種映射資訊格式210,包括32位元(四位元組),映射資訊格式210不再包含UNC標示位元,如此一來,映射資訊格式210有更多的位元數量可用以表示物理位址,使資料儲存裝置所能提供的儲存容量較之前的儲存容量可以增加1倍,達到本發明的目的。另外,映射資訊格式210也不再包含映射資訊模式位元。以下詳細描述如何不使用UNC標示位元實現無法校正(UNC)。
第3圖為方塊圖,根據本案一種實施方式圖解資料儲存裝置300,包括快閃記憶體302、控制器304以及暫存記憶體306。主機308透過控制器304操作快閃記憶體302。資料儲存裝置300內部也可經控制器304發動快閃記憶體302之最佳化操作;例如,整理快閃記憶體302空間,使其發揮最大儲存效能。控制器304進行運算時是以暫存記憶體306暫存資料。暫存記憶體306可為動態隨機存取記憶體(DRAM)或SRAM。
快閃記憶體302包括複數個區塊。儲存系統資訊的區塊稱系統區塊池310。例如,儲存映射資訊的系統區塊是用於映射資訊的非揮發式儲存。取自備用區塊池312的主動區塊A0用於程式化主機308要求的寫入資料。主動區塊A0程式化完成後即屬資料區塊,推入資料區塊池314。運行一段時間後,某些資料區塊可能因為資料頻繁更新,僅留零星的有效資料。該些資料區塊將藉垃圾回收(Garbage Collection)釋出,重新歸類至備用區塊池312。取自備用區塊池312的目的區塊A1即用於垃圾回收的有效資料收集。目的區塊A1填滿資料後,也被推入該資料區塊池314。
如圖所示,控制器304是先將資料快取於該暫存記憶體306的資料快取空間316,再自資料快取空間316程式化至該主動區塊A0。控制器304可利用暫存記憶體306的空間318動態維護映射資訊。控制器304包括循環冗餘校驗(CRC)引擎320。主機308發下的無法校正標示指令(稱UNC標示指令,例如:Write UNC指令)包括一個目標邏輯位址LBA。控制器304執行主機308所發下的UNC標示指令時,先對目標邏輯位址LBA以產生偏移邏輯位址LBA_UNC,再命令CRC引擎320將該偏移邏輯位址LBA_UNC作為編碼種子,再對資料樣板(Pattern)P進行編碼,最後產生偏移循環冗餘校驗碼CRC_UNC。之後,控制器304將該資料樣板P以及該偏移循環冗餘校驗碼CRC_UNC程式化至主動區塊A0的閒置資料單元330,例如,將資料樣板P填入閒置資料單元330的資料區332,偏移循環冗餘校驗碼CRC_UNC則填入閒置資料單元330的元資料(Metadata)區334,完成UNC標示,也完成UNC標示指令的執行。之後,再更新目標邏輯位址LBA的映射資訊。一種實施方式中,資料樣版P為“0”或是目標邏輯位址LBA所對應的物理位址中所儲存的原始資料。
之後,如果主機308欲讀取目標邏輯位址LBA的資料時,CRC引擎320是根據目標邏輯位址LBA作為編碼種子S,並以該編碼種子S對取自資料區332的資料樣板P計算出CRC。此時,CRC顯然不同於元資料區334所儲存的偏移循環冗餘校驗碼CRC_UNC,因此,控制器304回應預設訊息給主機308,預設訊息例如是目標邏輯位址LBA尚未記錄,或目標邏輯位址LBA已被清除等。如此一來,在本發明中UNC標示指令不但被執行,且執行的結果符合UNC的精神,讓目標邏輯位址LBA的資料無效化或不被採用。
一種實施方式中,主機308以讀取指令要求讀取目標邏輯位址LBA。控制器304自資料區塊338的資料單元340取得的是錯誤資料D_ERR(資料區342)以及循環冗餘校驗碼CRC(元資料區344)。控制器304對錯誤資料D_ERR進行ECC處理,結果為ECC失敗。因應之,控制器304將錯誤資料D_ERR以及循環冗餘校驗碼CRC再次程式化至主動區塊A0(例如,資料單元330的資料區332以及元資料區334),完成UNC標示。之後,主機308欲讀取目標邏輯位址LBA的資料時,控制器304操作CRC引擎320,根據目標邏輯位址LBA對取自資料區332的錯誤資料D_ERR進行計算並得到錯誤循環冗餘校驗碼CRC_ERR,這顯然不同於元資料區334儲存的循環冗餘校驗碼CRC,所以控制器304回應預設訊息給主機308。UNC標示使目標邏輯位址LBA的資料無效化或不被採用,符合被標示為UNC的精神。
垃圾回收(Garbage Collection)程序執行時也可能發生ECC失敗的情況。一種實施方式中,控制器304以資料區塊338為垃圾回收程序的來源區塊(Source Block),自資料單元340取得錯誤資料D_ERR(資料區342)以及循環冗餘校驗碼CRC(元資料區344),以複製到目的區塊A1。複製前,控制器304對錯誤資料D_ERR進行ECC處理,結果為ECC失敗。控制器304將錯誤資料D_ERR以及循環冗餘校驗碼CRC程式化至目的區塊A1上(例如,資料空間350的資料區352以及元資料區354),完成UNC標示。之後,主機308欲讀取目標邏輯位址LBA的資料時,控制器304操作該CRC引擎320,根據目標邏輯位址LBA對取自資料區352的錯誤資料D_ERR計算出錯誤循環冗餘校驗碼CRC_ERR,這顯然不同於元資料區334儲存的循環冗餘校驗碼CRC,則控制器304回應預設訊息給主機308。UNC標示使目標邏輯位址LBA的資料無效化或不被採用,符合被標示為UNC的精神。
一種實施方式中,CRC引擎320是以區段長度(512B)為單位進行CRC編碼。每區段對應2B長度的CRC數值。一筆資料單元長度(4KB)的資料可產生8筆的循環冗餘校驗碼CRC。更短長度(小於4KB)的資料也可有相應的CRC數值。例如,僅512B的資料可對應1筆循環冗餘校驗碼CRC(2B)。因此,採用循環冗餘校驗碼CRC或偏移循環冗餘校驗碼CRC_UNC來實行UNC標示的方法,可適用於區段長度(512B)、資料單元長度(4KB)或是其他長度的資料。本案技術使得無法校正標示指令的標示單元小於映射資訊格式210管理的資料單元。
第4圖對應UNC標示指令(Write UNC)圖解快閃記憶體302中一個頁面的一個資料單元400,資料單元400包括8個區為4KB(8*512B),分別對應至邏輯位址LBA#0~#7。該UNC標示指令包括:起始邏輯位址LBA#4,邏輯位址長度等於4,因此,控制器304需對邏輯位址LBA#0~#7中的邏輯位址LBA#4~#7進行UNC標示。如圖所示,控制器304將目標邏輯位址LBA#0~#3的資料D以及循環冗餘校驗碼CRC程式化至資料單元400的前四個區段。至於要做UNC標示的邏輯位置LBA#4~#7,控制器304操作該CRC引擎320以偏移的邏輯位址LBA#5~#8對邏輯位置LBA#4~#7的資料D進行編碼,獲得偏移的循環冗餘校驗碼CRC_UNC#4~#7。控制器304將邏輯位置LBA#4~#7的資料D以及偏移的循環冗餘校驗碼CRC_UNC#4~#7程式化至資料單元400的後四個區段,完成UNC標示指令的執行。
第5圖為流程圖,根據本案一種實施方式圖解UNC標示指令(Write UNC)的處理流程。
步驟S502,控制器304接收來自主機308的UNC標示指令(Write UNC),其中,UNC標示指令包括目標邏輯位址。
步驟S504,控制器304產生偏移邏輯位址LBA_UNC,其中,偏移邏輯位址LBA_UNC可依據目標邏輯位址而產生,或是隨機產生。
步驟S506,控制器304操作CRC引擎320以偏移邏輯位址LBA_UNC對資料樣版P進行編碼,獲得偏移循環冗餘校驗碼CRC_UNC,其中,資料樣版P為“0”或是目標邏輯位址LBA所對應的物理位址中所儲存的原始資料。
步驟S508,控制器304將資料樣版P以及偏移循環冗餘校驗碼CRC_UNC程式化至主動區塊A0的閒置資料單元330。
第6圖為流程圖,根據本案一種實施方式圖解控制器304如何處理主機308的讀取要求。
步驟S602,控制器304接收來自主機308的讀取指令,其中,讀取指令包括目標邏輯位址LBA。
步驟S604,控制器304根據目標邏輯位址LBA以及L2P映射表取得目標邏輯位址LBA所對應的物理位址,其中,物理位址為PBA。
步驟S606,控制器304自物理位址取得資料D_read以及循環冗餘校驗碼CRC_read。
步驟S608,控制器304操作CRC引擎320以該循環冗餘校驗碼CRC_read對資料D_read進行編碼以取得循環冗餘校驗碼CRC_ref。
步驟S610,控制器304比對該循環冗餘校驗碼CRC_read以及循環冗餘校驗碼CRC_ref,如果比對結果為不相同則執行步驟S612,控制器304輸出預設訊息至主機308。另外,控制器304不回傳資料D_read至主機308。如果比對結果為相同則執行步驟S614,控制器304回傳資料D_read給主機308,完成讀取指令的執行。
以上記憶體控制器304對快閃記憶體302之操作設計也可以由其他結構實現。凡是根據前述概念操作快閃記憶體、使映射資料省略UNC標示專屬位元的技術,都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
200、210~映射資訊格式;
300~資料儲存裝置;
302~快閃記憶體;
304~控制器;
306~暫存記憶體;
308~主機;
310~系統區塊池;
312~備用區塊池;
314~資料區塊池;
316~資料快取空間;
318~空間,動態維護映射資訊;
320~循環冗餘校驗引擎;
330、332、334~資料單元以及其中資料區與元資料區;
338~資料區塊;
340、342、344~資料單元以及其中資料區與元資料區;
350、352、354~資料單元以及其中資料區與元資料區;
400~資料單元;
A0~主動區塊;
A1~目的區塊;
LBA~邏輯位址;
S502…S508、S602…S614~步驟。
第1圖圖解快閃記憶體一區塊Blk之結構;
第2A圖圖解傳統技術所使用的一種映射資訊格式200;
第2B圖圖解本案一種實施方式所使用的一種映射資訊格式210;
第3圖為方塊圖,根據本案一種實施方式圖解一資料儲存裝置300;
第4圖對應一UNC標示指令(WriteUNC)圖解快閃記憶體302一區塊上的一資料單元400;
第5圖為流程圖,根據本案一種實施方式圖解UNC標示指令(WriteUNC)的處理流程;且
第6圖為流程圖,根據本案一種實施方式圖解控制器304如何處理主機308的讀取要求。
300~資料儲存裝置;
302~快閃記憶體;
304~控制器;
306~暫存記憶體;
308~主機;
310~系統區塊池;
312~備用區塊池;
314~資料區塊池;
316~資料快取空間;
318~空間,動態維護映射資訊;
320~循環冗餘校驗引擎;
330、332、334~資料單元以及其中資料區與元資料區;
338~資料區塊;
340、342、344~資料單元以及其中資料區與元資料區;
350、352、354~資料單元以及其中資料區與元資料區;
A0~主動區塊;
A1~目的區塊。
Claims (20)
- 一種資料儲存裝置,包括: 一非揮發式記憶體;以及 一控制器,控制該非揮發式記憶體,且包括一循環冗餘校驗引擎, 其中: 根據一主機下達的一無法校正標示指令,該控制器操作該循環冗餘校驗引擎以一偏移編碼種子對一資料樣板編碼,產生一偏移循環冗餘校驗碼;且 該控制器將該偏移循環冗餘校驗碼隨該資料樣板程式化至該非揮發式記憶體。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該無法校正標示指令指示一邏輯位址; 該控制器偏移該邏輯位址,產生一偏移邏輯位址;且 該控制器操作該循環冗餘校驗引擎以該偏移邏輯位址作為該偏移編碼種子。
- 如申請專利範圍第2項所述之資料儲存裝置,其中: 該資料樣板為零。
- 如申請專利範圍第2項所述之資料儲存裝置,其中: 根據該主機對該邏輯位址所發出的一讀取指令,該控制器自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼; 該控制器操作該循環冗餘校驗引擎以該邏輯位址作為一編碼種子; 該控制器操作該循環冗餘校驗引擎以該編碼種子對該資料樣板產生一循環冗餘校驗碼;且 該控制器操作該循環冗餘校驗引擎比對得該循環冗餘校驗碼不同於該偏移循環冗餘校驗碼,並不以該資料樣板回應該主機。
- 如申請專利範圍第4項所述之資料儲存裝置,其中: 該控制器係根據該邏輯位址的一映射資訊自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼;且 該映射資訊採用的一映射資訊格式不包括任何無法校正標示位元。
- 如申請專利範圍第5項所述之資料儲存裝置,其中: 該無法校正標示指令的標示單元小於該映射資訊格式管理的資料單元。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 關於根據一邏輯位址取自該非揮發式記憶體的一第一區域、且錯誤檢查與糾正失敗的一錯誤資料,該控制器將該錯誤資料以及一循環冗餘校驗碼程式化至該非揮發式記憶體的一第二區域;且 該循環冗餘校驗碼係隨該錯誤資料由該控制器自該非揮發式記憶體的該第一區域讀出。
- 如申請專利範圍第7項所述之資料儲存裝置,其中: 根據該主機對該邏輯位址要求的一讀取指令,該控制器自該非揮發式記憶體的該第二區域取得該錯誤資料以及該循環冗餘校驗碼; 該控制器操作該循環冗餘校驗引擎以該邏輯位址作為一編碼種子; 該控制器操作該循環冗餘校驗引擎以該編碼種子對該錯誤資料產生一錯誤循環冗餘校驗碼;且 該控制器操作該循環冗餘校驗引擎比對得該錯誤循環冗餘校驗碼不同於該循環冗餘校驗碼,並不以該錯誤資料回應該主機。
- 如申請專利範圍第7項所述之資料儲存裝置,其中: 上述錯誤檢查與糾正源於該主機對該非揮發式記憶體的一讀取指令。
- 如申請專利範圍第7項所述之資料儲存裝置,其中: 上述錯誤檢查與糾正源於該控制器對該非揮發式記憶體進行的一垃圾回收。
- 一種非揮發式記憶體控制方法,包括: 提供一循環冗餘校驗引擎; 根據一主機下達的一無法校正標示指令,操作該循環冗餘校驗引擎以一偏移編碼種子對一資料樣板編碼,產生一偏移循環冗餘校驗碼;且 將該偏移循環冗餘校驗碼隨該資料樣板程式化至一非揮發式記憶體。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 偏移該無法校正標示指令所指示的一邏輯位址,以產生一偏移邏輯位址;且 操作該循環冗餘校驗引擎以該偏移邏輯位址作為該偏移編碼種子。
- 如申請專利範圍第12項所述之非揮發式記憶體控制方法,其中: 該資料樣板為零。
- 如申請專利範圍第12項所述之非揮發式記憶體控制方法,更包括: 根據該主機對該邏輯位址所發出的一讀取指令,自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼; 操作該循環冗餘校驗引擎以該邏輯位址作為一編碼種子; 操作該循環冗餘校驗引擎以該編碼種子對該資料樣板產生一循環冗餘校驗碼;且 操作該循環冗餘校驗引擎比對得該循環冗餘校驗碼不同於該偏移循環冗餘校驗碼,並不以該資料樣板回應該主機。
- 如申請專利範圍第14項所述之非揮發式記憶體控制方法,其中係根據該邏輯位址的一映射資訊自該非揮發式記憶體取得該資料樣板以及該偏移循環冗餘校驗碼,且該映射資訊採用的一映射資訊格式不包括任何無法校正標示位元。
- 如申請專利範圍第15項所述之非揮發式記憶體控制方法,其中: 該無法校正標示指令的標示單元小於該映射資訊格式管理的資料單元。
- 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括: 關於根據一邏輯位址取自該非揮發式記憶體的一第一區域、且錯誤檢查與糾正失敗的一錯誤資料,將該錯誤資料以及一循環冗餘校驗碼程式化至該非揮發式記憶體的一第二區域, 其中,該循環冗餘校驗碼係隨該錯誤資料自該非揮發式記憶體的該第一區域讀出。
- 如申請專利範圍第17項所述之非揮發式記憶體控制方法,更包括: 根據該主機對該邏輯位址要求的一讀取指令,自該非揮發式記憶體的該第二區域取得該錯誤資料以及該循環冗餘校驗碼; 操作該循環冗餘校驗引擎以該邏輯位址產生作為一編碼種子; 操作該循環冗餘校驗引擎以該編碼種子對該錯誤資料產生一錯誤循環冗餘校驗碼;且 操作該循環冗餘校驗引擎比對得該錯誤循環冗餘校驗碼不同於該循環冗餘校驗碼,並不以該錯誤資料回應該主機。
- 如申請專利範圍第17項所述之非揮發式記憶體控制方法,其中: 上述錯誤檢查與糾正源於該主機對該非揮發式記憶體的一讀取指令。
- 如申請專利範圍第17項所述之非揮發式記憶體控制方法,其中: 上述錯誤檢查與糾正源於對該非揮發式記憶體進行的一垃圾回收。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911235103.5A CN112099985B (zh) | 2019-06-17 | 2019-12-05 | 数据储存装置以及非挥发式存储器控制方法 |
US16/774,300 US11314586B2 (en) | 2019-06-17 | 2020-01-28 | Data storage device and non-volatile memory control method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962862196P | 2019-06-17 | 2019-06-17 | |
US62/862,196 | 2019-06-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202101221A TW202101221A (zh) | 2021-01-01 |
TWI723581B true TWI723581B (zh) | 2021-04-01 |
Family
ID=75234646
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136997A TWI766194B (zh) | 2019-06-17 | 2019-10-15 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW108136998A TWI723581B (zh) | 2019-06-17 | 2019-10-15 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136997A TWI766194B (zh) | 2019-06-17 | 2019-10-15 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (2) | TWI766194B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809314B2 (en) | 2021-11-21 | 2023-11-07 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201135746A (en) * | 2009-12-30 | 2011-10-16 | Sandisk Corp | Method and controller for performing a copy-back operation |
US9329948B2 (en) * | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US9467511B2 (en) * | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
TW201917590A (zh) * | 2017-10-20 | 2019-05-01 | 慧榮科技股份有限公司 | 儲存裝置以及其介面晶片 |
TW201917591A (zh) * | 2017-10-20 | 2019-05-01 | 慧榮科技股份有限公司 | 儲存裝置以及其介面晶片 |
TW201919066A (zh) * | 2017-11-03 | 2019-05-16 | 大陸商深圳大心電子科技有限公司 | 資料編碼方法、資料解碼方法以及儲存控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642743B2 (en) * | 2017-06-28 | 2020-05-05 | Arm Limited | Apparatus and method of handling caching of persistent data |
-
2019
- 2019-10-15 TW TW108136997A patent/TWI766194B/zh active
- 2019-10-15 TW TW108136998A patent/TWI723581B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201135746A (en) * | 2009-12-30 | 2011-10-16 | Sandisk Corp | Method and controller for performing a copy-back operation |
US9467511B2 (en) * | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
US9329948B2 (en) * | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
TW201917590A (zh) * | 2017-10-20 | 2019-05-01 | 慧榮科技股份有限公司 | 儲存裝置以及其介面晶片 |
TW201917591A (zh) * | 2017-10-20 | 2019-05-01 | 慧榮科技股份有限公司 | 儲存裝置以及其介面晶片 |
TW201919066A (zh) * | 2017-11-03 | 2019-05-16 | 大陸商深圳大心電子科技有限公司 | 資料編碼方法、資料解碼方法以及儲存控制器 |
Also Published As
Publication number | Publication date |
---|---|
TWI766194B (zh) | 2022-06-01 |
TW202101220A (zh) | 2021-01-01 |
TW202101221A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639917B (zh) | 資料儲存裝置及映射表重建方法 | |
US10460774B2 (en) | Apparatus and method capable of removing duplication write of data in memory | |
TWI661307B (zh) | 資料儲存裝置、主機裝置、以及資料寫入方法 | |
US8296498B2 (en) | Method and system for virtual fast access non-volatile RAM | |
US9792067B2 (en) | Trim command processing in a solid state drive | |
JP6018696B2 (ja) | 半導体ストレージ | |
CN112099985B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
EP2920697B1 (en) | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive | |
TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20060149902A1 (en) | Apparatus and method for storing data in nonvolatile cache memory considering update ratio | |
CN114341824B (zh) | 用于粗映射存储器子系统的取消映射 | |
WO2016069192A1 (en) | Tracking intermix of writes and un-map commands across power cycles | |
WO2016069188A1 (en) | Processing of un-map commands to enhance performance and endurance of a storage device | |
WO2011073939A1 (en) | Data management in solid state storage devices | |
US10446252B2 (en) | Data storage device and method for data error management | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN112130750B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI723581B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11392489B2 (en) | Data storage device and non-volatile memory control method | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US20210173737A1 (en) | Error-Correction-Detection Coding for Hybrid Memory Module | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system |