本發明涉及一種存儲器管理方法,尤其涉及一種用于可復寫式非揮發性存儲器模塊的存儲器管理方法、存儲器控制電路單元與存儲器存儲裝置。
背景技術:
:數碼相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于可復寫式非揮發性存儲器(rewritablenon-volatilememory)具有數據非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適于此些電子產品。因此,近年快閃存儲器產業成為電子產業中相當熱門的一環。例如,廣泛用于行動電子裝置上的嵌入式多媒體卡(embededMultiMediaCard,eMMC)就是一種以快閃存儲器作為存儲媒體的存儲裝置。一般來說,使用可復寫式非揮發性存儲器的存儲裝置(如,固態硬盤),會在面臨到不正常的斷電事件時,會需要在(由電容或是電池所提供的)剩余的臨時電力被消耗完畢之前,將工作隊列(Workqueue)中所有必要的已排程工作執行完畢。然而,有時候,會因為執行工作隊列中非必要的已排程工作而耗費了許多時間(或,消耗了過多的臨時電力),進而導致必要的已排程工作無法被執行。因此,如何在不正常的斷電事件發生后,及時地將工作隊列中的必要的工作執行完畢,是此領域技術人員所致力的目標。技術實現要素:本發明提供一種存儲器管理方法、存儲器控制電路單元與存儲器存儲裝置,可在不正常的斷電事件發生后,節省處理工作隊列中的工作的時間,進而在剩余電力耗盡之前有效率地將必要的工作執行完畢。本發明的一范例實施例提供用于可復寫式非揮發性存儲器模塊的一種存儲器管理方法。所述存儲器管理方法包括判斷特殊事件是否發生;若特殊事件發生,判斷工作隊列中至少一事件的類型,其中工作隊列存儲有多個事件, 并且所述事件中的每一事件分別用以執行相對應的工作;根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同于所述第二工作;以及當所述第一工作調整為所述第二工作后,待命執行所述第二工作。在本發明的一實施例中,上述存儲器管理方法還包括暫停執行中的所述工作隊列,及當所述第一工作調整為所述第二工作后,繼續執行所述工作隊列。在本發明的一實施例中,其中所述第一工作包括讀取操作、抹除操作或系統操作,其中所述第二工作包括無操作工作。在本發明的一實施例中,其中所述第二工作包括重置操作。在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的存儲器參數單元,其中對應所述事件之中的每一事件的所述存儲器參數單元存儲有對應所述事件之中的每一事件的事件執行指令。此外,上述存儲器管理方法還包括,若處理所述事件之中的每一事件,根據所述事件之中的每一事件的所述指標所指向的所述存儲器參數單元,來讀取存儲在所述存儲器參數單元的對應所述事件之中的每一事件的所述事件執行指令;以及根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。在本發明的一實施例中,其中上述判斷所述工作隊列中所述至少一事件的所述類型的步驟包括辨識所述至少一事件的指標所指向的事件執行指令的類型;以及根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型。在本發明的一實施例中,其中上述根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的步驟還包括若所述至少一事件的所述類型為第一類型,將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作;若所述至少一事件的所述類型為第二類型,將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作;以及若所述至少一事件的所述類型為第三類型,不調整所述至少一事件所執行的所述工作。在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用于管理所述可復寫式非揮發性存儲器模塊,其中來自所述主機系統的所述寫入指令用以指示寫入使用者數據至所述可復寫式非揮發性存儲器模塊,其中上述根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型的步驟包括,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,判定所述至少一事件的所述類型為所述第一類型;若所述至少一事件的所述指標指向至所述抹除指令,判定所述至少一事件的所述類型為所述第二類型;以及若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。在本發明的一實施例中,其中上述根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的步驟包括,若所述至少一事件的所述類型為所述第一類型或所述第二類型,從所述工作隊列中移除所述至少一事件。在本發明的一實施例中,其中所述特殊事件包括電源錯誤事件、快速執行工作隊列事件或清除工作隊列事件。本發明的一范例實施例提供用于控制存儲器存儲裝置的一種存儲器控制電路單元。所述存儲器控制電路單元包括主機接口、存儲器接口與存儲器管理電路。主機接口電性連接至主機系統。存儲器接口電性連接至可復寫式非揮發性存儲器模塊。存儲器管理電路電性連接至所述主機接口與所述存儲器接口。所述存儲器管理電路用以判斷特殊事件是否發生,其中若所述特殊事件發生,所述存儲器管理電路還用以判斷工作隊列中至少一事件的類型,其中所述工作隊列存儲有多個事件,并且所述事件中的每一事件分別用以執行相對應的工作,其中所述存儲器管理電路還用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同于所述第二工作,其中當所述第一工作調整為所述第二工作后,所述存儲器管理電路還用以待命執行所述第二工作。在本發明的一實施例中,其中所述存儲器管理電路暫停執行中的所述工作隊列,及當所述第一工作調整為所述第二工作后,繼續執行所述工作隊列。在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的存儲器參數單元,其中對應所述事件之中的每一事件的所述存儲器參數單元存儲有對應所述事件之中的每一事件的事件執行指令。所述存儲器管理電路執行所述工作隊列以處理所述工作隊列中的所述事件。若所述存儲器管理電路處理所述事件之中的每一事件,所述存儲器管理電路根據所述事件之中的每一事件的所述指標所指向的所述存儲器參數單元,來讀取存儲在所述存儲器參數單元的對應所述事件之中的每一事件的所述事件執行指令。此外,所述存儲器管理電路根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。在本發明的一實施例中,其中在上述判斷所述工作隊列中所述至少一事件的所述類型的運作中,所述存儲器管理電路辨識所述至少一事件的指標所指向的事件執行指令的類型,并且根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型。在本發明的一實施例中,其中在上述所述存儲器管理電路還用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為第一類型,所述存儲器管理電路將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作,其中若所述至少一事件的所述類型為第二類型,所述存儲器管理電路將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作,其中若所述至少一事件的所述類型為第三類型,所述存儲器管理電路不調整所述至少一事件所執行的所述工作。在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用于管理所述可復寫式非揮發性存儲器模塊,其中來自所述主機系統的所述寫入指令用以指示寫入使用者數據至所述可復寫式非揮發性存儲器模塊。在上述所述存儲器管理電路根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型的運作中,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,所述存 儲器管理電路判定所述至少一事件的所述類型為所述第一類型,其中若所述至少一事件的所述指標指向至所述抹除指令,所述存儲器管理電路判定所述至少一事件的所述類型為所述第二類型,其中若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。在本發明的一實施例中,其中在上述所述存儲器管理電路還用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為所述第一類型或所述第二類型,所述存儲器管理電路從所述工作隊列中移除所述至少一事件。本發明的一范例實施例提供一種存儲器存儲裝置,其包括連接接口單元、可復寫式非揮發性存儲器模塊與存儲器控制電路單元。連接接口單元電性連接至主機系統。存儲器控制電路單元電性連接至所述連接接口單元與所述可復寫式非揮發性存儲器模塊。所述存儲器控制電路單元用以判斷特殊事件是否發生,其中若所述特殊事件發生,所述存儲器控制電路單元還用以判斷工作隊列中至少一事件的類型,其中所述工作隊列存儲有多個事件,并且所述事件中的每一事件分別用以執行相對應的工作,其中所述存儲器控制電路單元還用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同于所述第二工作,其中當所述第一工作調整為所述第二工作后,所述存儲器控制電路單元還用以待命執行所述第二工作。在本發明的一實施例中,其中所述存儲器控制電路單元暫停執行中的所述工作隊列,及當所述第一工作調整為所述第二工作后,繼續執行所述工作隊列。在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的存儲器參數單元,其中對應所述事件之中的每一事件的所述存儲器參數單元存儲有對應所述事件之中的每一事件的事件執行指令。所述存儲器控制電路單元執行所述工作隊列以處理所述工作隊列中的所述事件。若所述存儲器控制電路單元處理所述事件之中的每一事件,所述存儲器控制電路單元 根據所述事件之中的每一事件的所述指標所指向的所述存儲器參數單元,來讀取存儲在所述存儲器參數單元的對應所述事件之中的每一事件的所述事件執行指令。此外,所述存儲器控制電路單元根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。在本發明的一實施例中,其中在上述判斷所述工作隊列中所述至少一事件的所述類型的運作中,所述存儲器控制電路單元辨識所述至少一事件的指標所指向的事件執行指令的類型,并且根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型。在本發明的一實施例中,其中在上述所述存儲器控制電路單元還用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為第一類型,所述存儲器控制電路單元將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作,其中若所述至少一事件的所述類型為第二類型,所述存儲器控制電路單元將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作,其中若所述至少一事件的所述類型為第三類型,所述存儲器控制電路單元不調整所述至少一事件所執行的所述工作。在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用于管理所述可復寫式非揮發性存儲器模塊,其中來自所述主機系統的所述寫入指令用以指示寫入使用者數據至所述可復寫式非揮發性存儲器模塊。在上述所述存儲器控制電路單元根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作隊列中所述至少一事件的所述類型的運作中,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,所述存儲器控制電路單元判定所述至少一事件的所述類型為所述第一類型,其中若所述至少一事件的所述指標指向至所述抹除指令,所述存儲器控制電路單元判定所述至少一事件的所述類型為所述第二類型,其中若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。在本發明的一實施例中,其中在上述所述存儲器控制電路單元還用以根 據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為所述第一類型或所述第二類型,所述存儲器控制電路單元從所述工作隊列中移除所述至少一事件。基于上述,本發明的范例實施例所提供的存儲器管理方法、存儲器控制電路單元與存儲器存儲裝置,可調整工作隊列中的已排程指令,使非必要的指令被替換為無操作指令或重置指令,以大幅減少處理非必要的指令所耗費的時間(電力)。此外,節省后的剩余臨時電力將足以執行必要的指令。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。附圖說明圖1為本發明的一范例實施例的主機系統、存儲器存儲裝置及輸入/輸出I/O裝置的示意圖;圖2為本發明的另一范例實施例的主機系統、存儲器存儲裝置及輸入、輸出I/O裝置的示意圖;圖3為本發明的另一范例實施例的主機系統與存儲器存儲裝置的示意圖;圖4為本發明的一范例實施例的存儲器存儲裝置的概要方塊圖;圖5為本發明的一范例實施例的存儲器控制電路單元的概要方塊圖;圖6為本發明的一范例實施例的指標的運作示意圖;圖7為本發明的范例實施例的調整指標的運作示意圖;圖8為本發明的一范例實施例的存儲器管理方法的步驟流程圖。附圖標記說明:10:存儲器存儲裝置;11:主機系統;110:系統總線;111:處理器;112:隨機存取存儲器;113:只讀存儲器;114:數據傳輸接口;12:I/O裝置;20:主機板;201:隨身盤;202:內存卡;203:固態硬盤;204:無線存儲器存儲裝置;205:全球定位系統模塊;206:網絡適配器;207:無線傳輸裝置;208:鍵盤;209:屏幕;210:喇叭;211:鼠標;30:存儲器存儲裝置;31:主機系統;32:SD卡;33:CF卡;34:嵌入式存儲裝置;341:嵌入式多媒體卡;342:嵌入式多芯片封裝存儲裝置;402:連接接口單元;404:存儲器控制電路單元;406:可復寫式非揮發性存儲器模塊;410(0)~410(N):實體抹除單元;502:存儲器管理電路;504:主機接口;506:存儲器接口;508:緩沖存儲器;510:電源管理電路;512:錯誤檢查與校正電路;610:工作隊列;611~616:指標;621~626、631、632:存儲器參數單元;S801、S803、S805、S807、S809:存儲器管理方法的流程步驟。具體實施方式圖1為本發明的一范例實施例的主機系統、存儲器存儲裝置及輸入/輸出I/O裝置的示意圖。圖2為本發明的另一范例實施例的主機系統、存儲器存儲裝置及輸入、輸出I/O裝置的示意圖。請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取存儲器(randomaccessmemory,RAM)112、只讀存儲器(readonlymemory,ROM)113及數據傳輸接口114。處理器111、隨機存取存儲器112、只讀存儲器113及數據傳輸接口114皆電性連接至系統總線(systembus)110。在本范例實施例中,主機系統11是通過數據傳輸接口114與存儲器存儲裝置10電性連接。例如,主機系統11可通過數據傳輸接口114將數據寫入至存儲器存儲裝置10或從存儲器存儲裝置10中讀取數據。此外,主機系統11是通過系統總線110與I/O裝置12電性連接。例如,主機系統11可通過系統總線110將輸出信號傳送至I/O裝置12或從I/O裝置12接收輸入信號。在本范例實施例中,處理器111、隨機存取存儲器112、只讀存儲器113及數據傳輸接口114可設置在主機系統11的主機板20上。數據傳輸接口114的數目可以是一或多個。通過數據傳輸接口114,主機板20可以通過有線或無線方式電性連接至存儲器存儲裝置10。存儲器存儲裝置10可例如是隨身盤201、內存卡202、固態硬盤(SolidStateDrive,SSD)203或無線存儲器存儲裝置204。無線存儲器存儲裝置204可例如是近距離無線通信(NearFieldCommunication,NFC)存儲器存儲裝置、無線傳真(WiFi)存儲器存儲裝置、藍牙(Bluetooth)存儲器存儲裝置或低功耗藍牙存儲器存儲裝置(例如,iBeacon)等以各式無線通信技術為基礎的存儲器存儲裝置。此外,主機板20也可以通過系統總線110電性連接至全球定位系統(GlobalPositioningSystem,GPS)模塊205、網絡適配器206、無線傳輸裝置207、鍵盤208、屏幕209、喇叭210、 鼠標211等各式I/O裝置。例如,在一范例實施例中,主機板20可通過無線傳輸裝置207存取無線存儲器存儲裝置204。在一范例實施例中,所提及的主機系統為可實質地與存儲器存儲裝置配合以存儲數據的任意系統。雖然在上述范例實施例中,主機系統是以電腦系統來作說明,然而,圖3為本發明的另一范例實施例的主機系統與存儲器存儲裝置的示意圖。請參照圖3,在另一范例實施例中,主機系統31也可以是數碼相機、攝像機、通信裝置、音頻播放器、視頻播放器或平板電腦等系統,而存儲器存儲裝置30可為其所使用的SD卡32、CF卡33或嵌入式存儲裝置34等各式非揮發性存儲器存儲裝置。嵌入式存儲裝置34包括嵌入式多媒體卡(embeddedMMC,eMMC)341及/或嵌入式多芯片封裝存儲裝置(embeddedMultiChipPackage,eMCP)342等各類型將存儲器模塊直接電性連接于主機系統的基板上的嵌入式存儲裝置。圖4為本發明的一范例實施例的存儲器存儲裝置的概要方塊圖。請參照圖4,存儲器存儲裝置10包括連接接口單元402、存儲器控制電路單元404與可復寫式非揮發性存儲器模塊406。在本范例實施例中,連接接口單元402是相容于序列先進附件(SerialAdvancedTechnologyAttachment,SATA)標準。然而,必須了解的是,本發明不限于此,連接接口單元402也可以是符合并列先進附件(ParallelAdvancedTechnologyAttachment,PATA)標準、電氣和電子工程師協會(InstituteofElectricalandElectronicEngineers,IEEE)1394標準、高速周邊零件連接接口(PeripheralComponentInterconnectExpress,PCIExpress)標準、通用序列總線(UniversalSerialBus,USB)標準、安全數位(SecureDigital,SD)接口標準、超高速一代(UltraHighSpeed-I,UHS-I)接口標準、超高速二代(UltraHighSpeed-II,UHS-II)接口標準、記憶棒(MemoryStick,MS)接口標準、多芯片封裝(Multi-ChipPackage)接口標準、多媒體存儲卡(MultiMediaCard,MMC)接口標準、崁入式多媒體存儲卡(EmbeddedMultimediaCard,eMMC)接口標準、通用快閃存儲器(UniversalFlashStorage,UFS)接口標準、嵌入式多芯片封裝(embeddedMultiChipPackage,eMCP)接口標準、小型快閃(CompactFlash,CF)接口標準、整合式驅動電子接口(IntegratedDeviceElectronics,IDE)標準或其他適合的標準。連接接口單元402可與存儲器控制電路單元404封裝在一 個芯片中,或者連接接口單元402是布設于一包含存儲器控制電路單元404的芯片外。圖5為本發明一范例實施例的存儲器控制電路單元的概要方塊圖。請參照圖5,存儲器控制電路單元404包括存儲器管理電路502、主機接口504與存儲器接口506。存儲器管理電路502用以控制存儲器控制電路單元404的整體運作。具體來說,存儲器管理電路502具有多個控制指令,并且在存儲器存儲裝置10運作時,此些控制指令會被執行以進行數據的寫入、讀取與抹除等運作。在本范例實施例中,存儲器管理電路502的控制指令是以韌體型式來實作。例如,存儲器管理電路502具有微處理器單元(未示出)與只讀存儲器(未示出),并且此些控制指令是被燒錄至此只讀存儲器中。當存儲器存儲裝置10運作時,此些控制指令會由微處理器單元來執行以進行數據的寫入、讀取與抹除等運作。應注意的是,以下存儲器管理電路502所執行的操作,也可表示存儲器控制電路單元404的整體運作。在本發明另一范例實施例中,存儲器管理電路502的控制指令也可以程式碼型式存儲于可復寫式非揮發性存儲器模塊406的特殊區域(例如,存儲器模塊中專用于存放系統數據的系統區)中。此外,存儲器管理電路502具有微處理器單元(未示出)、只讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有驅動碼,并且當存儲器控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將存儲于可復寫式非揮發性存儲器模塊406中的控制指令載入至存儲器管理電路502的隨機存取存儲器中。之后,微處理器單元會運轉此些控制指令以進行數據的寫入、讀取與抹除等運作。主機接口504是電性連接至存儲器管理電路502并且用以電性連接至連接接口單元402,以接收與識別主機系統11所傳送的指令與數據。也就是說,主機系統11所傳送的指令與數據會通過主機接口504來傳送至存儲器管理電路502。在本范例實施例中,主機接口504是相容于eMMC標準。然而,必須了解的是本發明不限于此,主機接口504也可以是相容于PATA標準、IEEE1394標準、PCIExpress標準、UFS標準、UHS-I接口標準、UHS-II接口標準、SD標準、MS標準、SATA標準、CF標準、IDE標準或其他適合的數據傳輸標準。存儲器接口506是電性連接至存儲器管理電路502并且用以存取可復寫式非揮發性存儲器模塊406。也就是說,欲寫入至可復寫式非揮發性存儲器模塊406的數據會通過存儲器接口506轉換為可復寫式非揮發性存儲器模塊406所能接受的格式。在一范例實施例中,存儲器控制電路單元404還包括緩沖存儲器508、電源管理電路510與錯誤檢查與校正電路512。緩沖存儲器508是電性連接至存儲器管理電路502并且用以暫存來自于主機系統11的數據與指令或來自于可復寫式非揮發性存儲器模塊406的數據。錯誤檢查與校正電路512是電性連接至存儲器管理電路502并且用以執行錯誤檢查與校正程序以確保數據的正確性。具體來說,當存儲器管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的數據產生對應的錯誤檢查與校正碼(ErrorCheckingandCorrectingCode,ECCCode),并且存儲器管理電路502會將對應此寫入指令的數據與對應的錯誤檢查與校正碼寫入至可復寫式非揮發性存儲器模塊406中。之后,當存儲器管理電路502從可復寫式非揮發性存儲器模塊406中讀取數據時會同時讀取此數據對應的錯誤檢查與校正碼,并且錯誤檢查與校正電路512會依據此錯誤檢查與校正碼對所讀取的數據執行錯誤檢查與校正程序。電源管理電路510是電性連接至存儲器管理電路502并且用以控制存儲器存儲裝置10的電源。此外,在本范例實施例中,電源管理電路510還用以檢測斷電事件的發生,其中斷電事件還可分為正常的斷電事件與不正常的斷電事件(以下也稱,電源錯誤事件)。具體來說,正常的斷電事件例如是使用者執行主機系統11的關機或休眠等預設的斷開電源的操作,或是主機系統11因為安裝于主機系統的作業系統(OS)的設定,而根據設定來進入至關機或是休眠等斷開電源的操作。相對的,電源錯誤事件(Powerfailureevent)例如是主機系統11所接入的電源忽然斷開(如,停電事件),或主機系統的所連接的電池已耗盡等等,非使用者或是非主機系統11所控制的斷電事件。此外,電源管理電路510還包括至少一電容,其用以在電源錯誤事件發 生后還可以供應臨時電力給存儲器存儲裝置10,但本發明不限于此。例如,在另一范例實施例中,電源管理電路510還電性連接至少一電池(或其他適合的可用來存儲電力的裝置),以供應臨時電力給存儲器存儲裝置10。在本范例實施例中,當電源管理電路510檢測到電源錯誤事件的發生時,電源管理電路510會發出電源錯誤通知給存儲器管理電路502,以使存儲器管理電路502得以使用上述的臨時電力來進行針對電源錯誤事件的操作。具體來說,當接收到電源錯誤通知后,存儲器管理電路502會開始執行對應電源錯誤事件的特殊處理程序。例如,在本范例實施例中,存儲器管理電路502會先暫停執行中的部分或全部工作,并且優先地使用臨時電力來處理被暫停的工作中必須處理(mustbedone)的工作。上述的“電源錯誤通知”可使存儲器管理電路502用以判斷是否有電源錯誤事件發生,其中電源錯誤事件是屬于特殊事件的其中之一。在本范例實施例中,特殊事件包括電源錯誤事件、快速執行工作隊列事件或清除工作隊列事件。值得一提是,在本范例實施例中,存儲器管理電路502會判斷是否所述特殊事件的其中之一是否發生。此外,存儲器管理電路502會根據判斷特殊事件是否發生的結果,來開始執行本范例實施例所提供的對應特殊事件的特殊處理程序。由于本范例實施例所提供的存儲器管理方法與工作排程有關,因此,以下先會詳細說明在本范例實施例中存儲器管理電路502排程工作的運作,再接續說明本范例實施例所提供的存儲器管理方法如何在特殊處理程序中優化工作排程。在本范例實施例中,存儲器管理電路502會從主機系統11接收多個指令(如,寫入使用者數據的寫入指令)。此外,存儲器管理電路502本身也會執行多個系統指令來進行管理可復寫式非揮發性存儲器模塊406的操作(例如,數據合并指令或垃圾回收指令)。存儲器管理電路502會將欲對可復寫式非揮發性存儲器模塊406執行的每一指令(也稱,事件執行指令)的指令描述存儲至緩沖存儲器508中的特殊區塊(如,存儲器參數單元,FlashParameterUnit,FPU)。也就是說,每一事件執行指令的指令敘述會被存儲至分別對應每一事件執行指令的存儲器參數單元中。存儲器管理電路502會使用多個指標來指向至對應每一指令的特殊區塊,以讓存儲器管理電路502可通過指標來從所述指標 所指向的特殊區塊獲得記錄于特殊區塊的指令描述,進而通過指令描述來執行事件執行指令。簡單來說,也可視為存儲器管理電路502可以通過指標來指向對應的事件執行指令,進而進行所述指令所對應的工作。此外,存儲器管理電路502還可以存儲且排序多個事件(event)至工作隊列(queue)中,并且通過執行工作隊列來處理工作隊列中的事件,以執行對應事件的指令/工作。換句話說,也可視為存儲器管理電路502欲進行(處理)多個事件,并且使用工作隊列來存儲欲進行的所述事件,其中每一個事件可分別用以執行對應所述事件中的每一個事件的工作。此外,存儲在工作隊列的每一事件皆具有指標,如上所述,每一事件的所述指標會用以指向至對應其所屬事件的存儲器參數單元,以根據存儲在對應每一事件的存儲器參數單元中的指令描述來執行對應每一事件的事件執行指令,進而進行對應每一事件的工作。簡單來說,存儲在工作隊列的每一事件會指向至分別對應每一事件的事件執行指令。應注意的是,本發明并不限于存儲指令描述的元件為緩沖存儲器508。例如,在另一范例實施例中,存儲器管理電路502會將欲對可復寫式非揮發性存儲器模塊406執行的每一指令的指令描述存儲至存儲器管理電路502的隨機存取存儲器中或其他合適的存儲器中。以下為了便于說明,會使用單一的“存儲器參數單元”來表示記錄對應單一事件執行指令的指令描述的特殊區塊,并且每一事件的指標指向至對應每一事件的存儲器參數單元的動作也可用每一事件指向至對應每一事件的事件執行指令的動作來表示。然而,在其他范例實施例中,廠商也可設計其他適合的形式來記錄指令描述或事件執行指令。例如,在其他范例實施例中,存儲器管理電路502也可直接存儲且排序多個事件執行指令于工作隊列中,以進行對應此些事件執行指令的工作。圖6為本發明的一范例實施例的指標的運作示意圖。請參照圖6,舉例來說,假設存儲器管理電路502在緩沖存儲器508中分別記錄多筆事件執行指令的指令描述至多個存儲器參數單元621~626與存儲器參數單元631、632。在本范例實施例中,事件執行指令包括來自主機系統的寫入指令、讀取指令、抹除指令、系統指令、必要指令、非必要指令、無操作指令與重置指令,但本發明不限于此。事件執行指令也可包括其他存 儲器管理電路502可以執行的指令。如圖6所示出,存儲器參數單元621是記錄對應一個讀取指令的指令描述(也可稱為,存儲器參數單元621是記錄一個讀取指令);存儲器參數單元622是記錄對應一個抹除指令的指令描述(也可稱為,存儲器參數單元621是記錄一個抹除指令);存儲器參數單元623是記錄對應一個寫入指令的指令描述(也可稱為,存儲器參數單元621是記錄一個寫入指令);存儲器參數單元624是記錄對應系統指令的指令描述(也可稱為,存儲器參數單元621是記錄一個系統指令);存儲器參數單元625是記錄對應一個必要指令的指令描述(也可稱為,存儲器參數單元621是記錄一個必要指令);存儲器參數單元626是記錄對應一個非必要指令的指令描述(也可稱為,存儲器參數單元621是記錄一個非必要指令);存儲器參數單元631是記錄對應無操作(Non-operation)指令的指令描述(也可稱為,存儲器參數單元621是記錄一個無操作指令);存儲器參數單元632是記錄對應重置指令的指令描述(也可稱為,存儲器參數單元621是記錄一個重置指令)。在本范例實施例中,上述讀取指令例如是使用者所欲執行的用以讀取數據的指令、來自主機系統11的讀取指令,或其他的對應單一平面(plane)或是多平面(multi-plane)讀取指令。此外,根據讀取指令所執行的工作為讀取操作。上述抹除指令例如是抹除單一平面或是多平面的抹除指令,其用來抹除一或多個實體抹除單元。此外,根據抹除指令所執行的工作為抹除操作。上述寫入指令例如是使用者所欲執行的用以寫入使用者數據的指令、來自主機系統11的寫入指令。此外,根據寫入指令所執行的工作為寫入操作。上述系統指令例如是存儲器管理電路502為了管理可復寫式非揮發性存儲器模塊406所下達的指令。舉例來說,系統指令包括垃圾回收指令、數據合并指令、用以讀取系統資訊的讀取指令、用以寫入系統資訊的寫入指令。此外,根據系統指令所執行的工作為系統操作。此外,上述必要指令是指必須要被執行完畢的指令。具體來說,對應必要指令的指令描述可設置至少一位元來作為標記(如,“必要”標記)。當此標記為第一狀態時,表示此指令描述具有必要標記,并且表示此指令描述所對應的指令為必須被執行完畢(mustbedone)的必要指令。在本范例實施例中,指示寫入使用者數據的寫入指令的指令描述會具有“必要”標記。換句話說,指 示寫入使用者數據的寫入指令為必要指令的一種。此外,根據必要指令所執行的工作為必要操作。相對地,上述非必要指令為不具有“必要”標記的指令。或者,在一實施例中,對應非必要指令的指令描述的“必要”標記會被標記為第二狀態,其中第二狀態不同于第一狀態。非必要指令例如是系統指令、抹除指令與讀取指令也可屬于非必要指令。此外,根據非必要指令所執行的工作為非必要操作。換句話說,非必要指令所執行的工作可不執行。應注意的是,在另一實施例中,對應非必要指令的指令描述可另外設置至少一位元來作為標記(如,“非必要”標記)。當“非必要”標記為第三狀態時,表示對應此“非必要”標記的事件執行指令所執行的工作是非必要操作。在本范例實施例中,存儲器管理電路502會預先存儲對應無操作(Non-operation)指令的存儲器參數單元631與對應重置指令的存儲器參數單元632于緩沖存儲器508中。當存儲器管理電路502下達無操作指令至可復寫式非揮發性存儲器模塊406時,可復寫式非揮發性存儲器模塊406不進行任何操作,并且據此回應存儲器管理電路502此無操作指令已經執行完畢。此外,根據無操作指令所執行的工作為無操作工作。當存儲器管理電路502下達重置(Reset)指令至可復寫式非揮發性存儲器模塊406時,可復寫式非揮發性存儲器模塊406會進行重置操作,以準備接收且進行其他指令,并且在完成重置操作后回應存儲器管理電路502此重置指令已執行完畢。此外,根據重置指令所執行的工作為重置操作。在本范例實施例中,可復寫式非揮發性存儲器模塊406執行無操作指令所耗費的時間短于可復寫式非揮發性存儲器模塊406執行其他指令所耗費的時間,并且可復寫式非揮發性存儲器模塊406執行重置指令所耗費的時間短于可復寫式非揮發性存儲器模塊406執行寫入指令或讀取指令所耗費的時間。請再參考圖6,為了排程對應上述指令的工作,存儲器管理電路502會在工作隊列(如多觸發隊列,Multi-triggerqueue,MTQ)610中排序且記錄多個事件,其中每一事件分別具有指向至存儲器參數單元621~626的指標611~616。并且,存儲器管理電路502會執行此工作隊列610,以處理存儲在工作隊列610中的事件。更詳細地說,存儲器管理電路502會根據工作隊列610中的事件的指標611~616存儲于工作隊列610的順序來依序讀取所指向 的存儲器參數單元621~626,進而根據存儲在被指向的存儲器參數單元中的指令描述來進行對應的指令/工作。如圖6所示出,假設指標611指向至存儲器參數單元621;指標612指向至存儲器參數單元622;指標613指向至存儲器參數單元623;指標614指向至存儲器參數單元624;指標615指向至存儲器參數單元625;指標616指向至存儲器參數單元626。根據工作隊列610中的指標611~616的順序,存儲器管理電路502會依序讀取且執行記錄于存儲器參數單元621~626的指令描述。例如,對應記錄于存儲器參數單元621的指令描述的讀取指令會被先執行,并且對應記錄于存儲器參數單元626的指令描述的非必要指令會被最后執行。值得一提的是,在本實施例中,工作隊列610存儲了6個事件,并且每一事件具有1個指標,但本發明不限于此。例如,在另一范例實施例中,工作隊列610可存儲其它數目的事件,并且每一事件可具有其它數目的指標。如上所述,在本范例實施例中,存儲器管理電路502會判斷是否發生一可觸發特殊處理程序的特殊事件(如,電源錯誤事件、快速執行工作隊列事件或清除工作隊列事件)。舉例來說,假設特殊事件為電源錯誤事件。當接收到來自電源管理電路510的電源錯誤通知后,存儲器管理電路502會判定電源錯誤事件發生,暫停執行中的部分工作,以執行特殊處理程序。具體來說,存儲器管理電路502會執行一個處理電源錯誤事件的中斷,將部分硬件的運作暫停。存儲器管理電路502也會暫停執行中的工作隊列610。在此特殊處理程序中,存儲器管理電路502會判斷已排程(存儲)至工作隊列610中的事件,進而有效地利用臨時電力來進行工作隊列610中的必要的事件。具體來說,存儲器管理電路502會先根據事件分配記錄來辨識當前存儲在工作隊列610的多個事件,并且判斷存儲在工作隊列610中的事件的類型。接著,根據所判定的工作隊列610中的事件的類型來調整工作隊列610中的事件所執行的工作。更詳細來說,存儲器管理電路502會先根據事件分配記錄來辨識工作隊列610中的事件的指標所指向的事件執行指令的類型,并且根據所辨識的事件執行指令的類型,以判斷工作隊列中的事件的類型。應注意的是,所述事件分配記錄可存儲在存儲器管理電路502的只讀存儲器、隨機存取存儲器或其他合適的存儲器中,并且所述事件分配記錄存儲。此外, 在另一實施例中,存儲器管理電路502可直接(如,不需通過事件分配記錄)根據辨識工作隊列610中的事件的指標所指向的事件執行指令的內容來辨識事件執行指令的類型。在本范例實施例中,存儲器管理電路502會根據所判定的工作隊列610中的事件的類型來將工作隊列610中的事件所執行的工作從原本執行的特定工作(也稱,第一工作)調整為另一特定工作(也稱,第二工作),其中第一工作不同于第二工作。具體來說,所述第一工作包括讀取操作、抹除操作與系統操作,并且第二工作包括無操作工作。然而,在另一實施例中,第二工作還可以是重置操作。以下會更詳細說明本范例實施例如何根據所判定的工作隊列610中的事件的類型來將工作隊列610中的事件所執行的工作從第一工作調整為第二工作。在本范例實施例中,在執行特殊處理程序時,存儲器管理電路502可將事件執行指令的類型劃分為三種類型。第一種類型的事件執行指令(以下也稱,第一類型指令)是可以直接被跳過或是不執行的指令。換句話說,第一類型指令是非必要的且可從工作排程中抽走(不執行)的事件執行指令,故在執行特殊處理程序時,此第一類型指令可被置換為無操作指令。此第一類型指令可例如是讀取指令或系統指令。第二種類型的事件執行指令(以下也稱,第二類型指令)是指可以用重置指令來取代的事件執行指令。換句話說,在執行特殊處理程序時,此第二類型指令可被置換為重置指令。第二類型指令可例如是會影響多平面讀寫的指令、抹除指令,或其他一系列彼此關聯的事件執行指令的其中之一。如此一來,據此可避免可復寫式非揮發性存儲器模塊406因為此類彼此關聯的指令被置換后所導致的錯誤。第三種類型的事件執行指令(以下也稱,第三類型指令)是指必須被執行完畢的事件執行指令。第三類型指令可例如是上述的必要指令或寫入使用者數據的寫入指令。舉例來說,指標611指向至存儲器參數單元621,其中存儲器參數單元621記錄對應讀取指令的指令描述(簡言之,指標611指向至讀取指令),并且讀取指令為第一類型指令。存儲器管理電路502會根據讀取指令的類型(第一類型)來判定指標611所屬的事件為第一類型。以此類推,存儲器管理電路502 會根據指標612~616所指向的事件執行指令的類型來分別判斷指標612~616所屬的事件的類型。例如,根據上述的判斷方法與例子,指標612所屬的事件會被判定為第二類型;指標613所屬的事件會被判定為第三類型;指標614所屬的事件會被判定為第一類型;指標615所屬的事件會被判定為第三類型;指標616所屬的事件會被判定為第一類型。在另一實施例中,存儲器管理電路502可直接通過事件的指標的形式(如,指標的內容編碼)來得知指標所屬的事件的類型。例如,在另一實施例中,存儲器管理電路502不需去辨識工作隊列中事件的指標所指向的事件執行指令的類型,并且可直接從工作隊列中事件的指標的內容編碼來判定所述指標所屬的事件的類型。應注意的是,在本范例實施例中,指標616所指向的非必要指令被判定為第一類型,并且指標616所屬的事件會對應地被判定為第一類型。然而,在另一范例實施例中,指標616所指向的非必要指令被判定為第二類型,并且指標616所屬的事件會對應地被判定為第二類型。在判斷完指標611~616所屬的事件的類型后,存儲器管理電路502會根據指標611~616所屬的事件的類型來調整指標611~616。具體來說,存儲器管理電路502會根據指標611~616所屬的事件的類型來判斷是否要改變指標611~616所指向的存儲器參數單元,以改變根據指標616~616所執行的事件執行指令,進而調整存儲在工作隊列610中的事件所執行的工作。簡單來說,存儲器管理電路502會根據存儲在工作隊列610中的事件的類型來判斷是否要改變工作隊列610中的事件所進行的工作。也就是說,在本范例實施例中,存儲器管理電路502會利用改變指標611~616所指向的目的地(如,存儲器參數單元)的方式,來調整指標611~616所屬的事件所執行的工作。圖7為本發明的范例實施例的調整指標的運作示意圖。請參照圖7,存儲器管理電路502會根據指標611~616所屬的事件的類型,將第一類型的事件的指標指向至對應無操作指令的存儲器參數單元631(即,將第一類型的指標指向至無操作指令),以將第一類型的事件所執行的工作從第一工作(如,屬于第一工作的讀取操作或系統操作)調整為無操作工作;將第二類型的事件的指標指向至對應重置指令的存儲器參數單元632(即,將第一類型的指標指向至重置指令),將第二類型的事件所執行的工作從第一 工作(如,屬于第一工作的抹除操作)調整為重置操作;以及不改變第三類型的事件的指標所指向的存儲器參數單元(即,維持第三類型的指標原先所指向的事件執行指令,或不調整第三類型的事件所執行的工作)。應注意的是,在另一范例實施例中,廠商也可設定存儲器管理電路502將第一類型(或第二類型)的事件的指標指向至不影響可復寫式非揮發性存儲器模塊406的特殊指令,并且此特殊指令所需耗費的執行時間相較于其他指令較短。根據上述對應圖6的例子,存儲器管理電路502會將為第一類型的事件的指標611、614、616調整為指向至存儲器參數單元631;將為第二類型的事件的指標612調整為指向存儲器參數單元621。并且,存儲器管理電路502會維持第三類型的事件的指標613、615原先所指向的存儲器參數單元(如,指標613仍然指向至存儲器參數單元623,并且指標615仍然指向至存儲器參數單元625)。在完成根據工作隊列610中每一事件的類型來調整每一事件的指標所指向的事件執行指令后,存儲器管理電路502會離開處理電源錯誤事件的中斷,繼續恢復所有硬件的頻道,并且繼續執行工作隊列610。在一實施例中,存儲器管理電路502會繼續執行工作隊列610中尚未被執行的事件。應注意的是,在本范例實施例中,存儲器管理電路502會改變第一類型與第二類型的事件的指標所指向的存儲器參數單元。然而,在另一范例實施例中,存儲器管理電路502會直接“跳過”第一類型或第二類型的事件的指標,不執行第一類型或第二類型的指標,并且執行第三類型的事件的指標。例如,如上述的例子,存儲器管理電路502會僅執行指標613與指標615。換句話說,存儲器管理電路502會僅依序執行存儲器參數單元623所對應的寫入指令與存儲器參數單元625所對應的必要指令。在又另一范例實施例中,存儲器管理電路502會從工作隊列中移除上述第一類型與第二類型的事件。并且,存儲器管理電路502會根據未被移除的第三類型的事件,以執行對應的第三類型的事件執行指令。值得一提的是,在一范例實施例中,若工作隊列610不具有任何事件,存儲器管理電路502會加入一個重置事件于工作隊列610中,并且所述重置事件具有指向至重置指令(如,指向存儲器參數單元632)的指標。在另一范例實施例中,若在處理對應寫入指令的事件(也稱,寫入事件)之前未執行任何重 置事件,存儲器管理電路502會在所述對應寫入指令的事件之前加入一個重置事件。也就是說,在處理寫入事件之前,存儲器管理電路502會處理所述重置事件,以執行對應重置事件的重置操作。圖8為本發明的一范例實施例的存儲器管理方法的步驟流程圖。請參考圖8,在步驟S801中,存儲器管理電路502檢測特殊事件是否發生。若特殊事件發生,接續至步驟S803,存儲器管理電路502暫停執行中的工作隊列,其中所述工作隊列存儲有多個事件,并且所述事件中的每一事件分別用以執行對應所述事件之中的每一事件的工作。在步驟S805中,存儲器管理電路502判斷所述工作隊列中至少一事件的類型。在步驟S807中,存儲器管理電路502根據所述至少一事件的所述類型來調整所述至少一事件所執行的工作。在步驟S809中,當調整完所述至少一事件所執行的所述工作后,繼續執行所述工作隊列。綜上所述,本發明的范例實施例所提供的存儲器管理方法、存儲器控制電路單元與存儲器存儲裝置,可調整工作隊列中的已排程指令,使非必要的指令被替換為無操作指令或重置指令,以大幅減少處理非必要的指令所耗費的時間(電力)。此外,節省后的剩余臨時電力將足以執行必要的指令。最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。當前第1頁1 2 3