TWI802279B - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TWI802279B TWI802279B TW111105952A TW111105952A TWI802279B TW I802279 B TWI802279 B TW I802279B TW 111105952 A TW111105952 A TW 111105952A TW 111105952 A TW111105952 A TW 111105952A TW I802279 B TWI802279 B TW I802279B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- data
- controller
- read
- original data
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims description 33
- 238000000034 method Methods 0.000 title claims description 19
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000012937 correction Methods 0.000 claims description 16
- 238000004321 preservation Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 230000006866 deterioration Effects 0.000 abstract 8
- 230000035772 mutation Effects 0.000 description 31
- 238000012546 transfer Methods 0.000 description 11
- 238000013508 migration Methods 0.000 description 8
- 230000005012 migration Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation 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/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
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1806—Address conversion or mapping, i.e. logical to physical address
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種非揮發式記憶體變異處理方案。一控制器在判定取自一非揮發式記憶體的一原始資料為一不理想值時,將該原始資料的一變異邏輯地址填入一變異表格。因應一主機對該非揮發式記憶體之該變異邏輯地址的一讀取要求,該控制器查詢該變異表格,尋得該變異表格記載有該變異邏輯地址,據以回報該主機,該變異邏輯地址發生過變異。
Description
本案係有關於非揮發式記憶體的偵錯機制。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
非揮發式記憶體通常有其特殊的儲存特性。本技術領域需要相應非揮發式記憶體的儲存特性發展相應的控制技術。例如,非揮發式記憶體映射資訊管理就需要顧及其儲存特性。
本案提出非揮發式記憶體變異處理方案。
根據本案一種實施方式實現的一資料儲存裝置包括一非揮發式記憶體、以及耦接該非揮發式記憶體的一控制器。該控制器在判定取自該非揮發式記憶體的一原始資料為一不理想值時,將該原始資料的一變異邏輯地址填入一變異表格。因應一主機對該非揮發式記憶體之該變異邏輯地址的一讀取要求,該控制器查詢該變異表格,尋得該變異表格記載有該變異邏輯地址,據以回報該主機,該變異邏輯地址發生過變異。
一種實施方式中,該不理想值為全1位元組成、或為全0位元組成。
一種實施方式中,該控制器更對該原始資料的一變異實體地址所屬的一抹除單位的一高危區塊進行保全搬移,其中,係視該原始資料為無效,略去其保全搬移。
一種實施方式中,該控制器更對該原始資料的一變異實體地址所屬的一抹除單位的一高危區塊進行保全搬移,其中,該原始資料係修正不再為該不理想值後,方保全搬移。
一種實施方式更提出非揮發式記憶體控制方法。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(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)配置使用。區塊為抹除(erasure)單位;同區塊的內容需統一抹除,使空間是逐區塊釋出。各區塊包括複數頁(Pages),例如,頁0…頁255。各頁包括複數個區段(Sectors),例如32個區段。一種實施方式中,每一區段儲存512B長度的使用者資料。一頁可供應16KB的資料儲存區(data area)給使用者,且可更附有2B長度的備用資訊區(spare area)。備用資訊區(spare area)係儲存映射資訊…等,作為元資料(meta data)。
為了提升數據吞吐量,本案使用的是一種多通道存取技術,以複數條通道對快閃記憶體進行並行存取。一快閃記憶體可由複數個晶粒(dies)組成。該等晶粒可對應複數條通道分為複數組。同組晶粒則是輪替(interleaving)使用所共用的通道。例如,晶片致能信號(CE#,#為編號)可用於通道輪替控制。一種實施方式中,各通道有一頁(page)被並行存取;如此跨通道並行存取的範圍稱為超級頁(super page),所屬區塊聯合稱為超級區塊(super block)。多通道技術可根據超級頁之編號─由低編號至高編號─循序使用一超級區塊的儲存空間。
特別是,快閃記憶體並不適合全0位元、或全1位元之儲存,容易損毀。一般設計上,快閃記憶體是搭配一加擾器(scrambler,或randomizer),將全0、或全1資料擾亂為0、1交錯的資料,再填入快閃記憶體。各頁的加擾種子(seed)可存在該頁的備用資訊區,作為元資料之一。然而,即使有加擾設計,也不能百分之百保證快閃記憶體內容不會全1、或全0。快閃記憶體可能某些頁會發生物理性質變異,莫名形成全1、或全0儲存。為了應付如此變異,本案提出解決方案。
第1圖為根據本案一種實施方式所實現的一資料儲存系統100。一資料儲存裝置102包括一快閃記憶體104、該一控制器106以及一隨機存取記憶體108。耦接該資料儲存裝置102的一主機110係通過該控制器106存取該控制器106所耦接的該快閃記憶體104。控制器106係利用所耦接的該隨機存取記憶體108儲存運算時的暫存資訊。該隨機存取記憶體108可為一動態隨機存取記憶體(DRAM)、或一靜態隨機存取記憶體(SRAM)。另一種實施方式中,控制器106可內建有一記憶空間(如,TSB)實現運算時的資訊暫存:此類架構也是本案欲保護範圍。
該控制器106是以多通道CH1…CH4實現該快閃記憶體104的並行存取。各通道更相應兩個晶片致能信號CE1以及CE2,被不同晶粒(同樣編號為CE1以及CE2)輪替使用。一晶粒可由複數個區塊組成。各區塊更劃分為複數頁(參考編號Page)。各頁包括資料儲存區Data、以及備用資訊區Spare。
控制器106為特殊設計之處理器,提供多種功能模塊(由運算硬件、以及相應之韌體程式實現),包括:轉譯器112、加擾與解擾器114、偵錯器116…等。主機110發下的讀取/寫入指令是以邏輯地址LBA指定快閃記憶體104之讀、寫。以下討論控制器106如何應付主機110對快閃記憶體104的讀、寫要求。
此段落討論寫入操作。轉譯器112配置快閃記憶體104一實體地址PBA,使映射一寫入資料之邏輯地址LBA。偵錯器116對寫入資料進行偵錯編碼(如,ECC編碼)。偵錯編碼也可以是元資料之一。加擾與解擾器114提供加擾程序,寫入資料、映射資訊、偵錯編碼、以及加擾種子…等經加擾後,依照映射的實體地址PBA填入該快閃記憶體104。各頁Page的資料儲存區Data、以及備用資訊區Spare都是加擾後的內容,已被打亂不為全1、或全0位元這樣的不理想值。
以下討論讀取操作。轉譯器112將主機110指定讀取的邏輯地址LBA轉譯為快閃記憶體104之實體地址PBA,其中涉及映射表之載出(快閃記憶體104至隨機存取記憶體108)、以及查詢。控制器106在隨機存取記憶體108上規劃有一先進先出緩存區Read_FIFO,緩存一筆筆主機110規劃讀取的實體地址PBA(轉譯結果)。先進先出緩存區Read_FIFO所條列的各實體地址PBA可包括:通道編號CH#、晶片致能信號編號CE#、區塊編號Blk#、以及頁編號Page#。根據先進先出緩存區Read_FIFO所條列之實體地址PBA,控制器106自快閃記憶體104讀出原始資料,暫存於隨機存取記憶體108之讀取暫存區Read_Data。原始資料經加擾與解擾器114解擾,形成的讀取資料也可暫存讀取暫存區Read_Data,由偵錯器116偵錯。偵錯器116所進行的偵錯除了對解擾後的讀取資料的校錯(如,ECC校錯),更在校錯失敗(如,ECC failed)後,對解擾前的原始資料進行不理想值檢查,找出全為”1”、或全為”0”的快閃記憶體104變異。
然而,變異察覺當下,偵錯器116可能只知道變異的通道編號CH#,而不知實體地址PBA其它細節。本案特別對該等通道CH1…CH4各自安排一寄存器(register)reg1…reg4。偵錯器116藉寄存器reg1…reg4,以旗標方式顯示相應通道是否讀到全為”1”、或全為”0”不理想值。隨著旗標之舉起,控制器106啟動解決方案,檢查先進先出緩存區Read_FIFO,找出變異的候選實體地址,一一檢查,以確定變異所在之實體地址。不同於單純校錯失敗所啟動的區塊搬移,本案以特殊方式應付為快閃記憶體全為”1”、或全為”0”變異。
因應錯誤而啟動的區塊搬移程序稱為保全搬移。一般保全搬移是將出錯頁所屬的高危區塊的內容,複製到快閃記憶體104的閒置區塊,保全其他尚未出錯的頁。一種實施方式是只搬移高危區塊的有效資料。高危區塊可能標示為損壞,不再使用。然而,這樣的複製過程包括全”1”、或全”0”頁之複製。複製後仍會被偵錯到,再次啟動保全搬移。全”1”、或全”0”的不理想值會複製擴及整個快閃記憶體104。損壞標示蔓延整個快閃記憶體104,導致鎖卡。
本案一種實施方式是修正變異頁(全”1”、或全”0”頁),使不為全”1”、或全”0”如此不理想值後,才做區塊搬移。如此一來,全為”1”或全為”0”資料不會再複製到其他區塊。一種實施方式是將變異頁儲存的是一特定值(例如,0x55或0xAA)加擾後的結果。日後主機再次讀取此變異頁,該特定值可用來判定曾經發生過的變異狀況,回應主機110無可靠資料。
一種實施方式更額外管理一變異表格Damage_TAB,條列所有變異邏輯地址LBA_damaged─供日後讀取辨識,代表快閃記憶體104中無可靠資料存可回應主機110對該些變異邏輯地址LBA_damaged的讀取要求。
一種實施方式中,變異頁所屬之高危區塊經保全搬移後,是搬移到一保全區塊,其區塊編號也會記載於該變異表格Damage_TAB。控制器106閒置時即可根據該變異表格Damage_TAB紀錄的區塊編號Blk#,進行垃圾收集(Garbage Collection)。控制器106是將該保全區塊當作垃圾回收的一來源區塊,將其中有效內容收集到一目的區塊。特別是,垃圾回收中,該變異表格Damage_TAB所載變異邏輯地址LBA_damaged對應的該頁(可能已被修正為特定值)被視為無效頁,不收集到目標區塊(略去其垃圾回收)。不可靠資料不再作無異議複製,提升快閃記憶體104之空間利用率。
另一種實施方式除了在該變異表格Damage_TAB紀錄變異邏輯地址,更在高危區塊之保全搬移階段就將變異頁視為無效頁,略去其保全搬移。不可靠資料直接以變異表格Damage_TAB標示,不再作無異議複製,快閃記憶體104之空間利用率有感提升。
此段落更詳細解說變異頁之判斷細節。控制器106可在主機110無其他指示時(或固定時間間隔)檢查寄存器reg1…reg4狀態。若有旗標舉起,控制器106根據舉起旗標所代表的通道編號CH#,查詢該先進先出緩存區Read_FIFO,將其中符合通道編號CH#的所有實體地址PBA填入隨機存取記憶體108上的一變異處理結構118,作為候選實體地址。根據該變異處理結構118所條列的候選實體地址,控制器116讀取該快閃記憶體104,判斷究竟哪個候選實體地址發生變異。一種實施方式是讀取候選實體地址指示頁的備用資訊區Spare,但略過資料儲存區Data之讀取。若備用資訊區Spare是全為”1”、或全為”0”內容,即可判斷該頁確實產生變異。相較於完整讀取龐大的資料儲存區Data內容(如,16KB),單純讀取備用資訊區Spare(如,2B)實現變異偵測,效能更高。
第2A圖根據本案一種實施方式圖解該先進先出緩存區Read_FIFO的內容;各緩存區FIFO緩存一組實體地址PBA(包括通道編號CH#、晶片致能信號編號CE#、區塊編號Blk#、以及頁編號Page#)。第2B圖根據本案一種實施方式圖解該讀取暫存區Read_Data的內容。隨機存取記憶體108各地址Addr儲存的包括解擾前數據、以及解擾後數據,甚至可包括取得原始資料的通道編號CH#。第2C圖根據本案一種實施方式圖解該變異處理結構118;各條目item1、item2…對應一個變異事件。例如,若有複數通道都偵測到全為”1”、或全為”0”變異,則需要相應填寫複數條目。
參閱第2B圖,偵錯器116對隨機存取記憶體108上一暫存地址Addrn所暫存的讀取資料202校錯失敗後,即檢查解擾前的原始資料204,依照其全1(或全0)內容,判定通道CH1某頁發生變異為不理想值,設置第1圖寄存器reg1,使對應通道CH1之旗標舉起。一種實施方式中,暫存地址Addrn會載入該變異處理結構118的一條目item1(參考第2C圖)。控制器106相應寄存器reg1舉起之旗標,自該先進先出緩存區Read_FIFO讀出通道CH1所有讀取資料之實體地址PBA;如,第2A圖緩存區FIFOi內容組成的實體地址PBAi、以及緩存區FIFOj內容組成的實體地址PBAj。控制器106將實體地址PBAi、以及實體地址PBAj載入第2C圖該變異處理結構118的條目item1中,作為候選邏輯地址,指示可能的變異頁。根據該條目item1所載候選邏輯地址PBAi、以及PBAj,控制器106讀取該快閃記憶體104。特別是,控制器106是讀取候選邏輯地址PBAi的備用資訊區Spare、以及候選邏輯地址PBAj的備用資訊區Spare,而非完整兩頁。假設是候選邏輯地址PBAi的備用資訊區Spare發生全”1”之變異,則根據該變異處理結構118中,條目item1所儲存的暫存地址Addrn,控制器106自該讀取暫存區Read_Data(第2B圖)找到解擾後的讀取資料202,將之修改為一特定值(如,0x55或0xAA,或其它),再以之實現保全搬移。特定值加擾後(經114)必然不是全1或全0的不理想值。如此一來,保全搬移的不再包括全”1”內容。變異的全1內容不會擴及整個快閃記憶體104。特別是,控制器106後續只要讀出該特定值,就可以判定該頁有過變異,讀取資料不可信。
第3圖根據本案一種實施方式圖解讀取偵錯之流程圖。步驟S302相應一讀取指令將資料自快閃記憶體104讀出。步驟S304對讀取資料進行校錯(如,ECC)。校錯若通過,流程進入步驟S306,判定讀取成功。校錯若沒通過(例如,經過修正參數後的反覆重讀也沒能通過ECC校錯),流程進入步驟S308,檢查全”1”、或全”0”變異。若無變異發生,流程進入步驟S310,對校錯失敗頁所在的高危區塊,進行保全搬移。反之,若偵測到變異,流程進入步驟S312,將校錯失敗頁修正為特定值(使加擾後不會全”1”、或全”0”),方對高危區塊進行保全搬移。日後指定讀取變異邏輯地址時,快閃記憶體104提供的會是此特定值的內容,控制器106即可判定此變異邏輯地址的資料發生過變異,通知主機110此讀取資料不可採用。
以下段落則細節討論使用變異表格Damage_TAB的技術內容。
第4圖圖解變異表格Damage_TAB的一種實施方式,其中可記載變異邏輯地址LBA_damaged。甚至,變異表格Damage_TAB更記載保全搬移後(高危區塊搬移到保全區塊),保全區塊上對應該變異邏輯地址LBA_damaged的實體地址PBA_invalid。
第5圖為流程圖,圖解此類實施方式的讀取偵錯。相較於第3圖,此類實施方式在判定讀取暫存區Read_Data暫存之讀取資料不通過校錯(步驟S304)、且發生變異(步驟S308)時,流程是進行步驟S502,在隨機存取記憶體108上編寫該變異表格Damage_TAB,條列變異邏輯地址LBA_damaged,並進行特殊保全搬移。此步驟可更如前述,將變異頁修正為特定值,於高危區塊之保全搬移中複製到其他區塊。一種實施方式中,步驟S502還會將保全搬移後,保全區塊上對應該變異邏輯地址LBA_damaged的實體地址PBA_invalid填入變異表格Damage_TAB(如第4圖)。控制器106可於閒置時,根據變異表格Damage_TAB所載的實體地址PBA_invalid,得知保全區塊之區塊編號,對其進行垃圾回收。此垃圾回收會將已改為特定值的變異頁視為無效,不進行搬移。如此一來,無意義的資料不會被收入垃圾危收的目的區塊。快閃記憶體104空間利用率更佳。
另一種實施方式中,變異表格Damage_TAB無須記載前述實體地址PBA_invalid。此類實施例是在保全搬移時,就直接將變異頁視為無效,不進行搬移。為第6圖為流程圖,圖解此類實施方式的讀取偵錯。相較於第3圖,此類實施方式在判定讀取暫存區Read_Data暫存之讀取資料不通過校錯(步驟S304)、且發生變異(步驟S308)時,流程是進行步驟S602,在隨機存取記憶體108上編寫該變異表格Damage_TAB,條列變異邏輯地址LBA_damaged,並進行特殊保全搬移。此步驟不用如前述,將變異頁修正為特定值再保全搬移到其他區塊。步驟S602為高危區塊作的保全搬移會忽略該變異頁,將之視為無效頁,不搬移之。如此一來,無意義的資料不被複製到其他區塊,快閃記憶體104利用率更佳。
更有其他實施方式,其中涉及變異頁的垃圾回收是其他引發條件。該控制器106進行涉及該變異邏輯地址的一來源區塊至一目的區塊的垃圾回收時,即查詢該變異表格Damage_TAB,尋得該變異表格Damage_TAB記載有該變異邏輯地址,即視該來源區塊中映射該變異邏輯地址的資料無效,略去其垃圾回收。
控制器106可定期將變異表格Damage_TAB非揮發式存入快閃記憶體104。主機110發出讀取要求時,控制器106可自快閃記憶體104將該變異表格Damage_TAB載入該隨機存取記憶體108,檢查主機110指定讀取的邏輯地址LBA是否屬變異邏輯地址,條列於變異表格Damage_TAB。若是,控制器106回應主機110該邏輯地址LBA之資料發生過變異,不可靠,沒有可回傳的內容。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存系統
102:資料儲存裝置
104:快閃記憶體
106:控制器
108:隨機存取記憶體
110:主機
112:轉譯器
114:加擾與解擾器
116:偵錯器
118:變異處理結構
202:讀取資料
204:原始資料
Addr:隨機存取記憶體108之地址
Addrn:暫存地址
CH1、CH2、CH3、CH4:通道
CH#、CE#、Blk#、Page#:通道編號、晶片致能信號編號、區塊編號、以及頁編號
CE1、CE2:晶片致能信號
Damage_TAB:變異表格
Data:資料儲存區
FIFO、FIFOi、FIFOj:緩存區
item1、item2:條目
Page:頁
PBAi、PBAj:候選實體地址
Read_Data:讀取暫存區
Read_FIFO:先進先出緩存區
S302…S312、S502、S602:步驟
Spare:備用資訊區
reg1…reg4:寄存器
第1圖為根據本案一種實施方式所實現的一資料儲存系統100;
第2A圖根據本案一種實施方式圖解該先進先出緩存區Read_FIFO的內容;
第2B圖根據本案一種實施方式圖解該讀取暫存區Read_Data的內容;
第2C圖根據本案一種實施方式圖解該變異處理結構118;
第3圖根據本案一種實施方式圖解讀取偵錯之流程圖;
第4圖圖解變異表格Damage_TAB的一種實施方式;且
第5、6圖為流程圖,圖解應用變異表格Damage_TAB的讀取偵錯。
102:資料儲存裝置
104:快閃記憶體
106:控制器
108:隨機存取記憶體
110:主機
112:轉譯器
114:加擾與解擾器
116:偵錯器
118:變異處理結構
CE1、CE2:晶片致能信號
CH1、CH2、CH3、CH4:通道
Damage_TAB:變異表格
Data:資料儲存區
Read_Data:讀取暫存區
Read_FIFO:先進先出緩存區
Page:頁
Spare:備用資訊區
reg1…reg4:寄存器
Claims (18)
- 一種資料儲存裝置,包括:一非揮發式記憶體;以及一控制器,耦接該非揮發式記憶體,其中:該控制器在判定取自該非揮發式記憶體的一原始資料為一不理想值時,將該原始資料的一變異邏輯地址填入一變異表格,該不理想值為全1位元組成、或為全0位元組成;且因應一主機對該非揮發式記憶體之該變異邏輯地址的一讀取要求,該控制器查詢該變異表格,尋得該變異表格記載有該變異邏輯地址,據以回報該主機,該變異邏輯地址發生過變異。
- 如請求項1之資料儲存裝置,其中:該控制器更對該原始資料的一變異實體地址所屬的一抹除單位的一高危區塊進行保全搬移,其中,係視該原始資料為無效,略去其保全搬移。
- 如請求項1之資料儲存裝置,其中:該控制器更對該原始資料的一變異實體地址所屬的一抹除單位的一高危區塊進行保全搬移,其中,該原始資料係修正不再為該不理想值後,方保全搬移。
- 如請求項1之資料儲存裝置,其中:該控制器包括一加擾與解擾器,在資料寫入該非揮發式記憶體之 前加擾之,並在資料讀出該非揮發式記憶體之後解擾之;該控制器係以該加擾與解擾器解擾該原始資料,以獲得一讀取資料,並對該讀取資料進行校錯;且該控制器是在該讀取資料不通過校錯時,檢查解擾前的該原始資料是否為該不理想值。
- 如請求項4之資料儲存裝置,其中:該控制器係以複數條通道存取該非揮發式記憶體;該控制器提供複數個寄存器,一對一對應該等通道作為旗標;且判定該原始資料為該不理想值時,基於讀出該原始資料的通道,該控制器找出該等寄存器中對應者進行填寫,舉起旗標,將讀出該原始資料的通道標誌為一標誌通道。
- 如請求項5之資料儲存裝置,其中:該控制器更在一隨機存取記憶體上規劃一先進先出緩存區,條列被要求讀取的複數個實體地址,其中包括通道資訊;且相應該標誌通道,該控制器查找該先進先出緩存區,找出複數個候選實體地址,據以查找該非揮發式記憶體,判讀出該原始資料的一變異實體地址。
- 如請求項6之資料儲存裝置,其中:根據上述候選實體地址,該控制器查找該非揮發式記憶體的備用資訊區,以全1位元、或全0位元之備用資訊的實體地址為該變異實體地址。
- 如請求項7之資料儲存裝置,其中:根據該等候選實體地址查找該非揮發式記憶體時,該控制器略過資料儲存區的讀取。
- 如請求項7之資料儲存裝置,其中:該控制器更在該隨機存取記憶體上編寫一變異處理結構,以其中一條目記載該等候選實體地址;該控制器係根據該變異處理結構的該條目,獲得查找該非揮發式記憶體用的該等候選實體地址。
- 一種非揮發式記憶體控制方法,包括:在判定取自一非揮發式記憶體的一原始資料為一不理想值時,將該原始資料的一變異邏輯地址填入一變異表格,該不理想值為全1位元組成、或為全0位元組成;以及因應一主機對該非揮發式記憶體之該變異邏輯地址的一讀取要求,查詢該變異表格,尋得該變異表格記載有該變異邏輯地址,據以回報該主機,該變異邏輯地址發生過變異。
- 如請求項10之非揮發式記憶體控制方法,更包括:對該原始資料的一變異實體地址所屬的一抹除單位的一高危區塊進行保全搬移,其中,係視該原始資料為無效,略去其保全搬移。
- 如請求項10之非揮發式記憶體控制方法,更包括:對該原始資料的一變異實體地址所屬的一抹除單位的一高危區 塊進行保全搬移,其中,該原始資料係修正不再為該不理想值後,方保全搬移。
- 如請求項10之非揮發式記憶體控制方法,更包括:解擾該原始資料,以獲得一讀取資料,並對該讀取資料進行校錯;且在該讀取資料不通過校錯時,檢查解擾前的該原始資料是否為該不理想值。
- 如請求項13之非揮發式記憶體控制方法,更包括:以複數條通道存取該非揮發式記憶體;提供複數個寄存器,一對一對應該等通道作為旗標;且判定該原始資料為該不理想值時,基於讀出該原始資料的通道,該控制器找出該等寄存器中對應者進行填寫,舉起旗標,將讀出該原始資料的通道標誌為一標誌通道。
- 如請求項14之非揮發式記憶體控制方法,更包括:在一隨機存取記憶體上規劃一先進先出緩存區,條列被要求讀取的複數個實體地址,其中包括通道資訊;且相應該標誌通道,查找該先進先出緩存區,找出複數個候選實體地址,據以查找該非揮發式記憶體,判讀出該原始資料的一變異實體地址。
- 如請求項15之非揮發式記憶體控制方法,更包括:根據上述候選實體地址,查找該非揮發式記憶體的備用資訊區, 以全1位元、或全0位元之備用資訊的實體地址為該變異實體地址。
- 如請求項16之非揮發式記憶體控制方法,更包括:在根據該等候選實體地址查找該非揮發式記憶體時,略過資料儲存區的讀取。
- 如請求項16之非揮發式記憶體控制方法,更包括:在該隨機存取記憶體上編寫一變異處理結構,以其中一條目記載該等候選實體地址;且根據該變異處理結構的該條目,獲得查找該非揮發式記憶體用的該等候選實體地址。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111105952A TWI802279B (zh) | 2022-02-18 | 2022-02-18 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN202210244800.2A CN116665753A (zh) | 2022-02-18 | 2022-03-14 | 数据储存装置以及非挥发式存储器控制方法 |
US17/835,198 US12008258B2 (en) | 2022-02-18 | 2022-06-08 | Data storage device and control method for non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111105952A TWI802279B (zh) | 2022-02-18 | 2022-02-18 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI802279B true TWI802279B (zh) | 2023-05-11 |
TW202334819A TW202334819A (zh) | 2023-09-01 |
Family
ID=87424418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111105952A TWI802279B (zh) | 2022-02-18 | 2022-02-18 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12008258B2 (zh) |
CN (1) | CN116665753A (zh) |
TW (1) | TWI802279B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI351605B (en) * | 2006-09-07 | 2011-11-01 | Imicro Technology Ltd | Managing bad blocks in flash memory for electronic |
TWI375962B (en) * | 2008-06-09 | 2012-11-01 | Phison Electronics Corp | Data writing method for flash memory and storage system and controller using the same |
TW201419295A (zh) * | 2012-11-14 | 2014-05-16 | Winbond Electronics Corp | 晶片上之反及閘快閃記憶體及其損壞區塊管理方法 |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
US20180357142A1 (en) * | 2017-06-09 | 2018-12-13 | International Business Machines Corporation | Reporting defects in a flash memory back-up system |
TWI650647B (zh) * | 2017-05-22 | 2019-02-11 | 上海寶存信息科技有限公司 | 資料儲存裝置以及數據錯誤管理方法 |
TW201931123A (zh) * | 2017-10-30 | 2019-08-01 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
TWI700586B (zh) * | 2017-10-30 | 2020-08-01 | 日商東芝記憶體股份有限公司 | 計算機系統及儲存裝置之控制方法 |
US11175850B2 (en) * | 2019-01-03 | 2021-11-16 | Toshiba Memory Corporation | Selective erasure of data in a SSD |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5996103A (en) | 1996-07-31 | 1999-11-30 | Samsung Information Systems America | Apparatus and method for correcting errors in a communication system |
US7690031B2 (en) | 2000-01-06 | 2010-03-30 | Super Talent Electronics, Inc. | Managing bad blocks in flash memory for electronic data flash card |
AU2004320526B2 (en) | 2004-05-27 | 2008-08-07 | Memjet Technology Limited | Method for at least partially compensating for errors in ink dot placement due to erroneous rotational displacement |
TWM288401U (en) | 2005-07-15 | 2006-03-01 | Genesys Logic Inc | Highly efficient data characteristics recognition device for flash memory |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
JP5959958B2 (ja) | 2012-06-27 | 2016-08-02 | 株式会社バッファローメモリ | 記憶装置及び記憶装置におけるデータ消去方法 |
CN103811074B (zh) | 2012-11-15 | 2017-05-03 | 光宝电子(广州)有限公司 | 闪存的储存状态决定方法及其相关系统 |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US9519575B2 (en) | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
KR20180045220A (ko) * | 2016-10-25 | 2018-05-04 | 삼성전자주식회사 | 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템 |
KR20180082927A (ko) | 2017-01-11 | 2018-07-19 | 에스케이하이닉스 주식회사 | 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러 |
US10073640B1 (en) * | 2017-03-10 | 2018-09-11 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
US10379758B2 (en) | 2017-06-26 | 2019-08-13 | Western Digital Technologies, Inc. | Managing system data for a data storage system |
KR20190040614A (ko) | 2017-10-11 | 2019-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US20200042500A1 (en) * | 2018-08-02 | 2020-02-06 | Alibaba Group Holding Limited | Collaborative compression in a distributed storage system |
TWI703438B (zh) | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
CN110908925B (zh) | 2018-09-17 | 2022-01-25 | 慧荣科技股份有限公司 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
US10802965B2 (en) | 2019-02-05 | 2020-10-13 | Microsoft Technology Licensing, Llc | Reducing synchronization reliance in garbage collection marking |
CN112130749B (zh) | 2019-06-25 | 2023-12-22 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI718709B (zh) | 2019-06-25 | 2021-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11029874B2 (en) * | 2019-07-30 | 2021-06-08 | Western Digital Technologies, Inc. | Rolling XOR protection in efficient pipeline |
US11500782B2 (en) | 2020-12-18 | 2022-11-15 | Micron Technology, Inc. | Recovery of logical-to-physical table information for a memory device |
US11507296B2 (en) | 2021-03-10 | 2022-11-22 | Micron Technology, Inc. | Repair operation techniques |
KR20220140367A (ko) | 2021-04-09 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN116665756A (zh) * | 2022-02-18 | 2023-08-29 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
-
2022
- 2022-02-18 TW TW111105952A patent/TWI802279B/zh active
- 2022-03-14 CN CN202210244800.2A patent/CN116665753A/zh active Pending
- 2022-06-08 US US17/835,198 patent/US12008258B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI351605B (en) * | 2006-09-07 | 2011-11-01 | Imicro Technology Ltd | Managing bad blocks in flash memory for electronic |
TWI375962B (en) * | 2008-06-09 | 2012-11-01 | Phison Electronics Corp | Data writing method for flash memory and storage system and controller using the same |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
TW201419295A (zh) * | 2012-11-14 | 2014-05-16 | Winbond Electronics Corp | 晶片上之反及閘快閃記憶體及其損壞區塊管理方法 |
TWI650647B (zh) * | 2017-05-22 | 2019-02-11 | 上海寶存信息科技有限公司 | 資料儲存裝置以及數據錯誤管理方法 |
US20180357142A1 (en) * | 2017-06-09 | 2018-12-13 | International Business Machines Corporation | Reporting defects in a flash memory back-up system |
TW201931123A (zh) * | 2017-10-30 | 2019-08-01 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
TWI700586B (zh) * | 2017-10-30 | 2020-08-01 | 日商東芝記憶體股份有限公司 | 計算機系統及儲存裝置之控制方法 |
US11175850B2 (en) * | 2019-01-03 | 2021-11-16 | Toshiba Memory Corporation | Selective erasure of data in a SSD |
Also Published As
Publication number | Publication date |
---|---|
CN116665753A (zh) | 2023-08-29 |
US12008258B2 (en) | 2024-06-11 |
US20230266912A1 (en) | 2023-08-24 |
TW202334819A (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Birrell et al. | A design for high-performance flash disks | |
TWI489486B (zh) | 基於條帶之記憶體操作 | |
KR101528714B1 (ko) | 메모리 유닛 동작 방법 및 메모리 제어기 | |
US9367444B2 (en) | Non-volatile memory device, control method for information processing device, and information processing device | |
KR101852668B1 (ko) | 어드레스 매핑 | |
US11126561B2 (en) | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive | |
US20160378337A1 (en) | Solid-state mass storage device and method for persisting volatile data to non-volatile media | |
US11288182B2 (en) | Method and computer program product and apparatus for multi-namespace data access | |
US9436594B2 (en) | Write operation with immediate local destruction of old content in non-volatile memory | |
US20140032820A1 (en) | Data storage apparatus, memory control method and electronic device with data storage apparatus | |
US10922234B2 (en) | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive | |
US20160321134A1 (en) | Error correction in solid state drives (ssd) | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
KR20210028729A (ko) | 논리적 대 물리적 테이블 프래그먼트들 | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
US11061598B2 (en) | Optimized handling of multiple copies in storage management | |
US10942678B2 (en) | Method of accessing data in storage device, method of managing data in storage device and storage device performing the same | |
US11860669B2 (en) | Method and apparatus and computer program product for storing data in flash memory | |
US11775386B2 (en) | Data storage device and control method for non-volatile memory | |
TWI802279B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI805231B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI845896B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20210334031A1 (en) | Data Parking for SSDs with Zones | |
US12026384B2 (en) | Open block relocation | |
US20240103723A1 (en) | Unaligned deallocated logical blocks datapath support |