TWI740454B - 反應電源事件的資料存取方法及裝置 - Google Patents
反應電源事件的資料存取方法及裝置 Download PDFInfo
- Publication number
- TWI740454B TWI740454B TW109112469A TW109112469A TWI740454B TW I740454 B TWI740454 B TW I740454B TW 109112469 A TW109112469 A TW 109112469A TW 109112469 A TW109112469 A TW 109112469A TW I740454 B TWI740454 B TW I740454B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- data
- threshold
- memory module
- page
- 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)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。
由於自然或人為引起的瞬間斷電,或者是電源供應不穩定,會造成資料在閃存控制器中緩存時就發生錯誤,使得錯誤的資料被寫入到閃存模組。因此,本發明提出一種反應電源事件的資料存取方法及裝置,用於避免寫入因電源不穩定而發生錯誤的資料到閃存模組,或者避免從閃存模組回復到因電源不穩定而寫入的錯誤資料。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種反應電源事件的資料存取方法,由閃存控制器執行,包含:持續偵測供給閃存控制器的電壓是否低於第一閥值;以及當電壓低於第一閥值時,發出寫入命令給閃存模組,用於寫入資料到閃存模組,和進入監督程序。
本說明書另涉及一種反應電源事件的資料存取裝置,包含:電源偵測模組;閃存介面;以及處理單元。電源偵測模組量測提供給資料存取裝置的電壓。處理單元持續通過上述電源偵測模組偵測供給資料存取裝置的電壓是否低於第一閥值;當電壓低於第一閥值時,驅動閃存介面發出寫入命令給閃存模組,用於寫入資料到閃存模組,和進入監督程序。
第一閥值低於電源供應模組提供給閃存控制器的理想電壓,而第二閥值低於第一閥值。監督程序包含:在發出寫入命令給閃存模組到傳送完畢資料到閃存模組的期間,持續偵測電壓是否低於第二閥值;以及當電壓低於第二閥值時,取消寫入命令。
本說明書還涉及一種反應電源事件的資料存取方法,由閃存控制器執行,包含:在瞬間斷電後回復程序中,讀取閃存模組中當前塊的多個實體頁面的資料;依據實體頁面的糾錯結果判斷是否發生電源事件;當發生電源事件時,重建第一閃存-主機對照表,包含當前塊中從第0頁面到一最後有效頁面之前一個頁面的實體-邏輯對照資訊;以及將重建的閃存-主機對照表寫入閃存模組的指定位置。
本說明書還涉及一種反應電源事件的資料存取裝置,包含:閃存介面;以及處理單元。處理單元在瞬間斷電後回復程序中,驅動閃存介面讀取閃存模組中當前塊的多個實體頁面的資料;依據實體頁面的糾錯結果判斷是否發生電源事件;當發生電源事件時,重建閃存-主機對照表,包含當前塊中從第0頁面到最後有效頁面之前一個頁面的實體-邏輯對照資訊;以及驅動閃存介面寫入重建的閃存-主機對照表到閃存模組的指定位置。
上述實施例的優點之一,通過如上所述的監督程序,可避免將因瞬間斷電或電源供應不穩定所傷害到的不正確資料寫入閃存模組。
上述實施例的另一個優點,在瞬間斷電後回復程序中,通過如上所述反應電源事件的閃存-主機對照表的重建,可避免回復因瞬間斷電所傷害到的不正確資料。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)131可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage UFS)、嵌入式多媒體卡(Embedded Multi-Media Card eMMC)等通訊標準彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150可以雙倍資料率(Double Data Rate DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory, RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的使用者資料(也可稱為主機資料),以及從閃存模組150讀取並即將輸出給主機端110的使用者資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機-閃存對照表(Host-to-Flash,H2F Table)、閃存-主機對照表(Flash-to-Host,F2H Table)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller,NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check,LDPC)等。
閃存控制器130中可配置匯流排架構(Bus Architecture)132,用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、直接記憶體存取(Direct Memory Access,DMA)控制器138、閃存介面139等。DMA控制器138可依據處理單元134的指令,通過匯流排架構132在元件間搬移資料,例如,將主機介面131或閃存介面139中的特定資料緩存器(Data Buffer)的資料搬到RAM 136中的特定位址,將RAM 136中特定位址的資料搬到將主機介面131或閃存介面139中的特定資料緩存器等。
匯流排包含並行的物理線,連接閃存控制器130中兩個以上的組件。匯流排是一種共享的傳輸媒體,在任意的時間上,只能有兩個裝置可以使用這些線來彼此溝通,用於傳遞資料。資料及控制訊號能夠在組件間分別沿資料和控制線進行雙向傳播,但另一方面,位址訊號只能沿位址線進行單向傳播。例如,當處理單元134想要讀取RAM 136的特定位址上的資料時,處理單元134在位址線上傳送此位址給RAM 136。接著,此位址的資料會在資料線上回覆給處理單元134。為了完成資料讀取操作,控制訊號會使用控制線進行傳遞。
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可包含單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)、三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134通過閃存介面139寫入使用者資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取使用者資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
電子裝置10另包含電源供應模組170,而電源供應模組170包含兩個腳位VCC和VCCQ,可分別用於提供3.3V和1.8V的電壓給閃存模組150和閃存控制器130。為了偵測自然或人為引起的瞬間斷電(Sudden Power Off,SPO),或者是電源供應不穩定的情況,閃存控制器130包含電源偵測模組135,用於量測電源供應模組170經由腳位VCCQ提供的電壓。處理單元134可週期性地詢問(Polls)電源偵測模組135,取得目前電源供應模組170經由腳位VCCQ提供的電壓。
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12,依此類推。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。
由於自然或人為引起的瞬間斷電,或者是電源供應不穩定,會造成閃存控制器130在寫入資料到閃存模組150時發生不預期的結果。為了反應可能發生的電源事件,例如,瞬間斷電、電源不穩定等,在每次寫入資料到閃存模組150的過程中,閃存控制器130需要持續偵測提供給閃存控制器130的電壓,並提供兩個閥值TH1和TH2,其中,閥值TH1(即,第一閥值)低於電源供應模組170應該提供的理想電壓,而閥值TH1高於閥值TH2(即,第二閥值)。參考圖3,舉例來說,電源供應模組170應該提供的理想電壓是1.8V,閥值TH1可設為1.44V,並且閥值TH2可設為1.26V。通常,當提供給閃存控制器130的電壓低於1.2V時,閃存控制器130(更詳細地說,可能是RAM 136、閃存介面139等)的運作會不正常而傷害欲寫入到閃存模組150的資料。因此,當偵測到的電壓低於閥值TH1時,執行監督程序。在監督程序中,閃存控制器130在發出寫入命令給閃存模組150到閃存控制器130傳送完畢欲寫入資料到閃存模組150的期間,持續不斷偵測供給電壓是否低於閥值TH2。一旦偵測到的電壓低於閥值TH2時,取消此寫入命令。因此,參考圖4,本發明實施例提出一種反應電源事件的資料寫入方法,由處理單元134載入和執行相關韌體或軟體指令時實施。詳細步驟說明如下:
步驟S410:判斷供給閃存控制器130的電壓是否低於閥值TH1。如果是,流程進行步驟S430的處理;否則,進行步驟S420的處理。處理單元134可詢問電源偵測模組135,取得目前電源供應模組170經由腳位VCCQ提供的電壓。當電壓高於閥值TH1時,代表電源穩定,可以直接驅動閃存介面139發出寫入命令給閃存模組150,然後離開寫入操作,而無需進入監督程序。當電壓不高於閥值TH1時,代表電源不穩定,也許可能將發生瞬間斷電,需要執行監督程序,確保寫入命令的執行較低幅度地受到電源不穩定的傷害。
步驟S420:發出寫入指令給閃存介面139,用於驅動閃存介面139寫入指定的資料到閃存模組150。處理單元134可將寫入指令儲存到閃存介面139中的指令佇列,寫入指令包含指令碼、指令編號、資料長度、欲寫入資料儲存在RAM 136中哪個位址等資訊。接著,閃存介面139依據寫入指令中攜帶的資訊從RAM 136的指定位址讀取資料,並傳給閃存模組150,並以指定通訊協定與閃存模組150進行一連串的訊號和/或訊息交互,用於完成指定的寫入操作。在這裡需要注意的是,在電源穩定的情況下,處理單元134發出寫入指令給閃存介面139後就可以離開寫入操作,而不需要等待閃存模組150實際寫入資料完畢才能離開,使得處理單元134可接著處理其他工作。
參考圖5所示的頁面寫入命令(Page Program,80h-10h Command)的時序圖。波型510顯示耦接於閃存模組150及閃存介面139間的資料線DQx的時脈類型,波型520是頁面寫入命令的範例,主要命令為“80h”,確認命令為“10h”。閃存介面139可根據指令佇列的寫入指令發送頁面寫入命令給閃存模組150,用於傳送由實體位址所定義的一頁或者其中部分的資料到閃存模組150中的頁面寄存器。頁面寄存器的內容接著會編程到記憶體陣列中指定的實體位址。週期“C1”至“C2”代表欲寫入資料的開始緩衝器位置的行位址(Column Addresses),週期“R1”至“R3”代表編程頁面的列位址(Row Addresses),週期“D0”至“Dn”代表即將寫入到指定頁面的資料位元組或字組。時間區間“tADL”代表最後一個位址週期到第一個資料週期之間需要的時間,時間區間“tWB”代表發出確認命令“10h”後到開始將資料編程到記憶體陣列需要的時間。當閃存介面139收到寫入指令時,可傳送主要命令“80h”給閃存模組150,接著,傳送行位址、列位址和資料給閃存模組150。閃存介面139可在最後一個資料位元組或字組傳送給閃存模組150後,傳送資料就緒的訊息給處理單元134,通知處理單元134此寫入指令的資料已經全部傳送到閃存模組150,並且傳送確認命令“10h”給閃存模組150。為了反應接收到的資料就緒訊息,處理單元134可在RAM 136中更新狀態變數,用於記錄此寫入指令的資料已經全部傳送到閃存模組150的資訊。
步驟S430:發出寫入指令給閃存介面139,用於驅動閃存介面139寫入指定的資料到閃存模組150。閃存介面139收到寫入指令後的技術細節可參考步驟S420的說明,為求簡明不再贅述。在這裡需要注意的是,在電源不穩定的情況下,處理單元134發出寫入指令給閃存介面139後不能馬上離開寫入操作,而必須進入監督程序,確保寫入指令的執行可較低幅度地受到電源不穩定的傷害。監督程序可包含步驟S440到S480的處理。
步驟S440:判斷供給閃存控制器130的電壓是否低於閥值TH2。如果是,流程進行步驟S450的處理;否則,進行步驟S470的處理。處理單元134可詢問電源偵測模組135,取得目前電源供應模組170經由腳位VCCQ提供的電壓。當電壓低於閥值TH2時,代表電源極度不穩定,需要中斷寫入指令的執行。
步驟S450:發出取消指令給閃存介面139,可包含先前發送的寫入指令的指令編號的資訊,用於中斷此寫入指令的執行。參考圖4,由於此寫入指令的資料尚未完整地傳送到閃存模組150,當閃存介面139收到取消指令時,可放棄傳送未完成的資料和確認命令“10h”給閃存模組150。
步驟S460:通過閃存介面139重新啟動閃存模組150,用於清除未完成的寫入命令的相關內容,例如,閃存模組150中的行位址寄存器、列位址寄存器和頁面寄存器的內容。
步驟S470:判斷寫入指令所欲寫入的資料是否已經完整傳送給閃存模組150。如果是,離開寫入操作;否則,進行步驟S480的處理。處理單元134可依據RAM 136中儲存的狀態變數值來判斷是否已經從閃存介面139接收到如上所述資料就緒的訊息。如果是,則代表閃存模組的150編程操作已經不能停止,處理單元134離開寫入操作,並可接著處理其他工作。
步驟S480:等待一段預設的時間。
從另一個方面來說,步驟S440、S470和S480會形成一個週期性執行的迴圈,用於反覆地檢查是否滿足如步驟S440和S470所述的條件,直到步驟S440或S470所述的條件滿足為止。
通過如上所述的監督程序,可避免將因瞬間斷電或電源供應不穩定所傷害到的不正確資料寫入閃存模組。
為了讓寫入操作具有效率,參考圖6,每個NAND閃存單元153會提供一個實體塊610作為當前塊(Current Block),包含多個頁面的空間,例如P#0至P#255共256個頁面。當前塊610中的每一頁在初始時都是空頁面(Empty Page)。在正常情況下,處理單元134驅動閃存介面139從當前塊610的第0個頁面開始寫入資料,一直到最後一個頁面。每個頁面的空間用來儲存一個或多個邏輯區塊位址(Logical Block Address,LBA)的資料。閃存介面139包含糾錯碼編碼器(Error Correction Code,ECC Encoder),用於依據從RAM 136讀取的資料產生糾錯碼,並且將讀取資料連同糾錯碼寫入實體塊中的一個頁面,使得將來能夠修正從此頁面讀出的含有錯誤位元的資料。糾錯碼可以是低密度奇偶較驗碼(Low-Density Parity Check Code,LDPC)、BCH碼(Bose–Chaudhuri–Hocquenghem Code)或其他種類的編碼。以每1K位元組的使用者資料為例,BCH碼可提供最多72個錯誤位元的修正能力,而LDPC可提供最多128個錯誤位元的修正能力。在寫完最後一頁的資料和糾錯碼後,處理單元134會搜集每個實體頁面關聯的邏輯區塊位址的資訊,並據以產生閃存-主機對照表(Flash-to-Host,F2H Table)630,其中包含相應於實體頁面數量的儲存格。例如,F2H表630中的第0個儲存格記錄了當前塊610中的第0個實體頁面儲存了LBA#100至LBA#107的資料的資訊,第1個實體頁面記錄了當前塊610中的第1個實體頁面儲存了LBA#150至LBA#157的資料的資訊,依此類推。最後,處理單元134驅動閃存介面139將F2H表630寫入閃存模組150中的指定位置,供將來查找用。此時,實體塊610的內容不再變動,又稱為資料塊(Data Block)。接著,處理單元134會從閒置塊(Spare Blocks)中挑選出一個作為當前塊,繼續後續的資料寫入操作。然而,如果當前塊還沒寫滿就發生瞬間斷電,處理單元134需要在執行瞬間斷電後回復(Sudden Power Off Recovery,SPOR)程序時為當前塊產生F2H表630,並且驅動閃存介面139將F2H表630寫入閃存模組150中的指定位置。
在另一些實施例的閃存控制器130中,由於沒有配置電源偵測模組135,讓如圖4所述的預防機制無法實現。因應這樣的硬體架構,閃存控制器130需要在SPOR程序中避免回復到因電源不穩定而寫入的錯誤資料。在SPOR程序中,閃存控制器130從閃存模組150中讀取當前塊的多個實體頁面的資料,依據實體頁面的糾錯結果判斷是否發生電源事件。當發生電源事件時,閃存控制器130重建F2H表,包含當前塊中從第0頁面到最後有效頁面之前一個頁面的實體-邏輯對照資訊。當沒有發生電源事件時,閃存控制器130重建F2H表,包含從當前塊中第0頁面到最後有效頁面的實體-邏輯對照資訊。接著,閃存控制器130將重建的F2H表寫入閃存模組150。詳細來說,最後有效頁面指最後一個包含沒有錯誤的或者能夠被糾錯的資料的實體頁面,並且重建的F2H表包含每個實體頁面儲存的資料關聯於哪些邏輯位址的資訊。本發明實施例提出一種在SPOR程序中反應電源事件的F2H表的重建方法,由處理單元134載入和執行相關韌體或軟體指令時實施。參考圖7,詳細步驟說明如下:
步驟S710:將變數“i”和“CntHECC”都設為0。處理單元134使用變數“i”來記錄當前塊中即將或正在讀取資料的頁面編號,以及使用變數“CntHECC”來記錄當前塊中高糾錯頁面的總數。
步驟S720:讀取當前塊中第i個頁面的資料。處理單元134可驅動閃存介面139讀取當前塊中第i個頁面的資料。閃存介面139除讀取當前塊中第i個頁面的資料外,還讀取第i個頁面的糾錯碼。閃存介面139還包含糾錯碼解碼器(ECC Decoder),用於使用讀出的糾錯碼修正讀出資料的錯誤位元,並且將修正結果回報給處理單元134。在一些實施例中,修正結果可指出以下數個狀態中的一個:無錯、低糾錯、高糾錯或無法糾錯(Uncorrectable ECC,UECC)。低糾錯狀態指閃存介面139修正的錯誤位元不超過預訂的閥值,而高糾錯狀態指閃存介面139修正的錯誤位元超過預訂的閥值。舉例來說,閥值可設定為最大修正能力的80%。無法糾錯狀態指閃存介面139使用糾錯碼仍然無法修復讀取資料中的錯誤位元。在另一些實施例中,修正結果可指出已經修正的錯誤位元,讓處理單元134依據回報的錯誤位元判斷讀取頁面為無錯頁面、低糾錯頁面、高糾錯頁面或無法糾錯頁面。
步驟S730:判斷讀取頁面是否為空的或無法糾錯頁面。如果是,流程進行步驟S760的處理;否則,進行步驟S740的處理。UECC頁面指處理單元134使用糾錯碼仍然無法修復讀取資料中的錯誤位元。當發現讀取頁面是空頁面或UECC頁面時,處理單元134可推測閃存控制器130在寫入資料到此頁面的期間或之前可能發生了瞬間斷電。
步驟S740:判斷讀取頁面是否為高糾錯頁面。如果是,流程進行步驟S750的處理;否則,進行步驟S745的處理。處理單元134可依據如上所述的閃存介面139的回報結果完成此判斷。
步驟S745:將變數“i”的值加1。
步驟S750:將變數“CntHECC”的值加1。
步驟S760:判斷是否發生電源事件。如果是,流程進行步驟S770的處理;否則,進行步驟S780的處理。當第i-1個頁面為高糾錯頁面且變數“i”和“CntHECC”的值不滿足極端使用條件時,處理單元134判斷發生電源事件。極端使用條件的公式範例描述如下:
CntHECC/i>TH,
其中,TH代表閥值,可依據系統需要設為0.5到1之間的任意數值。通過上述公式,處理單元134可排除電子裝置10在極端環境使用的狀況,例如,在高溫的使用狀態,而不是實際發生瞬間斷電。此時,第i-1個頁面可稱為最後有效頁面。換句話說,當最後有效頁面為高糾錯頁面且已讀取的實體頁面中的高糾錯頁面的數目佔已讀取的實體頁面的總數的比例低於閥值時,處理單元134判斷發生了電源事件。
步驟S770:重建F2H表,包含第0到i-2頁面的實體-邏輯轉換資訊,並且將重建的F2H表寫入閃存模組150中的指定位置。處理單元134可驅動閃存介面139來完成重建的F2H表的寫入操作。由於處理單元134已經判定之前發生電源事件,第i-1頁面的資料很可能受到傷害而不是正確的資料,必須要捨棄。所以,重建的F2H表不包含第i-1頁面的實體-邏輯轉換資訊。在這裡需要注意的是,當重建的F2H表不包含第i-1頁面的實體-邏輯轉換資訊時,處理單元134會認為第i-1頁面沒有儲存有用的資料。
步驟S780:重建F2H表,包含第0到i-1頁面的實體-邏輯轉換資訊,並且將重建的F2H表寫入閃存模組150中的指定位置。處理單元134可驅動閃存介面139來完成重建的F2H表的寫入操作。
在瞬間斷電後回復程序中,通過如上所述反應電源事件的閃存-主機對照表的重建,可避免回復因瞬間斷電所傷害到的不正確資料。
雖然本發明實施例以一個當前塊舉例,但是所屬技術領域人員理解以上所述的機制可應用到所有NAND閃存單元的當前塊,例如NAND閃存單元153#0到153#15的每一個當前塊,本發明並不因此受限。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,達成更佳的技術效果。此外,雖然圖4、圖7的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
10:電子裝置
110:主機端
130:閃存控制器
131:主機介面
132:匯流排架構
134:處理單元
135:電源偵測模組
136:隨機存取記憶體
138:直接記憶體存取控制器
139:閃存介面
150:閃存模組
151:介面
153#0~153#15:NAND閃存單元
170:電源供應模組
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
S410~S480:方法步驟
510:資料線DQx的時脈類型的波形
520:頁面寫入命令的波型
610:當前塊
630:閃存-主機對照表
S710~S780:方法步驟
圖1為依據本發明實施例的電子裝置的系統架構圖。
圖2為依據本發明實施例的閃存模組的示意圖。
圖3為依據本發明實施例的閃存控制器的供給電壓變化示意圖。
圖4為依據本發明實施例的反應電源事件的資料寫入方法的流程圖。
圖5為依據本發明實施例的頁面寫入命令的時序圖。
圖6為依據本發明實施例的實體塊和閃存-主機對照表的示意圖。
圖7為依據本發明實施例的在瞬間斷電後回復程序中反應電源事件的閃存-主機對照表的重建方法的流程圖。
S410~S480:方法步驟
Claims (14)
- 一種反應電源事件的資料存取方法,由一閃存控制器執行,包含: 持續偵測供給上述閃存控制器的一電壓是否低於一第一閥值; 當上述電壓低於上述第一閥值時,發出一寫入命令給一閃存模組,用於寫入一資料到上述閃存模組,其中,上述第一閥值低於一電源供應模組提供給上述閃存控制器的理想電壓;以及 當上述電壓低於上述第一閥值時,進入一監督程序, 其中,上述監督程序包含: 在發出上述寫入命令給上述閃存模組到傳送完畢上述資料到上述閃存模組的期間,持續偵測上述電壓是否低於一第二閥值,上述第二閥值低於上述第一閥值;以及 當上述電壓低於上述第二閥值時,取消上述寫入命令。
- 如請求項1所述的反應電源事件的資料存取方法,其中,上述寫入命令包含一主要命令和一確認命令,上述資料存取方法包含: 當上述電壓低於上述第二閥值時,放棄傳送上述確認命令給上述閃存模組。
- 如請求項1所述的反應電源事件的資料存取方法,包含: 當上述電壓低於上述第二閥值時,重新啟動上述閃存模組,用於清除關於上述未完成的寫入命令的內容。
- 一種反應電源事件的資料存取裝置,包含: 一電源偵測模組,用於量測提供給上述資料存取裝置的一電壓; 一閃存介面,耦接一閃存模組;以及 一處理單元,耦接上述電源偵測模組和上述閃存介面,持續通過上述電源偵測模組偵測提供給上述資料存取裝置的一電壓是否低於一第一閥值;當上述電壓低於上述第一閥值時,驅動上述閃存介面發出一第一寫入命令給上述閃存模組,用於寫入一第一資料到上述閃存模組,其中,上述第一閥值低於提供給上述資料存取裝置的理想電壓;以及當上述電壓低於上述第一閥值時,進入一監督程序, 其中,上述監督程序包含: 在驅動上述閃存介面發出上述第一寫入命令給上述閃存模組到傳送完畢上述資料到上述閃存模組的期間,持續通過上述電源偵測模組偵測上述電壓是否低於一第二閥值,上述第二閥值低於上述第一閥值;以及 當上述電壓低於上述第二閥值時,驅動上述閃存介面取消上述第一寫入命令。
- 如請求項4所述的反應電源事件的資料存取裝置,其中,上述第一寫入命令包含一主要命令和一確認命令,以及當上述電壓低於上述第二閥值時,上述處理單元發出一取消指令給上述閃存介面,驅動上述閃存介面放棄傳送上述確認命令給上述閃存模組。
- 如請求項4所述的反應電源事件的資料存取裝置,其中,當上述電壓低於上述第二閥值時,上述處理單元驅動上述閃存介面重新啟動上述閃存模組,用於清除關於上述未完成的第一寫入命令的內容。
- 如請求項4所述的反應電源事件的資料存取裝置,其中,上述處理單元進入一寫入操作後持續通過上述電源偵測模組偵測提供給上述資料存取裝置的上述電壓是否低於上述第一閥值;以及當上述電壓不低於上述第一閥值時,驅動上述閃存介面發出一第二寫入命令給上述閃存模組,用於寫入一第二資料到上述閃存模組,並且離開上述寫入操作。
- 一種反應電源事件的資料存取方法,由一閃存控制器執行,包含: 在一瞬間斷電後回復程序中,讀取一閃存模組中一當前塊的多個實體頁面的資料; 依據上述實體頁面的糾錯結果判斷是否發生一電源事件; 當發生上述電源事件時,重建一第一閃存-主機對照表,包含上述當前塊中從第0頁面到一最後有效頁面之前一個頁面的實體-邏輯對照資訊;以及 將上述重建的第一閃存-主機對照表寫入上述閃存模組的指定位置。
- 如請求項8所述的反應電源事件的資料存取方法,包含: 當沒有發生上述電源事件時,重建一第二閃存-主機對照表,包含上述當前塊中從第0頁面到上述最後有效頁面的實體-邏輯對照資訊;以及 將上述重建的第二閃存-主機對照表寫入上述閃存模組的指定位置。
- 一種反應電源事件的資料存取裝置,包含: 一閃存介面,耦接一閃存模組;以及 一處理單元,耦接上述閃存介面,用於在一瞬間斷電後回復程序中,驅動上述閃存介面讀取上述閃存模組中一當前塊的多個實體頁面的資料;依據上述實體頁面的糾錯結果判斷是否發生一電源事件;當發生上述電源事件時,重建一第一閃存-主機對照表,包含上述當前塊中從第0頁面到一最後有效頁面之前一個頁面的實體-邏輯對照資訊;以及驅動上述閃存介面寫入上述重建的第一閃存-主機對照表到上述閃存模組的指定位置。
- 如請求項10所述的反應電源事件的資料存取裝置,其中,當沒有發生上述電源事件時,重建一第二閃存-主機對照表,包含上述當前塊中從第0頁面到上述最後有效頁面的實體-邏輯對照資訊;以及驅動上述閃存介面寫入上述重建的第二閃存-主機對照表到上述閃存模組的指定位置。
- 如請求項10至11中任一項所述的反應電源事件的資料存取裝置,其中,上述最後有效頁面指最後一個包含沒有錯誤的或者能夠被糾錯的資料的實體頁面。
- 如請求項10至11中任一項所述的反應電源事件的資料存取裝置,其中,上述重建的第一閃存-主機對照表和上述重建的第二閃存-主機對照表中的任一者包含每個實體頁面儲存的資料關聯於哪些邏輯位址的資訊。
- 如請求項10所述的反應電源事件的資料存取裝置,其中,當上述最後有效頁面為高糾錯頁面且上述實體頁面中的高糾錯頁面的數目佔上述實體頁面的總數的比例低於一閥值時,上述處理單元判斷為發生上述電源事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112469A TWI740454B (zh) | 2020-04-14 | 2020-04-14 | 反應電源事件的資料存取方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112469A TWI740454B (zh) | 2020-04-14 | 2020-04-14 | 反應電源事件的資料存取方法及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI740454B true TWI740454B (zh) | 2021-09-21 |
TW202139015A TW202139015A (zh) | 2021-10-16 |
Family
ID=78777738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109112469A TWI740454B (zh) | 2020-04-14 | 2020-04-14 | 反應電源事件的資料存取方法及裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI740454B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110128785A1 (en) * | 2009-11-27 | 2011-06-02 | Samsung Electronics Co. Ltd. | Apparatus and method for protecting data in flash memory |
TWI482161B (zh) * | 2013-08-09 | 2015-04-21 | Silicon Motion Inc | 資料儲存裝置及其電壓偵測及資料保護方法 |
TWI531698B (zh) * | 2013-12-27 | 2016-05-01 | Univ Chienkuo Technology | Integration of tension measurement function of the cone penetrometer |
CN107301132A (zh) * | 2017-06-09 | 2017-10-27 | 华中科技大学 | 一种闪存垃圾回收优化方法 |
TWI645290B (zh) * | 2016-10-11 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
TWI670640B (zh) * | 2016-11-25 | 2019-09-01 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置 |
-
2020
- 2020-04-14 TW TW109112469A patent/TWI740454B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110128785A1 (en) * | 2009-11-27 | 2011-06-02 | Samsung Electronics Co. Ltd. | Apparatus and method for protecting data in flash memory |
TWI482161B (zh) * | 2013-08-09 | 2015-04-21 | Silicon Motion Inc | 資料儲存裝置及其電壓偵測及資料保護方法 |
TWI531698B (zh) * | 2013-12-27 | 2016-05-01 | Univ Chienkuo Technology | Integration of tension measurement function of the cone penetrometer |
TWI645290B (zh) * | 2016-10-11 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
TWI670640B (zh) * | 2016-11-25 | 2019-09-01 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置 |
CN107301132A (zh) * | 2017-06-09 | 2017-10-27 | 华中科技大学 | 一种闪存垃圾回收优化方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202139015A (zh) | 2021-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824523B2 (en) | Data storage device and operating method thereof | |
TWI498902B (zh) | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US8331151B2 (en) | Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block | |
US11294750B2 (en) | Media management logger for a memory sub-system | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN102890645A (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
KR20210147696A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11748025B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
US10861576B2 (en) | Nonvolatile memory device, operating method thereof and data storage device including the same | |
TW201635086A (zh) | 休眠模式啓動方法、記憶體控制電路單元及儲存裝置 | |
TWI740454B (zh) | 反應電源事件的資料存取方法及裝置 | |
TWI797905B (zh) | 驅動獨立磁碟冗餘陣列引擎的裝置及方法 | |
TWI814352B (zh) | 使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 | |
CN112988449B (zh) | 写入页面群组的数据到闪存模块的装置及方法 | |
CN113535459B (zh) | 响应电源事件的数据存取方法及装置 | |
US11593242B2 (en) | Method of operating storage device for improving reliability, storage device performing the same and method of operating storage using the same | |
CN116340047A (zh) | 驱动独立磁碟冗余数组引擎的方法和装置 | |
TW201517048A (zh) | 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置 | |
TWI821965B (zh) | 編碼歷程資訊的存取方法及電腦程式產品及裝置 | |
TWI712052B (zh) | 記憶體管理方法、儲存控制器與儲存裝置 | |
KR102704694B1 (ko) | 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치 | |
US20240134745A1 (en) | Storage device for providing event data and operation method of storage device | |
CN113867614A (zh) | 自适应nvm读取方法及其装置 | |
KR20140031554A (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 | |
TW201717209A (zh) | 於控制邏輯錯誤時重新配置存儲控制器的方法以及使用該方法的裝置 |