TWI559141B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI559141B TWI559141B TW102103797A TW102103797A TWI559141B TW I559141 B TWI559141 B TW I559141B TW 102103797 A TW102103797 A TW 102103797A TW 102103797 A TW102103797 A TW 102103797A TW I559141 B TWI559141 B TW I559141B
- Authority
- TW
- Taiwan
- Prior art keywords
- erasing
- unit
- physical
- area
- memory
- 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/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的資料寫入方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組可透過一個傳輸介面耦接至一個主機系統。主機系統可透過此傳輸介面將資料寫入至可複寫式非揮發性記憶體模組。並且,可複寫式非揮發性記憶體模組內會包括多個通道,藉此增加可複寫式非揮發性記憶體模組內寫入資料的速度。然而,當可複寫式非揮發性記憶體模組內寫入資料的速度已經大於傳輸介面的傳輸速度,則主機寫入資料的速度便只能決定於傳輸介面的傳輸速度。因此,如何在此
情況下再增加主機寫入資料的速度,為此領域技術人員所關心的議題。
本發明範例實施例提出一種資料寫入方法、記憶體控制器與記憶體儲存裝置,可以增加主機系統寫入資料至記憶體儲存裝置的速度。
本發明一範例實施例提出一種資料寫入方法,用於控制一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括一個第一記憶單元與一個第二記憶單元,第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。此資料寫入方法包括:配置多個邏輯位址以映射至至少部份的第一實體抹除單元與至少部份的第二實體抹除單元;接收來自一主機系統的一寫入指令,其中寫入指令指示將第一資料寫入至一個第一邏輯位址;從第一實體抹除單元與第二實體抹除單元中取得一個第三實體抹除單元,並且將第一資料寫入至第三實體抹除單元;判斷第三實體抹除單元屬於第一記憶單元或是第二記憶單元;以及若第三實體抹除單元屬於第一記憶單元,將第一資料寫入至第三實體抹除單元時,抹除第二實體抹除單元的其中之一。
在一範例實施例中,上述的資料寫入方法更包括:若第三實體抹除單元屬於第二記憶單元,將第一資料寫入至第三實體
抹除單元時,抹除第一實體抹除單元的其中之一。
在一範例實施例中,上述的資料寫入方法更包括:將第一實體抹除單元與第二實體抹除單元至少劃分為一資料區與一閒置區,其中上述至少部份的第一實體抹除單元與上述至少部份的第二實體抹除單元是屬於資料區;以及設置一個第一抹除區與一個第二抹除區。上述的第三實體抹除單元是屬於閒置區,被抹除的第一實體抹除單元是屬於第一抹除區,並且被抹除的第二實體抹除單元是屬於第二抹除區。
在一範例實施例中,上述的第一邏輯位址是映射至第一實體抹除單元與第二實體抹除單元中的一個第四實體抹除單元,在將第一資料寫入至第三實體抹除單元的步驟之後,此資料寫入方法還包括:判斷第四實體抹除單元是否需要被抹除;若第四實體抹除單元需要被抹除,判斷第一抹除區或第二抹除區的一實體抹除單元個數是否大於等於一臨界值;若第一抹除區與第二抹除區的實體抹除單元個數小於臨界值,將第四實體抹除單元關聯至所對應的第一抹除區或第二抹除區。
在一範例實施例中,上述的資料寫入方法更包括:若第一抹除區或第二抹除區的實體抹除單元個數大於等於臨界值,抹除第四實體抹除單元,並且將第四實體抹除單元關聯至閒置區。
在一範例實施例中,上述的資料寫入方法更包括:將被抹除的第一實體抹除單元或是被抹除的第二實體抹除單元關聯至閒置區。
在一範例實施例中,在第一資料被寫入至第三實體抹除單元以後,上述的第一抹除區包括多個已被抹除的第一實體抹除單元,並且第二抹除區包括多個已被抹除的第二實體抹除單元。此資料寫入方法還包括:交錯地將一個已被抹除的第一實體抹除單元與一個已被抹除的第二實體抹除單元關聯至閒置區。
在一範例實施例中,上述的每一個第一實體抹除單元包括多個實體程式化單元,並且每一個第二實體抹除單元包括多個實體程式化單元。此資料寫入方法更包括:根據可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n;將第一資料寫入至第三實體抹除單元中n個實體程式化單元後,檢查第一抹除區或第二抹除區中是否有需要被抹除的實體抹除單元;以及若第一抹除區或第二抹除區中有需要被抹除的實體抹除單元,執行所述抹除第二實體抹除單元的其中之一的步驟或是所述抹除第一實體抹除單元的其中之一的步驟。
在一範例實施例中,上述的邏輯位址是交錯地映射至第一實體抹除單元的其中之一與第二實體抹除單元的其中之一。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器是用以耦接至一主機系統。可複寫式非揮發性記憶體模組包括一個第一記憶單元與一個第二記憶單元,其中第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。記憶體控制器是耦接至連接器與可複
寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至至少部份的第一實體抹除單元與至少部份的第二實體抹除單元。記憶體控制器也用以接收來自主機系統的一個寫入指令,此寫入指令指示將第一資料寫入至一個第一邏輯位址。記憶體控制器也用以從第一實體抹除單元與第二實體抹除單元中取得一個第三實體抹除單元,並且將第一資料寫入至第三實體抹除單元。記憶體控制器也用以判斷第三實體抹除單元是屬於第一記憶單元或是第二記憶單元。若第三實體抹除單元是屬於第一記憶單元,記憶體控制器用以在將第一資料寫入至第三實體抹除單元時,抹除第二實體抹除單元的其中之一。
在一範例實施例中,若第三實體抹除單元屬於第二記憶單元,記憶體控制器用以在將第一資料寫入至第三實體抹除單元時,抹除第一實體抹除單元的其中之一。
在一範例實施例中,上述的記憶體控制器更用以將第一實體抹除單元與第二實體抹除單元至少劃分為一資料區與一閒置區,其中上述至少部份的第一實體抹除單元與上述至少部份的第二實體抹除單元是屬於資料區。記憶體控制器更用以設置一個第一抹除區與一個第二抹除區。上述的第三實體抹除單元是屬於閒置區,被抹除的第一實體抹除單元是屬於第一抹除區,並且被抹除的第二實體抹除單元是屬於第二抹除區。
在一範例實施例中,上述的第一邏輯位址是映射至第一實體抹除單元與第二實體抹除單元中的一個第四實體抹除單元。
在將第一資料寫入至第三實體抹除單元之後,記憶體控制器更用以判斷第四實體抹除單元是否需要被抹除。若第四實體抹除單元需要被抹除,記憶體控制器用以判斷第一抹除區或第二抹除區的一實體抹除單元個數是否大於等於一臨界值。若第一抹除區與第二抹除區的實體抹除單元個數小於臨界值,記憶體控制器用以將第四實體抹除單元關聯至所對應的第一抹除區或第二抹除區。
在一範例實施例中,若第一抹除區或第二抹除區的實體抹除單元個數大於等於臨界值,記憶體控制器用以抹除第四實體抹除單元,並且將第四實體抹除單元關聯至閒置區。
在一範例實施例中,上述的記憶體控制器更用以將被抹除的第一實體抹除單元或是被抹除的第二實體抹除單元關聯至閒置區。
在一範例實施例中,在第一資料被寫入至第三實體抹除單元以後,第一抹除區包括多個已被抹除的第一實體抹除單元,並且第二抹除區包括多個已被抹除的第二實體抹除單元。記憶體控制器更用以交錯地將已被抹除的第一實體抹除單元的其中之一與已被抹除的第二實體抹除單元的其中之一關聯至閒置區。
在一範例實施例中,上述每一個第一實體抹除單元包括多個實體程式化單元,每一個第二實體抹除單元包括多個實體程式化單元。記憶體控制器更用以根據可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n。記憶體控制器更用以在將第一資料寫入至第三實體抹除單元中n個實體程式化單元
後,檢查第一抹除區或第二抹除區中是否有需要被抹除的實體抹除單元。若第一抹除區或第二抹除區中有需要被抹除的實體抹除單元,記憶體控制器用以執行所述抹除第二實體抹除單元的其中之一的操作或是所述抹除第一實體抹除單元的其中之一的操作。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組。此記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至一主機系統。記憶體介面是用以耦接至可複寫式非揮發性記憶體模組。可複寫式非揮發性記憶體模組包括一個第一記憶單元與一個第二記憶單元,其中第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。記憶體管理電路是耦接至主機介面與記憶體介面,用以配置多個邏輯位址以映射至至少部份的第一實體抹除單元與至少部份的第二實體抹除單元。記憶體管理電路也用以接收來自主機系統的一個寫入指令,此寫入指令指示將第一資料寫入至一個第一邏輯位址。記憶體管理電路也用以從第一實體抹除單元與第二實體抹除單元中取得一個第三實體抹除單元,並且將第一資料寫入至第三實體抹除單元。記憶體管理電路也用以判斷第三實體抹除單元是屬於第一記憶單元或是第二記憶單元。若第三實體抹除單元是屬於第一記憶單元,記憶體管理電路用以在將第一資料寫入至第三實體抹除單元時,抹除第二實體抹除單元的其中之一。
在一範例實施例中,若第三實體抹除單元屬於第二記憶
單元,記憶體管理電路用以在將第一資料寫入至第三實體抹除單元時,抹除第一實體抹除單元的其中之一。
在一範例實施例中,上述的記憶體管理電路更用以將第一實體抹除單元與第二實體抹除單元至少劃分為一資料區與一閒置區,其中上述至少部份的第一實體抹除單元與上述至少部份的第二實體抹除單元是屬於資料區。記憶體管理電路更用以設置一個第一抹除區與一個第二抹除區。上述的第三實體抹除單元是屬於閒置區,被抹除的第一實體抹除單元是屬於第一抹除區,並且被抹除的第二實體抹除單元是屬於第二抹除區。
在一範例實施例中,上述的第一邏輯位址是映射至第一實體抹除單元與第二實體抹除單元中的一個第四實體抹除單元。在將第一資料寫入至第三實體抹除單元之後,記憶體管理電路更用以判斷第四實體抹除單元是否需要被抹除。若第四實體抹除單元需要被抹除,記憶體管理電路用以判斷第一抹除區或第二抹除區的一實體抹除單元個數是否大於等於一臨界值。若第一抹除區與第二抹除區的實體抹除單元個數小於臨界值,記憶體管理電路用以將第四實體抹除單元關聯至所對應的第一抹除區或第二抹除區。
在一範例實施例中,若第一抹除區或第二抹除區的實體抹除單元個數大於等於臨界值,記憶體管理電路用以抹除第四實體抹除單元,並且將第四實體抹除單元關聯至閒置區。
在一範例實施例中,上述的記憶體管理電路更用以將被
抹除的第一實體抹除單元或是被抹除的第二實體抹除單元關聯至閒置區。
在一範例實施例中,在第一資料被寫入至第三實體抹除單元以後,第一抹除區包括多個已被抹除的第一實體抹除單元,並且第二抹除區包括多個已被抹除的第二實體抹除單元。記憶體管理電路更用以交錯地將已被抹除的第一實體抹除單元的其中之一與已被抹除的第二實體抹除單元的其中之一關聯至閒置區。
在一範例實施例中,上述每一個第一實體抹除單元包括多個實體程式化單元,每一個第二實體抹除單元包括多個實體程式化單元。記憶體管理電路更用以根據可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n。記憶體管理電路更用以在將第一資料寫入至第三實體抹除單元中n個實體程式化單元後,檢查第一抹除區或第二抹除區中是否有需要被抹除的實體抹除單元。若第一抹除區或第二抹除區中有需要被抹除的實體抹除單元,記憶體管理電路用以執行所述抹除第二實體抹除單元的其中之一的操作或是所述抹除第一實體抹除單元的其中之一的操作。
基於上述,本發明範例實施例所提出的資料寫入方法、記憶體儲存裝置與記憶體控制器,可以同時執行寫入與抹除的操作,藉此增加主機系統將資料寫入至記憶體儲存裝置的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
210、220‧‧‧記憶單元
212(0)~212(A)、222(0)~222(B)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402‧‧‧資料區
404‧‧‧閒置區
406‧‧‧系統區
408‧‧‧取代區
410(0)~410(I)‧‧‧邏輯位址
420‧‧‧第一資料
510‧‧‧第一抹除區
520‧‧‧第二抹除區
S602、S604、S606、S608、S610、S612、S614、S616、S618、S620、S622、S624、S626、S628、S630、S632、S634、S636、S638、S640、S642、S702、S704、S706、S708、S710、S712、S802、S804‧‧‧步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5是根據一範例實施例繪示第一抹除區與第二抹除區的示意圖。
圖6A與圖6B是根據一範例實施例說明寫入第一資料的流程圖。
圖7是根據一範例實施例繪示資料寫入方法的流程圖。
圖8A與圖8B是根據第二範例實施例繪示寫入第一資料的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置
100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合序列先進附件(Serial Advanced Technology Attachment,SATA)標準、並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒
(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106包括記憶單元210(亦稱第一記憶單元)與記憶單元220(亦稱第二記憶單元)。記憶單元210包括實體抹除單元212(0)~212(A)(亦稱第一實體抹除單元),而記憶單元220包括實體抹除單元222(0)~222(B)(亦稱第二實體抹除單元)。記憶單元210與記憶單元220可以獨立地執行讀取、寫入與抹除的操作。例如,記憶單元210是透過至少一個第一通道耦接至記憶體控制器104,而記憶單元220是透過至少一個第二通道耦接至記憶體控制器104,並且第一通道不同於第二通道。或者,記憶單元210是被至少一個第一致能訊號(亦稱CE訊號)所控制,而記憶單元220是被至少一個第二致能訊號所控制,並且第一致能訊號不同於第二
致能訊號。換句話說,記憶單元210在執行讀取、寫入或抹除的操作時,記憶單元220也可以執行讀取、寫入或抹除的操作。並且,記憶單元210所執行的操作可以不同於對記憶單元220所執行的操作。另一方面,記憶單元210與記憶單元220可以屬於不同的記憶體晶粒(die),或屬於相同的記憶體晶粒,本發明並不在此限。
每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體存取位址,本發明並不
限制實體存取位址的大小以及個數。例如,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下描述記憶體管理電路202的操作時,等同於描述記憶體控制器104的操作,並不再贅述。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令
會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫
式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於SATA標準、PATA標準、IEEE 1394標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“劃分”、”提取”、”關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106中之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體抹除單元進行操作。
請參照圖4,記憶體控制器104可將可複寫式非揮發性記
憶體模組106的實體抹除單元212(0)~212(A)、222(0)~222(B)邏輯地劃分為多個區域,例如為資料區402、閒置區404、系統區406與取代區408。
資料區402與閒置區404的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已儲存資料的實體抹除單元,而閒置區404的實體抹除單元是用以替換資料區402的實體抹除單元。因此,閒置區404的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區404中的實體抹除單元已被執行抹除運作,或者當閒置區404中的實體抹除單元被提取用於儲存資料之前,所提取之實體抹除單元會先被執行抹除運作。因此,閒置區404的實體抹除單元為可被使用的實體抹除單元。
邏輯上屬於系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區408中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區402、閒置區404與系統區406中的實體抹除單元損毀時,預留於取代區408中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad block))。因此,倘若取代區408中仍存有正常之實體
抹除單元且發生實體抹除單元損毀時,記憶體控制器104會從取代區408中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區408中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。在另一範例實施例中,取代區408亦可與閒置區404共用包含無效資料之實體抹除單元。
特別是,資料區402、閒置區404、系統區406與取代區408之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區402、閒置區404、系統區406與取代區408的分組關係會動態地變動。例如,當閒置區404中的實體抹除單元損壞而被取代區408的實體抹除單元取代時,則原本取代區408的實體抹除單元會被關聯至閒置區404。在此範例實施例中,系統區406與取代區408包括了記憶單元210與記憶單元220中部份的實體抹除單元。然而,在其他範例實施例中,系統區406與取代區408也可只包括記憶單元210或是記憶單元220中的實體抹除單元,本發明並不在此限。
記憶體控制器104會配置邏輯位址410(0)~410(I)以利於在儲存資料之實體抹除單元中進行資料存取。例如,當記憶體儲存裝置100被主機系統1000上的作業系統透過一個檔案系統(例如,FAT 32)格式化時,邏輯位址410(0)~410(I)會分別地映射至資
料區402的實體抹除單元。在此,記憶體管理電路202會建立邏輯位址-實體抹除單元映射表(logical address-physical erasing unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。在此範例實施例中,一個邏輯位址的大小相同於一個實體抹除單元的大小,即邏輯位址亦可被稱為邏輯區塊位址(logical block address,LBA)。然而,在其他範例實施例中,一個邏輯位址的大小也可以是一個實體程式化單元的大小或其他大小,本發明並不在此限。
在此範例實施例中,在記憶體管理電路202配置邏輯位址410(0)~410(I)時,邏輯位址410(0)~410(I)是交錯地映射至記憶單元210中的一個實體抹除單元與記憶單元220中的一個實體抹除單元。例如,邏輯位址410(0)是映射至實體抹除單元212(0),邏輯位址410(1)是映射至實體抹除單元222(0),並且邏輯位址410(2)是映射至實體抹除單元212(1),以此類推。然而,在其他範例實施例中,記憶體管理電路202也可以將邏輯位址410(0)~410(I)以非交錯或是其他方式映射至資料區402中的實體抹除單元,本發明並不在此限。
當主機系統1000要將資料寫入至記憶體儲存裝置100時,主機系統1000會傳送一個寫入指令給記憶體管理電路202,並且此寫入指令會指示將資料寫入至哪一個邏輯位址。例如,主機系統1000傳送的寫入指令是指示將第一資料420寫入至邏輯位址410(0)(亦稱第一邏輯位址)。換句話說,主機系統1000是要更
新實體抹除單元212(0)(亦稱第四實體抹除單元)中的資料。記憶體管理電路202在接收到此寫入指令以後,會從閒置區404中提取一個實體抹除單元(亦稱第三實體抹除單元),並且將第一資料420寫入至此第三實體抹除單元當中。記憶體管理電路202也會將邏輯位址410(0)重新映射至此第三實體抹除單元,並且將第三實體抹除單元關聯至資料區402。特別的是,記憶體管理電路202會判斷此第三實體抹除單元是屬於記憶單元210中的實體抹除單元212(0)~212(A)或是記憶單元220中的實體抹除單元222(0)~222(B)。如果此第三實體抹除單元是屬於記憶單元210的實體抹除單元(例如,實體抹除單元212(C)),則在將第一資料420寫入至此第三實體抹除單元時,記憶體管理電路202會同時抹除記憶單元220中的至少一個實體抹除單元。如果此第三實體抹除單元是屬於記憶單元220的實體抹除單元(例如,實體抹除單元222(D)),則在將第一資料420寫入至此第三實體抹除單元時,記憶體管理電路202會同時抹除記憶單元210中的至少一個實體抹除單元。也就是說,記憶體管理電路202將第一資料420寫入至記憶單元210與記憶單元220的其中之一時,會同時抹除另外一個記憶單元中的至少一個實體抹除單元。以下將舉一範例實施例詳細說明。
圖5是根據一範例實施例繪示第一抹除區與第二抹除區的示意圖。
請參照圖5,除了上述的區域以外,記憶體管理電路202
還會邏輯地設置第一抹除區510與第二抹除區520。在記憶體儲存裝置100被格式化時,第一抹除區510與第二抹除區520中並沒有任何實體抹除單元。隨著記憶體管理電路202的運作,需要被抹除但還沒有被抹除的實體抹除單元會被關聯至第一抹除區510或第二抹除區520中。特別的是,第一抹除區510中只會放置屬於記憶單元210的實體抹除單元,而第二抹除區520中只會放置屬於記憶單元220的實體抹除單元。並且,記憶體管理電路202會限制第一抹除區510與第二抹除區520中實體抹除單元的個數不能超過一臨界值。
以上述例子來說,在將第一資料420寫入至閒置區404的一個實體抹除單元以後,實體抹除單元212(0)中部份的資料已成為無效資料,記憶體管理電路202會判斷實體抹除單元212(0)是否需要被抹除。例如,當實體抹除單元212(0)中所有的資料已成為無效資料,則記憶體管理電路202會判斷實體抹除單元212(0)需要被抹除。若實體抹除單元212(0)需要被抹除,則記憶體管理電路202會判斷實體抹除單元212(0)是對應於第一抹除區510或是第二抹除區520。在此,由於實體抹除單元212(0)是屬於記憶單元210,因此記憶體管理電路202會判斷實體抹除單元212(0)是對應於第一抹除區510。接下來,記憶體管理電路202會判斷第一抹除區510的實體抹除單元個數(即,第一抹除區510中實體抹除單元的個數)是否大於等於上述的臨界值。若第一抹除區510的實體抹除單元個數小於該臨界值,則記憶體管理電路202會將實體抹
除單元212(0)關聯至第一抹除區510。相反地,若第一抹除區510的實體抹除單元個數大於等於該臨界值,則記憶體管理電路202會抹除實體抹除單元212(0)並且將實體抹除單元212(0)關聯至閒置區404。類似地,當需要被抹除的實體抹除單元(例如,實體抹除單元222(0))是屬於第二抹除區520時,記憶體管理電路202會判斷第二抹除區520的實體抹除單元個數是否大於等於該臨界值,藉此判斷是否要將此實體抹除單元關聯至第二抹除區520。亦即,若第一抹除區510與第二抹除區520的實體抹除單元個數小於臨界值時,需要被抹除的實體抹除單元會被關聯至第一抹除區510或第二抹除區520。若對應的第一抹除區510或第二抹除區520的實體抹除單元個數大於等於臨界值時,需要被抹除的實體抹除單元會被抹除且被關聯至閒置區。
如上所述,第一抹除區510與第二抹除區520中放置的是需要被抹除但還沒被抹除的實體抹除單元。因此,當記憶體管理電路202將第一資料420寫入至閒置區404的一個第三實體抹除單元時,記憶體管理電路202是從第一抹除區510或第二抹除區520中取得一個要被抹除的實體抹除單元。具體來說,若第三實體抹除單元(例如,實體抹除單元212(C))是屬於記憶單元210,則記憶體管理電路202會抹除第二抹除區520中至少一個實體抹除單元。或者,若第三實體抹除單元(例如,實體抹除單元222(D))是屬於記憶單元220,則記憶體管理電路202會抹除第一抹除區510中至少一個實體抹除單元。
此外,在將第一資料420寫入至第三實體抹除單元以後,在寫入期間被抹除的一或多個實體抹除單元會被記憶體管理電路202關聯至閒置區404。在一範例實施例中,記憶體管理電路202會在寫入多筆資料以後,將這些被抹除的實體抹除單元交錯地關聯至閒置區404。具體來說,在將一或多個資料寫入至閒置區的實體抹除單元以後,第一抹除區510可能會包括一或多個已被抹除的實體抹除單元,並且第二抹除區520也可能包括一或多個已被抹除的實體抹除單元。記憶體管理電路202會從第一抹除區510與第二抹除區520的其中之一挑選一個已被抹除的實體抹除單元,並且將此已被抹除的實體抹除單元關聯至閒置區404。接下來,記憶體管理電路202會從另一個抹除區中挑選一個已被抹除的實體抹除單元,並且將此已被抹除的實體抹除單元關聯至閒置區404。然而,在另一範例實施例中,記憶體管理電路202也可以在更新系統資訊時一次將第一抹除區510中已被抹除的實體抹除單元全部關聯至閒置區404或一次將第二抹除區520中已被抹除的實體抹除單元全部關聯至閒置區404。此更新系統資訊的時間點可以是在記憶體管理電路202更新上述的邏輯位址-實體抹除單元映射表的時間點,或者是更新其他系統資訊的時間點,本發明並不在此限。
在一範例實施例中,記憶體管理電路202會根據可複寫是非揮發性記憶體模組106的一寫入速度與一抹除時間來決定一個正整數n。記憶體管理電路202會在將第一資料420每寫入n
個實體程式化單元以後,便檢查第一抹除區510與第二抹除區520中是否有需要被抹除的實體抹除單元。舉例來說,若可複寫式非揮發性記憶體模組106抹除一個實體抹除單元所需的時間為20 ms,並且可複寫式非揮發性記憶體模組106將資料寫入至一個實體程式化單元所需的時間為4 ms,則此記憶體管理電路202會設定此正整數n為5或是5的倍數。
圖6A與圖6B是根據一範例實施例說明寫入第一資料的流程圖。
請參照圖6A,記憶體管理電路202會接收一個指示寫入第一資料420的寫入指令(步驟S602),並且從閒置區404提取一個第三實體抹除單元(步驟S604)。記憶體管理電路202會判斷此第三實體抹除單元是否屬於記憶單元210(步驟S606)。若此第三實體抹除單元是屬於記憶單元210,則記憶體管理電路202會設定一個變數x為正整數n(步驟S608)。接下來,在步驟S610中,記憶體管理電路202會判斷第二抹除區520是否有需要被抹除的實體抹除單元並且變數x是否等於正整數n。若步驟S610的結果為是,記憶體管理電路202會抹除第二抹除區520中的一個實體抹除單元(步驟S612),並且設定變數x為0(步驟S614)。在步驟S616中,記憶體管理電路202會將第一資料420寫入至第三實體抹除單元中的一個實體程式化單元,並且將變數x加上1。在步驟S618中,記憶體管理電路202會判斷此寫入指令是否已經執行完畢。若步驟S618的結果為否,則記憶體管理電路202會回到步驟S610。
若步驟S606的結果為否,則記憶體管理電路202會設定變數x為n(步驟S620)。在步驟S622中,記憶體管理電路202會判斷第一抹除區510是否有需要被抹除的實體抹除單元並且變數x是否等於正整數n。若步驟S622的結果為是,記憶體管理電路202會抹除第一抹除區510中的一個實體抹除單元(步驟S624),並且設定變數x為0(步驟S626)。在步驟S628中,記憶體管理電路202會將第一資料420寫入至第三實體抹除單元中的一個實體程式化單元,並且將變數x加1。在步驟S630中,記憶體管理電路202會判斷此寫入指令是否已經執行完畢。若步驟S630的結果為否,則記憶體管理電路202會回到步驟S622。
請參照圖6B,接下來,記憶體管理電路202會檢查記憶單元210與記憶單元220中的實體抹除單元(步驟S632),並且判斷是否有需要被抹除的實體抹除單元(步驟S634)。例如,如圖5所示,若實體抹除單元212(0)中已經沒有有效資料,則記憶體管理電路202會判斷實體抹除單元212(0)為需要被抹除的實體抹除單元。然而,若第一資料420是要寫入至多個實體抹除單元,則在寫入期間也可能產生多個需要被抹除的實體抹除單元。本發明並不限制在步驟S634中判斷出的實體抹除單元有幾個。若步驟S634的結果為是,在步驟S636中,記憶體管理電路202會判斷此需要被抹除的實體抹除單元是對應至第一抹除區510或是第二抹除區520,並且判斷此對應的第一抹除區510或是第二抹除區520是否已滿(即,其實體抹除單元個數大於等於一臨界值)。若步
驟S636的結果為是,則記憶體管理電路202會抹除上述需要被抹除的實體抹除單元,並且將此實體抹除單元關聯至閒置區404(步驟S640)。若步驟S636的結果為否,記憶體管理電路202會將此需要被抹除的實體抹除單元關聯至所對應的第一抹除區510或是第二抹除區520(步驟S638)。最後,在步驟S642中,記憶體管理電路202會將寫入期間所抹除的實體抹除單元(即,步驟612或步驟S624所抹除的實體抹除單元)關聯至閒置區404。
圖7是根據一範例實施例繪示資料寫入方法的流程圖。
請參照圖7,在步驟S702中,配置多個邏輯位址以映射至記憶單元210中至少部份的實體抹除單元與記憶單元220中至少部份的實體抹除單元。
在步驟S704中,接收來自主機系統的寫入指令,其中寫入指令指示將第一資料寫入至一個邏輯位址。
在步驟S706中,從記憶單元210與記憶單元220中的實體抹除單元中取得一個第三實體抹除單元,並且將第一資料寫入至此第三實體抹除單元。
在步驟S708中,判斷第三實體抹除單元是屬於記憶單元210或是記憶單元220。
若步驟S708的結果為”記憶單元210”,則在步驟S710中,將第一資料寫入至第三實體抹除單元時,抹除記憶單元220中的一個實體抹除單元。
若步驟S708的結果為”記憶單元220”,在步驟S712中,
將第一資料寫入至第三實體抹除單元時,抹除記憶單元210中的一個實體抹除單元。
然而,圖7中各步驟已詳細說明如上,在此便不再贅述。圖7中各步驟可以被實作為多個程式碼,由一個處理器(例如,記憶體控制器104)所執行。或者,圖7中各步驟可以被實作為一或多個電路,本發明並不限制用軟體或是硬體的方式實作圖7中各步驟。此外,圖7各步驟可以搭配上述的範例實施例一起實施,或者,圖7各步驟也可以單獨實施,本發明並不在此限。
請參照回圖2,在此範例實施例中,可複寫式非揮發性記憶體模組106包括了兩個記憶單元,並且其中一個記憶單元(其可包括一或多個通道)的寫入速度便已大於連接器102的傳輸速度。因此,一起執行寫入與抹除的操作可以避免在將資料寫入以後,記憶體管理電路202需要再多花時間執行抹除的操作。然而,在其他範例實施例中,可複寫式非揮發性記憶體模組106也可包括y個記憶單元,其中m個記憶單元的寫入速度便已大於連接器102的傳輸速度。當記憶體管理電路202將資料寫入至m個記憶單元的其中之一時,會抹除其餘y-m個記憶單元中的至少一個實體抹除單元。上述的y與m為正整數,並且m小於y,但本發明並不限制y與m的數值。
第二範例實施例與第一範例實施例類似,在此僅說明不同之處。在第二範例實施例中,記憶體管理電路202在接收到寫
入指令以後,會分析此寫入指令所要寫入的實體程式化單元的個數是否大於等於正整數n。
圖8A與圖8B是根據第二範例實施例繪示寫入第一資料的流程圖。
請參照圖8A,在步驟S602中,記憶體管理電路202接收到寫入指令以後,記憶體管理電路202會分析此寫入指令,並且獲得此寫入指令欲寫入第一資料至t個實體程式化單元,其中t為正整數。在步驟S802中,記憶體管理電路202會判斷正整數t是否大於等於正整數n。若步驟S802的結果為是,則記憶體管理電路202會繼續步驟S604,其餘的步驟與圖6A相同。若步驟S802的結果為否,在步驟S804中,記憶體管理電路202會從閒置區提取一第三實體抹除單元,並且將第一資料寫入至第三實體抹除單元中的t個實體程式化單元。在步驟S804之後,記憶體管理電路202會進行圖8B中的各步驟,其相同於圖6B的各步驟,在此便不再贅述。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S702、S704、S706、S708、S710、S712‧‧‧步驟
Claims (22)
- 一種資料寫入方法,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括一第一記憶單元與一第二記憶單元,該第一記憶單元包括多個第一實體抹除單元,並且該第二記憶單元包括多個第二實體抹除單元,該資料寫入方法包括:配置多個邏輯位址以映射至至少部份的該些第一實體抹除單元與至少部份的該些第二實體抹除單元;接收來自一主機系統的一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址中的一第一邏輯位址;從該些第一實體抹除單元與該些第二實體抹除單元中取得一第三實體抹除單元,並且將該第一資料寫入至該第三實體抹除單元;判斷該第三實體抹除單元是屬於該第一記憶單元或是該第二記憶單元;若該第三實體抹除單元屬於該第一記憶單元,將該第一資料寫入至該第三實體抹除單元時,抹除該些第二實體抹除單元的其中之一;以及若該第三實體抹除單元屬於該第二記憶單元,將該第一資料寫入至該第三實體抹除單元時,抹除該些第一實體抹除單元的其中之一。
- 如申請專利範圍第1項所述的資料寫入方法,更包括: 將該些第一實體抹除單元與該些第二實體抹除單元至少劃分為一資料區與一閒置區,其中該至少部份的該些第一實體抹除單元與該至少部份的該些第二實體抹除單元屬於該資料區;以及設置一第一抹除區與一第二抹除區,其中該第三實體抹除單元屬於該閒置區,該些第一實體抹除單元的該其中之一屬於該第一抹除區,並且該些第二實體抹除單元的該其中之一屬於該第二抹除區。
- 如申請專利範圍第2項所述的資料寫入方法,其中該第一邏輯位址是映射至該些第一實體抹除單元與該些第二實體抹除單元之中的一第四實體抹除單元,在將該第一資料寫入至該第三實體抹除單元的步驟之後,該資料寫入方法還包括:判斷該第四實體抹除單元是否需要被抹除;若該第四實體抹除單元需要被抹除,判斷該第一抹除區或該第二抹除區的一實體抹除單元個數是否大於等於一臨界值;若該第一抹除區與該第二抹除區的該實體抹除單元個數小於該臨界值,將該第四實體抹除單元關聯至該第一抹除區或該第二抹除區。
- 如申請專利範圍第3項所述的資料寫入方法,更包括:若該第一抹除區或該第二抹除區的該實體抹除單元個數大於等於該臨界值,抹除該第四實體抹除單元,並且將該第四實體抹除單元關聯至該閒置區。
- 如申請專利範圍第2項所述的資料寫入方法,更包括: 將該些第一實體抹除單元的該其中之一或是該些第二實體抹除單元的該其中之一關聯至該閒置區。
- 如申請專利範圍第2項所述的資料寫入方法,其中在該第一資料被寫入至該第三實體抹除單元以後,該第一抹除區包括多個已被抹除的第一實體抹除單元,並且該第二抹除區包括多個已被抹除的第二實體抹除單元,該資料寫入方法還包括:交錯地將該些已被抹除的第一實體抹除單元的其中之一與該些已被抹除的第二實體抹除單元的其中之一關聯至該閒置區。
- 如申請專利範圍第2項所述的資料寫入方法,其中每一該些第一實體抹除單元包括多個實體程式化單元,並且每一該些第二實體抹除單元包括多個實體程式化單元,該資料寫入方法更包括:根據該可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n;將該第一資料寫入至該第三實體抹除單元中該些實體程式化單元的n個實體程式化單元時,檢查該第一抹除區或該第二抹除區中是否有需要被抹除的實體抹除單元;以及若該第一抹除區或該第二抹除區中有需要被抹除的實體抹除單元時,執行所述抹除該些第二實體抹除單元的該其中之一的步驟或是所述抹除該些第一實體抹除單元的該其中之一的步驟。
- 如申請專利範圍第2項所述的資料寫入方法,其中每一該些第一實體抹除單元包括多個實體程式化單元,每一該些第二實 體抹除單元包括多個實體程式化單元,並且從該寫入指令獲得指示寫入t個實體程式化單元,其中t為正整數,該資料寫入方法更包括:根據該可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n;判斷該正整數t是否大於等於該正整數n;若該正整數t小於該正整數n,將該第一資料寫入至該第三實體抹除單元;若該正整數t大於等於該正整數n,執行所述取得該第三實體抹除單元的步驟,所述將該第一資料寫入至該第三實體抹除單元的步驟,以及所述判斷該第三實體抹除單元是屬於該第一記憶單元或是該第二記憶單元的步驟。
- 如申請專利範圍第1項所述的資料寫入方法,其中該些邏輯位址是交錯地映射至該些第一實體抹除單元的其中之一與該些第二實體抹除單元的其中之一。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括一第一記憶單元與一第二記憶單元,其中該第一記憶單元包括多個第一實體抹除單元,並且該第二記憶單元包括多個第二實體抹除單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至至少部份的該些第一 實體抹除單元與至少部份的該些第二實體抹除單元,其中,該記憶體控制器用以接收來自該主機系統的一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址中的一第一邏輯位址,其中,該記憶體控制器用以從該些第一實體抹除單元與該些第二實體抹除單元中取得一第三實體抹除單元,並且將該第一資料寫入至該第三實體抹除單元,其中,該記憶體控制器用以判斷該第三實體抹除單元是屬於該第一記憶單元或是該第二記憶單元,若該第三實體抹除單元屬於該第一記憶單元,該記憶體控制器用以在將該第一資料寫入至該第三實體抹除單元時,抹除該些第二實體抹除單元的其中之一,若該第三實體抹除單元屬於該第二記憶單元,該記憶體控制器用以在將該第一資料寫入至該第三實體抹除單元時,抹除該些第一實體抹除單元的其中之一。
- 如申請專利範圍第10項所述的記憶體儲存裝置,該記憶體控制器更用以將該些第一實體抹除單元與該些第二實體抹除單元至少劃分為一資料區與一閒置區,其中該至少部份的該些第一實體抹除單元與該至少部份的該些第二實體抹除單元屬於該資料區,其中,該記憶體控制器更用以設置一第一抹除區與一第二抹除區,其中該第三實體抹除單元屬於該閒置區,該些第一實體抹 除單元的該其中之一屬於該第一抹除區,並且該些第二實體抹除單元的該其中之一屬於該第二抹除區。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一邏輯位址是映射至該些第一實體抹除單元與該些第二實體抹除單元之中的一第四實體抹除單元,在將該第一資料寫入至該第三實體抹除單元之後,該記憶體控制器更用以判斷該第四實體抹除單元是否需要被抹除,若該第四實體抹除單元需要被抹除,該記憶體控制器更用以判斷該第一抹除區或該第二抹除區的一實體抹除單元個數是否大於等於一臨界值,若該第一抹除區與該第二抹除區的該實體抹除單元個數小於該臨界值,該記憶體控制器用以將該第四實體抹除單元關聯至該第一抹除區或該第二抹除區。
- 如申請專利範圍第12項所述的記憶體儲存裝置,若該第一抹除區或該第二抹除區的該實體抹除單元個數大於等於該臨界值,該記憶體控制器用以抹除該第四實體抹除單元,並且將該第四實體抹除單元關聯至該閒置區。
- 如申請專利範圍第11項所述的記憶體儲存裝置,該記憶體控制器更用以將該些第一實體抹除單元的該其中之一或是該些第二實體抹除單元的該其中之一關聯至該閒置區。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中在該第一資料被寫入至該第三實體抹除單元以後,該第一抹除區包 括多個已被抹除的第一實體抹除單元,並且該第二抹除區包括多個已被抹除的第二實體抹除單元,該記憶體控制器更用以交錯地將該些已被抹除的第一實體抹除單元的其中之一與該些已被抹除的第二實體抹除單元的其中之一關聯至該閒置區。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中每一該些第一實體抹除單元包括多個實體程式化單元,每一該些第二實體抹除單元包括多個實體程式化單元,並且該記憶體控制器更用以根據該可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n,其中,該記憶體控制器更用以在將該第一資料寫入至該第三實體抹除單元中該些實體程式化單元的n個實體程式化單元時,檢查該第一抹除區或該第二抹除區中是否有需要被抹除的實體抹除單元,若該第一抹除區或該第二抹除區中有需要被抹除的實體抹除單元時,該記憶體控制器用以執行所述抹除該些第二實體抹除單元的該其中之一的操作或是所述抹除該些第一實體抹除單元的該其中之一的操作。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括一第一記憶單元與 一第二記憶單元,其中該第一記憶單元包括多個第一實體抹除單元,並且該第二記憶單元包括多個第二實體抹除單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以配置多個邏輯位址以映射至至少部份的該些第一實體抹除單元與至少部份的該些第二實體抹除單元,其中,該記憶體管理電路用以接收來自該主機系統的一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址中的一第一邏輯位址,其中,該記憶體管理電路用以從該些第一實體抹除單元與該些第二實體抹除單元中取得一第三實體抹除單元,並且將該第一資料寫入至該第三實體抹除單元,其中,該記憶體管理電路用以判斷該第三實體抹除單元是屬於該第一記憶單元或是該第二記憶單元,若該第三實體抹除單元屬於該第一記憶單元,該記憶體管理電路用以在將該第一資料寫入至該第三實體抹除單元時,抹除該些第二實體抹除單元的其中之一,若該第三實體抹除單元屬於該第二記憶單元,該記憶體管理電路用以在將該第一資料寫入至該第三實體抹除單元時,抹除該些第一實體抹除單元的其中之一。
- 如申請專利範圍第17項所述的記憶體控制器,該記憶體管理電路更用以將該些第一實體抹除單元與該些第二實體抹除單元至少劃分為一資料區與一閒置區,其中該至少部份的該些第一 實體抹除單元與該至少部份的該些第二實體抹除單元屬於該資料區,其中,該記憶體管理電路更用以設置一第一抹除區與一第二抹除區,其中該第三實體抹除單元屬於該閒置區,該些第一實體抹除單元的該其中之一屬於該第一抹除區,並且該些第二實體抹除單元的該其中之一屬於該第二抹除區。
- 如申請專利範圍第18項所述的記憶體控制器,其中該第一邏輯位址是映射至該些第一實體抹除單元與該些第二實體抹除單元之中的一第四實體抹除單元,在將該第一資料寫入至該第三實體抹除單元之後,該記憶體管理電路更用以判斷該第四實體抹除單元是否需要被抹除,若該第四實體抹除單元需要被抹除,該記憶體管理電路更用以判斷該第一抹除區或該第二抹除區的一實體抹除單元個數是否大於等於一臨界值,若該第一抹除區與該第二抹除區的該實體抹除單元個數小於該臨界值,該記憶體管理電路用以將該第四實體抹除單元關聯至該第一抹除區與該第二抹除區的其中之一。
- 如申請專利範圍第19項所述的記憶體控制器,若該第一抹除區或該第二抹除區的該實體抹除單元個數大於等於該臨界值,該記憶體管理電路用以抹除該第四實體抹除單元,並且將該第四實體抹除單元關聯該閒置區。
- 如申請專利範圍第18項所述的記憶體控制器,其中在該 第一資料被寫入至該第三實體抹除單元以後,該第一抹除區包括多個已被抹除的第一實體抹除單元,並且該第二抹除區包括多個已被抹除的第二實體抹除單元,該記憶體管理電路更用以交錯地將該些已被抹除的第一實體抹除單元的其中之一與該些已被抹除的第二實體抹除單元的其中之一關聯至該閒置區。
- 如申請專利範圍第18項所述的記憶體控制器,其中每一該些第一實體抹除單元包括多個實體程式化單元,每一該些第二實體抹除單元包括多個實體程式化單元,並且該記憶體管理電路更用以根據該可複寫式非揮發性記憶體模組的一寫入速度與一抹除時間決定一正整數n,其中,該記憶體管理電路更用以在將該第一資料寫入至該第三實體抹除單元中該些實體程式化單元的n個實體程式化單元時,檢查該第一抹除區或該第二抹除區中是否有需要被抹除的實體抹除單元,若該第一抹除區或該第二抹除區中有需要被抹除的實體抹除單元時,該記憶體管理電路用以執行所述抹除該些第二實體抹除單元的該其中之一的操作或是所述抹除該些第一實體抹除單元的該其中之一的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102103797A TWI559141B (zh) | 2013-01-31 | 2013-01-31 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/831,977 US9710374B2 (en) | 2013-01-31 | 2013-03-15 | Data writing method, memory controller and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102103797A TWI559141B (zh) | 2013-01-31 | 2013-01-31 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201430564A TW201430564A (zh) | 2014-08-01 |
TWI559141B true TWI559141B (zh) | 2016-11-21 |
Family
ID=51224308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102103797A TWI559141B (zh) | 2013-01-31 | 2013-01-31 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9710374B2 (zh) |
TW (1) | TWI559141B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015204126A (ja) | 2014-04-16 | 2015-11-16 | 株式会社東芝 | 半導体記憶装置 |
TWI595412B (zh) * | 2016-09-09 | 2017-08-11 | 大心電子(英屬維京群島)股份有限公司 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
CN114115737B (zh) * | 2021-11-23 | 2024-02-02 | 合肥兆芯电子有限公司 | 数据存储分配方法、存储器存储装置及控制电路单元 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307413A1 (en) * | 2008-06-09 | 2009-12-10 | Phison Electronics Corp. | Data writing method for flash memory and storage system and controller using the same |
US20100011153A1 (en) * | 2008-07-10 | 2010-01-14 | Phison Electronics Corp. | Block management method, and storage system and controller using the same |
TW201101304A (en) * | 2009-06-23 | 2011-01-01 | Phison Electronics Corp | Data writing method for flash memory and control circuit and storage system using the same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
TWI399644B (zh) * | 2009-12-24 | 2013-06-21 | Univ Nat Taiwan | 非揮發記憶體區塊管理方法 |
TWI447735B (zh) * | 2010-02-05 | 2014-08-01 | Phison Electronics Corp | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 |
JP5609683B2 (ja) * | 2011-01-31 | 2014-10-22 | ソニー株式会社 | メモリ装置およびメモリシステム |
-
2013
- 2013-01-31 TW TW102103797A patent/TWI559141B/zh active
- 2013-03-15 US US13/831,977 patent/US9710374B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307413A1 (en) * | 2008-06-09 | 2009-12-10 | Phison Electronics Corp. | Data writing method for flash memory and storage system and controller using the same |
US20100011153A1 (en) * | 2008-07-10 | 2010-01-14 | Phison Electronics Corp. | Block management method, and storage system and controller using the same |
TW201101304A (en) * | 2009-06-23 | 2011-01-01 | Phison Electronics Corp | Data writing method for flash memory and control circuit and storage system using the same |
Also Published As
Publication number | Publication date |
---|---|
US9710374B2 (en) | 2017-07-18 |
US20140215132A1 (en) | 2014-07-31 |
TW201430564A (zh) | 2014-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI688953B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201944421A (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201407614A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI559141B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202344970A (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI596477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI554884B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |