TWI704450B - 瞬間斷電回復處理方法及電腦程式產品以及裝置 - Google Patents
瞬間斷電回復處理方法及電腦程式產品以及裝置 Download PDFInfo
- Publication number
- TWI704450B TWI704450B TW108125911A TW108125911A TWI704450B TW I704450 B TWI704450 B TW I704450B TW 108125911 A TW108125911 A TW 108125911A TW 108125911 A TW108125911 A TW 108125911A TW I704450 B TWI704450 B TW I704450B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- block
- current block
- data
- temporary storage
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提出一種瞬間斷電回復處理方法,由處理單元執行,包含:於瞬間斷電而重啟電源後,依序讀取當前塊的頁面;依據當前塊的頁面讀取狀態來標識當前塊中最後一個正確頁面;依序讀取暫存塊的頁面的保護資訊以標識暫存塊中第一個不正確頁面,其中,暫存塊中第一個不正確頁面的保護資訊包含指向當前塊中最後一個正確頁面之後的頁面的位址資訊;以及捨棄該暫存塊中第一個不正確頁面之後的頁面資料。
Description
本發明涉及快閃記憶裝置,尤指一種瞬間斷電回復處理方法及電腦程式產品以及裝置。
快閃記憶裝置通常分為NOR快閃記憶裝置與NAND快閃記憶裝置。NOR快閃記憶裝置為隨機存取裝置,主機端(Host)可於位址腳位上提供任何存取NOR快閃記憶裝置的位址,並及時地從NOR快閃記憶裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃記憶裝置並非隨機存取,而是序列存取。NAND快閃記憶裝置無法像NOR快閃記憶裝置一樣,可以存取任何隨機位址,主機端反而需要寫入序列的位元組(Bytes)的值到NAND快閃記憶裝置中,用以定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(快閃記憶裝置中寫入作業的最小資料塊)或一個區塊(快閃記憶裝置中抹除作業的最小資料塊)。
由於自然或人為引起的瞬間斷電可能中斷NAND快閃記憶裝置的寫入操作,因此,本發明實施例提出一種的瞬間斷電回復處理方法及電腦程式產品以及裝置,用來回復中斷的寫入操作。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本發明提出一種瞬間斷電回復處理方法,該方法由處理單元於載入並執行韌體或軟體的程式碼時實施,包含:於瞬間斷電而重啟電源後,依序讀取當前塊的頁面;依據當前塊的頁面讀取狀態來標識當前塊中最後一個正確頁面;依序讀取暫存塊的頁面的保護資訊以標識暫存塊中第一個不正確頁面,其中,暫存塊中第一個不正確頁面的保護資訊包含指向當前塊中最後一個正確頁面之後的頁面的位址資訊;以及捨棄該暫存塊中第一個不正確頁面之後的頁面資料。
本發明另提出一種瞬間斷電回復處理的電腦程式產品,包含被處理單元載入及執行時實施如上所述方法的程式碼。
本發明另提出一種瞬間斷電回復處理裝置,包含:閃存存取介面及處理單元。處理單元執行如上所述的方法。
上述實施例的優點之一,於瞬間斷電回復處理中,通過根據暫存塊中的保護資訊來捨棄暫存塊中儲存時間晚於當前塊中最後一個正確頁面的頁面資料,可確保當前塊及暫存塊中回復頁面的時間順序性,避免在回復後的正確頁面間夾雜了沒被回復的頁面資料。
100:快閃記憶系統
110:主機端
130:裝置端
131:實體層
132:資料連結層
133:快閃記憶控制器
134:處理單元
136:靜態隨機存取記憶體
139:閃存存取介面
150:儲存單元
170:通用快閃記憶儲存互聯層
139_0:存取子介面
150_0~150_i:儲存子單元
210:資料線
230_0~230_i:晶片致能控制訊號
310、330:資料平面
310_0~310_m、330_0~330_m:塊
410:資料緩衝區
451:當前塊
453:暫存塊
455:備份塊
510、510a、510b、530、550a、550b:剩餘空間
S710~S730:方法步驟
S810~S860:方法步驟
S910~S990:方法步驟
1010a~1014a、1010a~1014b、1050a~1050b、1030、1031:剩餘空間
S1110~S1150:方法步驟
S1300~S1330:方法步驟
圖1為依據本發明實施例的快閃記憶體的系統架構示意圖。
圖2為依據本發明實施例的存取子介面與多個儲存子單元的連接示意圖。
圖3為依據本發明實施例的資料組織示意圖。
圖4為依據本發明實施例的因應瞬間斷電回復的資料塊配置示意圖。
圖5及圖6為依據本發明實施例的當前塊、暫存塊及備份塊中儲存的保護資訊示意圖。
圖7為依據本發明實施例的將不滿一整頁的資料寫入暫存塊的空頁面的方法流程圖。
圖8為依據本發明實施例的將一整頁的資料寫入當前塊的空頁面的方法流程圖。
圖9為依據本發明實施例的於瞬間斷電回復處理中的標識正確頁面的方法流程圖。
圖10為依據本發明實施例的當前塊、暫存塊及備份塊中儲存的資料及保護資訊示意圖。
圖11為依據本發明實施例的於瞬間斷電回復處理中的遷移無法錯誤校驗修正頁面(uncorrectable ECC-UECC page)的鄰近頁面的方法流程圖。
圖12為依據本發明實施例的UECC頁面的鄰近頁面處理的示意圖。
圖13為依據本發明實施例的於瞬間斷電回復處理中的遷移UECC頁面的鄰近頁面的方法流程圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、”第二”、”第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為”連接”或”耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為”直接連接”或”直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如”介於”相對於”直接介於”,或者是”鄰接”相對於”直接鄰接”
等等。
參考圖1。快閃記憶系統架構100包含主機端(host)110、裝置端(device)130及儲存單元150。此系統架構可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品。裝置端130可包含處理單元134。主機端110及裝置端130間可以快閃記憶通訊協定(例如,通用快閃記憶儲存,Universal Flash Storage UFS)彼此通信。快閃記憶控制器133通過資料連結層132及實體層131電性連接(耦接)主機端110。快閃記憶控制器133可通過直接記憶體存取控制器(未顯示於圖1)從資料緩衝區(未顯示於圖1)讀取從儲存單元150取得的使用者資料,並通過驅動資料連結層132及實體層131依序敲出給主機端110。快閃記憶控制器133可通過直接記憶體存取控制器(未顯示於圖1)將主機端110欲寫入的使用者資料儲存至資料緩衝區。處理單元134可使用多種方式實施,例如使用通用硬體,如單一處理器、具平行處理能力的多處理器、圖形處理器、輕簡型通用目的處理器(Lightweight General-Purpose Processor)或其他具運算能力的處理器,並且在執行指令(Instructions)、宏碼(Macrocode)或微碼(Microcode)時,提供之後描述的功能。快閃記憶控制器133可為UFS控制器,透過UFS通訊協定與主機端110進行溝通。雖然本發明實施例以UFS通訊協定舉例,但本發明也可應用到其他的通訊協定,例如通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面的通訊協定。
裝置端130另包含閃存存取介面139,使得處理單元134可通過閃存存取介面139與儲存單元150溝通,詳細來說,可採用雙倍資料率(Double Data Rate DDR)通訊協定,例如,開放NAND快閃(Open
NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他介面。處理單元134透過閃存存取介面139寫入使用者資料到儲存單元150中的指定位址(目的位址),以及從儲存單元150中的指定位址(來源位址)讀取使用者資料。閃存存取介面139使用數個電子訊號來協調處理單元134與儲存單元150間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(Chip Enable CE)、位址提取致能(Address Latch Enable ALE)、命令提取致能(Command Latch Enable CLE)、寫入致能(Write Enable WE)等控制訊號。
儲存單元150可包含多個儲存子單元,每個儲存子單元,各自使用關聯的存取子介面與處理單元134進行溝通。一或多個儲存子單元可封裝在一個晶粒(Die)之中。閃存存取介面139可包含j個存取子介面,每一個存取子介面連接i個儲存子單元。存取子介面及其後連接的儲存子單元又可統稱為輸出入通道,每個儲存子單元可以邏輯單元編號(Logic Unit Number LUN)識別。換句話說,i個儲存子單元共享一個存取子介面。例如,裝置端130包含4個輸出入且每一個輸出入連接4個儲存子單元時,裝置端130可存取16個儲存子單元。處理單元134可驅動存取子介面中之一者,從指定的儲存子單元讀取,或寫入資料至指定的儲存子單元。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取或寫入時,需要驅動關聯的存取子介面來致能此儲存子單元的晶片致能控制訊號。參考圖2。處理單元134可透過存取子介面139_0使用獨立的晶片致能控制訊號230_0至230_i從連接的儲存子單元150_0至150_i中選擇出其中一者,接著,透過共享的資料線210從選擇出的儲存子單元的指定位址讀取資料,或傳送欲寫入指定位址的使用者資料至選擇出的儲存子單元。
每個儲存子單元可包含多個資料平面(data planes),每個資料平面可包含多個塊(blocks),並且每個塊可包含多個頁面(pages)。參考圖3,以儲存子單元150_0為例。儲存子單元150_0包含兩個資料平面310及330。資料平面310包含塊310_0至310_m,且資料平面330包含塊330_0至330_m。每個塊包含n+1個頁面。每個塊可組態為單層式單元塊(Single Logical Cell SLC block)、多層式單元塊(Multi-Level Cell MLC block)或三層式單元塊(Triple Level Cell TLC block)。SLC、MLC及TLC塊中的每個記憶體單元(memory cells)可分別儲存兩個、四個及八個狀態。SLC塊中的每個字元線(word line)可儲存一個頁面的資料。MLC塊中的每個字元線可儲存兩個頁面的資料,包含最高有效位頁面(Most Significant Bit MSB page)及最低有效位頁面(Least Significant Bit LSB page)。TLC塊中的每個字元線可儲存三個頁面的資料,包含最高有效位頁面、中間有效位頁面(Center Significant Bit CSB page)及最低有效位頁面。
參考圖4。於直接寫入模式(direct-write mode),靜態隨機存取記憶體(Static Random Access Memory SRAM)136中沒有配置快取空間(cache)來緩存主機端110發出的大量主機寫命令(host write commands)及待寫入資料,只有配置有限空間的命令佇列及資料緩衝區(data buffer)410來儲存主機寫命令及待寫入資料。不同於快取模式(cache mode),處理單元134於直接寫入模式依據主機寫命令驅動閃存存取介面139將待寫入資料寫入儲存單元150後才算完成主機寫命令的處理。為了處理主機端110發出的各式各樣的主機寫命令,儲存子單元150_0可配置兩個塊:當前塊(current block)451及暫存塊(temporary block)453。當前塊451組態為MLC或TLC塊,而暫存塊453組態為SLC塊。假設主機端110管理資料的最小單位為4K位元組,且儲存子單元150_0中每個頁面儲存的資料長度為16K位元組:當主機寫命令指示寫入一或多個頁面長度的資料時,處理單元134驅動閃存存
取介面139以MLC或TLC模式將資料寫入當前塊451中一或多個空頁面。當主機寫命令指示寫入少於頁面長度的資料時,處理單元134驅動閃存存取介面139以SLC模式將資料寫入暫存塊453中空頁面的一或多個區段(sectors),其中每個區段儲存4K位元組的資料。一旦暫存塊453中的任何頁面填滿資料,處理單元134可驅動閃存存取介面139以MLC或TLC模式將暫存塊453中的整頁資料寫入當前塊451中的一個空頁面。
由於當前塊451為MLC或TLC塊,也就是說二或三個頁面的資料儲存於同一個字元線,若資料寫入當前塊451的過程發生瞬間斷電(sudden power off SPO),可能會損壞之前已經寫入的頁面資料。例如,參考圖3,當塊310_0為MLC塊(當前塊),其中的頁面P#0為一個字元線上的LSB頁面,且頁面P#3為同一個字元線上的MSB頁面,頁面P#0及P#3可稱為頁面對(page pair)。若資料寫入塊310_0的頁面P#3的過程發生瞬間斷電,可能連帶損壞之前已經寫入頁面P#0的資料。為了防止如上所述的問題,參考圖4,儲存子單元150_0可更配置備份塊455,組態為SLC塊。於寫入資料到當前塊(如塊310_0)中的一個MSB頁面(如頁面P#3)前,處理單元134驅動閃存存取介面139先將當前塊中此MSB頁面的相應LSB頁面(如頁面P#0)的資料儲存(備份)至備份塊455中的空頁面,之後再寫入資料到此MSB頁面。
類似地,針對當前塊為TLC塊的情況,處理單元134可驅動閃存存取介面139先將當前塊中此MSB頁面的相應CSB頁面的資料儲存(備份)至備份塊455中的空頁面,之後再寫入資料到此MSB頁面。或者,處理單元134可驅動閃存存取介面139先將當前塊中此CSB頁面的相應LSB頁面的資料儲存(備份)至備份塊455中的空頁面,之後再寫入資料到此CSB頁面。
所屬技術領域人員可將當前塊451、暫存塊453及備份塊455中的任何一個實施於任何的資料平面上(如圖3所示的資料平面310或330)。
為了縮短瞬間斷電回復的處理時間,處理單元134盡可能不要花費時間來通過閃存存取介面139重新寫入資料到當前塊451,而是從暫存塊453及/或備份塊455中取得相應資料以重建當前塊451。本發明實施例利用當前塊451、暫存塊453及備份塊455中每個頁面的剩餘空間(spare space)來儲存保護資訊(protection information),讓未來可能的瞬間斷電回復處理(sudden power off recovery SPOR process)使用。為了維護當前塊451、暫存塊453及備份塊455中頁面資料的儲存順序,當前塊451的一個頁面的剩餘空間可紀錄於儲存此頁面資料當時指向暫存塊453的第一個空頁面的位址資訊(例如暫存塊453的編號及其中第一個空頁面的編號),而暫存塊453的一個頁面的剩餘空間可紀錄於儲存此頁面資料當時指向當前塊451的第一個空頁面的位址資訊(例如當前塊451的編號及其中第一個空頁面的編號)。又由於當前塊451的CSB頁面或LSB頁面(可稱為原始頁面)的資料可能備份到備份塊455中的一個頁面(可稱為備份頁面),因此,備份塊455的一個或多個頁面的剩餘空間可紀錄儲存此頁面資料當時指向當前塊451的第一個空頁面的位址資訊(例如當前塊451的編號及其中第一個空頁面的編號),以及指向暫存塊453的第一個空頁面的位址資訊(例如暫存塊453的編號及其中第一個空頁面的編號)。
於一些實施例中,當前塊451、暫存塊453及備份塊455中每個頁面的剩餘空間能夠儲存指向兩個以上頁面的資訊。參考圖5,舉個使用案例,當前塊451的第N頁面中的資料備份到備份塊455的第O頁面。圖5中斜線的方塊代表空頁面。當前塊451的第N頁面的剩餘空間510可儲存指向暫存塊453的第M+1頁面的位址資訊。暫存塊453的第M頁面的剩餘空間530可儲存指向當前塊451的第N+1頁面的位址資訊。備份塊455的第O頁面的剩餘空間550a可儲存指向當前塊451的第N+1頁面的位址資訊,以及剩餘空間550b可儲存指向暫存塊453的第M+1頁面的位址資訊。
於另一些實施例中,當前塊451、暫存塊453及備份塊455中每個頁面的剩餘空間只能夠儲存指向一個頁面的資訊。若要完整紀錄如上所述備份塊455的剩餘空間需要儲存的保護資訊,處理單元134以交替的方式將資料儲存到資料平面310及資料平面330的當前塊的空頁面,並且將資料平面310及資料平面330的兩個頁面視為頁面組(page group)。例如,參考圖3,假設塊310_1為資料平面310的當前塊,而塊330_1為資料平面330的當前塊:處理單元134可依序將資料寫入當前塊310_1的頁面P#0、當前塊330_1的頁面P#0、當前塊310_1的頁面P#1、當前塊330_1的頁面P#1,其中當前塊310_1及當前塊330_1的頁面P#0為一個頁面組,且當前塊310_1及當前塊330_1的頁面P#1為另一個頁面組。參考圖6,舉個使用案例,當前塊451a設置於資料平面310,而當前塊451b設置於資料平面330。當前塊451a的第N頁面的資料備份到備份塊455的第O頁面,並且當前塊451b的第N頁面的資料備份到備份塊455的第O+1頁面。圖6中斜線的方塊代表空頁面。當前塊451a及當前塊451b的第N頁面為頁面組。當前塊451a的第N頁面的剩餘空間510a可儲存指向暫存塊453的第M頁面的位址資訊,而當前塊451b的第N頁面的剩餘空間510b可不儲存任何位址資訊。暫存塊453的第M頁面的剩餘空間530可儲存指向當前塊451a的第N+1頁面的位址資訊。備份塊455的第O頁面的剩餘空間550a可儲存指向當前塊451a的第N+1頁面的位址資訊,以及備份塊455的第O+1頁面的剩餘空間550b可儲存指向暫存塊453的第M頁面的位址資訊。
參考圖7。圖7所示的方法可由處理單元134於載入並執行特定韌體或軟體指令時實施。處理單元134依據命令佇列中的主機寫指令準備寫入不滿一整頁長度的資料(如4K、8K、12K的資料)到暫存塊的一個空頁面後(步驟S710),產生暫存頁面的保護資訊,包含指向當前塊的第一個空頁面的位址資訊(步驟S730)。例如,處理單元134產
生圖5中暫存塊453的剩餘空間530,或圖6中暫存塊453的剩餘空間530a或530b即將儲存的保護資訊。接著,處理單元134驅動閃存存取介面139將資料及保護資訊寫入到暫存塊的第一個空頁面(步驟S750)。
參考圖8。圖8所示的方法可由處理單元134於載入並執行特定韌體或軟體指令時實施。處理單元134依據命令佇列中的主機寫指令準備寫入一整個頁面的資料到當前塊的一個空頁面(步驟S810)。所屬技術領域人員理解一整個頁面的資料可包含或不包含從暫存塊中取得的資料。接著,處理單元134判斷即將寫入頁面的字元線上是否存在已寫入的頁面資料(步驟S820)。例如,字元線上是否存在處理上一個主機寫命令時已寫入的LSB或CSB頁面資料。如果判斷為否(步驟S820中”否”的路徑),例如,即將寫入頁面為一個字元線的LSB頁面,或者是,已寫入的LSB或CSB頁面資料為處理同一個主機寫命令時寫入的資料,處理單元134產生當前頁面的保護資訊,包含指向暫存塊中的第一個空頁面的位址資訊(步驟S830)。例如,處理單元134產生圖5中當前塊451的剩餘空間510,或圖6中當前塊451a的剩餘空間510a或當前塊451b的剩餘空間510b即將儲存的保護資訊。接著,處理單元134驅動閃存存取介面139將資料及保護資訊寫入當前塊的第一個空頁面(步驟S840)。
若判斷為是(步驟S820中”是”的路徑),處理單元134產生備份頁面的保護資訊,包含指向當前塊的第一個空頁面的位址資訊,以及指向暫存塊的第一個空頁面的位址資訊(步驟S850)。例如,處理單元134產生圖5或圖6中備份塊455的剩餘空間550a及550b即將儲存的保護資訊。處理單元134驅動閃存存取介面139將已寫入的頁面資料及保護資訊寫入到備份塊的第一個空頁面(步驟S860)。接著,處理單元134執行如上所述步驟S830及S840的處理。
由於瞬間斷電可能傷害已經寫入或正在寫入的頁面資料,因此,於
發生瞬間斷電後而重啟電源時,處理單元134可執行瞬間斷電回復處理,用來標識當前塊及暫存塊中的正確資料。參考圖9。圖9所示的方法可由處理單元134於載入並執行特定韌體或軟體指令時實施。處理單元134使用變數i來記錄當前塊中正在掃描的頁面編號,初始為0(步驟S910)。處理單元134反覆執行一個迴圈(步驟S920至S940),用來找出當前塊中因瞬間斷電而傷害到的頁面。於每個回合,處理單元134驅動閃存存取介面139讀取當前塊的第i頁面(步驟S920),並且執行兩個判斷(步驟S930及S940)。當讀取的頁面沒有出現無法修復的情形(步驟S930中”否”的路徑)或讀取的頁面雖然無法修復但已經備份於備份塊中(步驟S930中”是”的路徑接著步驟S940中”是”的路徑),判斷讀取頁面的資料為正確資料,將變數i加1以進行下一個頁面的判斷(步驟S935)。當讀取的頁面出現無法修復的情形(步驟S930中”是”的路徑)並且沒有備份於備份塊中(步驟S940中”否”的路徑),判斷讀取頁面的資料為不正確資料,並結束迴圈。讀取的頁面出現無法修復的情形指處理單元134使用讀取頁面資料中的錯誤校驗修正碼(error check and correction ECC code)仍然無法修復讀取資料中的錯誤位元。出現無法修復情形的頁面可稱為無法錯誤校驗修正的頁面(uncorrectable ECC-UECC page)。於迴圈結束後,處理單元134使用變數v1=i-1,用來記錄當前塊中最後一個正確頁面的編號,換句話說,當前塊中第i頁面以及之後的頁面都是被瞬間斷電傷害到的頁面。所屬技術領域人員可不在資料寫入至當前塊時加上備份塊的備份機制,使得如上所述的方法可不進行步驟S940的判斷。
接著,處理單元134使用變數j來記錄暫存塊中正在掃描的頁面編號,初始為0(步驟S960)。處理單元134反覆執行一個迴圈(步驟S970至S980),用來找出暫存塊中正確的頁面。於每個回合,處理單元134驅動閃存存取介面139讀取暫存塊的第j頁面的保護資訊(步驟S970),並且判斷保護資訊是否指向當前塊第v1頁面之後的頁面(步驟S980)。
當讀取的保護資訊沒有指向當前塊第v1頁面之後的頁面,也就是說,指向當前塊第v1頁面或之前的頁面(步驟S980中”否”的路徑),判斷讀取頁面的資料為正確資料,將變數j加1以進行下一個頁面的判斷(步驟S975)。當讀取的保護資訊指向當前塊第v1頁面之後的頁面(步驟S980中”是”的路徑),判斷讀取頁面的資料為不正確資料,並結束迴圈。於迴圈結束後,處理單元134使用變數v2=j-1,用來記錄暫存塊中最後一個正確頁面的編號,換句話說,暫存塊中第j頁面(也就是暫存塊中的第一個不正確頁面)以及之後的頁面都是瞬間斷電後不可使用的暫存資料。
於一個面向來說,本發明實施例提出一種由裝置端130中的處理單元134執行相關程式碼所實施的方法步驟:於瞬間斷電而重啟電源後,驅動閃存存取介面139依序讀取當前塊451的頁面;依據當前塊451的頁面讀取狀態來標識當前塊451中最後一個正確頁面;驅動閃存存取介面139依序讀取暫存塊453的頁面的保護資訊以標識暫存塊453中第一個不正確頁面,其中,暫存塊453中第一個不正確頁面的保護資訊包含指向當前塊451中最後一個正確頁面之後的頁面的位址資訊;以及捨棄暫存塊453中含第一個不正確頁面之後的頁面資料。於瞬間斷電回復處理中,通過根據暫存塊453中的保護資訊來捨棄暫存塊453中儲存時間晚於當前塊451中最後一個正確頁面的所有頁面資料,可確保當前塊451及暫存塊453中回復頁面的時間順序性,避免在回復後的正確頁面間夾雜了沒被回復的頁面資料。
參考圖10所示的使用案例。假設當前塊451a設置於資料平面310,而當前塊451b設置於資料平面330,當前塊451a的第Q+1頁面儲存於備份塊455中的第P頁面,當前塊451b的第Q+1頁面儲存於備份塊455中的第P+1頁面,暫存塊453的第R頁面的保護資訊1030指向當前塊451a及451b的第Q+3頁面,暫存塊453的第R+1頁面的保護資訊1031指向當前塊451a及451b的第Q+4頁面。當處理單元134掃描到當前塊
451a及451b第Q+1頁面為UECC頁面(步驟S930中”是”的路徑)但已經備份於備份塊455中(步驟S940中”是”的路徑),分別使用備份塊455中第P頁面及第P+1頁面的資料取代當前塊451a及451b第Q+1頁面的資料,並繼續往下掃描。當處理單元134掃描到當前塊451a及451b第Q+4頁面為UECC頁面(步驟S930中”是”的路徑)但沒有備份於備份塊455中(步驟S940中”否”的路徑),處理單元134判斷當前塊451a及451b中的最後正確頁面為第Q+3頁面(步驟S950)。
此外,當處理單元134掃描到暫存塊453第R+1頁面的保護資訊指向當前塊451a及451b中的最後正確頁面之後的頁面(步驟S980中”是”的路徑),處理單元134判斷暫存塊453中的最後正確頁面為第R頁面(步驟S990)。
雖然最終偵測到的UECC頁面之前頁面的資料都為正確資料,但是發生瞬間斷電時,UECC頁面鄰近的實體字元線及頁面有可能受到影響而減損其記憶單元的可用性,例如減少可正常讀取的次數等。參考圖11。圖11所示的方法可由處理單元134於載入並執行特定韌體或軟體指令時實施。處理單元134驅動閃存存取介面139將當前塊中最後正確頁面及之前的t-1個頁面的資料複製到暫存塊的空頁面(步驟S1110)。t可依據不同的系統需求設為2到5之間的任意整數。接著,處理單元134將當前塊中偵測到的UECC頁面之後的t個頁面組態為虛假頁面(dummy pages)(步驟S1130)。於一些實施例中,處理單元134可驅動閃存存取介面139將當前塊中偵測到的UECC頁面之後的t個頁面填滿虛假值(dummy values),例如0xFF。接著,處理單元134驅動閃存存取介面139將暫存塊中儲存的資料寫入到新的當前塊的空頁面或此當前塊中最後一個虛假頁面後的空頁面(步驟S1150)。
接續圖10的使用案例,參考圖12。當前塊451a及451b中第Q+1至Q+3頁面的資料及保護資訊1011a至1013b複製儲存到當前塊451a及
451b中第Q+8至Q+10頁面(步驟S1110及S1150)。當前塊451a及451b中第Q+5至Q+7頁面組態為虛假頁面(步驟S1130)。
然而,相同當前塊於資料寫入過程中可能發生兩次或以上的瞬間斷電,使得先前被搬移走的頁面資料被誤判為正確的頁面資料。為解決這樣情況發生的問題,靜態隨機存取記憶體136中關聯於當前塊的閃存主機位址映射表(Flash-to-Host F2H table)中的每一筆紀錄加上有效欄位,用來指出當前塊的特定頁面中的資料為有效或無效。此外,圖11所示的方法可修改為圖13所示。於成功組態當前塊中的虛假頁面及遷移候選頁面的資料到當前塊中最後一個虛假頁面後的空頁面後(步驟S1300、S1130及S1310),將當前塊的F2H表中關聯於被遷移頁面、UECC頁面及虛假頁面的紀錄的有效欄位設為無效(步驟S1330)。例如,參考圖12,當前塊451a及451b的F2H表中關聯於第Q+1至Q+7頁面的紀錄的有效欄位設為無效。所屬技術領域人員理解,主機端110可發出主機抹除命令給處理單元134,指示抹除特定邏輯位址的資料。經過位址轉譯後,處理單元134知道邏輯位址映射到當前塊的哪個頁面中的哪個或哪些區段。當前塊中的一個頁面中所有區段的資料都因主機抹除命令而刪除後,處理單元134可將F2H表中關聯於此頁面的紀錄中的有效欄位設為無效。
此外,圖11的步驟S1110修改為圖13的步驟S1300,處理單元134更檢查F2H表中關聯於當前塊中最後正確頁面及之前的t-1個頁面的有效性。如果當前塊中最後正確頁面及之前的t-1個頁面為無效頁面,則處理單元134不會進行如步驟S1310及S1330的遷移操作。換句話說,步驟S1330中所述的最後正確頁面及之前的t-1個頁面都是有效的。
雖然如上所述實施例中的遷移頁面及虛假頁面的數目是相同的,所屬技術領域人員可將遷移頁面及虛假頁面的數目組態為不同的數目,例如,遷移頁面的總數為n2個,虛假頁面的總數為n1個,n1及n2中
的每一個可為介於2至5間的整數。
處理單元134所執行如圖7至圖9、圖11及圖13的方法步驟,可用一或多個功能模塊組成的電腦程式產品來實現。這些功能模塊存儲於非揮發性儲存裝置,並且可被處理單元134於特定時間點載入並執行。本發明所述的方法中的全部或部分步驟可以電腦程式實現,例如特定硬體的驅動程式、或韌體程式。此外,也可實現於如上所示的其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成電腦程式,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦程式可儲存於適當的電腦可讀取資料載具,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1、圖2及圖4中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以達成更佳的技術效果。此外,雖然圖7至圖9、圖11及圖13的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S910~S990:方法步驟
Claims (20)
- 一種電腦程式產品,用於瞬間斷電回復處理,由一裝置端的一處理單元載入並執行,包含以下的程式碼:於瞬間斷電而重啟電源後,驅動一閃存存取介面依序讀取一當前塊的頁面,其中,該當前塊為多層式單元塊或三層式單元塊;依據該當前塊的頁面讀取狀態來標識該當前塊中最後一個正確頁面;驅動該閃存存取介面依序讀取一暫存塊的頁面的保護資訊以標識該暫存塊中第一個不正確頁面,其中,該暫存塊為單層式單元塊,該暫存塊中第一個不正確頁面的保護資訊包含指向該當前塊中最後一個正確頁面之後的頁面的位址資訊;以及捨棄該暫存塊中該第一個不正確頁面之後的頁面資料。
- 如請求項1所述的電腦程式產品,包含以下的程式碼:於瞬間斷電前,產生該暫存塊中一頁面的保護資訊,包含於儲存頁面資料當時指向該當前塊的第一個空頁面的位址資訊;以及驅動該閃存存取介面將不滿一整頁長度的資料及該保護資訊寫入到該暫存塊的第一個空頁面。
- 如請求項1所述的電腦程式產品,其中,該當前塊中最後一個正確頁面的下一個頁面為無法錯誤校驗修正頁面。
- 如請求項1所述的電腦程式產品,包含以下的程式碼:當讀取該當前塊的一第一頁面時發現該第一頁面為無法錯誤校驗修正頁面但該第一頁面的資料已經儲存在一備份塊的一第二頁面,使用該第二頁面的資料取代該第一頁面的資料,其中該備份塊為單層式單元塊。
- 如請求項4所述的電腦程式產品,其中,該當前塊中最後一個正確頁面的下一個頁面為無法錯誤校驗修正頁面,且其中的資料沒有儲存於該備份塊。
- 如請求項4所述的電腦程式產品,其中,該第一頁面為最低有效位頁面或中間有效位頁面。
- 如請求項1所述的電腦程式產品,其中,包含以下的程式碼:組態該當前塊中最後一個正確頁面的下一個頁面之後一數目的頁面為虛假頁面;以及驅動該閃存存取介面將該當前塊中最後一個正確頁面及之前該數目減一個的頁面儲存到新的當前塊或該當前塊中最後一個虛假頁面之後的空頁面。
- 如請求項7所述的電腦程式產品,其中,該數目介於2至5之間的整數。
- 一種瞬間斷電回復處理方法,由一裝置端的一處理單元執行,包含:於瞬間斷電而重啟電源後,依序讀取一當前塊的頁面,其中,該當前塊為多層式單元塊或三層式單元塊;依據該當前塊的頁面讀取狀態來標識該當前塊中最後一個正確頁面;依序讀取一暫存塊的頁面的保護資訊以標識該暫存塊中第一個不正確頁面,其中,該暫存塊為單層式單元塊,該暫存塊中第一個不正確頁面的保護資訊包含指向該當前塊中最後一個正確頁面之後的頁面的位址資訊;以及捨棄該暫存塊中該第一個不正確頁面之後的頁面資料。
- 如請求項9所述的瞬間斷電回復處理方法,包含:於瞬間斷電前,產生該暫存塊中一頁面的保護資訊,包含於儲存頁面資料當時指向該當前塊的第一個空頁面的位址資訊;以及將不滿一整頁長度的資料及該保護資訊寫入到該暫存塊的第一個空頁面。
- 如請求項9所述的瞬間斷電回復處理方法,包含:當讀取該當前塊的一第一頁面時發現該第一頁面為無法錯誤校驗修 正頁面但該第一頁面的資料已經儲存在一備份塊的一第二頁面,使用該第二頁面的資料取代該第一頁面的資料,其中該備份塊為單層式單元塊。
- 如請求項9所述的瞬間斷電回復處理方法,包含:組態該當前塊中最後一個正確頁面的下一個頁面之後一數目的頁面為虛假頁面;以及將該當前塊中最後一個正確頁面及之前該數目減一個的頁面儲存到新的當前塊或該當前塊中最後一個虛假頁面之後的空頁面。
- 一種瞬間斷電回復處理裝置,包含:一閃存存取介面;以及一處理單元,耦接該閃存存取介面,於瞬間斷電而重啟電源後,驅動該閃存存取介面依序讀取一當前塊的頁面,其中,該當前塊為多層式單元塊或三層式單元塊;依據該當前塊的頁面讀取狀態來標識該當前塊中最後一個正確頁面;驅動該閃存存取介面依序讀取一暫存塊的頁面的保護資訊以標識該暫存塊中第一個不正確頁面,其中,該暫存塊為單層式單元塊,該暫存塊中第一個不正確頁面的保護資訊包含指向該當前塊中最後一個正確頁面之後的頁面的位址資訊;以及捨棄該暫存塊中該第一個不正確頁面之後的頁面資料。
- 如請求項13所述的瞬間斷電回復處理裝置,其中,該處理單元於瞬間斷電前,產生該暫存塊中一頁面的保護資訊,包含於儲存頁面資料當時指向該當前塊的第一個空頁面的位址資訊;以及驅動該閃存存取介面將不滿一整頁長度的資料及該保護資訊寫入到該暫存塊的第一個空頁面。
- 如請求項13所述的瞬間斷電回復處理裝置,其中,該當前塊中最後一個正確頁面的下一個頁面為無法錯誤校驗修正頁面。
- 如請求項13所述的瞬間斷電回復處理裝置,其中,該處理單元當 讀取該當前塊的一第一頁面時發現該第一頁面為無法錯誤校驗修正頁面但該第一頁面的資料已經儲存在一備份塊的一第二頁面,使用該第二頁面的資料取代該第一頁面的資料,其中該備份塊為單層式單元塊。
- 如請求項16所述的瞬間斷電回復處理裝置,其中,該當前塊中最後一個正確頁面的下一個頁面為無法錯誤校驗修正頁面,且其中的資料沒有儲存於該備份塊。
- 如請求項16所述的瞬間斷電回復處理裝置,其中,該第一頁面為最低有效位頁面或中間有效位頁面。
- 如請求項13所述的瞬間斷電回復處理裝置,其中,該處理單元組態該當前塊中最後一個正確頁面的下一個頁面之後一數目的頁面為虛假頁面;以及驅動該閃存存取介面將該當前塊中最後一個正確頁面及之前該數目減一個的頁面儲存到新的當前塊或該當前塊中最後一個虛假頁面之後的空頁面。
- 如請求項19所述的瞬間斷電回復處理裝置,其中,該數目介於2至5之間的整數。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108125911A TWI704450B (zh) | 2019-07-23 | 2019-07-23 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108125911A TWI704450B (zh) | 2019-07-23 | 2019-07-23 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI704450B true TWI704450B (zh) | 2020-09-11 |
TW202105181A TW202105181A (zh) | 2021-02-01 |
Family
ID=73644205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108125911A TWI704450B (zh) | 2019-07-23 | 2019-07-23 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI704450B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377119C (zh) * | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
CN101763295A (zh) * | 2009-12-28 | 2010-06-30 | 北京握奇数据***有限公司 | 一种数据备份、备份项擦除及数据恢复方法和装置 |
CN102902637A (zh) * | 2012-11-19 | 2013-01-30 | 北京理工大学 | 一种固态硬盘数据断电保护方法 |
TWI521344B (zh) * | 2013-12-04 | 2016-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
TWI621129B (zh) * | 2016-10-25 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
TWI649759B (zh) * | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
US20190220392A1 (en) * | 2018-01-15 | 2019-07-18 | Silicon Motion Inc. | Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device |
-
2019
- 2019-07-23 TW TW108125911A patent/TWI704450B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377119C (zh) * | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
CN101763295A (zh) * | 2009-12-28 | 2010-06-30 | 北京握奇数据***有限公司 | 一种数据备份、备份项擦除及数据恢复方法和装置 |
CN102902637A (zh) * | 2012-11-19 | 2013-01-30 | 北京理工大学 | 一种固态硬盘数据断电保护方法 |
TWI521344B (zh) * | 2013-12-04 | 2016-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
TWI621129B (zh) * | 2016-10-25 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
TWI649759B (zh) * | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
US20190220392A1 (en) * | 2018-01-15 | 2019-07-18 | Silicon Motion Inc. | Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device |
Also Published As
Publication number | Publication date |
---|---|
TW202105181A (zh) | 2021-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
JP2012234363A (ja) | メモリシステム | |
TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201447577A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN112286721A (zh) | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US11086561B2 (en) | Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same | |
US20160054935A1 (en) | Data storing method and memory controller and memory storage device using the same | |
US20210103517A1 (en) | Operating method of memory system and host recovering data with write error | |
CN112306742A (zh) | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 | |
US9367390B2 (en) | Memory controlling method, memory storage device and memory controlling circuit unit | |
TWI798680B (zh) | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI704450B (zh) | 瞬間斷電回復處理方法及電腦程式產品以及裝置 | |
TWI697780B (zh) | 瞬間斷電回復處理方法及電腦程式產品以及裝置 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
KR20210034456A (ko) | 메모리 컨트롤러, 스토리지 장치 및 상기 스토리지 장치의 동작 방법 | |
TWI622044B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |