TWI596612B - 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents

記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 Download PDF

Info

Publication number
TWI596612B
TWI596612B TW104140677A TW104140677A TWI596612B TW I596612 B TWI596612 B TW I596612B TW 104140677 A TW104140677 A TW 104140677A TW 104140677 A TW104140677 A TW 104140677A TW I596612 B TWI596612 B TW I596612B
Authority
TW
Taiwan
Prior art keywords
event
type
memory
work
events
Prior art date
Application number
TW104140677A
Other languages
English (en)
Other versions
TW201721653A (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 TW104140677A priority Critical patent/TWI596612B/zh
Priority to US15/002,325 priority patent/US10007449B2/en
Publication of TW201721653A publication Critical patent/TW201721653A/zh
Application granted granted Critical
Publication of TWI596612B publication Critical patent/TWI596612B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0751Error or fault detection not based on redundancy
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
本發明是有關於一種記憶體管理方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於此些電子產品。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。例如,廣泛用於行動電子裝置上的嵌入式多媒體卡(embeded Multi Media Card, eMMC)就是一種以快閃記憶體作為儲存媒體的儲存裝置。
一般來說,使用可複寫式非揮發性記憶體的儲存裝置(如,固態硬碟),會在面臨到不正常的斷電事件時,會需要在(由電容或是電池所提供的)剩餘的臨時電力被消耗完畢之前,將工作佇列(Work queue)中所有必要的已排程工作執行完畢。然而,有時候,會因為執行工作佇列中非必要的已排程工作而耗費了許多時間(或,消耗了過多的臨時電力),進而導致必要的已排程工作無法被執行。因此,如何在不正常的斷電事件發生後,及時地將工作佇列中的必要的工作執行完畢,是此領域技術人員所致力的目標。
本發明提供一種記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,可在不正常的斷電事件發生後,節省處理工作佇列中的工作的時間,進而在剩餘電力耗盡之前有效率地將必要的工作執行完畢。
本發明的一範例實施例提供用於可複寫式非揮發性記憶體模組的一種記憶體管理方法。所述記憶體管理方法包括判斷特殊事件是否發生;若特殊事件發生,判斷工作佇列中至少一事件的類型,其中工作佇列儲存有多個事件,並且所述事件中之每一事件分別用以執行相對應的工作;根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同於所述第二工作;以及當所述第一工作調整為所述第二工作後,待命執行所述第二工作。
在本發明的一實施例中,上述記憶體管理方法還包括暫停執行中的所述工作佇列,及當所述第一工作調整為所述第二工作後,繼續執行所述工作佇列。
在本發明的一實施例中,其中所述第一工作包括讀取操作、抹除操作或系統操作,其中所述第二工作包括無操作工作。
在本發明的一實施例中,其中所述第二工作包括重置操作。
在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的記憶體參數單元,其中對應所述事件之中的每一事件的所述記憶體參數單元儲存有對應所述事件之中的每一事件的事件執行指令。此外,上述記憶體管理方法更包括,若處理所述事件之中的每一事件,根據所述事件之中的每一事件的所述指標所指向的所述記憶體參數單元,來讀取儲存在所述記憶體參數單元的對應所述事件之中的每一事件的所述事件執行指令;以及根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。
在本發明的一實施例中,其中上述判斷所述工作佇列中所述至少一事件的所述類型的步驟包括辨識所述至少一事件的指標所指向的事件執行指令的類型;以及根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型。
在本發明的一實施例中,其中上述根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的步驟更包括若所述至少一事件的所述類型為第一類型,將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作;若所述至少一事件的所述類型為第二類型,將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作;以及若所述至少一事件的所述類型為第三類型,不調整所述至少一事件所執行的所述工作。
在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用於管理所述可複寫式非揮發性記憶體模組,其中來自所述主機系統的所述寫入指令用以指示寫入使用者資料至所述可複寫式非揮發性記憶體模組,其中上述根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型的步驟包括,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,判定所述至少一事件的所述類型為所述第一類型;若所述至少一事件的所述指標指向至所述抹除指令,判定所述至少一事件的所述類型為所述第二類型;以及若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。
在本發明的一實施例中,其中上述根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的步驟包括,若所述至少一事件的所述類型為所述第一類型或所述第二類型,從所述工作佇列中移除所述至少一事件。
在本發明的一實施例中,其中所述特殊事件包括電源錯誤事件、快速執行工作佇列事件或清除工作佇列事件。
本發明的一範例實施例提供用於控制記憶體儲存裝置的一種記憶體控制電路單元。所述記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以判斷特殊事件是否發生,其中若所述特殊事件發生,所述記憶體管理電路更用以判斷工作佇列中至少一事件的類型,其中所述工作佇列儲存有多個事件,並且所述事件中之每一事件分別用以執行相對應的工作,其中所述記憶體管理電路更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同於所述第二工作,其中當所述第一工作調整為所述第二工作後,所述記憶體管理電路更用以待命執行所述第二工作。
在本發明的一實施例中,其中所述記憶體管理電路暫停執行中的所述工作佇列,及當所述第一工作調整為所述第二工作後,繼續執行所述工作佇列。
在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的記憶體參數單元,其中對應所述事件之中的每一事件的所述記憶體參數單元儲存有對應所述事件之中的每一事件的事件執行指令。所述記憶體管理電路執行所述工作佇列以處理所述工作佇列中的所述事件。若所述記憶體管理電路處理所述事件之中的每一事件,所述記憶體管理電路根據所述事件之中的每一事件的所述指標所指向的所述記憶體參數單元,來讀取儲存在所述記憶體參數單元的對應所述事件之中的每一事件的所述事件執行指令。此外,所述記憶體管理電路根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。
在本發明的一實施例中,其中在上述判斷所述工作佇列中所述至少一事件的所述類型的運作中,所述記憶體管理電路辨識所述至少一事件的指標所指向的事件執行指令的類型,並且根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型。
在本發明的一實施例中,其中在上述所述記憶體管理電路更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為第一類型,所述記憶體管理電路將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作,其中若所述至少一事件的所述類型為第二類型,所述記憶體管理電路將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作,其中若所述至少一事件的所述類型為第三類型,所述記憶體管理電路不調整所述至少一事件所執行的所述工作。
在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用於管理所述可複寫式非揮發性記憶體模組,其中來自所述主機系統的所述寫入指令用以指示寫入使用者資料至所述可複寫式非揮發性記憶體模組。在上述所述記憶體管理電路根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型的運作中,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,所述記憶體管理電路判定所述至少一事件的所述類型為所述第一類型,其中若所述至少一事件的所述指標指向至所述抹除指令,所述記憶體管理電路判定所述至少一事件的所述類型為所述第二類型,其中若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。
在本發明的一實施例中,其中在上述所述記憶體管理電路更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為所述第一類型或所述第二類型,所述記憶體管理電路從所述工作佇列中移除所述至少一事件。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元耦接至主機系統。記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以判斷特殊事件是否發生,其中若所述特殊事件發生,所述記憶體控制電路單元更用以判斷工作佇列中至少一事件的類型,其中所述工作佇列儲存有多個事件,並且所述事件中之每一事件分別用以執行相對應的工作,其中所述記憶體控制電路單元更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從第一工作調整為第二工作,其中所述第一工作不同於所述第二工作,其中當所述第一工作調整為所述第二工作後,所述記憶體控制電路單元更用以待命執行所述第二工作。
在本發明的一實施例中,其中所述記憶體控制電路單元暫停執行中的所述工作佇列,及當所述第一工作調整為所述第二工作後,繼續執行所述工作佇列。
在本發明的一實施例中,其中所述事件之中的每一事件分別具有指標,其中所述事件之中的每一事件的所述指標分別指向對應所述事件之中的每一事件的記憶體參數單元,其中對應所述事件之中的每一事件的所述記憶體參數單元儲存有對應所述事件之中的每一事件的事件執行指令。所述記憶體控制電路單元執行所述工作佇列以處理所述工作佇列中的所述事件。若所述記憶體控制電路單元處理所述事件之中的每一事件,所述記憶體控制電路單元根據所述事件之中的每一事件的所述指標所指向的所述記憶體參數單元,來讀取儲存在所述記憶體參數單元的對應所述事件之中的每一事件的所述事件執行指令。此外,所述記憶體控制電路單元根據所讀取的所述事件執行指令來執行對應所述事件之中的每一事件的所述工作。
在本發明的一實施例中,其中在上述判斷所述工作佇列中所述至少一事件的所述類型的運作中,所述記憶體控制電路單元辨識所述至少一事件的指標所指向的事件執行指令的類型,並且根據所辨識的所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型。
在本發明的一實施例中,其中在上述所述記憶體控制電路單元更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為第一類型,所述記憶體控制電路單元將所述至少一事件所執行的所述工作從所述第一工作調整為所述無操作工作,其中若所述至少一事件的所述類型為第二類型,所述記憶體控制電路單元將所述至少一事件所執行的所述工作從所述第一工作調整為所述重置工作,其中若所述至少一事件的所述類型為第三類型,所述記憶體控制電路單元不調整所述至少一事件所執行的所述工作。
在本發明的一實施例中,其中所述事件執行指令包括讀取指令、系統指令、抹除指令與來自主機系統的寫入指令,其中所述系統指令用於管理所述可複寫式非揮發性記憶體模組,其中來自所述主機系統的所述寫入指令用以指示寫入使用者資料至所述可複寫式非揮發性記憶體模組。在上述所述記憶體控制電路單元根據辨識所述至少一事件的所述指標所指向的所述事件執行指令的所述類型,來判斷所述工作佇列中所述至少一事件的所述類型的運作中,若所述至少一事件的所述指標指向至所述讀取指令或所述系統指令,所述記憶體控制電路單元判定所述至少一事件的所述類型為所述第一類型,其中若所述至少一事件的所述指標指向至所述抹除指令,所述記憶體控制電路單元判定所述至少一事件的所述類型為所述第二類型,其中若所述至少一事件的所述指標指向至來自所述主機系統的所述寫入指令,判定所述至少一事件的所述類型為所述第三類型。
在本發明的一實施例中,其中在上述所述記憶體控制電路單元更用以根據所述至少一事件的所述類型來將所述至少一事件所執行的所述工作從所述第一工作調整為所述第二工作的運作中,若所述至少一事件的所述類型為所述第一類型或所述第二類型,所述記憶體控制電路單元從所述工作佇列中移除所述至少一事件。
基於上述,本發明的範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,可調整工作佇列中的已排程指令,使非必要的指令被替換為無操作指令或重置指令,以大幅減少處理非必要的指令所耗費的時間(電力)。此外,節省後的剩餘臨時電力將足以執行必要的指令。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)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、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210、滑鼠211等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、安全數位(Secure Digital, SD)介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, 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標準、IEEE 1394標準、PCI Express標準、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會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。此外,在本範例實施例中,電源管理電路510還用以偵測斷電事件的發生,其中斷電事件還可分為正常的斷電事件與不正常的斷電事件(以下亦稱,電源錯誤事件)。
具體來說,正常的斷電事件例如是使用者執行主機系統11的關機或休眠等預設的斷開電源的操作,或是主機系統11因為安裝於主機系統的作業系統(OS)的設定,而根據設定來進入至關機或是休眠等斷開電源的操作。相對的,電源錯誤事件(Power failure event)例如是主機系統11所接入的電源忽然斷開(如,停電事件),或主機系統的所連接的電池已耗盡等等,非使用者或是非主機系統11所控制的斷電事件。
此外,電源管理電路510還包括至少一電容,其用以在電源錯誤事件發生後還可以供應臨時電力給記憶體儲存裝置10,但本發明不限於此。例如,在另一範例實施例中,電源管理電路510還耦接至少一電池(或其他適合的可用來儲存電力的裝置),以供應臨時電力給記憶體儲存裝置10。
在本範例實施例中,當電源管理電路510偵測到電源錯誤事件的發生時,電源管理電路510會發出電源錯誤通知給記憶體管理電路502,以使記憶體管理電路502得以使用上述的臨時電力來進行針對電源錯誤事件的操作。
具體來說,當接收到電源錯誤通知後,記憶體管理電路502會開始執行對應電源錯誤事件的特殊處理程序。例如,在本範例實施例中,記憶體管理電路502會先暫停執行中的部份或全部工作,並且優先地使用臨時電力來處理被暫停的工作中必須處理(must be done)的工作。上述的“電源錯誤通知”可使記憶體管理電路502用以判斷是否有電源錯誤事件發生,其中電源錯誤事件是屬於特殊事件的其中之一。在本範例實施例中,特殊事件包括電源錯誤事件、快速執行工作佇列事件或清除工作佇列事件。
值得一提是,在本範例實施例中,記憶體管理電路502會判斷是否所述特殊事件的其中之一是否發生。此外,記憶體管理電路502會根據判斷特殊事件是否發生的結果,來開始執行本範例實施例所提供的對應特殊事件的特殊處理程序。
由於本範例實施例所提供的記憶體管理方法與工作排程有關,因此,以下先會詳細說明在本範例實施例中記憶體管理電路502排程工作的運作,再接續說明本範例實施例所提供的記憶體管理方法如何在特殊處理程序中優化工作排程。
在本範例實施例中,記憶體管理電路502會從主機系統11接收多個指令(如,寫入使用者資料的寫入指令)。此外,記憶體管理電路502本身亦會執行多個系統指令來進行管理可複寫式非揮發性記憶體模組406的操作(例如,資料合併指令或垃圾回收指令)。記憶體管理電路502會將欲對可複寫式非揮發性記憶體模組406執行的每一指令(亦稱,事件執行指令)的指令描述儲存至緩衝記憶體508中的特殊區塊(如,記憶體參數單元,Flash Parameter Unit,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所下達的指令。舉例來說,系統指令包括垃圾回收指令、資料合併指令、用以讀取系統資訊的讀取指令、用以寫入系統資訊的寫入指令。此外,根據系統指令所執行的工作為系統操作。
此外,上述必要指令是指必須要被執行完畢的指令。具體來說,對應必要指令的指令描述可設置至少一位元來作為標記(如,“必要”標記)。當此標記為第一狀態時,表示此指令描述具有必要標記,並且表示此指令描述所對應的指令為必須被執行完畢(must be done)的必要指令。在本範例實施例中,指示寫入使用者資料的寫入指令的指令描述會具有“必要”標記。換句話說,指示寫入使用者資料的寫入指令為必要指令的一種。此外,根據必要指令所執行的工作為必要操作。
相對地,上述非必要指令為不具有“必要”標記的指令。或者,在一實施例中,對應非必要指令的指令描述的“必要”標記會被標記為第二狀態,其中第二狀態不同於第一狀態。非必要指令例如是系統指令、抹除指令與讀取指令亦可屬於非必要指令。此外,根據非必要指令所執行的工作為非必要操作。換句話說,非必要指令所執行的工作可不執行。應注意的是,在另一實施例中,對應非必要指令的指令描述可另外設置至少一位元來作為標記(如,“非必要”標記)。當“非必要”標記為第三狀態時,表示對應此“非必要”標記的事件執行指令所執行的工作是非必要操作。
在本範例實施例中,記憶體管理電路502會預先儲存對應無操作(Non-operation)指令的記憶體參數單元631與對應重置指令的記憶體參數單元632於緩衝記憶體508中。當記憶體管理電路502下達無操作指令至可複寫式非揮發性記憶體模組406時,可複寫式非揮發性記憶體模組406不進行任何操作,並且據此回應記憶體管理電路502此無操作指令已經執行完畢。此外,根據無操作指令所執行的工作為無操作工作。
當記憶體管理電路502下達重置(Reset)指令至可複寫式非揮發性記憶體模組406時,可複寫式非揮發性記憶體模組406會進行重置操作,以準備接收且進行其他指令,並且在完成重置操作後回應記憶體管理電路502此重置指令已執行完畢。此外,根據重置指令所執行的工作為重置操作。在本範例實施例中,可複寫式非揮發性記憶體模組406執行無操作指令所耗費的時間短於可複寫式非揮發性記憶體模組406執行其他指令所耗費的時間,並且可複寫式非揮發性記憶體模組406執行重置指令所耗費的時間短於可複寫式非揮發性記憶體模組406執行寫入指令或讀取指令所耗費的時間。
請再參考圖6,為了排程對應上述指令的工作,記憶體管理電路502會在工作佇列(如多觸發佇列,Multi-trigger queue,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中,當調整完所述至少一事件所執行的所述工作後,繼續執行所述工作佇列。
綜上所述,本發明的範例實施例所提供的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,可調整工作佇列中的已排程指令,使非必要的指令被替換為無操作指令或重置指令,以大幅減少處理非必要的指令所耗費的時間(電力)。此外,節省後的剩餘臨時電力將足以執行必要的指令。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
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裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示之指標的運作示意圖。 圖7是根據本發明的範例實施例所繪示之調整指標的運作示意圖。 圖8是根據本發明的一範例實施例所繪示之記憶體管理方法的步驟流程圖。
S801、S803、S805、S807、S809:記憶體管理方法的流程步驟

Claims (30)

  1. 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,該記憶體管理方法包括:判斷一特殊事件是否發生;若該特殊事件發生,判斷一工作佇列中至少一事件的類型,其中該工作佇列儲存有多個事件,並且該些事件中之每一事件分別用以執行一相對應的工作;根據該至少一事件的該類型來將該至少一事件所執行的該工作從一第一工作調整為一第二工作,其中該第一工作不同於該第二工作;以及當該第一工作調整為該第二工作後,待命執行該第二工作,其中該些事件之中的每一事件分別具有一指標,其中該些事件之中的每一事件的該指標分別指向對應該些事件之中的每一事件的一記憶體參數單元,其中對應該些事件之中的每一事件的該記憶體參數單元儲存有對應該些事件之中的每一事件的一事件執行指令。
  2. 如申請專利範圍第1項所述的記憶體管理方法,更包括暫停執行中的該工作佇列,及當該第一工作調整為該第二工作後,繼續執行該工作佇列。
  3. 如申請專利範圍第1項所述的記憶體管理方法,其中該第一工作包括一讀取操作、一抹除操作或一系統操作,其中該第二工作包括一無操作工作。
  4. 如申請專利範圍第1項所述的記憶體管理方法,其中該第二工作包括一重置操作。
  5. 申請專利範圍第1項所述的記憶體管理方法,更包括:若處理該些事件之中的每一事件,根據該些事件之中的每一事件的該指標所指向的該記憶體參數單元,來讀取儲存在該記憶體參數單元的對應該些事件之中的每一事件的該事件執行指令;以及根據所讀取的該事件執行指令來執行對應該些事件之中的每一事件的該工作。
  6. 如申請專利範圍第5項所述的記憶體管理方法,其中上述判斷該工作佇列中該至少一事件的類型的步驟包括:辨識該至少一事件的一指標所指向的一事件執行指令的一類型;以及根據所辨識的該至少一事件的該指標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型。
  7. 如申請專利範圍第6項所述的記憶體管理方法,其中上述根據該至少一事件的該類型來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的步驟更包括:若該至少一事件的該類型為一第一類型,將該至少一事件所執行的該工作從該第一工作調整為一無操作工作;若該至少一事件的該類型為一第二類型,將該至少一事件所執行的該工作從該第一工作調整為一重置工作;以及 若該至少一事件的該類型為一第三類型,不調整該至少一事件所執行的該工作。
  8. 如申請專利範圍第7項所述的記憶體管理方法,其中該些事件執行指令包括一讀取指令、一系統指令、一抹除指令與來自一主機系統的一寫入指令,其中該系統指令用於管理該可複寫式非揮發性記憶體模組,其中來自該主機系統的該寫入指令用以指示寫入一使用者資料至該可複寫式非揮發性記憶體模組,其中上述根據辨識該至少一事件的該指標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型的步驟包括:若該至少一事件的該指標指向至該讀取指令或該系統指令,判定該至少一事件的該類型為該第一類型;若該至少一事件的該指標指向至該抹除指令,判定該至少一事件的該類型為該第二類型;以及若該至少一事件的該指標指向至來自該主機系統的該寫入指令,判定該至少一事件的該類型為該第三類型。
  9. 如申請專利範圍第7項所述的記憶體管理方法,其中上述根據該至少一事件的該類型來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的步驟包括:若該至少一事件的該類型為該第一類型或該第二類型,從該工作佇列中移除該至少一事件。
  10. 如申請專利範圍第1項所述的記憶體管理方法,其中該特殊事件包括一電源錯誤事件、一快速執行工作佇列事件或一清除工作佇列事件。
  11. 一種記憶體控制電路單元,用於控制一記憶體儲存裝置,該記憶體控制電路單元包括:一主機介面,耦接至一主機系統;一記憶體介面,耦接至一可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以判斷一特殊事件是否發生,其中若該特殊事件發生,該記憶體管理電路更用以判斷一工作佇列中至少一事件的類型,其中該工作佇列儲存有多個事件,並且該些事件中之每一事件分別用以執行一相對應的工作,其中該記憶體管理電路更用以根據該至少一事件的該類型來將該至少一事件所執行的該工作從一第一工作調整為一第二工作,其中該第一工作不同於該第二工作,其中當該第一工作調整為該第二工作後,該記憶體管理電路更用以待命執行該第二工作,其中該些事件之中的每一事件分別具有一指標,其中該些事件之中的每一事件的該指標分別指向對應該些事件之中的每一事件的一記憶體參數單元,其中對應該些事件之中的每一事件的該記憶體參數單元儲存有對應該些事件之中的每一事件的一事件執 行指令。
  12. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路暫停執行中的該工作佇列,及當該第一工作調整為該第二工作後,繼續執行該工作佇列。
  13. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該第一工作包括一讀取操作、一抹除操作或一系統操作,其中該第二工作包括一無操作工作。
  14. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該第二工作包括一重置操作。
  15. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路執行該工作佇列以處理該工作佇列中的該些事件,其中若該記憶體管理電路處理該些事件之中的每一事件,該記憶體管理電路根據該些事件之中的每一事件的該指標所指向的該記憶體參數單元,來讀取儲存在該記憶體參數單元的對應該些事件之中的每一事件的該事件執行指令,其中該記憶體管理電路根據所讀取的該事件執行指令來執行對應該些事件之中的每一事件的該工作。
  16. 如申請專利範圍第15項所述的記憶體控制電路單元,其中在上述該記憶體管理電路更用以判斷該工作佇列中該至少一事件的類型的運作中,該記憶體管理電路辨識該至少一事件的一指標所指向的一事 件執行指令的一類型,其中該記憶體管理電路根據所辨識的該至少一事件的該指標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型。
  17. 如申請專利範圍第16項所述的記憶體控制電路單元,其中在上述該記憶體管理電路更用以根據該至少一事件的該類型來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的運作中,若該至少一事件的該類型為一第一類型,該記憶體管理電路將該至少一事件所執行的該工作從該第一工作調整為一無操作工作,其中若該至少一事件的該類型為一第二類型,該記憶體管理電路將該至少一事件所執行的該工作從該第一工作調整為一重置工作,其中若該至少一事件的該類型為一第三類型,該記憶體管理電路不調整該至少一事件所執行的該工作。
  18. 如申請專利範圍第17項所述的記憶體控制電路單元,其中該些事件執行指令包括一讀取指令、一系統指令、一抹除指令與來自一主機系統的一寫入指令,其中該系統指令用於管理該可複寫式非揮發性記憶體模組,其中來自該主機系統的該寫入指令用以指示寫入一使用者資料至該可複寫式非揮發性記憶體模組,其中在上述該記憶體管理電路根據辨識該至少一事件的該指 標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型的運作中,若該至少一事件的該指標指向至該讀取指令或該系統指令,該記憶體管理電路判定該至少一事件的該類型為該第一類型,其中若該至少一事件的該指標指向至該抹除指令,該記憶體管理電路判定該至少一事件的該類型為該第二類型,其中若該至少一事件的該指標指向至來自該主機系統的該寫入指令,該記憶體管理電路判定該至少一事件的該類型為該第三類型。
  19. 如申請專利範圍第17項所述的記憶體控制電路單元,其中在上述該記憶體管理電路更用以根據該至少一事件的該類型來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的運作中,若該至少一事件的該類型為該第一類型或該第二類型,該記憶體管理電路從該工作佇列中移除該至少一事件。
  20. 如申請專利範圍第11項所述的記憶體控制電路單元,其中該特殊事件包括一電源錯誤事件、一快速執行工作佇列事件或一清除工作佇列事件。
  21. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫 式非揮發性記憶體模組,其中該記憶體控制電路單元用以判斷一特殊事件是否發生,其中若該特殊事件發生,該記憶體控制電路單元更用以判斷一工作佇列中至少一事件的類型,其中該工作佇列儲存有多個事件,並且該些事件中之每一事件分別用以執行一相對應的工作,其中該記憶體控制電路單元更用以根據該至少一事件的該類型來將該至少一事件所執行的該工作從一第一工作調整為一第二工作,其中該第一工作不同於該第二工作,其中當該第一工作調整為該第二工作後,該記憶體控制電路單元更用以待命執行該第二工作,其中該些事件之中的每一事件分別具有一指標,其中該些事件之中的每一事件的該指標分別指向對應該些事件之中的每一事件的一記憶體參數單元,其中對應該些事件之中的每一事件的該記憶體參數單元儲存有對應該些事件之中的每一事件的一事件執行指令。
  22. 如申請專利範圍第21項所述的記憶體儲存裝置,其中在該記憶體控制電路單元暫停執行中的該工作佇列,及當該第一工作調整為該第二工作後,繼續執行該工作佇列。
  23. 如申請專利範圍第21項所述的記憶體儲存裝置,其中該第一工作包括一讀取操作、一抹除操作或一系統操作,其中該第二工作包括一無操作工作。
  24. 如申請專利範圍第21項所述的記憶體儲存裝置,其中該第二工作包括一重置操作。
  25. 如申請專利範圍第21項所述的記憶體儲存裝置,其中該記憶體控制電路單元執行該工作佇列以處理該工作佇列中的該些事件,其中若該記憶體控制電路單元處理該些事件之中的每一事件,該記憶體控制電路單元根據該些事件之中的每一事件的該指標所指向的該記憶體參數單元,來讀取儲存在該記憶體參數單元的對應該些事件之中的每一事件的該事件執行指令,其中該記憶體控制電路單元根據所讀取的該事件執行指令來執行對應該些事件之中的每一事件的該工作。
  26. 如申請專利範圍第25項所述的記憶體儲存裝置,其中在上述該記憶體控制電路單元更用以判斷該工作佇列中該至少一事件的類型的運作中,該記憶體控制電路單元辨識該至少一事件的一指標所指向的一事件執行指令的一類型,其中該記憶體控制電路單元根據所辨識的該至少一事件的該指標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型。
  27. 如申請專利範圍第26項所述的記憶體儲存裝置,其中在上述該記憶體控制電路單元更用以根據該至少一事件的該類型 來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的運作中,若該至少一事件的該類型為一第一類型,該記憶體控制電路單元將該至少一事件所執行的該工作從該第一工作調整為一無操作工作,其中若該至少一事件的該類型為一第二類型,該記憶體控制電路單元將該至少一事件所執行的該工作從該第一工作調整為一重置工作,其中若該至少一事件的該類型為一第三類型,該記憶體控制電路單元不調整該至少一事件所執行的該工作。
  28. 如申請專利範圍第27項所述的記憶體儲存裝置,其中該些事件執行指令包括一讀取指令、一系統指令、一抹除指令與來自一主機系統的一寫入指令,其中該系統指令用於管理該可複寫式非揮發性記憶體模組,其中來自該主機系統的該寫入指令用以指示寫入一使用者資料至該可複寫式非揮發性記憶體模組,其中在上述該記憶體控制電路單元根據辨識該至少一事件的該指標所指向的該事件執行指令的該類型,來判斷該工作佇列中該至少一事件的該類型的運作中,若該至少一事件的該指標指向至該讀取指令或該系統指令,該記憶體控制電路單元判定該至少一事件的該類型為該第一類型,其中若該至少一事件的該指標指向至該抹除指令,該記憶體 控制電路單元判定該至少一事件的該類型為該第二類型,其中若該至少一事件的該指標指向至來自該主機系統的該寫入指令,該記憶體控制電路單元判定該至少一事件的該類型為該第三類型。
  29. 如申請專利範圍第27項所述的記憶體儲存裝置,其中在上述該記憶體控制電路單元更用以根據該至少一事件的該類型來將該至少一事件所執行的該工作從該第一工作調整為該第二工作的運作中,若該至少一事件的該類型為該第一類型或該第二類型,該記憶體控制電路單元從該工作佇列中移除該至少一事件。
  30. 如申請專利範圍第21項所述的記憶體儲存裝置,其中該特殊事件包括一電源錯誤事件、一快速執行工作佇列事件或一清除工作佇列事件。
TW104140677A 2015-12-04 2015-12-04 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 TWI596612B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104140677A TWI596612B (zh) 2015-12-04 2015-12-04 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US15/002,325 US10007449B2 (en) 2015-12-04 2016-01-20 Memory management method, memory control circuit unit, and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104140677A TWI596612B (zh) 2015-12-04 2015-12-04 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201721653A TW201721653A (zh) 2017-06-16
TWI596612B true TWI596612B (zh) 2017-08-21

Family

ID=58800306

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104140677A TWI596612B (zh) 2015-12-04 2015-12-04 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US10007449B2 (zh)
TW (1) TWI596612B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI640920B (zh) * 2017-06-30 2018-11-11 慧榮科技股份有限公司 資料儲存裝置、非揮發式記憶體操作方法及操作指令執行方法
KR102080089B1 (ko) * 2018-05-18 2020-02-21 최영준 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치
TWI672593B (zh) * 2018-06-21 2019-09-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN110659229B (zh) * 2018-06-29 2022-11-08 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040084971A1 (en) * 2000-11-14 2004-05-06 Arti Shukla Apparatus and method to handle power supply failures for a peripheral device
US20140006683A1 (en) * 2012-06-29 2014-01-02 Prasun Ratn Optimized context drop for a solid state drive (ssd)
WO2014143023A1 (en) * 2013-03-15 2014-09-18 Hewlett-Packard Development Company, L.P. Memory module controller supporting extended writes
TWI472927B (zh) * 2010-08-12 2015-02-11 Phison Electronics Corp 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置
US20150089287A1 (en) * 2013-09-23 2015-03-26 Sarathy Jayakumar Event-triggered storage of data to non-volatile memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968359B1 (en) * 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US7565662B2 (en) * 2004-09-24 2009-07-21 International Business Machines Corporation Program agent initiated processing of enqueued event actions
US7647483B2 (en) * 2007-02-20 2010-01-12 Sony Computer Entertainment Inc. Multi-threaded parallel processor methods and apparatus
US8615773B2 (en) * 2011-03-31 2013-12-24 Honeywell International Inc. Systems and methods for coordinating computing functions to accomplish a task using a configuration file and standardized executable application modules
US9348645B2 (en) * 2014-05-30 2016-05-24 Apple Inc. Method and apparatus for inter process priority donation
US10127509B2 (en) * 2015-09-17 2018-11-13 Bank Of America Corporation System for temporarily suspending a workflow associated with a work item

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040084971A1 (en) * 2000-11-14 2004-05-06 Arti Shukla Apparatus and method to handle power supply failures for a peripheral device
TWI472927B (zh) * 2010-08-12 2015-02-11 Phison Electronics Corp 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置
US20140006683A1 (en) * 2012-06-29 2014-01-02 Prasun Ratn Optimized context drop for a solid state drive (ssd)
WO2014143023A1 (en) * 2013-03-15 2014-09-18 Hewlett-Packard Development Company, L.P. Memory module controller supporting extended writes
US20150089287A1 (en) * 2013-09-23 2015-03-26 Sarathy Jayakumar Event-triggered storage of data to non-volatile memory

Also Published As

Publication number Publication date
US10007449B2 (en) 2018-06-26
US20170160961A1 (en) 2017-06-08
TW201721653A (zh) 2017-06-16

Similar Documents

Publication Publication Date Title
TWI628542B (zh) 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
TWI557561B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US9940021B2 (en) Method and system for memory management and memory storage device thereof
KR102114109B1 (ko) 데이터 저장 장치
TWI596612B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI489466B (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
US10649896B2 (en) Storage device and data processing system including the same
US9823844B2 (en) Memory management method, memory control circuit unit, and memory storage apparatus
TW201732821A (zh) 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置
TWI492054B (zh) 快閃記憶體的模擬方法與模擬器
TWI648634B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI607309B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
KR20150045253A (ko) 데이터 저장 장치
TWI473103B (zh) 快閃記憶體儲存裝置及其不良儲存區域的判定方法
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
TW201820114A (zh) 資料寫入方法以及儲存控制器
US20140095859A1 (en) Apparatus and method for managing register information in a processing system
US10191659B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
CN106873901B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
JP2010182216A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム
CN106970763B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
TWI573033B (zh) 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元
TWI582594B (zh) 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
TW201532053A (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置