TWI582594B - 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料保護方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI582594B TWI582594B TW103102280A TW103102280A TWI582594B TW I582594 B TWI582594 B TW I582594B TW 103102280 A TW103102280 A TW 103102280A TW 103102280 A TW103102280 A TW 103102280A TW I582594 B TWI582594 B TW I582594B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- executed
- memory
- data
- storage device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種資料保護方法,且特別是有關於一種資料保護方法以及使用此方法的記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。當可複寫式非揮發性記憶體模組在進行執行時間較長的程序時,若記憶體控制器同時接收到來自主機系統的資料,此資料會被暫存在記憶體控制器的緩衝區中。當此程序被執行完畢時,暫存在緩衝區的資料才會被處理
(例如,將此資料寫入至可複寫式非揮發性記憶體模組中)。
然而,在執行此程序的過程中若發生突然的斷電,則可能會因為此程序的執行時間過長,而導致在備用電源的供電時間內暫存在緩衝區的資料無法被及時地處理備用而造成暫存在緩衝區的資料遺失。
本發明提供一種資料保護方法、記憶體儲存裝置及記憶體控制電路單元,可有效避免已接收的資料在等待處理的過程中遺失。
本發明提供一種資料保護方法,用於一記憶體儲存裝置,此資料保護方法包括:判斷即將或者正在被記憶體儲存裝置執行的一第一程序是否是第一類程序;以及若即將或者正在被記憶體儲存裝置執行的第一程序是第一類程序,在第一程序被執行完畢之前,暫停接收對應於一第一寫入指令的一第一資料。
在本發明的一範例實施例中,所述的資料保護方法更包括:若即將或者正在被記憶體儲存裝置執行的第一程序不是第一類程序,在第一程序被執行完畢之前,允許接收對應於第一寫入指令的第一資料,並且將第一資料暫存於記憶體儲存裝置的一緩衝區。
在本發明的一範例實施例中,所述的若即將或者正在被記憶體儲存裝置執行的第一程序是第一類程序,在第一程序被執
行完畢之前,暫停接收對應於第一寫入指令的第一資料的步驟包括:暫停接收第一寫入指令與對應於第一寫入指令的第一資料。
在本發明的一範例實施例中,所述的若即將或者正在被記憶體儲存裝置執行的第一程序是第一類程序,在第一程序被執行完畢之前,暫停接收對應於第一寫入指令的第一資料的步驟包括:暫停送出一裝置對主機(Device to Host,D2H)指令。
在本發明的一範例實施例中,所述的判斷即將或者正在被記憶體儲存裝置執行的第一程序是否是第一類程序的步驟包括:接收第一寫入指令;判斷是否有正在或者即將被記憶體儲存裝置執行的第一程序;若沒有正在或者即將被記憶體儲存裝置執行的第一程序,根據第一寫入指令接收第一資料;以及若有正在或者即將被記憶體儲存裝置執行的第一程序,在接收第一資料之前,判斷正在或者即將被記憶體儲存裝置執行的第一程序是否是第一類程序。
在本發明的一範例實施例中,所述記憶體儲存裝置具有一緩衝區,並且緩衝區具有用以暫存完整的第一資料的一空間。
在本發明的一範例實施例中,在判斷即將或者正在被執行的第一程序是否是第一類程序的步驟之前,所述的資料保護方法更包括:接收一第二寫入指令與對應於第二寫入指令的一第二資料,並且將第二資料暫存於緩衝區,其中在第二資料被暫存於緩衝區之後,緩衝區仍具有用以暫存完整的第一資料的空間。若即將或者正在被記憶體儲存裝置執行的第一程序是第一類程序,
所述的資料保護方法更包括:判斷對應於暫存於緩衝區的第二資料的一第二程序是否已被執行完畢;若第二程序已被執行完畢,允許記憶體儲存裝置開始執行第一程序;以及若第二程序尚未被執行完畢,不允許記憶體儲存裝置開始執行第一程序。
在本發明的一範例實施例中,所述的判斷即將或者正在被記憶體儲存裝置執行的第一程序是否是第一類程序的步驟包括:獲得即將或者正在被記憶體儲存裝置執行的第一程序的一執行所需時間;判斷執行所需時間是否大於或等於一門檻值;以及若執行所需時間大於或等於門檻值,判定即將或者正在被記憶體儲存裝置執行的第一程序是第一類程序。
在本發明的一範例實施例中,所述的資料保護方法更包括:根據記憶體儲存裝置的一備用電源的一供應時間來決定門檻值。
在本發明的一範例實施例中,所述的第一類程序包括一映射表格更新程序、一損耗平均程序或一失敗處理程序。
從另一角度來看,本發明提供一種記憶體儲存裝置,此記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至一主機系統。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且記憶體控制電路單元用以執行下列操作:判斷即將或者正在被記憶體控制電路單元執行的一第一程序是否是第一類程序;以及若即將或者正在被控制電路執行的第一程序是
第一類程序,在第一程序被執行完畢之前,暫停從主機系統接收對應於一第一寫入指令的一第一資料。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以執行下列操作:若即將或者正在被記憶體控制電路單元執行的第一程序不是第一類程序,在第一程序被執行完畢之前,允許從主機系統接收對應於第一寫入指令的第一資料,並且將第一資料暫存於記憶體儲存裝置的一緩衝區。
在本發明的一範例實施例中,若即將或者正在被記憶體控制電路單元執行的第一程序是第一類程序,在第一程序被執行完畢之前,所述的暫停從主機系統接收對應於第一寫入指令的第一資料的操作包括:暫停從主機系統接收第一寫入指令與對應於第一寫入指令的第一資料。
在本發明的一範例實施例中,若即將或者正在被記憶體控制電路單元執行的第一程序是第一類程序,在第一程序被執行完畢之前,所述的暫停從主機系統接收對應於第一寫入指令的第一資料的操作包括:暫停送出一裝置對主機指令至主機系統。
在本發明的一範例實施例中,所述的判斷即將或者正在被控制電路執行的第一程序是否是第一類程序的操作包括:接收第一寫入指令;判斷是否有正在或者即將被記憶體控制電路單元執行的第一程序;若沒有正在或者即將被記憶體控制電路單元執行的第一程序,根據第一寫入指令接收第一資料;以及若有正在或者即將被記憶體控制電路單元執行的第一程序,在接收第一資
料之前,判斷正在或者即將被控制電路執行的第一程序是否是第一類程序。
在本發明的一範例實施例中,在判斷即將或者正在被記憶體控制電路單元執行的第一程序是否是第一類程序的步驟之前,所述的記憶體控制電路單元更用以接收一第二寫入指令與對應於第二寫入指令的一第二資料,並且將第二資料暫存於緩衝區,其中在第二資料被暫存於緩衝區之後,緩衝區仍具有用以暫存完整的第一資料的空間。若即將或者正在被記憶體控制電路單元執行的第一程序是第一類程序,所述的記憶體控制電路單元更用以執行下列操作:判斷對應於暫存於緩衝區的第二資料的一第二程序是否已被執行完畢;若第二程序已被執行完畢,允許開始執行第一程序;以及若第二程序尚未被執行完畢,不允許開始執行第一程序。
在本發明的一範例實施例中,所述的判斷即將或者正在被控制電路執行的第一程序是否是第一類程序的操作包括:獲得即將或者正在被記憶體控制電路單元執行的第一程序的一執行時間;判斷執行時間是否大於或等於一門檻值;以及若執行時間大於或等於門檻值,判定即將或者正在被記憶體控制電路單元執行的第一程序是第一類程序。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以執行下列操作:根據記憶體儲存裝置的一備用電源的一供應時間來決定門檻值。
此外,本發明也提供一種記憶體控制電路單元,此記憶體控制電路單元用於控制一可複寫式非揮發性記憶體模組,此記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面用以耦接至一主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,並且記憶體管理電路用以執行下列操作:判斷即將或者正在被記憶體管理電路執行的一第一程序是否是第一類程序;以及若即將或者正在被記憶體管理電路執行的第一程序是第一類程序,在第一程序被執行完畢之前,暫停從主機系統接收對應於一第一寫入指令的一第一資料。
在本發明的一範例實施例中,所述的記憶體管理電路更用以執行下列操作:若即將或者正在被記憶體管理電路執行的第一程序不是第一類程序,在第一程序被執行完畢之前,允許從主機系統接收對應於第一寫入指令的第一資料,並且將第一資料暫存於記憶體控制電路單元的一緩衝區。
在本發明的一範例實施例中,若即將或者正在被記憶體管理電路執行的第一程序是第一類程序,在第一程序被執行完畢之前,所述的暫停從主機系統接收對應於第一寫入指令的第一資料的操作包括:暫停從主機系統接收第一寫入指令與對應於第一寫入指令的第一資料。
在本發明的一範例實施例中,若即將或者正在被記憶體管理電路執行的第一程序是第一類程序,在第一程序被執行完畢
之前,所述的暫停從主機系統接收對應於第一寫入指令的第一資料的操作包括:暫停送出一裝置對主機指令至主機系統。
在本發明的一範例實施例中,所述的記憶體管理電路判斷即將或者正在被記憶體管理電路執行的第一程序是否是第一類程序的操作包括:接收第一寫入指令;判斷是否有正在或者即將被記憶體管理電路執行的第一程序;若沒有正在或者即將被記憶體管理電路執行的第一程序,根據第一寫入指令接收第一資料;以及若有正在或者即將被記憶體管理電路執行的第一程序,在接收第一資料之前,判斷正在或者即將被記憶體管理電路執行的第一程序是否是第一類程序。
在本發明的一範例實施例中,所述的其中記憶體控制電路單元具有一緩衝區,並且緩衝區具有用以暫存完整的第一資料的一空間。
在本發明的一範例實施例中,在判斷即將或者正在被記憶體管理電路執行的第一程序是否是第一類程序的步驟之前,所述的記憶體管理電路更用以接收一第二寫入指令與對應於第二寫入指令的一第二資料,並且將第二資料暫存於緩衝區,其中在第二資料被暫存於緩衝區之後,緩衝區仍具有用以暫存完整的第一資料的空間。若即將或者正在被記憶體管理電路執行的第一程序是第一類程序,所述的記憶體管理電路更用以執行下列操作:判斷對應於暫存於緩衝區的第二資料的一第二程序是否已被執行完畢;若第二程序已被執行完畢,允許開始執行第一程序;以及若
第二程序尚未被執行完畢,不允許開始執行第一程序。
在本發明的一範例實施例中,所述的記憶體管理電路判斷即將或者正在被記憶體管理電路執行的第一程序是否是第一類程序的操作包括:獲得即將或者正在被記憶體管理電路執行的第一程序的一執行時間;判斷執行時間是否大於或等於一門檻值;以及若執行時間大於或等於門檻值,判定即將或者正在被記憶體管理電路執行的第一程序是第一類程序。
在本發明的一範例實施例中,所述的記憶體管理電路更用以執行下列操作:根據記憶體控制電路單元的一備用電源的一供應時間來決定門檻值。
基於上述,本發明的資料保護方法、記憶體儲存裝置及記憶體控制電路單元會判斷即將或者正在被記憶體儲存裝置執行的第一程序是否是第一類程序。若是,則在第一程序被執行完畢之前,暫停接收對應於一第一寫入指令的一第一資料,以避免已接收的資料在等待處理的過程中遺失。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
2202‧‧‧記憶胞陣列
2204‧‧‧字元線控制電路
2206‧‧‧位元線控制電路
2208‧‧‧行解碼器
2210‧‧‧資料輸入/輸出緩衝器
2212‧‧‧控制電路
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
211‧‧‧備用供電電路
212‧‧‧錯誤檢查與校正電路
710、720、730、740、750‧‧‧訊框資訊結構
801、901、903‧‧‧寫入指令
802、902、904‧‧‧資料
811、911、912‧‧‧程序
T81、T82、T83、T91、T92、T93、T94‧‧‧時間點
S1002、S1004、S1006‧‧‧本發明之一範例實施例中資料保護方法各步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據本發明之一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖7是根據一範例實施例所繪示的記憶體儲存裝置與主機系統之間的傳輸示意圖。
圖8是根據一範例實施例所繪示的時序示意圖。
圖9是根據另一範例實施例所繪示的時序示意圖。
圖10是根據一範例實施例所繪示的資料保護方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括
嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
請參照圖5,可複寫式非揮發性記憶體模組106包括記憶胞陣列2202、字元線控制電路2204、位元線控制電路2206、行解碼器(column decoder)2208、資料輸入/輸出緩衝器2210與控制電路2212。
記憶胞陣列2202包括用以儲存資料的多個記憶胞。這些記憶胞是以陣列的方式配置在多條字元線與多條位元線的交叉點上。當從記憶體控制電路單元104接收到寫入指令或讀取指令時,控制電路2212會控制字元線控制電路2204、位元線控制電路2206、行解碼器2208、資料輸入/輸出緩衝器2210來寫入資料至記憶胞陣列2202或從記憶胞陣列2202中讀取資料。此外,字元線控制電路2204用以控制施予至字元線的電壓,位元線控制電路2206用以控制施予至位元線的電壓,行解碼器2208依據指令中的解碼列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器2210用以暫存資料。
記憶胞陣列2202中的記憶胞會被劃分為實體抹除單元410(0)~410(N)。實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。在本範例實施例中,每一實體抹除單元是由64個實體程式化單元組成。然而,在本發明之其他範例實施例中,每一實體抹除單元是由128、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含16個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106
為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖6是根據本發明之一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖6,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206、緩衝記憶體208、電源管理電路210及備用供電電路211。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非
揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體管理電路202會配置多個邏輯位址以利於以一輪替方式在儲存資料之實體抹除單元中進行資料存取。例如,當記憶體儲存裝置100被檔案系統(例如,FAT 32)格式化時,這些邏輯位址會被分別地映射到至少部分的實體抹除單元410(0)~410(N)。例如,記憶體管理電路202會建立邏輯位址-實體抹除單元映射表(logical address-physical erasing unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。在本範例實施例中,每一個邏輯位址的大小是相同於每一個實體抹除單元410(0)~410(N)的大小,並且邏輯位址亦可被稱為邏輯區塊位址(logical block address,LBA)。此外,在另一範例實施例中,邏輯位址也可以是一個實體程式化單元的大小或是其他大小,本發明並不在此限。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。例如,緩衝記憶體208可以包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)與靜態隨機存取記憶體(Static Random Access Memory,SRAM)等任何會因斷電或電壓供應不穩而遺失已儲存之資料的記憶體。此外,緩衝記憶體208是以晶片組或系統單晶片(System on Chip,SoC)的方式實作在記憶體控制電路單元104內,或者是被獨立於記憶體控制電路單元104之外,本發明不對其限制。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
備用供電電路211是耦接至電源管理電路210。在本範例實施例中,備用供電電路211包括至少一個電容(electric capacity)。在正常供電的情況下,備用供電電路211會儲存一定的電能。當發生突然的斷電或電壓供應不穩等供電問題時,備用供電電路211會提供備用電源至記憶體儲存裝置100。若平時備用供電電路211所儲存的電能越多(例如,備用供電電路211包括較多的電容及/或電容的體積較大),則斷電時備用電源的供電時間就較
長。反之,若平常備用供電電路211所儲存的備用電源越少(例如,備用供電電路211包括較少的電容及/或電容的體積較小),則斷電時備用電源的供電時間就較短。然而,在另一範例實施例中,備用供電電路211則是配置在記憶體控制電路單元104之外,本發明不對其限制。
在一範例實施例中,記憶體控制電路單元104還包括錯誤檢查與校正電路212。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖7是根據一範例實施例所繪示的記憶體儲存裝置與主機系統之間的傳輸示意圖。
請參照圖7,在此以SATA標準為例,主機系統1000與記憶體儲存裝置100之間會交換多個訊框資訊結構(frame
information structure,FIS)以完成一個指令的執行。值得注意的是,在SATA標準中,訊框資訊結構是屬於傳輸(transport)層,因此一個訊框資訊結構還會被包含在其他的資料結構中,本領域具有通常知識者應可理解如何傳送訊框資訊結構,在此不再贅述。此外,主機系統1000與記憶體儲存裝置100還可能交換其他的訊號,本發明並不在此限。當主機系統1000要下達一指令給記憶體儲存裝置100時,主機系統1000會先傳送一個主機至裝置(host to device,H2D)的訊框資訊結構710給記憶體儲存裝置100。訊框資訊結構710是用以指示此指令的資訊。接下來,記憶體儲存裝置100會傳送裝置至主機(device to host,D2H)的訊框資訊結構720給主機系統1000。在交換了訊框資訊結構710與720後,便表示此指令已經傳送給記憶體儲存裝置100,並且此指令會被儲存在記憶體儲存裝置100的一個指令佇列中。
當記憶體儲存裝置100要執行指令佇列中的一個指令時,記憶體儲存裝置100可能會傳送一個直接記憶體存取設置(direct memory access setup,DMA setup)的訊框資訊結構730給主機系統1000。所要執行的指令可以是寫入指令、讀取指令、可複寫式非揮發性記憶體模組106的垃圾回收(garbage collection)程序的執行指令、可複寫式非揮發性記憶體模組106的邏輯位址-實體抹除單元映射表更新程序的執行指令、損耗平均(Wear Leveling)程序的執行指令或者對應於任意指令(例如,寫入指令或讀取指令)的失敗處理(fail handling)程序的執行指令等等。此外,儲存在指
令佇列中的指令可以是由記憶體管理電路202執行或者是由控制電路2212執行,本發明不加以限制。
然後,主機系統1000會傳送資料(DATA)訊框資訊結構740給記憶體儲存裝置100(例如,所執行的是寫入指令)。或者,記憶體儲存裝置100會傳送資料訊框資訊結構740給主機系統1000(例如,所執行的是讀取指令)。當此指令執行完畢以後,記憶體儲存裝置100會傳送設置裝置位元(set device bits,SDB)的訊框資訊結構750給主機系統1000。在接收到訊框資訊結構750以後,主機系統1000便可以再下達另一個指令給記憶體儲存裝置100。
在本範例實施例中,記憶體管理電路202會根據此指令佇列判斷即將或者正在被記憶體儲存裝置100執行的一程序(以下統稱為第一程序)是否是一第一類程序。
在本範例實施例中,第一類程序包括邏輯位址-實體抹除單元映射表更新程序、損耗平均程序及失敗處理程序等任何執行時間很長且執行中無法中斷或中斷後會造成資料遺失的程序。此邏輯位址-實體抹除單元映射表更新程序是指記憶體管理電路202更新儲存在可複寫式非揮發性記憶體模組106中的邏輯位址-實體抹除單元映射表中的邏輯位址與可複寫式非揮發性記憶體模組106中的實體抹除單元之間的映射關係。此損耗平均程序是指記憶體管理電路202執行可複寫式非揮發性記憶體模組106中各個記憶胞的損耗平均。此失敗處理程序是指當發生嚴重的資料讀取錯誤或資料寫入錯誤(例如,錯誤位元過多而無法更正)時,記憶體管
理電路202所執行的回復程序。此外,在另一範例實施例中,第一類程序還可以包括對於可複寫式非揮發性記憶體模組106的垃圾回收程序等執行時間較長但可以中斷的程序,本發明不加以限制。
在另一範例實施例中,記憶體管理電路202則是會獲得此第一程序的執行所需時間。此第一程序的執行所需時間是指此第一程序從開始執行到執行完畢所需的時間。例如,記憶體管理電路202可以預先記錄記憶體儲存裝置100可執行的每一種程序的執行所需時間於一表格,並且記憶體管理電路202可以透過查詢此表格來獲得此第一程序的執行所需時間。此外,記憶體管理電路202也可以透過即時模擬(simulation)或評估的方式來獲得此第一程序的執行所需時間,本發明不加以限制。記憶體管理電路202會判斷此第一程序的執行所需時間是否大於或等於一門檻值。若此第一程序的執行所需時間大於或等於門檻值,記憶體管理電路202會判定此第一程序是第一類程序。反之,若此第一程序的執行所需時間小於門檻值,則記憶體管理電路202不會判定此第一程序是第一類程序。
值得一提的是,在一範例實施例中,此門檻值是記憶體管理電路202根據記憶體儲存裝置100的備用電源的供應時間來決定的,並且此備用電源是由備用供電電路211所供應的。例如,此門檻值可以是被設定為小於或等於備用供電電路211所供應的備用電源的最大可供應時間(即,備用供電電路211被充電充飽時
的備用電源的供應時間)。或者,此門檻值也可以是被適應性地設定為小於或等於備用供電電路211當前儲存的備用電源的供應時間。此外,此門檻值也可以是系統預設的或由使用者自行設定,本發明不加以限制。
若記憶體管理電路202判定此第一程序是第一類程序,則在此第一程序被執行完畢之前,記憶體管理電路202會暫停從主機系統1000接收對應於一寫入指令(以下統稱為第一寫入指令)的資料(以下統稱為第一資料)。反之,若記憶體管理電路202判定此第一程序不是第一類程序,則在此第一程序被執行完畢之前,記憶體管理電路202允許從主機系統1000接收對應於此第一寫入指令的第一資料。
值得一提的是,在本範例實施例中,記憶體管理電路202會持續地判斷每一個正在或者即將被記憶體儲存裝置100執行的程序是否是第一類程序。若記憶體管理電路202判定正在或者即將被記憶體儲存裝置100執行的第一程序是第一類程序,則在第一程序被執行完畢之前,不管記憶體儲存裝置100有沒有接收到來自主機系統1000的第一寫入指令(或,訊框資訊結構710),記憶體管理電路202都會先暫停送出訊框資訊結構720,以確保在第一程序被執行完畢之前,主機系統1000不會發送對應於此第一寫入指令的第一資料(或,資料訊框資訊結構740)至記憶體儲存裝置100。
此外,在另一範例實施例中,記憶體管理電路202僅在
特定的時間點執行此判斷。例如,當記憶體管理電路202接收到第一寫入指令(或,訊框資訊結構710)時,記憶體管理電路202會根據此第一寫入指令來判斷是否有正在或者即將被記憶體儲存裝置100執行的第一程序。若有正在或者即將被記憶體儲存裝置100執行的第一程序,則記憶體管理電路202會接續判斷此第一程序是否是第一類程序。若此第一程序是第一類程序,則在此第一程序被執行完畢之前,記憶體管理電路202會暫停從主機系統1000接收此第一資料。例如,暫停送出訊框資訊結構720。此外,若記憶體管理電路202判定沒有正在或者即將被記憶體儲存裝置100執行的第一程序,例如,記憶體儲存裝置100被閒置,或者此第一程序不是第一類程序,例如,此第一程序是一般的讀取或寫入程序,則記憶體管理電路202會根據此第一寫入指令來接收第一資料。例如,先發送訊框資訊結構720與730至主機系統1000,再從主機系統1000接收訊框資訊結構740。
圖8是根據一範例實施例所繪示的時序示意圖。
請參照圖8,假設在時間點T81,記憶體儲存裝置100接收到寫入指令801。記憶體管理電路202會根據寫入指令801的接收時間(即,時間點T81)來判斷指令佇列中是否有即將被記憶體儲存裝置100執行的程序。假設即將被記憶體管理電路202執行的程序是程序811,則記憶體管理電路202會判斷程序811是否是第一類程序。若記憶體管理電路202判定程序811是第一類程序,在時間點T82至T83之間,記憶體管理電路202會暫停接收來自
主機系統1000且對應於寫入指令801的資料802,其中時間點T82是程序811被開始執行的時間點,並且時間點T83是程序811被執行完畢的時間點。接著,在時間點T83之後,記憶體管理電路202允許開始接收資料802。
然而,在另一範例實施例中,在送出訊框資訊結構750至主機系統1000之前,若記憶體管理電路202判定正在或者即將被記憶體儲存裝置100執行的第一程序是第一類程序,則記憶體管理電路202會暫停送出訊框資訊結構750,以阻止主機系統1000起始下一個指令的傳輸。然後,當第一程序被執行完畢時,記憶體管理電路202才會恢復傳送訊框資訊結構750。
在另一範例實施例中,若記憶體管理電路202判定正在或者即將被記憶體儲存裝置100執行的第一程序是第一類程序,則在第一程序被執行完畢之前,記憶體管理電路202會阻擋或過濾所有來自主機系統1000的寫入指令。例如,記憶體管理電路202可以阻擋或過濾所有來自主機系統1000的訊框資訊結構710。藉此,來自主機系統1000的訊框資訊結構710沒有被記憶體管理電路202接收或者訊框資訊結構710中的指令沒有被儲存到指令佇列中,因此記憶體管理電路202也不會接收到後續的資料訊框資訊結構740。
在一範例實施例中,當記憶體管理電路202接收到來自主機系統1000的寫入指令(以下統稱為第二寫入指令)與對應於此第二寫入指令的資料(以下統稱為第二資料)時,記憶體管理電路
202會將此第二資料暫存於記憶體儲存裝置1000的一緩衝區。此緩衝區例如是部份或全部的緩衝記憶體208。當此第二資料被寫入至此緩衝區且此緩衝區仍具有可用以暫存來自主機系統的資料(例如,完整的上述第一資料)的空間時,記憶體管理電路202會判斷即將或者正在被記憶體儲存裝置100執行的第一程序是否是第一類程序。然後,若記憶體管理電路202判定此第一程序是第一類程序,記憶體管理電路202還會判斷對應於暫存於此緩衝區的第二資料的一程序(以下統稱為第二程序)是否已被執行完畢。若此第二程序已被執行完畢,記憶體管理電路202會允許記憶體儲存裝置100開始執行第一程序。反之,若此第二程序尚未被執行完畢,則記憶體管理電路202不允許記憶體儲存裝置100開始執行第一程序。
圖9是根據另一範例實施例所繪示的時序示意圖。
請參照圖9,在時間點T91,記憶體管理電路202接收到寫入指令901,並且記憶體管理電路202接續接收到對應於寫入指令901的資料902。記憶體管理電路202會將寫入指令901與資料902暫存於緩衝記憶體208。在時間點T92,記憶體管理電路202開始執行對應於暫存在緩衝記憶體208中的資料902的程序911。例如,將資料902寫入至可複寫式非揮發性記憶體模組106。在執行程序911之前或在執行程序911的過程中,若記憶體管理電路202得知即將要執行程序912,則記憶體管理電路202會判斷程序912是否是第一類程序。若程序912不是第一類程序,記憶體管理
電路202會依照預設的執行順序來執行程序911與程序912。例如,記憶體管理電路202可以先執行程序912再執行程序911。或者,記憶體管理電路202也可以先執行程序911的一部份,然後執行程序912,並且在執行完程序912時再接續執行程序911的另一部份。然而,若記憶體管理電路202判定程序912是第一類程序,則記憶體管理電路202會保證程序911會在開始執行程序912之前被執行完畢。然後,在時間點T93,程序911已被執行完畢,因此記憶體管理電路202可以開始執行程序912。在時間點T94,程序912被執行完畢。
在時間點T93至T94之間,假設記憶體管理電路202接收到來自主機系統1000的寫入指令903。在接收到寫入指令903時,即使緩衝記憶體208有足夠用以暫存對應於寫入指令903的完整的資料904的空間,記憶體管理電路202也是會將開始接收資料904的時間延後到時間點T94或時間點T94之後。例如,在時間點T94之前,記憶體管理電路202可以暫停送出訊框資訊結構720至主機系統1000。然後,在時間點T94或時間點T94之後,記憶體管理電路202才允許送出訊框資訊結構720至主機系統1000。
值得一提的是,雖然圖8與圖9的範例實施例都是以圖7的SATA介面的資料傳輸作為範例進行說明,然而,對應於不同類型的記憶體介面,訊框資訊結構710~750的傳送順序、數量與內容也可以適應性地調整,而不限於此。
圖10是根據一範例實施例所繪示的資料保護方法的流程圖。
請參照圖10,在步驟S1002中,由記憶體管理電路202判斷即將或者正在被執行的一第一程序是否是第一類程序。
若即將或者正在被執行的第一程序是第一類程序,在步驟S1004中,在第一程序被執行完畢之前,由記憶體管理電路202暫停接收對應於一第一寫入指令的一第一資料。
此外,若即將或者正在被執行的第一程序不是第一類程序,則在步驟S1006中,在第一程序被執行完畢之前,由記憶體管理電路202允許接收對應於第一寫入指令的第一資料。
然而,圖10中各步驟已詳細說明如上,在此便不在贅述。值得注意的是,圖10中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖10的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
值得一提的是,儘管在本範例實施例中記憶體管理電路202是實作在記憶體控制電路單元104中,但本發明不限於此。在另一範例實施例中,記憶體管理電路202亦可實作在可複寫式非易失性記憶體模組106的控制電路2212中,並透過一介面電性連接至可複寫式非易失性記憶體模組106的記憶胞陣列2202。
綜上所述,本發明的資料保護方法、記憶體儲存裝置及記憶體控制電路單元會持續地或在特定的時間點判斷即將或者正在被執行的第一程序是否是第一類程序。若是,則在第一程序被
執行完畢之前,暫停接收對應於一第一寫入指令的一第一資料,以避免已接收的資料在等待處理的過程中因記憶體儲存裝置發生突然的斷電而遺失。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1002、S1004、S1006‧‧‧資料保護方法各步驟
Claims (25)
- 一種資料保護方法,用於一記憶體儲存裝置,該資料保護方法包括:判斷即將或者正在被該記憶體儲存裝置執行的一第一程序是否是一第一類程序;以及若即將或者正在被該記憶體儲存裝置執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停從一主機系統接收對應於一第一寫入指令的一第一資料至該記憶體儲存裝置的一緩衝區。
- 如申請專利範圍第1項所述的資料保護方法,更包括:若即將或者正在被該記憶體儲存裝置執行的該第一程序不是該第一類程序,在該第一程序被執行完畢之前,允許接收對應於該第一寫入指令的該第一資料,並且將該第一資料暫存於該記憶體儲存裝置的該緩衝區。
- 如申請專利範圍第1項所述的資料保護方法,其中若即將或者正在被該記憶體儲存裝置執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停接收對應於該第一寫入指令的該第一資料的步驟包括:暫停接收該第一寫入指令與對應於該第一寫入指令的該第一資料。
- 如申請專利範圍第1項所述的資料保護方法,其中若即將或者正在被該記憶體儲存裝置執行的該第一程序是該第一類程 序,在該第一程序被執行完畢之前,暫停接收對應於該第一寫入指令的該第一資料的步驟包括:暫停送出一裝置至主機(device to host,D2H)的訊框資訊結構。
- 如申請專利範圍第1項所述的資料保護方法,其中判斷即將或者正在被該記憶體儲存裝置執行的該第一程序是否是該第一類程序的步驟包括:接收該第一寫入指令;判斷是否有正在或者即將被該記憶體儲存裝置執行的該第一程序;若沒有正在或者即將被該記憶體儲存裝置執行的該第一程序,根據該第一寫入指令接收該第一資料;以及若有正在或者即將被該記憶體儲存裝置執行的該第一程序,在接收該第一資料之前,判斷正在或者即將被該記憶體儲存裝置執行的該第一程序是否是該第一類程序。
- 如申請專利範圍第1項所述的資料保護方法,其中該緩衝區具有用以暫存完整的該第一資料的一空間。
- 如申請專利範圍第6項所述的資料保護方法,其中在判斷即將或者正在被執行的該第一程序是否是該第一類程序的步驟之前,該資料保護方法更包括:接收一第二寫入指令與對應於該第二寫入指令的一第二資料,並且將該第二資料暫存於該緩衝區,其中在該第二資料被暫 存於該緩衝區之後,該緩衝區仍具有用以暫存完整的該第一資料的該空間,若即將或者正在被該記憶體儲存裝置執行的該第一程序是該第一類程序,該資料保護方法更包括:判斷對應於暫存於該緩衝區的該第二資料的一第二程序是否已被執行完畢;若該第二程序已被執行完畢,允許該記憶體儲存裝置開始執行該第一程序;以及若該第二程序尚未被執行完畢,不允許該記憶體儲存裝置開始執行該第一程序。
- 如申請專利範圍第1項所述的資料保護方法,其中判斷即將或者正在被該記憶體儲存裝置執行的該第一程序是否是該第一類程序的步驟包括:獲得即將或者正在被該記憶體儲存裝置執行的該第一程序的一執行所需時間;判斷該執行所需時間是否大於或等於一門檻值;以及若該執行所需時間大於或等於該門檻值,判定即將或者正在被該記憶體儲存裝置執行的該第一程序是該第一類程序。
- 如申請專利範圍第8項所述的資料保護方法,更包括:根據該記憶體儲存裝置的一備用電源的一供應時間來決定該門檻值。
- 如申請專利範圍第1項所述的資料保護方法,其中該第 一類程序包括一映射表格更新程序、一損耗平均程序或一失敗處理程序。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一緩衝區;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且該記憶體控制電路單元用以執行下列操作:判斷即將或者正在被該記憶體控制電路單元執行的一第一程序是否是一第一類程序;以及若即將或者正在被該記憶體控制電路單元執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停從該主機系統接收對應於一第一寫入指令的一第一資料至該緩衝區。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中若即將或者正在被該記憶體控制電路單元執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停從該主機系統接收對應於該第一寫入指令的該第一資料的操作包括:暫停送出一裝置至主機的訊框資訊結構。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中判斷即將或者正在被該記憶體控制電路單元執行的該第一程序是否是該第一類程序的操作包括: 接收該第一寫入指令;判斷是否有正在或者即將被該記憶體控制電路單元執行的該第一程序;若沒有正在或者即將被該記憶體控制電路單元執行的該第一程序,根據該第一寫入指令接收該第一資料;以及若有正在或者即將被該記憶體控制電路單元執行的該第一程序,在接收該第一資料之前,判斷正在或者即將被該記憶體控制電路單元執行的該第一程序是否是該第一類程序。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該緩衝區具有用以暫存完整的該第一資料的一空間。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中在判斷即將或者正在被該記憶體控制電路單元執行的該第一程序是否是該第一類程序的步驟之前,該記憶體控制電路單元更用以接收一第二寫入指令與對應於該第二寫入指令的一第二資料,並且將該第二資料暫存於該緩衝區,其中在該第二資料被暫存於該緩衝區之後,該緩衝區仍具有用以暫存完整的該第一資料的該空間,若即將或者正在被該記憶體控制電路單元執行的該第一程序是該第一類程序,該記憶體控制電路單元更用以執行下列操作:判斷對應於暫存於該緩衝區的該第二資料的一第二程序是否已被執行完畢;若該第二程序已被執行完畢,允許開始執行該第一程序;以及 若該第二程序尚未被執行完畢,不允許開始執行該第一程序。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中判斷即將或者正在被該記憶體控制電路單元執行的該第一程序是否是該第一類程序的操作包括:獲得即將或者正在被該記憶體控制電路單元執行的該第一程序的一執行時間;判斷該執行時間是否大於或等於一門檻值;以及若該執行時間大於或等於該門檻值,判定即將或者正在被該記憶體控制電路單元執行的該第一程序是該第一類程序。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以執行下列操作:根據該記憶體儲存裝置的一備用電源的一供應時間來決定該門檻值。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一類程序包括一映射表格更新程序、一損耗平均程序或一失敗處理程序。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一緩衝區;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並 且該記憶體管理電路用以執行下列操作:判斷即將或者正在被該記憶體管理電路執行的一第一程序是否是一第一類程序;以及若即將或者正在被該記憶體管理電路執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停從該主機系統接收對應於一第一寫入指令的一第一資料至該緩衝區。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中若即將或者正在被該記憶體管理電路執行的該第一程序是該第一類程序,在該第一程序被執行完畢之前,暫停從該主機系統接收對應於該第一寫入指令的該第一資料的操作包括:暫停送出一裝置對主機指令至該主機系統。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該緩衝區具有用以暫存完整的該第一資料的一空間。
- 如申請專利範圍第21項所述的記憶體控制電路單元,其中在判斷即將或者正在被該記憶體管理電路執行的該第一程序是否是該第一類程序的步驟之前,該記憶體管理電路更用以接收一第二寫入指令與對應於該第二寫入指令的一第二資料,並且將該第二資料暫存於該緩衝區,其中在該第二資料被暫存於該緩衝區之後,該緩衝區仍具有用以暫存完整的該第一資料的該空間,若即將或者正在被該記憶體管理電路執行的該第一程序是該第一類程序,該記憶體管理電路更用以執行下列操作:判斷對應於暫存於該緩衝區的該第二資料的一第二程序是否 已被執行完畢;若該第二程序已被執行完畢,允許該記憶體管理電路開始執行該第一程序;以及若該第二程序尚未被執行完畢,不允許該記憶體管理電路開始執行該第一程序。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中判斷即將或者正在被該記憶體管理電路執行的該第一程序是否是該第一類程序的操作包括:獲得即將或者正在被該記憶體管理電路執行的該第一程序的一執行時間;判斷該執行時間是否大於或等於一門檻值;以及若該執行時間大於或等於該門檻值,判定即將或者正在被該記憶體管理電路執行的該第一程序是該第一類程序。
- 如申請專利範圍第23項所述的記憶體控制電路單元,其中該記憶體管理電路更用以執行下列操作:根據該記憶體控制電路單元的一備用電源的一供應時間來決定該門檻值。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該第一類程序包括一映射表格更新程序、一損耗平均程序或一失敗處理程序。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102280A TWI582594B (zh) | 2014-01-22 | 2014-01-22 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/243,903 US10169224B2 (en) | 2014-01-22 | 2014-04-03 | Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102280A TWI582594B (zh) | 2014-01-22 | 2014-01-22 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201530312A TW201530312A (zh) | 2015-08-01 |
TWI582594B true TWI582594B (zh) | 2017-05-11 |
Family
ID=53544924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103102280A TWI582594B (zh) | 2014-01-22 | 2014-01-22 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10169224B2 (zh) |
TW (1) | TWI582594B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034174A1 (en) * | 2006-08-04 | 2008-02-07 | Shai Traister | Non-volatile memory storage systems for phased garbage collection |
US20090161466A1 (en) * | 2007-12-20 | 2009-06-25 | Spansion Llc | Extending flash memory data retension via rewrite refresh |
US20130151762A1 (en) * | 2010-04-12 | 2013-06-13 | Hitachi, Ltd. | Storage device |
US8566505B2 (en) * | 2008-04-15 | 2013-10-22 | SMART Storage Systems, Inc. | Flash management using sequential techniques |
TW201351137A (zh) * | 2012-06-11 | 2013-12-16 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
TW201403316A (zh) * | 2012-07-11 | 2014-01-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2014
- 2014-01-22 TW TW103102280A patent/TWI582594B/zh active
- 2014-04-03 US US14/243,903 patent/US10169224B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034174A1 (en) * | 2006-08-04 | 2008-02-07 | Shai Traister | Non-volatile memory storage systems for phased garbage collection |
US20090161466A1 (en) * | 2007-12-20 | 2009-06-25 | Spansion Llc | Extending flash memory data retension via rewrite refresh |
US8566505B2 (en) * | 2008-04-15 | 2013-10-22 | SMART Storage Systems, Inc. | Flash management using sequential techniques |
US20130151762A1 (en) * | 2010-04-12 | 2013-06-13 | Hitachi, Ltd. | Storage device |
TW201351137A (zh) * | 2012-06-11 | 2013-12-16 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
TW201403316A (zh) * | 2012-07-11 | 2014-01-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US10169224B2 (en) | 2019-01-01 |
US20150205715A1 (en) | 2015-07-23 |
TW201530312A (zh) | 2015-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI622923B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9940189B2 (en) | Method and system for data rebuilding and memory control circuit unit thereof | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20120131263A1 (en) | Memory storage device, memory controller thereof, and method for responding host command | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US9965400B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
KR20160074025A (ko) | 데이터 저장 장치의 동작 방법 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201727492A (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TW201329999A (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9733832B2 (en) | Buffer memory accessing method, memory controller and memory storage device | |
TWI494944B (zh) | 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置 | |
TWI467578B (zh) | 錯誤處理方法、記憶體儲存裝置與記憶體控制電路單元 | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
TWI582594B (zh) | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI648629B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104809082A (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TW201810258A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |