TWI696951B - 儲存裝置異常斷電的處理系統和方法 - Google Patents

儲存裝置異常斷電的處理系統和方法 Download PDF

Info

Publication number
TWI696951B
TWI696951B TW107130620A TW107130620A TWI696951B TW I696951 B TWI696951 B TW I696951B TW 107130620 A TW107130620 A TW 107130620A TW 107130620 A TW107130620 A TW 107130620A TW I696951 B TWI696951 B TW I696951B
Authority
TW
Taiwan
Prior art keywords
storage
address
storage device
main controller
control circuit
Prior art date
Application number
TW107130620A
Other languages
English (en)
Other versions
TW202011181A (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 TW107130620A priority Critical patent/TWI696951B/zh
Priority to CN201811080829.1A priority patent/CN110875078B/zh
Priority to US16/198,808 priority patent/US11016839B2/en
Publication of TW202011181A publication Critical patent/TW202011181A/zh
Application granted granted Critical
Publication of TWI696951B publication Critical patent/TWI696951B/zh

Links

Images

Classifications

    • 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/30Power supply circuits
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明提供一種儲存裝置異常斷電的處理系統和方法。方法包含以下步驟:(a)利用主控制器提供數據至儲存裝置;(b)利用主控制器輸出位址儲存指令;(c)利用位址儲存器儲存儲存區塊的位址;(d)利用儲存裝置執行存取數據的程序;(e)利用主控制器判斷儲存裝置是否發生異常斷電,若是,執行步驟(f),若否,完成程序後執行步驟(g);(f)利用主控制器指示儲存裝置的儲存控制電路對與位址對應的儲存區塊執行錯誤處理程序,並接著執行步驟(a);(g)利用主控制器指示清除位址儲存器中的位址。

Description

儲存裝置異常斷電的處理系統和方法
本發明是有關於一種儲存裝置,且特別是有關於一種儲存裝置異常斷電的處理系統和方法。
固態硬碟(Solid State Drive,SSD)的數據儲存技術在過去十幾年發展迅速,在很多應用中逐漸取代了傳統的磁記錄硬碟(hard disk drive,HDD)。相對於傳統的基於硬碟的儲存系統,固態硬碟對掉電情況的保護有顯著不同。固態硬碟包含更複雜的元數據和數據緩存,因而必需能將數據完整地寫入記憶晶胞,確保元數據和用戶數據的完整性。對於企業級的應用,更需確保在斷電重啟後,固態硬碟必須能正常運行,同時所有已寫入記憶晶胞的數據必須可以正確被讀出。
為了解決習知技術的缺失,本發明的目的在於提供一種儲存裝置異常斷電的處理系統,適用於一或多個儲存裝置,各儲存裝置包含多個儲存區塊以及與多個儲存區塊連接的儲存控制電路,儲存裝置異常斷電的處理系統包含: 主控制器,連接各儲存控制電路,配置以提供數據至儲存控制電路以及輸出位址儲存指令,接著主控制器輸出可程式化指令以指示儲存控制電路控制儲存區塊執行程序,程序包含存取數據,主控制器在儲存區塊執行程序後輸出位址清除指令;以及位址儲存器,連接主控制器,配置以依據位址儲存指令以儲存待執行程序的儲存裝置的儲存區塊的位址,位址儲存器依據位址清除指令以清除位址;其中當儲存裝置執行程序的過程中發生異常斷電,接著經過一時間後儲存裝置復電而重新啟動時,主控制器讀取位址儲存器,依據位址判斷執行程序的儲存區塊,並指示儲存控制電路對儲存區塊執行錯誤處理程序。
另外,本發明提供一種儲存裝置異常斷電時的處理方法,適用於一或多個儲存裝置,各儲存裝置包含多個儲存區塊以及與多個儲存區塊連接的儲存控制電路,儲存裝置異常斷電的處理方法包含以下步驟:(a)利用主控制器,提供數據至儲存控制電路;(b)利用主控制器,輸出位址儲存指令至位址儲存器;(c)利用位址儲存器,依據位址儲存指令以儲存待執行程序的儲存裝置的儲存區塊的位址;(d)利用主控制器輸出可程式化指令以指示儲存控制電路控制儲存區塊執行程序,程序包含存取數據;(e)利用主控制器在儲存裝置執行程序的過程中,判斷儲存裝置是否發生異常斷電,若是,執行步驟(f)~(g),若否,儲存裝置持續執行程序,直到完成程序時接著依序執行步驟(h)~(i);(f)利用主控制器,從位址儲存器取得位址,並依據位址判斷執行程序的儲存區塊;(g)利用主控制器,判斷在經過一段時間後儲存裝置復電而 重新啟動時,指示儲存控制電路對儲存區塊執行錯誤處理程序,並接著跳回再次執行步驟(a);(h)利用主控制器,在儲存區塊執行程序完成後,輸出位址清除指令至位址儲存器;以及(i)依據位址清除指令,清除位址儲存器所儲存的位址。
如上所述,本發明提供儲存裝置異常斷電時的處理裝置和方法,其可在儲存裝置發生異常斷電導致儲存區塊損壞為壞塊時,即時地將壞塊修復回正常的儲存區塊,避免由於儲存區塊的損壞時間太久未修復,而影響儲存裝置整體的運作,導致損壞情況更為嚴重。
10‧‧‧主控制器
102‧‧‧位址儲存指令
1022‧‧‧位址清除指令
1052‧‧‧可程式化指令
1053‧‧‧電源偵測訊號
1054‧‧‧錯誤處理程序
105、106‧‧‧數據
20、216‧‧‧位址儲存器
21、231、241‧‧‧位址
22‧‧‧旗標
50、51~56‧‧‧儲存裝置
511‧‧‧儲存控制電路
512‧‧‧儲存區塊
5011‧‧‧電源正常訊號
5012‧‧‧電源異常訊號
S301~S317、S401~S413、S501~S519‧‧‧步驟
圖1是本發明第一實施例的儲存裝置異常斷電的處理系統的方塊圖。
圖2是本發明第二實施例的儲存裝置異常斷電的處理系統的方塊圖。
圖3是本發明第三實施例的儲存裝置異常斷電的處理方法的步驟流程圖。
圖4是本發明第四實施例的儲存裝置異常斷電的處理方法的步驟流程圖。
圖5是本發明第五實施例的儲存裝置異常斷電的處理方法的步驟流程圖。
以下是通過特定的具體實施例來說明本發明所揭露有關本發明的實施方式,本領域技術人員可由本說明書所揭露的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用, 在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所揭露的內容並非用以限制本發明的保護範圍。
應理解,雖然本文中可能使用術語第一、第二、第三等來描述各種元件或者訊號,但這些元件或者訊號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一訊號與另一訊號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
為了解釋清楚,在一些情況下,本技術可被呈現為包括包含功能塊的獨立功能塊,其包含裝置、裝置元件、軟體中實施的方法中的步驟或路由,或硬體及軟體的組合。
實施根據這些揭露方法的裝置可以包括硬體、韌體及/或軟體,且可以採取任何各種形體。這種形體的典型例子包括筆記型電腦、智慧型電話、小型個人電腦、個人數位助理等等。本文描述之功能也可以實施於週邊設備或內置卡。透過進一步舉例,這種功能也可以實施在不同晶片或在單個裝置上執行的不同程序的電路板。
該指令、用於傳送這樣的指令的介質、用於執行其的計算資源或用於支持這樣的計算資源的其他結構,係為用於提供在這些揭露中所述的功能的手段。
[第一實施例]
請參閱圖1,其是本發明第一實施例的儲存裝置異常斷電的處理系統的方塊圖。如圖1所示,儲存裝置異常斷電的處理系統,包含主控制器10以及位址儲存器20,適用於儲存裝置50。主控制器10連接位址儲存器20以及儲存裝置50。
舉例來說,主控制器10可為固態硬碟控制器。位址儲存器20 可為快閃記憶體,例如具備序列周邊介面(Serial Peripheral Interface,SPI)的快閃記憶體(Flash memory)或其他具有暫存或永存數據功能的儲存裝置。儲存裝置50可為NAND或NOR快閃記憶體裝置,或是其他具有儲存功能的儲存裝置。以上僅舉例說明,本發明不以此為限。
儲存裝置50包含儲存控制電路511以及儲存區塊512。儲存區塊512可為記憶體晶胞。儲存區塊512的數量可為多個,本實施例以12個為例,其呈三行四列的陣列排列。應理解,儲存裝置50的型態以及其所包含的儲存區塊512的數量、排列方式、可存取的數據量可依實際需求做調整。
主控制器10可提供新數據105至儲存裝置50,此新數據105可為單個位元數據或多個位元的數據流。主控制器10可在提供新數據105的同時或隨後輸出位址儲存指令102至位址儲存器20,以指示位址儲存器20依據位址儲存指令102儲存待執行程序例如存取此新數據105的儲存裝置50的其中一儲存區塊512的位址21,其中位址21可對應此儲存區塊512在陣列中的行列位置。
替換地,儲存裝置50的多個儲存區塊512可同時或依序分別儲存相同或不同的多個新數據105。相應地,位址儲存器20的多個位址儲存區塊可分別儲存這些待存取新數據105或執行其他程序的多個儲存區塊512分別對應的多個位址21。
另外,位址儲存器20可依據來自主控制器10的位址儲存指令102,設定儲存裝置50的一或多個儲存區塊512的一或多個位址21對應的一或多個旗標22。舉例來說,旗標22可包含狀態旗標、控制旗標等或其組合,可用以表示儲存區塊512的位址21的儲存狀態,包含每一個儲存區塊512的位址21是否仍儲存在位址儲存器20中,以及每一個儲存區塊512的位址21儲存在位址儲存器20中的哪一個位址儲存區塊以及此位址儲存區塊的位址。
主控制器10在確認位址儲存器20已儲存儲存區塊512的位 址21後,可輸出可程式化指令1052。當儲存裝置50的儲存控制電路511接收到可程式化指令1052時,可依據主控制器10的可程式化指令1052以程式化儲存裝置50的儲存區塊512,即控制儲存區塊512執行程序,包含讀取儲存控制電路511從主控制器10接收的新數據105,以及接著將新數據105寫入儲存區塊512中。可選擇性地,在存取新數據105之前,先抹除儲存區塊512內先前儲存的原始數據。
主控制器10判斷儲存裝置50已完成執行程序的作業時,例如已完成新數據105的存取作業時,主控制器10可輸出位址清除指令1022至位址儲存器20,以指示位址儲存器20清除位址清除指令1022所指示的儲存區塊512的位址21以及旗標22。
在理想狀況下,儲存裝置50在執行數據存取作業或其他程序的過程中接收到的供應電源正常,如上述完成儲存作業後,清除儲存裝置50的儲存區塊512的位址21以及旗標22即可。
然而,值得注意的是,在儲存裝置50執行程序的過程中可能發生異常斷電情況,導致儲存裝置50損壞。在此情況下,由於不知道斷電時正在可程式化儲存裝置50的多個儲存區塊512中的哪一個儲存區塊512,因此在進行儲存區塊512的錯誤處理時,需耗費相當多的時間,且可能會出現很多問題。
因此,在本實施例中,在主控制器10指示儲存裝置50的儲存控制電路511程式化儲存區塊512之前,先指示位址儲存器20儲存待執行程序的儲存區塊512的位址21以及旗標22。如此,若發生儲存裝置50的電源出現異常例如停止供應電源至儲存裝置50,使得儲存裝置50非期望地被關閉,導致儲存裝置50正在中途停止程序的執行作業而導致數據存取錯誤或儲存裝置50的儲存區塊512損壞的情形時,可在短時間內做較適當的處理。
具體地,當主控制器10偵測到儲存裝置50發生異常斷電時,主控制器10可讀取位址儲存器20是否儲存位址21以判斷在異常 斷電時程序的執行狀態,以及依據位址21判斷發生異常斷電的當下正在執行程序的是儲存裝置50的哪一個儲存區塊512。
若在異常斷電的情形發生後,主控制器10偵測到位址儲存器20仍儲存有位址21時,判定在發生斷電的當下,儲存裝置50正在執行程序。在此情況下,主控制器10可在儲存裝置50經過一時間後復電而重新啟動時,立即指示儲存裝置50的儲存控制電路511對位址儲存器20儲存的位址21對應的儲存裝置50的儲存區塊512執行錯誤處理程序1054。
由於在發生異常斷電情形可能導致正在儲存新數據105的正常的儲存區塊512變成不正常的壞塊(bad block)。因此,主控制器10指示儲存裝置50執行的錯誤處理程序1054,可包含抹除此儲存區塊512存取不完整的數據,甚至一併清除此儲存區塊512原本儲存的原始數據。藉由在異常斷電後即時修復損壞的儲存區塊512,可避免儲存裝置50損壞情況惡化,並可在修復後即使使用儲存區塊512存取數據或執行其他程序。
然而,若儲存裝置50發生斷電的時間太長(即復電時間太久)或斷電次數過多,導致儲存裝置50的多個儲存區塊512損壞嚴重時,可能導致已無法僅就單一儲存儲存區塊512執行錯誤處理程序1054以修復儲存裝置50。在此情況下,主控制器10指示儲存裝置50執行相應的錯誤處理程序1054,可包含主控制器10格式化儲存裝置50,以清除儲存裝置50的所有多個儲存區塊512的儲存數據,包含儲存不完整的新數據105。
相反地,主控制器10在儲存裝置50發生斷電意外情況後,主控制器10讀取位址儲存器20時,沒有讀取到旗標22時,主控制器10判斷在斷電時或斷電前,儲存裝置50已完成程序的執行作業。在此情況下,主控制器10不需執行錯誤處理程序1054。
[第二實施例]
請參閱圖2,其是本發明第二實施例的儲存裝置異常斷電的處理系統的方塊圖。如圖2所示,儲存裝置異常斷電的處理系統,包含主控制器10以及位址儲存器20,適用於多個儲存裝置51~56。主控制器10連接位址儲存器20以及儲存裝置50。
在本實施例,儲存裝置51~56以六個為例,僅為了說明主控制器10可同步或非同步地控制多個儲存裝置。但實務上可依據實際需求擴增或縮減儲存裝置51~56的配置數量,本發明不以此為限。所有儲存裝置51~56可接收一共用電源供應的電力,或可如本實施例舉例儲存裝置51~56接收不同電源供應的電力。
主控制器10可選擇性地提供多個數據105至一或多個儲存裝置51~56,例如僅將多個數據105分別提供至儲存裝置52、53,或如本實施例舉例將多個數據105分別提供至所有儲存裝置51~56。接著,主控制器10可輸出可程式化指令以指示儲存裝置51~56執行程序,程序包含存取數據105。
在執行程序的過程中,主控制器10可持續或每隔一預設時間間斷地輸出電源偵測訊號1053至正在執行程序的儲存裝置51~56。舉例來說,在執行程序的過程中,電源正常供應至儲存裝置51、52、55、56,使儲存裝置51、52、55、56的儲存區塊正常執行程序時,儲存裝置51~56的儲存控制電路依據儲存裝置51、52、55、56未發生異常斷電的情形回應電源正常訊號5011至主控制器10。當主控制器10接收到電源正常訊號5011指示儲存裝置51、52、55、56從開始執行程序到完成執行程序的作業電源供應皆正常的情況下,判斷不需執行錯誤處理程序1054。
值得注意的是,儲存裝置53、54的儲存控制電路判斷在執行程序的過程中儲存裝置53、54發生異常斷電的情況時,儲存裝置53、54的儲存控制電路依據儲存裝置53、54發生斷電並已重新啟動的情形,回應電源異常訊號5012至主控制器10。
主控制器10依據電源異常訊號5012確認在儲存裝置53、54 執行程序的過程中發生異常斷電時,主控制器10依據電源異常訊號5012指示的在斷電當下正在執行程序的儲存裝置53、54的儲存區塊的損壞程度,以指示儲存裝置53、54的儲存控制電路對其對應的儲存區塊執行對應的錯誤處理程序1054,以修復損壞的儲存區塊以及存取不完整的數據。
在儲存裝置53、54的儲存區塊修復之後,主控制器10可提供更新數據106至儲存控制電路511,並重新存取更新數據106以更新儲存區塊512。上述更新數據106可與數據105相同,或僅為數據105尚未存取或存取錯誤的一部分。
[第三實施例]
請參閱圖3,其是本發明第三實施例的儲存裝置異常斷電的處理方法的步驟流程圖。如圖3所示,本實施例的儲存裝置異常斷電的處理方法包含以下步驟S301~S317,其可利用儲存裝置異常斷電的處理系統以處理儲存裝置,其中儲存裝置包含相互連接的主控制器以及位址儲存器,儲存裝置包含相互連接的儲存控制電路以及多個儲存區塊。
步驟S301:利用斷電處理系統的主控制器,提供數據至儲存裝置的儲存控制電路。
步驟S303:利用斷電處理系統的主控制器,輸出位址儲存指令至位址儲存器。
步驟S305:利用斷電處理系統的位址儲存器,依據位址儲存指令以儲存待執行程序的儲存裝置的儲存區塊的位址。
步驟S307:利用斷電處理系統的主控制器,輸出可程式化指令以指示儲存裝置的儲存控制電路控制儲存裝置的儲存區塊執行程序,程序包含存取數據。
步驟S309:利用斷電處理系統的主控制器,在儲存裝置執行程序的過程中,判斷儲存裝置是否發生異常斷電,若是,執行步 驟S311,若否,儲存裝置持續執行程序,直到完成程序後接著依序執行步驟S313~S315。
步驟S311:利用斷電處理系統的主控制器,從斷電處理系統的位址儲存器取得位址,並依據位址判斷儲存裝置斷電時正在執行程序的是儲存裝置的多個儲存區塊中的哪一儲存區塊。
步驟S313:利用斷電處理系統的主控制器,在經過一段時間後儲存裝置復電而重新啟動時,指示儲存裝置的儲存控制電路對斷電時正在執行程序的那一儲存區塊執行錯誤處理程序,並接著跳回再次執行步驟S301。
步驟S315:利用斷電處理系統的主控制器,在儲存裝置執行程序完成後,輸出位址清除指令至斷電處理系統的位址儲存器。
步驟S317:利用斷電處理系統的位址儲存器,依據位址清除指令,以清除所儲存的已完成執行程序作業的儲存區塊的位址。
[第四實施例]
請參閱圖4,其是本發明第四實施例的儲存裝置異常斷電的處理方法的步驟流程圖。如圖4所示,本實施例的儲存裝置異常斷電的處理方法包含以下步驟S401~S413,可與前述第三實施例的步驟適當地結合,其中步驟S401~S407是針對上述實施例中的步驟S309進一步舉例如何利用主控制器判斷儲存裝置是否發生異常斷電的步驟;而步驟S411則進一步舉例步驟S313執行的錯誤處理程序。
步驟S401:利用斷電處理系統的主控制器,輸出電源偵測訊號至儲存裝置的儲存控制電路。
步驟S403:利用儲存裝置的儲存控制電路判斷儲存裝置是否正常接收電源,若否,執行步驟S405,若是,執行步驟S407。
步驟S405:利用儲存裝置的儲存控制電路,在儲存裝置未發生斷電時,回應電源正常訊號至斷電處理系統的主控制器。
步驟S407:利用儲存裝置的儲存控制電路,在儲存裝置發生斷電並重新啟動後,回應電源異常訊號至主控制器。
步驟S409:利用斷電處理系統的主控制器,依據接收到的是電源正常訊號或電源異常訊號,以判斷在儲存裝置執行程序例如存取主控制器提供的數據的過程中是否發生異常斷電,若否,執行步驟S401,持續進行電源供應狀態的偵測,若是,執行步驟S411。
步驟S411:利用斷電處理系統的主控制器,依據電源異常訊號,指示儲存裝置的儲存控制電路抹除儲存裝置的儲存區塊存取不完整的數據。
步驟S413:利用斷電處理系統的主控制器,重新提供數據至儲存控制電路,以供儲存裝置的儲存控制電路控制儲存裝置的儲存區塊重新執行存取數據的作業。
應理解,若發生異常斷電時,部分數據已確定存取無誤時,在步驟S411中可僅抹除此次儲存作業中儲存的部分數據。接著,在步驟S413中,主控制器可僅提供剩餘尚未儲存的數據至儲存裝置的儲存區塊中儲存。然而,若發生異常斷電而造成整個儲存區塊損壞,而導致儲存區塊整個損壞,則主控制器可提供此儲存區塊原本儲存的原始數據以及此次儲存作業欲儲存取的新數據至儲存裝置的儲存區塊中儲存。
[第五實施例]
請參閱圖5,其是本發明第五實施例的儲存裝置異常斷電的處理方法的步驟流程圖。如圖5所示,本實施例的儲存裝置異常斷電的處理方法包含以下步驟S501~S519,其可利用儲存裝置異常斷電的處理系統以處理儲存裝置,其中儲存裝置包含相互連接的主控制器以及位址儲存器,儲存裝置包含相互連接的儲存控制電路以及多個儲存區塊。
步驟S501:利用斷電處理系統的主控制器,提供數據至儲存 裝置的儲存控制電路。
步驟S503:利用斷電處理系統的主控制器,輸出位址儲存指令至位址儲存器。
步驟S505:利用斷電處理系統的位址儲存器,依據來自主控制器的位址儲存指令,以儲存待執行程序的儲存裝置的儲存區塊的位址。
步驟S507:利用斷電處理系統的位址儲存器,依據來自主控制器的位址儲存指令,以設定對應待執行程序的儲存裝置的儲存區塊的位址的旗標。
步驟S509:利用斷電處理系統的主控制器,輸出可程式化指令以指示儲存裝置的儲存控制電路控制儲存裝置的儲存區塊執行程序,程序包含存取數據。
步驟S511:利用斷電處理系統的主控制器,在儲存裝置執行程序的過程中,判斷儲存裝置是否發生異常斷電,若是,執行步驟S513,若否,依序執行步驟S517~S519。
步驟S513:利用主控制器,讀取位址儲存器中是否存在旗標,若是,執行步驟S515,若否,執行步驟S517~S519。
步驟S515:利用主控制器,依據接收到的電源異常訊號判斷儲存裝置的儲存區塊的損壞程度,以指示儲存裝置的儲存控制電路對此儲存區塊執行對應的錯誤處理程序。在錯誤處理程序執行完成例如抹除儲存區塊儲存的數據後,接著跳回執行步驟S501,利用主控制器重新提供數據。
步驟S517:利用斷電處理系統的主控制器,輸出位址清除指令至斷電處理系統的位址儲存器。
步驟S519:利用斷電處理系統的位址儲存器,依據位址清除指令,以清除所儲存的已完成執行程序作業的儲存區塊的旗標和位址。
[實施例的有益效果]
本發明的有益效果在於,本發明所提供的儲存裝置異常斷電的處理系統和方法,其可在儲存裝置發生異常斷電導致儲存區塊損壞為壞塊時,即時地將壞塊修復回正常的儲存區塊,避免由於儲存區塊的損壞時間太久未修復,而影響儲存裝置整體的運作,導致損壞情況更為嚴重。
最後須說明地是,於前述說明中,儘管已將本發明技術的概念以多個示例性實施例具體地示出與闡述,然而在此項技術的領域中具有通常知識者將理解,在不背離由以下申請專利範圍所界定的本發明技術的概念之範圍的條件下,可對其作出形式及細節上的各種變化。
10‧‧‧主控制器
102‧‧‧位址儲存指令
1022‧‧‧位址清除指令
1052‧‧‧可程式化指令
1053‧‧‧電源偵測訊號
1054‧‧‧錯誤處理程序
105、106‧‧‧數據
216‧‧‧位址儲存器
231、241‧‧‧位址
51~56‧‧‧儲存裝置
5011‧‧‧電源正常訊號
5012‧‧‧電源異常訊號

Claims (8)

  1. 一種儲存裝置異常斷電的處理系統,適用於一或多個儲存裝置,各該儲存裝置包含多個儲存區塊以及與該多個儲存區塊連接的一儲存控制電路,該儲存裝置異常斷電的處理系統包含:一主控制器,連接各該儲存控制電路,配置以提供一數據至該儲存控制電路以及輸出一位址儲存指令,接著該主控制器輸出一可程式化指令以指示該儲存控制電路控制該儲存區塊執行一程序,該程序包含存取該數據,該主控制器在該儲存區塊執行該程序後輸出一位址清除指令;以及一位址儲存器,連接該主控制器,配置以依據該位址儲存指令以儲存待執行該程序的該儲存裝置的該儲存區塊的一位址,該位址儲存器依據該位址清除指令以清除該位址;其中當該儲存裝置執行該程序的過程中發生異常斷電,接著經過一時間後該儲存裝置復電而重新啟動時,該主控制器讀取該位址儲存器,依據該位址判斷執行該程序的該儲存區塊,並指示該儲存控制電路對該儲存區塊執行一錯誤處理程序。
  2. 如請求項1所述的儲存裝置異常斷電的處理系統,其中該位址儲存器依據該位址儲存指令以設定對應待執行該程序的該儲存裝置的該儲存區塊的該位址的一旗標;該主控制器判斷該儲存裝置開始執行該程序後發生異常斷電時,讀取該位址儲存器存在該旗標時執行該錯誤處理程序。
  3. 如請求項1所述的儲存裝置異常斷電的處理系統,其中該主控制器輸出一電源偵測訊號至該儲存控制電路;該儲存控制電路接收到電源偵測訊號時,依據該儲存裝置未發生斷電的情形回應一電源正常訊號至該主控制器,或依據該儲存裝置發生斷電並已重新啟動的情形回應一電源異常訊 號至該主控制器;該主控制器依據該電源異常訊號判斷在該儲存裝置執行該程序的過程中發生異常斷電時,該主控制器依據該電源異常訊號指示的該儲存區塊的損壞程度,以指示該儲存控制電路對該儲存區塊執行對應的該錯誤處理程序。
  4. 如請求項1所述的儲存裝置異常斷電的處理系統,其中該錯誤處理程序包含該主控制器指示該儲存控制電路抹除該儲存區塊存取不完整的該數據,或該主控制器格式化該儲存裝置,接著該主控制器提供一更新數據至該儲存控制電路,並重新存取該更新數據以更新該儲存區塊。
  5. 一種儲存裝置異常斷電的處理方法,適用於一或多個儲存裝置,各該儲存裝置包含多個儲存區塊以及與該多個儲存區塊連接的一儲存控制電路,該儲存裝置異常斷電的處理方法包含以下步驟:(a)利用一主控制器,提供一數據至該儲存控制電路;(b)利用該主控制器,輸出一位址儲存指令至一位址儲存器;(c)利用該位址儲存器,依據該位址儲存指令以儲存待執行該程序的該儲存裝置的該儲存區塊的一位址;(d)利用該主控制器輸出一可程式化指令以指示該儲存控制電路控制該儲存區塊執行一程序,該程序包含存取該數據;(e)利用該主控制器在該儲存裝置執行該程序的過程中,判斷該儲存裝置是否發生異常斷電,若是,執行步驟(f)~(g),若否,該儲存裝置持續執行該程序,直到完成該程序時接著依序執行步驟(h)~(i);(f)利用該主控制器,從該位址儲存器取得該位址,並依據該位址判斷執行該程序的該儲存區塊;(g)利用該主控制器,判斷在經過一段時間後該儲存裝置復電而重新啟動時,指示該儲存控制電路對該儲存區塊執行一 錯誤處理程序,並接著跳回再次執行步驟(a);(h)利用該主控制器,在該儲存區塊執行該程序完成後,輸出一位址清除指令至該位址儲存器;以及(i)依據該位址清除指令,清除該位址儲存器所儲存的該位址。
  6. 如請求項5所述的儲存裝置異常斷電的處理方法,更包含以下步驟:利用該位址儲存器,依據該位址儲存指令以設定對應待執行該程序的該儲存裝置的該儲存區塊的該位址的一旗標;以及利用該主控制器,判斷該儲存裝置開始執行該程序後發生異常斷電時,讀取該位址儲存器是否存在該旗標,若否,執行步驟(h)~(i),若是,執行該錯誤處理程序,並接著跳回再次執行步驟(a)。
  7. 如請求項5所述的儲存裝置異常斷電的處理方法,更包含以下步驟:利用該主控制器,輸出一電源偵測訊號至該儲存控制電路;利用該儲存控制電路,在未斷電時回應一電源正常訊號至該主控制器,或在該儲存裝置發生斷電並重新啟動後,回應一電源異常訊號至該主控制器;以及利用該主控制器,依據接收到的是該電源正常訊號或該電源異常訊號,以判斷在該儲存裝置執行該程序的過程中是否發生異常斷電,若是,依據接收到的該電源異常訊號判斷該儲存區塊的損壞程度,以執行對應的該錯誤處理程序。
  8. 如請求項5所述的儲存裝置異常斷電的處理方法,更包含以下步驟:該錯誤處理程序包含該主控制器指示該儲存控制電路抹除該儲存區塊存取不完整的該數據,或格式化該儲存裝置。
TW107130620A 2018-08-31 2018-08-31 儲存裝置異常斷電的處理系統和方法 TWI696951B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107130620A TWI696951B (zh) 2018-08-31 2018-08-31 儲存裝置異常斷電的處理系統和方法
CN201811080829.1A CN110875078B (zh) 2018-08-31 2018-09-17 存储装置异常断电的处理系统和方法
US16/198,808 US11016839B2 (en) 2018-08-31 2018-11-22 System and method for processing storage device abnormally powered down

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107130620A TWI696951B (zh) 2018-08-31 2018-08-31 儲存裝置異常斷電的處理系統和方法

Publications (2)

Publication Number Publication Date
TW202011181A TW202011181A (zh) 2020-03-16
TWI696951B true TWI696951B (zh) 2020-06-21

Family

ID=69641181

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107130620A TWI696951B (zh) 2018-08-31 2018-08-31 儲存裝置異常斷電的處理系統和方法

Country Status (3)

Country Link
US (1) US11016839B2 (zh)
CN (1) CN110875078B (zh)
TW (1) TWI696951B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220053376A (ko) * 2020-10-22 2022-04-29 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604548A (zh) * 2009-03-26 2009-12-16 成都市华为赛门铁克科技有限公司 一种固态硬盘及数据存储方法
CN101963891A (zh) * 2010-09-25 2011-02-02 成都市华为赛门铁克科技有限公司 数据存储处理方法与装置、固态硬盘系统与数据处理系统
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
CN103995578A (zh) * 2013-03-15 2014-08-20 晶天电子(深圳)有限公司 一种具有绿能数据持续模式的器件驱动器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
US7003620B2 (en) * 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
KR20050027787A (ko) * 2003-09-16 2005-03-21 삼성전자주식회사 데이터 기록 상태 정보를 제공하는 광 디스크
EP2003569B1 (en) * 2006-03-13 2010-06-02 Panasonic Corporation Flash memory controller
BRPI0815619A2 (pt) * 2007-08-21 2015-02-18 Thomson Licensing Método e sistema para o reparo de sistemas de arquivos danificados do disco rígido
CN103886902B (zh) * 2012-12-19 2017-08-04 比亚迪股份有限公司 一种eeprom存储装置及其数据存储方法
EP2979185B1 (en) * 2013-03-28 2019-01-30 Hewlett-Packard Enterprise Development LP Address range transfer from first node to second node
US20150006815A1 (en) * 2013-06-28 2015-01-01 Lsi Corporation Backup of cached dirty data during power outages
US9208077B1 (en) * 2014-05-30 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Forced map entry flush to prevent return of old data
US9659619B2 (en) * 2015-05-21 2017-05-23 Sandisk Technologies Llc System and method for memory integrated circuit chip write abort indication
US20170083254A1 (en) * 2015-09-19 2017-03-23 Qualcomm Incorporated Secure transaction management techniques
JP6734536B2 (ja) * 2016-07-29 2020-08-05 富士通株式会社 情報処理装置及びメモリコントローラ
CN108009101A (zh) * 2017-11-30 2018-05-08 郑州云海信息技术有限公司 一种固态硬盘异常掉电处理方法、系统、介质及设备
US10936446B2 (en) * 2018-02-05 2021-03-02 Vmware, Inc. Efficient handling of block write atomicity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604548A (zh) * 2009-03-26 2009-12-16 成都市华为赛门铁克科技有限公司 一种固态硬盘及数据存储方法
CN101963891A (zh) * 2010-09-25 2011-02-02 成都市华为赛门铁克科技有限公司 数据存储处理方法与装置、固态硬盘系统与数据处理系统
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
CN103995578A (zh) * 2013-03-15 2014-08-20 晶天电子(深圳)有限公司 一种具有绿能数据持续模式的器件驱动器

Also Published As

Publication number Publication date
US11016839B2 (en) 2021-05-25
US20200073750A1 (en) 2020-03-05
TW202011181A (zh) 2020-03-16
CN110875078B (zh) 2021-12-14
CN110875078A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
TWI649759B (zh) 資料儲存裝置與將資料寫入記憶體裝置之方法
US8046528B2 (en) Data writing method for flash memory, and flash memory controller and storage device thereof
US9208901B2 (en) Memory buffer having accessible information after a program-fail
US9417967B2 (en) Computing device and method for automatically recovering bios of computing device
US8605533B2 (en) Apparatus and method for protecting data in flash memory
JP4930555B2 (ja) 制御装置、制御方法およびストレージシステム
US11481294B2 (en) Runtime cell row replacement in a memory
US20170169905A1 (en) Dram row sparing
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
US10268578B1 (en) Data preservation and recovery in a memory component
WO2016180093A1 (zh) Flash芯片读写控制电路和方法、AMOLED应用电路
TWI447579B (zh) 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
CN102395956B (zh) 内存备份过程中的系统命令的处理方法和装置
JP2015176628A (ja) 半導体記憶装置及びメモリコントローラ
TW201312573A (zh) 快閃記憶體儲存裝置及其不良儲存區域的判定方法
TWI696951B (zh) 儲存裝置異常斷電的處理系統和方法
US20150324248A1 (en) Information processing device, control method and recording medium for recording control program
JP2008251154A (ja) 不揮発性半導体記憶装置
US20150248330A1 (en) Memory system provided with nand flash memory and method including simultaneously writing data to first and second districts
TW201526011A (zh) 電子裝置及其資料維護方法
JP2007206775A (ja) メモリコントローラおよびフラッシュメモリシステム
TWI436367B (zh) 具有寫入保護機制之非揮發性快閃記憶體運作方法
JPWO2004092962A1 (ja) 半導体装置、リセット制御システム及びメモリリセット方法
JP4421659B2 (ja) フラッシュメモリを有する電子機器
JP2023183437A (ja) 記憶システムおよび記憶方法