TWI628542B - 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 - Google Patents

快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 Download PDF

Info

Publication number
TWI628542B
TWI628542B TW106113424A TW106113424A TWI628542B TW I628542 B TWI628542 B TW I628542B TW 106113424 A TW106113424 A TW 106113424A TW 106113424 A TW106113424 A TW 106113424A TW I628542 B TWI628542 B TW I628542B
Authority
TW
Taiwan
Prior art keywords
garbage collection
flash memory
storage unit
garbage
power
Prior art date
Application number
TW106113424A
Other languages
English (en)
Other versions
TW201839615A (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 TW106113424A priority Critical patent/TWI628542B/zh
Priority to CN201710368590.7A priority patent/CN108733578A/zh
Priority to US15/863,896 priority patent/US20180307496A1/en
Application granted granted Critical
Publication of TWI628542B publication Critical patent/TWI628542B/zh
Publication of TW201839615A publication Critical patent/TW201839615A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本發明的實施例提出一種快閃記憶體的垃圾回收斷電回復方法,由處理單元執行,包含下列步驟:於斷電重啟後,從儲存單元讀取垃圾回收回復旗標並判斷垃圾回收回復旗標是否表示快閃記憶體需要瞬間斷電保護;以及當垃圾回收回復旗標表示快閃記憶體需要瞬間斷電保護時,寫入虛假資料至儲存單元的目的地區塊中接下來的預設數目的空頁面,以及執行未完成的垃圾回收資料存取作業。

Description

快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
本發明關連於一種快閃記憶體,特別是一種快閃記憶體的斷電回復方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,主裝置(host)可於位址腳位上提供存取NOR快閃裝置的任意位址,並即時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內 容,讓主單元可逐位元組或字元組(words)存取資料。
如果區塊中之部分頁面的資料已經無效(又稱為過期頁面),讀取這些區塊中具有效資料的頁面並重新寫入其他之前被抹除的空區塊。接著,這些被釋放的頁面加上過期資料的頁面,可收集起來以寫入新的資料。如上所述的程序稱為垃圾回收(garbage collection)。垃圾回收程序牽涉到從快閃記憶體讀取資料以及重新寫入資料至快閃記憶體。這代表快閃控制器首先需要讀出整個區塊,接著將區塊中擁有有效資料的部分頁面寫入。由自然或人為引起的瞬間斷電可能損害配置給垃圾回收程序的實體區塊(又稱為垃圾回收區塊)中已寫入頁面之後的空頁面。系統重啟程序中的斷電回復是一種處理,用以於瞬間斷電後回復或繼續NAND快閃記憶體系統。為了防止可能受到損害的頁面被垃圾回收程序使用,每次執行系統重啟程序時,斷電回復處理會於垃圾回收區塊的已寫入頁面後再寫入數個空頁面。然而,當垃圾回收區塊沒有被損壞時,斷電回復處理會誤寫空頁面,導致空間浪費。因此,需要一種快閃記憶體的斷電回復方法以及使用該方法的裝置,用以解決以上所述的問題。
本發明的實施例提出一種快閃記憶體的垃圾回收斷電回復方法,由處理單元執行,包含下列步驟:於斷電重啟後,從儲存單元讀取垃圾回收回復旗標並判斷垃圾回收回復旗標是否表示快閃記憶體需要瞬間斷電保護;以及當垃圾回收回復旗標表示快閃記憶體需要瞬間斷電保護時,寫入虛假資料至 儲存單元的目的地區塊中接下來的預設數目的空頁面,以及執行未完成的垃圾回收資料存取作業。
本發明的實施例提出一種快閃記憶體的斷電回復裝置,包含存取介面及處理單元。存取介面耦接於儲存單元,而處理單元耦接於存取介面。於斷電重啟後,處理單元驅動存取介面從儲存單元讀取垃圾回收回復旗標並判斷垃圾回收回復旗標是否表示快閃記憶體需要瞬間斷電保護;以及,當垃圾回收回復旗標表示快閃記憶體需要瞬間斷電保護時,驅動存取介面以寫入虛假資料至儲存單元的目的地區塊中接下來的預設數目的空頁面,以及執行未完成的垃圾回收資料存取作業。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧資料緩存器
130‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
310_0‧‧‧資料線
320_0_0~320_0_i‧‧‧晶片致能控制訊號
410、430、450、470‧‧‧區塊
411、433、455、457‧‧‧區段
P1、P2、P3、P4‧‧‧頁面
S511~S570‧‧‧方法步驟
S610~S690‧‧‧方法步驟
710、730、750、770‧‧‧區塊
770a、770b、...、770g‧‧‧頁面
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4圖係依據本發明實施例之垃圾回收示意圖。
第5圖係依據本發明實施例之垃圾回收資料存取方法的流程圖。
第6圖係依據本發明實施例之垃圾回收斷電回復方法的流程圖。
第7A至7C圖係依據本發明實施例的垃圾回收示意圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取 致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第3圖 係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號320_0_0至320_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線310_0從選擇出的儲存子單元的指定位置讀取資料。
第4圖係依據本發明實施例之垃圾回收示意圖。假設一個頁面可儲存四個區段的資料:經過多次存取後,區塊410中的頁面P1的第0個區段411為有效資料,其餘為無效資料。區塊430中的頁面P2的第1個區段433為有效資料,其餘為無效資料。區塊450中的頁面P3的第2個及第3個區段455及457為有效資料,其餘為無效資料。為了將頁面P1至P3中的有效資料回收成一個頁面以儲存至區塊470中的新頁面P4,可執行垃圾回收程序。詳細來說,資料緩存器120可配置空間以儲存一個頁面的資料。處理單元110可透過存取子介面170讀取區塊410中的頁面P1的資料,保留頁面P1的第0個區段411的資料,並儲存至資料緩存器120中配置空間的第0個區段。接著,處理單元110可透過存取子介面170讀取區塊430中的頁面P2的資料,保留頁面P2的第1個區段433的資料,並儲存至資料緩存器120中配置空間的第1個區段。接著,處理單元110可透過存取子介面170讀取區塊450中的頁面P3的資料,保留頁面P3的第2個及第3個區段455及457的資料,並儲存至資料緩存器120中配置空間的第2個及第3個區段。最後,處理單元110可透過存取子介面170將資料緩存器120中配置空間的資料寫入區塊470中的頁面P4。
處理單元110寫入一個垃圾回收回復旗標至儲存 單元180(亦即是,非揮發性儲存空間),用以指出快閃記憶體是否需要瞬間斷電保護。例如,當垃圾回收回復旗標為”0”時,代表快閃記憶體不需要瞬間斷電保護。當垃圾回收回復旗標為”1”時,代表快閃記憶體需要瞬間斷電保護。第5圖係依據本發明實施例之垃圾回收資料存取方法的流程圖。此方法由處理單元110於載入並執行特定微碼或軟體指令時實施。當進入垃圾回收資料存取模式時,驅動存取介面170以寫入垃圾回收回復旗標”1”及垃圾回收歷程至儲存單元180,垃圾回收歷程包含目的地區塊及儲存單元180中需要蒐集的有效區段的資訊(步驟S511)及設定計時器以計數一段預設時間(步驟S513)。計時器的設定係用以確保垃圾回收資料存取作業的執行不超過這段預設時間,避免影響一般資料存取作業。當一般資料存取作業包含為回應主裝置160發出的資料讀取及寫入命令所執行的資料存取。於此須注意的是,當垃圾回收歷程中存在任何需要蒐集的有效區段的資訊時,代表尚有未完成的垃圾回收資料存取作業。接著,週期性地執行垃圾回收資料存取模式的存取作業後(步驟S530),判斷垃圾回收資料存取模式的存取作業是否完成(步驟S551)及判斷計時器是否逾時(步驟S553)。於步驟S530,於每次成功執行垃圾回收資料存取模式的存取作業後,處理單元110更新垃圾回收歷程,用以將已蒐集並寫入的有效區段的資訊移除。於步驟S551,處理單元110可檢查垃圾回收歷程中是否存在任何需要蒐集的有效區段的資訊。如果不存在任何需要蒐集的有效區段的資訊,代表垃圾回收資料存取模式的存取作業完成。當垃圾回收資料存取模式的存取作業完成時 (步驟S551中”是”的路徑),或當計時器逾時的時候(步驟S553中”是”的路徑),將儲存單元180中的垃圾回收回復旗標更新為”0”(步驟S570)。於步驟S530,處理單元110可執行一段預設時間、預設資料量或預設交易筆數的垃圾回收資料存取模式的資料存取作業。於一些實施例中,於步驟S513,處理單元110可另於動態隨機存取記憶體130儲存逾時旗標,初始為”0”。當計時器計數到預設時間(亦稱為計時器逾時),可於動態隨機存取記憶體130將逾時旗標設為”1”。於步驟S553,處理單元110可檢查動態隨機存取記憶體130中的逾時旗標,用以判斷計時器是否逾時。於另一些實施例中,當計時器計數到預設時間,可向處理單元110發送中斷訊號,此中斷訊號會觸發處理單元110執行高優先級的中斷服務處理程序(ISR,Interrupt Service Routine),用以直接中斷目前執行的垃圾回收資料存取模式的存取作業,以及將垃圾回收回復旗標設為”0”(步驟S570)。
於斷電重啟後,處理單元110執行系統重啟程序中的垃圾回收斷電回復方法,用以繼續未完成的垃圾回收資料存取作業。第6圖係依據本發明實施例之垃圾回收斷電回復方法的流程圖。處理單元110驅動存取介面170從儲存單元180讀取垃圾回收歷程(GC logs)後(步驟S610),判斷是否有未完成的垃圾回收資料存取作業(步驟S630)。若沒有尚未完成的垃圾回收資料存取作業(步驟S630中”否”的路徑),整個流程結束。若存在任何未完成的垃圾回收資料存取作業(步驟S630中”是”的路徑),從儲存單元180驅動存取介面170從儲存單元180讀取垃圾回收回復旗標並判斷垃圾回收回復旗標是否為”1”(步驟 S650)。當儲存單元180中的垃圾回收回復旗標為”1”時(步驟S650中”是”的路徑),從垃圾回收歷程取得目的地區塊(亦即是有效區塊)及寫入虛假資料(dummy data)至儲存單元180的目的地區塊中接下來的預設數目的空頁面(步驟S670),以及從垃圾回收歷程中取得需要蒐集的有效區段的資訊並據以驅動存取介面170執行未完成的垃圾回收資料存取作業(步驟S690)。當儲存單元180中的垃圾回收回復旗標為”0”時(步驟S650中”否”的路徑),直接從垃圾回收歷程中取得目的地區塊及需要蒐集的有效區段的資訊並據以驅動存取介面170執行未完成的垃圾回收資料存取作業(步驟S690)。於此須注意的是,透過儲存單元180中的垃圾回收回復旗標及步驟S650的判斷可避免寫入不必要的虛假資料而浪費儲存單元180的儲存空間。
以下舉出二個情境說明如上所述第5圖及第6圖的方法。第一個情境描述雖然發生由自然或人為引起的瞬間斷電,但卻不是發生在寫入有效區塊時,而沒有損害有效區塊的空面頁。第7A至7C圖係依據本發明實施例的垃圾回收示意圖。參考第7A圖。處理單元110使用一或多個回合蒐集區塊710、730及750中有效區段的資料(斜線方框所示)並集合起來寫入有效區塊770中的三個空頁面770a、770b及770c(步驟S530)。假設寫入三個空頁面770a、770b及770c有效區段的資料之後,計時器逾時且垃圾回收歷程記錄尚有未完成的垃圾回收資料存取作業:。當處理單元110發現計時器逾時(步驟S553中”是”的路徑),將儲存單元180中的垃圾回收回復旗標更新為”0”(步驟S570)。之後,發生由自然或人為引起的瞬間斷電。參考第 7B圖。於斷電重啟後,處理單元110讀取垃圾回收歷程(步驟S610)並發現存在未完成的垃圾回收資料存取作業且垃圾回收回復旗標為”0”(步驟S630中”是”的路徑接步驟S650中”否”的路徑)。接著,處理單元110執行未完成的垃圾回收資料存取作業,用以蒐集區塊710、730及750中有效區段的資料(斜線方框所示)並集合起來寫入目的地區塊770中的空頁面770d(步驟S690)。
第二個情境描述在寫入有效區塊時發生由自然或人為引起的瞬間斷電,損害正寫入的空面頁。參考第7B圖。假設處理單元110使用一或多個回合蒐集區塊710、730及750中有效區段的資料(斜線所示)並集合起來寫入目的地區塊770中的空頁面770d時(步驟S530),發生瞬間斷電:由於寫入目的地區塊770中的空頁面770d的操作尚未完成,垃圾回收歷程記錄尚有未完成的垃圾回收資料存取作業。參考第7C圖。於斷電重啟後,處理單元110讀取垃圾回收歷程(步驟S610)並發現存在未完成的垃圾回收資料存取作業且垃圾回收回復旗標為”1”(步驟S630中”是”的路徑接步驟S650中”是”的路徑)。接著,處理單元110寫入虛假資料至有效區塊770中的接下來三個空頁面770d、770e及770f(步驟S670),以及蒐集區塊710、730及750中有效區段的資料(斜線方框所示)並集合起來寫入目的地區塊770中的空頁面770g(步驟S690)。
雖然第1至3圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第5圖及第6圖的流程圖採用指定 的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。

Claims (16)

  1. 一種快閃記憶體的垃圾回收斷電回復方法,由一處理單元執行,包含:於斷電重啟後,從一儲存單元讀取一垃圾回收回復旗標並判斷上述垃圾回收回復旗標是否表示一快閃記憶體需要瞬間斷電保護;以及當上述垃圾回收回復旗標表示上述快閃記憶體需要瞬間斷電保護時,寫入虛假資料至上述儲存單元的一目的地區塊中接下來的預設數目的空頁面,以及執行一未完成的垃圾回收資料存取作業。
  2. 如申請專利範圍第1項所述的快閃記憶體的垃圾回收斷電回復方法,包含:當上述垃圾回收回復旗標表示上述快閃記憶體不需要瞬間斷電保護時,執行上述未完成的垃圾回收資料存取作業。
  3. 如申請專利範圍第2項所述的快閃記憶體的垃圾回收斷電回復方法,其中,上述目的地區塊從一垃圾回收歷程取得。
  4. 如申請專利範圍第3項所述的快閃記憶體的垃圾回收斷電回復方法,其中,上述垃圾回收歷程包含上述儲存單元中需要蒐集的有效區段的資訊。
  5. 如申請專利範圍第1項所述的快閃記憶體的垃圾回收斷電回復方法,其中,上述儲存單元提供非揮發性儲存空間。
  6. 如申請專利範圍第1項所述的快閃記憶體的垃圾回收斷電回復方法,其中,上述未完成的垃圾回收資料存取作業用以蒐集多個有效區段的資料並集合起來寫入上述儲存單元 中的上述目的地區塊。
  7. 如申請專利範圍第1項所述的快閃記憶體的垃圾回收斷電回復方法,更包含:於斷電重啟後,從上述儲存單元讀取一垃圾回收歷程,包含上述目的地區塊以及需要蒐集的有效區段的資訊。
  8. 如申請專利範圍第7項所述的快閃記憶體的垃圾回收斷電回復方法,其中,上述未完成的垃圾回收資料存取作業的執行係依據上述垃圾回收歷程中的上述目的地區塊以及上述需要蒐集的有效區段的資訊。
  9. 一種快閃記憶體的垃圾回收斷電回復裝置,包含:一存取介面,耦接於一儲存單元;以及一處理單元,耦接於上述存取介面,於斷電重啟後,驅動上述存取介面從上述儲存單元讀取一垃圾回收回復旗標並判斷上述垃圾回收回復旗標是否表示一快閃記憶體需要瞬間斷電保護;以及,當上述垃圾回收回復旗標表示上述快閃記憶體需要瞬間斷電保護時,驅動上述存取介面以寫入虛假資料至上述儲存單元的一目的地區塊中接下來的預設數目的空頁面,以及執行一未完成的垃圾回收資料存取作業。
  10. 如申請專利範圍第9項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,當上述垃圾回收回復旗標表示上述快閃記憶體不需要瞬間斷電保護時,上述處理單元執行上述未完成的垃圾回收資料存取作業。
  11. 如申請專利範圍第10項所述的快閃記憶體的垃圾回收斷電 回復裝置,上述目的地區塊從一垃圾回收歷程取得。
  12. 如申請專利範圍第11項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,上述垃圾回收歷程包含上述儲存單元中需要蒐集的有效區段的資訊。
  13. 如申請專利範圍第9項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,上述儲存單元提供非揮發性儲存空間。
  14. 如申請專利範圍第9項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,上述未完成的垃圾回收資料存取作業用以蒐集多個有效區段的資料並集合起來寫入上述儲存單元中的上述目的地區塊。
  15. 如申請專利範圍第9項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,上述處理單元於斷電重啟後,驅動上述存取介面從上述儲存單元讀取一垃圾回收歷程,包含上述目的地區塊以及需要蒐集的有效區段的資訊。
  16. 如申請專利範圍第15項所述的快閃記憶體的垃圾回收斷電回復裝置,其中,上述處理單元依據上述垃圾回收歷程中的上述目的地區塊以及上述需要蒐集的有效區段的資訊驅動上述存取介面以執行上述未完成的垃圾回收資料存取作業。
TW106113424A 2017-04-21 2017-04-21 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 TWI628542B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106113424A TWI628542B (zh) 2017-04-21 2017-04-21 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
CN201710368590.7A CN108733578A (zh) 2017-04-21 2017-05-23 快闪存储器的垃圾回收断电回复方法及使用该方法的装置
US15/863,896 US20180307496A1 (en) 2017-04-21 2018-01-06 Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106113424A TWI628542B (zh) 2017-04-21 2017-04-21 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置

Publications (2)

Publication Number Publication Date
TWI628542B true TWI628542B (zh) 2018-07-01
TW201839615A TW201839615A (zh) 2018-11-01

Family

ID=63640510

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106113424A TWI628542B (zh) 2017-04-21 2017-04-21 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US20180307496A1 (zh)
CN (1) CN108733578A (zh)
TW (1) TWI628542B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI697780B (zh) * 2019-07-23 2020-07-01 慧榮科技股份有限公司 瞬間斷電回復處理方法及電腦程式產品以及裝置
TWI704450B (zh) * 2019-07-23 2020-09-11 慧榮科技股份有限公司 瞬間斷電回復處理方法及電腦程式產品以及裝置
US10871924B1 (en) 2019-07-23 2020-12-22 Silicon Motion, Inc. Method and computer program product and apparatus for handling sudden power off recovery
US11347592B2 (en) 2019-07-23 2022-05-31 Silicon Motion, Inc. Method and computer program product and apparatus for handling sudden power off recovery

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI643066B (zh) * 2018-01-15 2018-12-01 慧榮科技股份有限公司 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
TWI658462B (zh) * 2018-01-19 2019-05-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
KR20190092054A (ko) * 2018-01-30 2019-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102578191B1 (ko) * 2018-04-09 2023-09-14 에스케이하이닉스 주식회사 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
TWI687930B (zh) * 2018-11-07 2020-03-11 慧榮科技股份有限公司 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
KR20200113992A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
CN111984441B (zh) * 2019-05-21 2023-09-22 慧荣科技股份有限公司 瞬间断电回复处理方法及装置以及计算机可读取存储介质
TWI745695B (zh) * 2019-05-22 2021-11-11 慧榮科技股份有限公司 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
KR20210079549A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
CN113495850B (zh) * 2020-04-08 2024-02-09 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质
US11899577B2 (en) * 2020-11-24 2024-02-13 Micron Technology, Inc. Selective garbage collection
US20240303167A1 (en) * 2023-03-07 2024-09-12 Dell Products L.P. Data retention event preparation/recovery system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI308342B (zh) * 2006-03-09 2009-04-01 Power Quotient Int Co Ltd
US20090172258A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
TWI370362B (en) * 2008-10-08 2012-08-11 Sunplus Technology Co Ltd Method of flash translation layer using free pages of obsolete block
CN102768644A (zh) * 2011-05-06 2012-11-07 创惟科技股份有限公司 闪存系统及其闪存无效数据页信息的管理方法与回收方法
TWI405214B (zh) * 2009-05-06 2013-08-11 A Data Technology Co Ltd 快閃記憶體儲存系統之資料燒錄方法
US20140136575A1 (en) * 2012-11-10 2014-05-15 Yuanyuan Zhao Log-structured garbage collection
US20150127889A1 (en) * 2012-05-03 2015-05-07 The-Aio Inc. Nonvolatile memory system
CN105528301A (zh) * 2015-12-07 2016-04-27 中国人民解放军信息工程大学 一种NAND Flash闪存垃圾回收方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559957A (en) * 1995-05-31 1996-09-24 Lucent Technologies Inc. File system for a data storage device having a power fail recovery mechanism for write/replace operations
US7363572B2 (en) * 2003-06-05 2008-04-22 Nvidia Corporation Editing outbound TCP frames and generating acknowledgements
CN102004706B (zh) * 2009-09-01 2012-09-19 联芯科技有限公司 一种基于ftl的闪存擦写掉电保护方法
WO2012100984A1 (en) * 2011-01-28 2012-08-02 Napatech A/S An apparatus and a method for receiving and forwarding data packets
US8966343B2 (en) * 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9218891B2 (en) * 2013-11-27 2015-12-22 Silicon Motion, Inc. Data storage device and flash memory control method
KR102272228B1 (ko) * 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US9798657B2 (en) * 2014-10-15 2017-10-24 Samsung Electronics Co., Ltd. Data storage device including nonvolatile memory device and operating method thereof
TWI569144B (zh) * 2015-02-02 2017-02-01 慧榮科技股份有限公司 資料儲存裝置及其斷電事件判斷方法
US9582435B2 (en) * 2015-03-23 2017-02-28 Sandisk Technologies Llc Memory system and method for efficient padding of memory pages
US20170024140A1 (en) * 2015-07-20 2017-01-26 Samsung Electronics Co., Ltd. Storage system and method for metadata management in non-volatile memory
US9996268B2 (en) * 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same
KR20180031853A (ko) * 2016-09-19 2018-03-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN106528438B (zh) * 2016-10-08 2019-08-13 华中科技大学 一种固态存储设备的分段式垃圾回收方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI308342B (zh) * 2006-03-09 2009-04-01 Power Quotient Int Co Ltd
US20090172258A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
TWI370362B (en) * 2008-10-08 2012-08-11 Sunplus Technology Co Ltd Method of flash translation layer using free pages of obsolete block
TWI405214B (zh) * 2009-05-06 2013-08-11 A Data Technology Co Ltd 快閃記憶體儲存系統之資料燒錄方法
CN102768644A (zh) * 2011-05-06 2012-11-07 创惟科技股份有限公司 闪存系统及其闪存无效数据页信息的管理方法与回收方法
US20150127889A1 (en) * 2012-05-03 2015-05-07 The-Aio Inc. Nonvolatile memory system
US20140136575A1 (en) * 2012-11-10 2014-05-15 Yuanyuan Zhao Log-structured garbage collection
CN105528301A (zh) * 2015-12-07 2016-04-27 中国人民解放军信息工程大学 一种NAND Flash闪存垃圾回收方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI697780B (zh) * 2019-07-23 2020-07-01 慧榮科技股份有限公司 瞬間斷電回復處理方法及電腦程式產品以及裝置
TWI704450B (zh) * 2019-07-23 2020-09-11 慧榮科技股份有限公司 瞬間斷電回復處理方法及電腦程式產品以及裝置
US10871924B1 (en) 2019-07-23 2020-12-22 Silicon Motion, Inc. Method and computer program product and apparatus for handling sudden power off recovery
US11347592B2 (en) 2019-07-23 2022-05-31 Silicon Motion, Inc. Method and computer program product and apparatus for handling sudden power off recovery

Also Published As

Publication number Publication date
TW201839615A (zh) 2018-11-01
CN108733578A (zh) 2018-11-02
US20180307496A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
TWI628542B (zh) 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
TWI684868B (zh) 記憶體控制器及其操作方法以及記憶體系統之控制方法
TWI704487B (zh) 資料儲存設備及其操作方法
TWI417727B (zh) 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法
US8254172B1 (en) Wear leveling non-volatile semiconductor memory based on erase times and program times
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
TWI612473B (zh) 垃圾回收方法以及使用該方法的裝置
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI443513B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
TWI585770B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
EP2022059B1 (en) Method and apparatus for improving storage performance using a background erase
TWI473099B (zh) 記憶體儲存裝置、記憶體控制器與控制方法
US8996794B2 (en) Flash memory controller
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
TW201403316A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20170098900A (ko) 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템
JP2009026301A (ja) ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法
TWI592866B (zh) 固態硬碟系統的原子寫入方法以及使用該方法的裝置
KR20130040486A (ko) 저장 장치 및 그것을 이용하는 사용자 장치
TWI626540B (zh) 一般及垃圾回收的資料存取方法以及使用該方法的裝置
CN105389268A (zh) 资料储存系统及其运作方法
TWI696078B (zh) 記憶體裝置及其操作方法
TW202242664A (zh) 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統
JP7063445B2 (ja) 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
TW201721653A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置