TWI503841B - 寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents
寫入方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI503841B TWI503841B TW102115080A TW102115080A TWI503841B TW I503841 B TWI503841 B TW I503841B TW 102115080 A TW102115080 A TW 102115080A TW 102115080 A TW102115080 A TW 102115080A TW I503841 B TWI503841 B TW I503841B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- physical
- units
- physical erasing
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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
-
- 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/7202—Allocation control and policies
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Description
本發明是有關於一種寫入方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的寫入方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般可複寫式非揮發性記憶體模組通常包括多個實體區塊,並且每一個實體區塊會包括多個實體頁面。由於一個被寫滿的實體區塊在被抹除之前無法重複地再被寫入資料,因此當一個主機系統要更新實體區塊中的資料時,則會先將資料寫入至另一個未被寫滿的實體區塊。此另一個實體區塊會儲存有效資料,其
是對應原先寫滿的實體區塊中的待更新的資料,而原先的實體區塊中儲存的待更新的資料則會被無效化並留存於原本的實體區塊中。當主機系統繼續寫入資料,並且全部的實體區塊都同時儲存有效資料與無效資料時(抑或是剩餘的實體區塊少於一個預定數量時),這些被寫滿的實體區塊便需要被整併。整併是將多個實體區塊上的有效資料搬移或複製至一個備用的實體區塊,藉此讓一個被寫滿有效及無效資料的實體區塊可以被抹除並於之後用以儲存其他資料。然而,整併多個實體區塊中的有效資料可能會花費許多時間,而在下達寫入指令以後主機系統不能等待超過一個預設時間。因此,如何確保在任何的情況下都不會讓主機系統等待太久的時間,為此領域技術人員所關心的議題。
本發明提供一種寫入方法、記憶體控制器與記憶體儲存裝置,可以避免在寫入資料時讓主機系統等待過久的時間。
本發明一範例實施例提出一種寫入方法,用於控制一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一實體抹除單元包括多個實體程式化單元,並且這些實體抹除單元至少被劃分為一儲存區。此寫入方法包括:配置多個邏輯位址以映射至儲存區中部分的實體程式化單元,且至少有一個實體程式化單元儲存了有效資料;發送一個第一寫入指令,用以將一個第一資料寫入至至少一個實體程式化單
元,且第一資料具有第一資料長度;接收由可複寫式非揮發性記憶體模組發送的一個狀態訊號;以及,於發送第一寫入指令後與接收狀態訊號之前,提取一個閒置實體抹除單元,並且複製具有第二資料長度的有效資料至該閒置實體抹除單元,其中第一資料長度不大於第二資料長度。
在一範例實施例中,於發送第一寫入指令後與接收狀態訊號之前,上述的寫入方法更包括下列步驟:發送至少一個位置資訊至可複寫式非揮發性記憶體模組,此位置資訊代表第一資料所預定被寫入的位置;傳送第一資料至可複寫式非揮發性記憶體模組中的一個緩衝記憶體中;發送一個程式化指令,以程式化暫存於緩衝記憶體中的第一資料至至少一個實體程式化單元;以及發送一個狀態詢問指令至可複寫式非揮發性記憶體模組,以要求可複寫式非揮發性記憶體模組回覆上述的狀態訊號。其中,複製具有第二資料長度的有效資料的步驟是於發送程式化指令之後與接收狀態訊號之前被執行。
在一範例實施例中,上述的寫入方法,更包含下列步驟:根據邏輯位址的容量以及儲存區中的實體抹除單元的容量決定第二資料長度。
在一範例實施例中,上述的寫入方法更包含下列步驟:從主機系統接收一個第三資料,此第三資料具有第三資料長度;以及根據第三資料長度決定第二資料長度。
在一範例實施例中,上述的第二資料長度是第一資料長
度與一乘數的相乘積,並且此乘數是根據邏輯位址的容量以及儲存區中實體抹除單元的容量所計算出。
在一範例實施例中,上述的乘數是邏輯位址的容量除以一數值的商,並且此數值為儲存區中實體抹除單元的容量減去邏輯位址的容量的差值。
在一範例實施例中,上述的第一資料長度為單個實體程式化單元的長度,而第二資料長度為多個實體程式化單元的長度。
在一範例實施例中,上述寫入第一資料的過程中,更包含下列步驟:根據第一寫入指令程式化第一資料的至少一個部分,其中第一資料中被程式化者具有四資料長度;以及根據第四資料長度決定第二資料長度。
在一範例實施例中,上述寫入第一資料的步驟之前,更包含下列步驟:判斷閒置實體抹除單元的數目是否少於一個預設數目;以及若閒置實體抹除單元的數目少於預設數目,則於寫入第一資料的過程中,將具有第二資料長度的有效資料複製至閒置實體抹除單元。
在一範例實施例中,上述被複製的有效資料是分散地儲存在不同的實體抹除單元。
在一範例實施例中,上述複製具有第二資料長度的有效資料至閒置實體抹除單元的步驟之後,更包括下列步驟:於寫入第一資料以及複製有效資料的過程中,顯示可複寫式非揮發性記憶體模組的狀態為忙碌狀態;抹除至少一個實體抹除單元,其中
被抹除的實體抹除單元中所儲存的有效資料是全數被複製到至少一個閒置實體抹除單元;以及於寫入第一資料以及複製有效資料的步驟結束後,顯示可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、上述的可複寫式非揮發性記憶體模組與記憶體控制器。連接器是用以耦接至主機系統。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至儲存區中部分的實體程式化單元,且至少一個實體程式化單元中儲存了有效資料。記憶體控制器也用以發送第一寫入指令,用以將第一資料寫入至至少一個實體程式化單元,且第一資料具有第一資料長度。記憶體控制器還用以接收由可複寫式非揮發性記憶體模組發送之一狀態訊號。此外,在發送第一寫入指令後與接收狀態訊號之前,記憶體控制器會提取一個閒置實體抹除單元,並且複製具有第二資料長度的有效資料至該閒置實體抹除單元。其中,第一資料長度不大於第二資料長度。
在一範例實施例中,於發送第一寫入指令後與接收狀態訊號之前,記憶體控制器會執行下列操作:發送至少一個位置資訊至可複寫式非揮發性記憶體模組,此位置資訊代表第一資料所預定被寫入的位置;傳送第一資料至可複寫式非揮發性記憶體模組中的一個緩衝記憶體中;發送一個程式化指令,以程式化暫存於緩衝記憶體中的第一資料至至少一個實體程式化單元;以及發
送一個狀態詢問指令至可複寫式非揮發性記憶體模組,以要求可複寫式非揮發性記憶體模組回覆上述的狀態訊號。其中,複製具有第二資料長度的有效資料的操作是於發送程式化指令之後與接收狀態訊號之前被執行。
在一範例實施例中,上述的記憶體控制器更用以根據邏輯位址的容量以及儲存區中的實體抹除單元的容量決定第二資料長度。
在一範例實施例中,上述的記憶體控制器更用以從主機系統接收第三資料,第三資料具有一個第三資料長度,並且記憶體控制器用以根據第三資料長度決定第二資料長度。
在一範例實施例中,上述記憶體控制器寫入第一資料的過程中,記憶體控制器更用以根據第一寫入指令程式化第一資料的至少一個部分。第一資料的至少一個部分被程式化者具有一個第四資料長度,並且記憶體控制器用以根據第四資料長度決定第二資料長度。
在一範例實施例中,上述記憶體控制器寫入第一資料的操作之前,記憶體控制器更用以判斷閒置實體抹除單元的數目是否少於一預設數目。若閒置實體抹除單元的數目少於預設數目,則記憶體控制器於寫入第一資料的過程中,將具有第二資料長度的有效資料複製至閒置實體抹除單元。
在一範例實施例中,上述的記憶體控制器更用以於寫入第一資料以及複製有效資料的過程中,顯示可複寫式非揮發性記
憶體模組的狀態為忙碌狀態。記憶體控制器更用以抹除至少一個實體抹除單元,其中被抹除的實體抹除單元中所儲存的有效資料是全數被複製到至少一個閒置實體抹除單元。記憶體控制器更用以在寫入第一資料以及複製有效資料的操作結束後,顯示可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面、與記憶體管理電路。主機介面是用以耦接至主機系統。記憶體介面是用以耦接至上述的可複寫式非揮發性記憶體模組。記憶體管理電路是耦接至主機介面與記憶體介面,用以配置多個邏輯位址以映射至儲存區中部分的實體程式化單元,且至少一個實體程式化單元中儲存了有效資料。記憶體管理電路也用以發送第一寫入指令,用以將第一資料寫入至至少一個實體程式化單元,且第一資料具有第一資料長度。記憶體管理電路還用以接收由可複寫式非揮發性記憶體模組發送之一狀態訊號。此外,在發送第一寫入指令後與接收狀態訊號之前,記憶體管理電路會提取一個閒置實體抹除單元,並且複製具有第二資料長度的有效資料至該閒置實體抹除單元。其中,第一資料長度不大於第二資料長度。
在一範例實施例中,於發送第一寫入指令後與接收狀態訊號之前,記憶體管理電路會執行下列操作:發送至少一個位置資訊至可複寫式非揮發性記憶體模組,此位置資訊代表第一資料所預定被寫入的位置;傳送第一資料至可複寫式非揮發性記憶體
模組中的一個緩衝記憶體中;發送一個程式化指令,以程式化暫存於緩衝記憶體中的第一資料至至少一個實體程式化單元;以及發送一個狀態詢問指令至可複寫式非揮發性記憶體模組,以要求可複寫式非揮發性記憶體模組回覆上述的狀態訊號。其中,複製具有第二資料長度的有效資料的步驟是於發送程式化指令之後與接收狀態訊號之前被執行。
在一範例實施例中,上述的記憶體管理電路更用以根據邏輯位址的容量以及儲存區中的實體抹除單元的容量決定第二資料長度。
在一範例實施例中,上述的記憶體管理電路更用以從主機系統接收第三資料,第三資料具有一個第三資料長度,並且記憶體管理電路用以根據第三資料長度決定第二資料長度。
在一範例實施例中,上述記憶體管理電路寫入第一資料的過程中,記憶體管理電路更用以根據第一寫入指令程式化第一資料的至少一個部分。第一資料的至少一個部分被程式化者具有一個第四資料長度,並且記憶體管理電路用以根據第四資料長度決定第二資料長度。
在一範例實施例中,上述記憶體管理電路寫入第一資料的操作之前,記憶體管理電路更用以判斷閒置實體抹除單元的數目是否少於一預設數目。若閒置實體抹除單元的數目少於預設數目,則記憶體管理電路於寫入第一資料的過程中,將具有第二資料長度的有效資料複製至閒置實體抹除單元。
在一範例實施例中,上述的記憶體管理電路更用以於寫入第一資料以及複製有效資料的過程中,顯示可複寫式非揮發性記憶體模組的狀態為忙碌狀態。記憶體管理電路更用以抹除至少一個實體抹除單元,其中被抹除的實體抹除單元中所儲存的有效資料是全數被複製到至少一個閒置實體抹除單元。記憶體管理電路更用以在寫入第一資料以及複製有效資料的操作結束後,顯示可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
基於上述,在本發明範例實施例提出的寫入方法、記憶體控制器與記憶體儲存裝置中,由於每寫入一筆資料以後都會複製一些有效資料,因此可以避免在執行某一次寫入指令時讓主機系統等待太久的時間。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402、404‧‧‧資料
410(0)~410(A)‧‧‧邏輯位址
502(0)~502(D)‧‧‧實體程式化單元
602‧‧‧有效資料
702‧‧‧第一寫入指令
704‧‧‧位置資訊
706‧‧‧行資訊
708‧‧‧列資訊
710‧‧‧程式化指令
712‧‧‧狀態詢問指令
714‧‧‧狀態訊號
S901~S905‧‧‧步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5是根據一範例實施例繪示複製有效資料的範例示意圖。
圖6是根據一範例實施例繪示將複製有效資料的操作分散在多個寫入指令的示意圖。
圖7是根據一範例實施例繪示記憶體控制器104與可複寫式非揮發性記憶體模組106之間傳送的訊號的示意圖。
圖8是根據一範例實施例繪示將複製有效資料的操作分散在多個寫入指令的示意圖。
圖9是根據一範例實施例繪示資料寫入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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是相容於序列先進附件(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)標準、安全數位(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具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(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具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制器104被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫
式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、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之實體抹除單元的運作時,以“提取”、“關聯”、”劃分”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖4,一般來說,記憶體管理電路202會將實體抹除單元304(0)~304(R)至少劃分為儲存區與系統區。儲存區的實體
抹除單元是可用以儲存來自主機系統1000的使用者資料、取代損壞的實體抹除單元、以及作為寫入資料時的緩衝區。系統區的實體抹除單元是用以儲存系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。在此,實體抹除單元304(0)~304(C)便是屬於儲存區的實體抹除單元。在其他範例實施例中,記憶體管理電路202也可以將實體抹除單元304(0)~304(R)劃分出其他區域,本發明並不在此限。例如,記憶體管理電路202可再將實體抹除單元304(0)~304(R)劃分出一個取代區,其中的實體抹除單元是用以取代損壞的實體抹除單元。在此範例實施例中,取代區與儲存區的實體抹除單元是合併一起使用。
記憶體控制器104會配置邏輯位址410(0)~410(A)以利於在儲存資料之實體抹除單元中進行資料存取。例如,當記憶體儲存裝置100被主機系統1000上的作業系統透過檔案系統(例如,FAT 32)格式化時,邏輯位址410(0)~410(A)分別地映射至實體抹除單元304(0)~304(B)中的實體程式化單元。在此,記憶體管理電路202會建立邏輯位址-實體程式化單元映射表(logical address-physical programming unit mapping table),以記錄邏輯位址與實體程式化單元之間的映射關係。在此範例實施例中,每一個邏輯位址410(0)~410(A)的大小是相同於每一個實體程式化單元的大小。然而,在其他範例實施例中,每一個邏輯位址410(0)~410(A)也可以是一個實體抹除單元的大小或是其他大小,
本發明並不在此限。在記憶體儲存裝置100被格式化後,實體抹除單元304(B+1)~304(C)並沒有被映射至邏輯位址410(0)~410(A)也沒有儲存有效資料。在此,儲存區中沒有被映射至邏輯位址410(0)~410(A)且沒有儲存有效資料的實體抹除單元(即,實體抹除單元304(B+1)~304(C)),是被稱為閒置實體抹除單元。
當主機系統1000要將資料402寫入至記憶體儲存裝置100中時,主機系統1000會下達一個寫入指令,此寫入指令會指示將資料402寫入至邏輯位址410(0)~410(A)中的至少其中之一。在此假設資料402是要寫入至邏輯位址410(0)~410(1),而邏輯位址410(0)~410(1)是映射至實體抹除單元304(0)中的兩個實體程式化單元。記憶體管理電路202會從資料402中取得資料404,這裡假設資料404是屬於邏輯位址410(0)。記憶體管理電路202也會從實體抹除單元304(B+1)~304(C)中提取一個實體抹除單元(例如,實體抹除單元304(B+2)),將資料404寫入至實體抹除單元304(B+2),並且將邏輯位址410(0)重新映射至被寫入的實體程式化單元。相同地,記憶體管理電路202也會將屬於邏輯位址410(1)的資料寫入至實體抹除單元304(B+2)。如此一來,實體抹除單元304(0)中原先被映射至邏輯位址410(0)~410(1)的實體程式化單元會儲存無效資料,而實體抹除單元304(B+2)會儲存有效資料。若實體抹除單元304(0)中還儲存有其他有效資料,則實體抹除單元304(0)會同時儲存著有效資料與無效資料。隨著主機系統1000持續的寫入資料至記憶體儲存裝置100,會有越來越多個實體抹除單
元同時儲存著無效資料與有效資料,並且閒置實體抹除單元的數目會越來越少。因此,記憶體管理電路202會整併(merge)這些有效資料,以增加一個閒置實體抹除單元。
圖5是根據一範例實施例繪示複製有效資料的範例示意圖。
請參照圖5,在此假設實體抹除單元304(0)~304(3)中儲存了有效資料與無效資料。例如,實體抹除單元304(0)中的實體程式化單元502(0)~502(D)中儲存了有效資料,而其餘的實體程式化單元儲存了無效資料。類似地,實體抹除單元304(1)~304(3)也包括了多個儲存了有效資料的實體程式化單元。在未整併有效資料之前,實體抹除單元304(B+1)為閒置實體抹除單元。因此,記憶體管理電路202會將實體抹除單元304(0)中的有效資料複製至實體抹除單元304(B+1)。值得注意的是,在複製實體抹除單元304(0)中的有效資料以後,實體抹除單元304(0)便沒有儲存有效資料,記憶體管理電路202會抹除實體抹除單元304(0)並且把實體抹除單元304(0)當作閒置實體抹除單元。接下來,實體抹除單元304(1)的有效資料會被複製至實體抹除單元304(0),而實體抹除單元304(1)也會成為另一個閒置實體抹除單元。以此類推,實體抹除單元(2)中的有效資料會被複製至實體抹除單元304(0)與304(1),而實體抹除單元304(3)中的有效資料會被複製至實體抹除單元304(1)。在此之後,實體抹除單元304(2)與304(3)都會被抹除而成為閒置實體抹除單元。如此一來,閒置實體抹除單元的數
目會增加1。
在圖5的範例實施例中,有4個實體抹除單元304(0)~304(3)中的有效資料會被複製。然而,若實體抹除單元304(0)~304(3)中的有效資料更少時,需要被複製的有效資料會更少。舉例來說,若實體抹除單元304(0)、304(1)中僅有一半的實體程式化單元儲存了有效資料,則記憶體管理電路202僅需要將實體抹除單元304(0)、304(1)中的有效資料合併便可以增加一個閒置實體抹除單元。在最差的情況下,每個需要被整併的實體抹除單元都儲存了相同數量的有效資料,並且有效資料的比率會與邏輯位址410(0)~410(A)的容量,以及實體抹除單元304(0)~304(C)的容量有關。具體來說,若邏輯位址410(0)~410(A)的容量是1.5G位元組(byte),而儲存區中的實體抹除單元的容量為2G位元組,則在最差的情況下每個需要被整併的實體抹除單元中都有3/4的實體程式化單元會儲存有效資料。一般來說,在執行一個來自主機系統1000的寫入指令時,記憶體管理電路202會顯示可複寫式非揮發性記憶體模組106的狀態為忙碌狀態。例如,記憶體管理電路202會致能(或禁能)連接器102上的一個接腳來顯示此忙碌狀態。記憶體管理電路202必須在一預設時間內顯示可複寫式非揮發性記憶體模組106的狀態為非忙碌狀態,用以表示可以接收下一個寫入指令。因此,若需要被整併的有效資料太多時,可能會超過此預設時間。在此範例實施例中,記憶體管理電路202在寫入一筆資料以後便會複製部份的有效資料,藉此避免在最差的情
況下複製有效資料所花費的時間會超過上述的預設時間。
圖6是根據一範例實施例繪示在寫入資料時複製有效資料的示意圖。
請參照圖6,在記憶體管理電路202接收到來自主機系統的一個寫入指令(對應至資料402)以後,會傳送一個第一寫入指令至可複寫式非揮發性記憶體模組106,用以將資料404(亦稱第一資料)寫入至至少一個實體程式化單元,其中第一資料404具有第一資料長度。例如,資料404可以被寫入至實體抹除單元304(B+2)中的一個實體程式化單元,但本發明並不限制要將資料404寫入至哪一個實體程式化單元。特別的是,記憶體管理電路202也會判斷儲存區的狀態是否符合一個預設條件。若儲存區的狀態符合預設條件,則在發送第一寫入指令之後與接收到由可複寫式非揮發性記憶體模組106發送的一個狀態訊號之前,記憶體管理電路202會複製具有第二資料長度的有效資料602至一個閒置實體抹除單元。其中,狀態訊號是用以表示可複寫式非揮發性記憶體模組106是否成功地寫入資料404,而第一資料長度不大於第二資料長度。例如,在寫入資料404時,記憶體管理電路202也會從實體抹除單元304(B)中複製3個實體程式化單元中的有效資料602至實體抹除單元304(C)中,即在圖6中第二資料長度為3個實體程式化單元,但本發明並不限制第二資料長度為多少。值得注意的是,在其他的範例實施例中,資料402、404與有效資料602可以有其他的資料長度,本發明並不在此限。
在寫入資料402與複製有效資料602的過程中,記憶體管理電路202會顯示可複寫式非揮發性記憶體模組106的狀態為忙碌狀態。在寫入資料404以及複製有效資料602的步驟結束後,記憶體管理電路202會顯示可複寫式非揮發性記憶體模組106的狀態為非忙碌狀態。
圖7是根據一範例實施例繪示記憶體控制器104與可複寫式非揮發性記憶體模組106之間傳送的訊號的示意圖。
請參照圖6與圖7,更具體來說,當記憶體管理電路202要將資料404寫入至可複寫式非揮發性記憶體模組106時,會先傳送第一寫入指令702至可複寫式非揮發性記憶體模組106。接下來,記憶體管理電路202會傳送至少一個位置資訊704,而位置資訊704至少會包括一個行資訊706與一個列資訊708。行資訊706與列資訊708為實體位址,代表資料404所預定被寫入的位置。在傳送位置資訊704以後,記憶體管理電路202會傳送資料404到可複寫式非揮發性記憶體模組106中的一個緩衝記憶體(未繪示)。接下來,記憶體管理電路202會傳送程式化指令710。在接收到程式化指令710以後,可複寫式非揮發性記憶體模組106便會根據位置資訊704將緩衝記憶體中的資料404程式化至對應的實體程式化單元(稱為程式化過程)。記憶體管理電路202還會傳送一個狀態詢問指令712,用以要求可複寫式非揮發性記憶體模組106回覆一個狀態訊號714。狀態訊號714便是用以表示資料404是否成功地被寫入至位置資訊704所對應的實體程式化單元。在
此,從傳送第一寫入指令702至傳送狀態詢問指令712的過程亦被稱為寫入過程,而在程式化過程中,可複寫式非揮發性記憶體模組106的狀態會被顯示為忙碌狀態。在此範例實施例中,記憶體管理電路202會在發送程式化指令710之後以及接收到狀態訊號714之前,將有效資料602複製到一個閒置實體抹除單元當中。換言之,由於要寫入資料404與複製有效資料,因此程式化過程的時間會變長。然而,在另一範例實施例中,複製有效資料602的步驟也可以在發送第一寫入指令702之後與發送程式化指令710之前被執行,本發明並不在此限。
請參照回圖6,在一範例實施例中,若儲存區中閒置實體抹除單元的數目小於一個預設數目,則記憶體管理電路202會判斷儲存區的狀態是否符合上述的預設條件。此預設數目例如為2,但本發明並不限制此預設數目為多少。換言之,當閒置實體抹除單元的數目小於預設數目時,記憶體管理電路202會開始整併有效資料以增加閒置實體抹除單元的數目。在另一範例實施例中,記憶體管理電路202也可以設定其他條件為上述的預設條件,本發明並不限制此預設條件為何。另一方面,若不符合預設條件,則記憶體管理電路202在將資料402都寫入至可複寫式非揮發性記憶體模組106以後便會顯示可複寫式非揮發性記憶體模組106的狀態為非忙碌狀態。
在一範例實施例中,記憶體管理電路202是根據資料402(亦稱第三資料)的資料長度(亦稱第三資料長度)、邏輯位址
410(0)~410(A)的容量以及儲存區中實體抹除單元304(0)~304(C)的容量來決定有效資料602的資料長度(即,第二資料長度)。亦即,若第三資料長度越大,則第二資料長度也會越大。舉例來說,第二資料長度是資料404的資料長度與一乘數的相乘積,並且此乘數是根據邏輯位址410(0)~410(A)的容量以及實體抹除單元304(0)~304(C)的容量所計算出。詳細來說,假設邏輯位址410(0)~410(A)的容量為1.5G位元組,而儲存區中實體抹除單元的容量為2G位元組,因此最差情況下每一個需要被整併的實體抹除單元中有3/4的有效資料。記憶體管理電路202至少需要複製4個(1/(1-3/4)=4)個實體抹除單元中的有效資料才能夠產生一個閒置實體抹除單元,而這些被複製的有效資料可以被儲存在3(4-1=3)個實體抹除單元中。因此,如果每當記憶體管理電路202將資料404寫入至一個實體程式化單元以後,也複製了3個實體程式化單元中的有效資料,則記憶體管理電路202在寫滿一個實體抹除單元以後便可以複製完4個實體抹除單元中的有效資料。具體來說,上述的乘數是邏輯位址的容量除以一數值的商數,並且此數值為儲存區中實體抹除單元的容量減去邏輯位址410(0)~410(A)的容量的差值。在上述的範例實施例中,此乘數可以寫成(3/(4-3)=3)的運算式。如此一來,寫入資料404時會複製3個實體抹除單元中的有效資料,而寫入資料402中對應至邏輯位址410(1)的資料以後,另外3個實體抹除單元中的有效資料也會被複製。然而,在另一範例實施例中,上述的乘數也可以是其他數值。舉例來說,若邏
輯位址410(0)~410(A)的容量與儲存區中實體抹除單元的容量的比例為50:51,則上述的乘數便會是50/(51-50)=50。
在圖6中,資料404的資料長度是單個實體程式化單元的長度,有效資料602的資料長度為多個實體程式化單元的長度。也就是說,記憶體管理電路202是以實體程式化單元為複製的最小單位。然而,在另一範例實施例中,記憶體管理電路202是根據資料404中被程式化的部分來決定有效資料602的資料長度。例如,一個實體程式化單元的大小為4KB,而記憶體管理電路202每次會程式化512Byte的資料至一個實體程式化單元中。若資料404中被程式化的部分具有第四資料長度,則記憶體管理電路202會將第四資料長度乘上3而成為有效資料602的資料長度。
在記憶體管理電路202顯示可複寫式非揮發性記憶體模組106的狀態為非忙碌狀態以後,主機系統1000便可以再下達一個寫入指令給記憶體管理電路202。此時記憶體管理電路202會再度顯示可複寫式非揮發性記憶體模組106的狀態為忙碌狀態。同樣的,記憶體管理電路202也可以在寫入資料時複製一些有效資料。舉例來說,當記憶體管理電路202執行上一個寫入指令時已複製了實體抹除單元304(B)中部份的有效資料至實體抹除單元304(C)。在執行下一個寫入指令時,記憶體管理電路202會複製實體抹除單元304(B)中其他的有效資料至實體抹除單元304(C)。若實體抹除單元304(B)中的有效資料已被複製完畢,則記憶體管理電路202會抹除實體抹除單元304(B)。也就是說,實體抹除單
元304(B)中全部的有效資料會被複製到實體抹除單元304(C)。最後,記憶體管理電路202會再顯示可複寫式非揮發性記憶體模組106的狀態為非忙碌狀態。
在此範例實施例中,被複製的有效資料是儲存在同一個實體抹除單元304(B)中。然而,在另一範例實施例中,被複製的有效資料可以是分散地儲存在多個實體抹除單元中。本發明並不限制在複製有效資料時,這些有效資料是從哪一個實體抹除單元取得。
圖8是根據一範例實施例繪示將複製有效資料的操作分散在多個寫入指令的示意圖。
請參照圖8,上述的程式化過程會產生一個忙碌時間(busy time)。在此忙碌時間內主機系統1000不能傳送其他寫入指令給記憶體儲存裝置100。依照上述的方法,記憶體管理電路202是將複製有效資料所造成的忙碌時間分散在不同的寫入指令之後。如此一來,便不會在一個寫入指令以後有太長的忙碌時間。並且,即使是在最差的情況下,記憶體管理電路202也可以在寫完一個實體抹除單元以後多增加一個閒置實體抹除單元。
圖9是根據一範例實施例繪示資料寫入方法的流程圖。
請參照圖9,在步驟S901中,配置多個邏輯位址以映射至儲存區中部分的實體程式化單元。在步驟S902中,發送第一寫入指令,用以將第一資料寫入至至少一個實體程式化單元,且該第一資料具有第一資料長度。在步驟S903中,判斷儲存區的狀態
是否符合一預設條件。若儲存區的狀態符合預設條件,在步驟S904中,在接收狀態訊號之前,提取一閒置實體抹除單元,並且複製具有第二資料長度的有效資料至該閒置實體抹除單元,其中第一資料長度不大於第二資料長度。在步驟S905中,接收由可複寫式非揮發性記憶體模組發送之狀態訊號。
圖9中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖9中各步驟可以實作為多個程式碼或是電路;此外,圖9的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,本發明範例實施例所提出的寫入方法、記憶體控制器與記憶體管理電路,可以將複製有效資料所需的時間分散在多個寫入指令之後。此外,即使發生了最差的情況,也可以在寫完一個實體抹除單元以後額外產生一個閒置實體抹除單元。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S901~S905‧‧‧步驟
Claims (33)
- 一種寫入方法,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,並且該些實體抹除單元至少被劃分為一儲存區,該寫入方法該包括:配置多個邏輯位址以映射至該儲存區中部分的該些實體程式化單元,且該些實體程式化單元的至少其中之一儲存有至少一有效資料;發送一第一寫入指令至該可複寫式非揮發性記憶體模組,用以將一第一資料寫入至該些實體程式化單元之至少其中之一,且該第一資料具有一第一資料長度;接收由該可複寫式非揮發性記憶體模組發送之一狀態訊號;以及於發送該第一寫入指令後,接收該狀態訊號之前,從該些實體抹除單元中提取一閒置實體抹除單元,並且複製具有一第二資料長度的該至少一有效資料至該閒置實體抹除單元;其中,該第一資料長度不大於該第二資料長度。
- 如申請專利範圍第1項所述的寫入方法,其中於發送該第一寫入指令後,接收該狀態訊號之前,更包括下列步驟:發送至少一位置資訊至該可複寫式非揮發性記憶體模組,該位置資訊代表該第一資料所預定被寫入的位置;傳送該第一資料至該可複寫式非揮發性記憶體模組之一緩衝 記憶體中;發送一程式化指令,以程式化暫存於該緩衝記憶體中的該第一資料至該些實體程式化單元之至少其中之一;以及發送一狀態詢問指令至該可複寫式非揮發性記憶體模組,以要求該可複寫式非揮發性記憶體模組回覆該狀態訊號;其中,於發送該程式化指令之後,接收該狀態訊號之前,複製具有該第二資料長度的該至少一有效資料至該閒置實體抹除單元。
- 如申請專利範圍第1項所述的寫入方法,其更包含下列步驟:根據該些邏輯位址的一容量以及該儲存區中的該些實體抹除單元的一容量決定該第二資料長度。
- 如申請專利範圍第3項所述的寫入方法,其更包含下列步驟:從一主機系統接收一第三資料,該第三資料具有一第三資料長度;以及根據該第三資料長度決定該第二資料長度。
- 如申請專利範圍第4項所述的寫入方法,其中該第二資料長度是該第一資料長度與一乘數的相乘積,並且該乘數是根據該些邏輯位址的該容量以及該儲存區中該些實體抹除單元的該容量所計算出。
- 如申請專利範圍第5項所述的寫入方法,其中該乘數是該 些邏輯位址的該容量除以一數值的商,並且該數值為該儲存區中該些實體抹除單元的該容量減去該些邏輯位址的該容量的差值。
- 如申請專利範圍第1項所述的寫入方法,其中該第一資料長度為單個該實體程式化單元的長度,該第二資料長度為多個該實體程式化單元的長度。
- 如申請專利範圍第1項所述的寫入方法,於寫入該第一資料的過程中,更包含下列步驟:根據該第一寫入指令程式化該第一資料的至少一部分,該第一資料的至少一部分被程式化者具有一第四資料長度;以及根據該第四資料長度決定該第二資料長度。
- 如申請專利範圍第1項所述的寫入方法,於寫入該第一資料的步驟之前,更包含下列步驟:判斷該閒置實體抹除單元的數目是否少於一預設數目;以及若該閒置實體抹除單元的數目少於該預設數目,則於寫入該第一資料的過程中,將具有該第二資料長度的該至少一有效資料複製至該閒置實體抹除單元。
- 如申請專利範圍第1項所述的寫入方法,其中被複製的該至少一有效資料是分散地儲存在不同的該些實體抹除單元。
- 如申請專利範圍第1項所述的寫入方法,其更包括下列步驟:於發送該第一寫入指令後,接收該狀態訊號之前,顯示該可複寫式非揮發性記憶體模組的狀態為忙碌狀態; 抹除該些實體抹除單元的至少其中之一,其中被抹除的該實體抹除單元中所儲存的該至少一有效資料是全數被複製到該閒置實體抹除單元的至少其中之一;以及於接收該狀態訊號後,顯示該可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,其中每一該些實體抹除單元包括多個實體程式化單元,並且該些實體抹除單元至少被劃分為一儲存區,;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至該儲存區中部分的該些實體程式化單元,且該些實體程式化單元的至少其中之一儲存有至少一有效資料,其中,該記憶體控制器用以發送一第一寫入指令,用以將一第一資料寫入至該些實體程式化單元之至少其中之一,且該第一資料具有一第一資料長度,其中,該記憶體控制器用以接收由該可複寫式非揮發性記憶體模組發送之一狀態訊號,其中,該記憶體控制器用以於發送該第一寫入指令後,接收該狀態訊號之前,從該些實體抹除單元中提取一閒置實體抹除單元,並複製具有一第二資料長度的該至少一有效資料至該閒置實 體抹除單元,其中該第一資料長度不大於該第二資料長度。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該記憶體控制器於發送該第一寫入指令後與接收該狀態訊號之前,更用以執行下列操作:發送至少一位置資訊至該可複寫式非揮發性記憶體模組,該位置資訊代表該第一資料所預定被寫入的位置;傳送該第一資料至該可複寫式非揮發性記憶體模組之一緩衝記憶體中;發送一程式化指令,以程式化暫存於該緩衝記憶體中的該第一資料至該些實體程式化單元之至少其中之一;以及發送一狀態詢問指令至該可複寫式非揮發性記憶體模組,以要求該可複寫式非揮發性記憶體模組回覆該狀態訊號,其中,該記憶體控制器是於發送該程式化指令之後,接收該狀態訊號之前,複製具有該第二資料長度的該至少一有效資料至該閒置實體抹除單元。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該記憶體控制器更用以根據該些邏輯位址的一容量以及該儲存區中的該些實體抹除單元的一容量決定該第二資料長度。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中該記憶體控制器更用以從一主機系統接收一第三資料,該第三資料具有一第三資料長度,並且該記憶體控制器用以根據該第三資料長度決定該第二資料長度。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中該第二資料長度是該第一資料長度與一乘數的相乘積,並且該乘數是根據該些邏輯位址的該容量以及該儲存區中該些實體抹除單元的該容量所計算出。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中該乘數是該些邏輯位址的該容量除以一數值的商,並且該數值為該儲存區中該些實體抹除單元的該容量減去該些邏輯位址的該容量的差值。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該第一資料長度為單個該實體程式化單元的長度,該第二資料長度為多個該實體程式化單元的長度。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該記憶體控制器寫入該第一資料的過程中,該記憶體控制器更用以根據該第一寫入指令程式化該第一資料的至少一部分,該第一資料的至少一部分被程式化者具有一第四資料長度,並且該記憶體控制器用以根據該第四資料長度決定該第二資料長度。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該記憶體控制器寫入該第一資料的操作之前,該記憶體控制器更用以判斷該閒置實體抹除單元的數目是否少於一預設數目,若該閒置實體抹除單元的數目少於該預設數目,則該記憶體控制器於寫入該第一資料的過程中,將具有該第二資料長度的該至少一有效資料複製至該閒置實體抹除單元。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中被複製的該至少一有效資料是分散地儲存在不同的該些實體抹除單元。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該記憶體控制器更用以於寫入該第一資料以及複製該至少一有效資料的過程中,顯示該可複寫式非揮發性記憶體模組的狀態為忙碌狀態,該記憶體控制器更用以抹除該些實體抹除單元的至少其中之一,其中被抹除的該實體抹除單元中所儲存的該至少一有效資料是全數被複製到該閒置實體抹除單元的至少其中之一,該記憶體控制器更用以在寫入該第一資料以及複製該至少一有效資料的操作結束後,顯示該可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,並且該些實體抹除單元至少被劃分為一儲存區,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以配置多個邏輯位址以映射至該儲存區中部分的該些實體程式化 單元,且該些實體程式化單元的至少其中之一儲存有至少一有效資料,其中,該記憶體管理電路用以發送一第一寫入指令,用以將一第一資料寫入至該些實體程式化單元之至少其中之一,且該第一資料具有一第一資料長度,其中,該記憶體管理電路用以接收由該可複寫式非揮發性記憶體模組發送之一狀態訊號,其中,該記憶體管理電路用以於發送該第一寫入指令後,接收該狀態訊號之前,從該些實體抹除單元中提取一閒置實體抹除單元,並複製具有一第二資料長度的該至少一有效資料至該閒置實體抹除單元,其中該第一資料長度不大於該第二資料長度。
- 如申請專利範圍第23項所述的記憶體控制器,其中該記憶體管理電路於發送該第一寫入指令後與接收該狀態訊號之前,更用以執行下列操作:發送至少一位置資訊至該可複寫式非揮發性記憶體模組,該位置資訊代表該第一資料所預定被寫入的位置;傳送該第一資料至該可複寫式非揮發性記憶體模組之一緩衝記憶體中;發送一程式化指令,以程式化暫存於該緩衝記憶體中的該第一資料至該些實體程式化單元之至少其中之一;以及發送一狀態詢問指令至該可複寫式非揮發性記憶體模組,以要求該可複寫式非揮發性記憶體模組回覆該狀態訊號, 其中,該記憶體管理電路是於發送該程式化指令之後,接收該狀態訊號之前,複製具有該第二資料長度的該至少一有效資料至該閒置實體抹除單元。
- 如申請專利範圍第23項所述的記憶體控制器,其中該記憶體管理電路更用以根據該些邏輯位址的一容量以及該儲存區中的該些實體抹除單元的一容量決定該第二資料長度。
- 如申請專利範圍第25項所述的記憶體控制器,其中該記憶體管理電路更用以從一主機系統接收一第三資料,該第三資料具有一第三資料長度,並且該記憶體管理電路用以根據該第三資料長度決定該第二資料長度。
- 如申請專利範圍第26項所述的記憶體控制器,其中該第二資料長度是該第一資料長度與一乘數的相乘積,並且該乘數是根據該些邏輯位址的該容量以及該儲存區中該些實體抹除單元的該容量所計算出。
- 如申請專利範圍第27項所述的記憶體控制器,其中該乘數是該些邏輯位址的該容量除以一數值的商,並且該數值為該儲存區中該些實體抹除單元的該容量減去該些邏輯位址的該容量的差值。
- 如申請專利範圍第23項所述的記憶體控制器,其中該第一資料長度為單個該實體程式化單元的長度,該第二資料長度為多個該實體程式化單元的長度。
- 如申請專利範圍第23項所述的記憶體控制器,其中該記 憶體管理電路寫入該第一資料的過程中,該記憶體管理電路更用以根據該第一寫入指令程式化該第一資料的至少一部分,該第一資料的至少一部分被程式化者具有一第四資料長度,並且該記憶體管理電路用以根據該第四資料長度決定該第二資料長度。
- 如申請專利範圍第23項所述的記憶體控制器,其中該記憶體管理電路寫入該第一資料的操作之前,該記憶體管理電路更用以判斷該閒置實體抹除單元的數目是否少於一預設數目,若該閒置實體抹除單元的數目少於該預設數目,則該記憶體管理電路於寫入該第一資料的過程中,將具有該第二資料長度的該至少一有效資料複製至該閒置實體抹除單元。
- 如申請專利範圍第23項所述的記憶體控制器,其中被複製的該至少一有效資料是分散地儲存在不同的該些實體抹除單元。
- 如申請專利範圍第23項所述的記憶體控制器,其中該記憶體管理電路更用以於寫入該第一資料以及複製該至少一有效資料的過程中,顯示該可複寫式非揮發性記憶體模組的狀態為忙碌狀態,該記憶體管理電路更用以抹除該些實體抹除單元的至少其中之一,其中被抹除的該實體抹除單元中所儲存的該至少一有效資料是全數被複製到該閒置實體抹除單元的至少其中之一,該記憶體管理電路更用以在寫入該第一資料以及複製該至少一有效資料的操作結束後,顯示該可複寫式非揮發性記憶體模組的狀態為非忙碌狀態。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102115080A TWI503841B (zh) | 2013-04-26 | 2013-04-26 | 寫入方法、記憶體控制器與記憶體儲存裝置 |
US13/950,284 US9652378B2 (en) | 2013-04-26 | 2013-07-25 | Writing method, memory controller and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102115080A TWI503841B (zh) | 2013-04-26 | 2013-04-26 | 寫入方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201442038A TW201442038A (zh) | 2014-11-01 |
TWI503841B true TWI503841B (zh) | 2015-10-11 |
Family
ID=51790291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102115080A TWI503841B (zh) | 2013-04-26 | 2013-04-26 | 寫入方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9652378B2 (zh) |
TW (1) | TWI503841B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170001235A (ko) * | 2015-06-26 | 2017-01-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN106372011B (zh) * | 2015-07-24 | 2020-10-30 | 爱思开海力士有限公司 | 用于pcie ssd控制器的高性能主机队列监控器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200917277A (en) * | 2007-10-15 | 2009-04-16 | A Data Technology Co Ltd | Adaptive hybrid density memory storage device and control method thereof |
TW201025333A (en) * | 2008-12-31 | 2010-07-01 | A Data Technology Co Ltd | Memory storage device and control method thereof |
US20100180072A1 (en) * | 2007-06-22 | 2010-07-15 | Shigekazu Kogita | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program |
TW201123193A (en) * | 2009-12-30 | 2011-07-01 | Silicon Motion Inc | Write timeout methods for a flash memory and memory device using the same |
US8205033B2 (en) * | 2007-11-06 | 2012-06-19 | Sony Corporation | Memory device, memory management method, and program |
US20120159058A1 (en) * | 2010-12-17 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US20120317346A1 (en) * | 2009-11-23 | 2012-12-13 | Phison Electronics Corp. | Data storing method, and memory controller and memory storage apparatus using the same |
US20130036258A1 (en) * | 2011-08-05 | 2013-02-07 | Phison Electronics Corp. | Memory storage device, memory controller thereof, and method for programming data thereof |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835772A (en) * | 1995-12-29 | 1998-11-10 | Intel Corporation | Method and apparatus for providing an interface between a system and a peripheral device |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
TWI386802B (zh) * | 2009-07-03 | 2013-02-21 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
-
2013
- 2013-04-26 TW TW102115080A patent/TWI503841B/zh active
- 2013-07-25 US US13/950,284 patent/US9652378B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180072A1 (en) * | 2007-06-22 | 2010-07-15 | Shigekazu Kogita | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program |
TW200917277A (en) * | 2007-10-15 | 2009-04-16 | A Data Technology Co Ltd | Adaptive hybrid density memory storage device and control method thereof |
US8205033B2 (en) * | 2007-11-06 | 2012-06-19 | Sony Corporation | Memory device, memory management method, and program |
TW201025333A (en) * | 2008-12-31 | 2010-07-01 | A Data Technology Co Ltd | Memory storage device and control method thereof |
US20120317346A1 (en) * | 2009-11-23 | 2012-12-13 | Phison Electronics Corp. | Data storing method, and memory controller and memory storage apparatus using the same |
TW201123193A (en) * | 2009-12-30 | 2011-07-01 | Silicon Motion Inc | Write timeout methods for a flash memory and memory device using the same |
US20120159058A1 (en) * | 2010-12-17 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US20130036258A1 (en) * | 2011-08-05 | 2013-02-07 | Phison Electronics Corp. | Memory storage device, memory controller thereof, and method for programming data thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201442038A (zh) | 2014-11-01 |
US20140325119A1 (en) | 2014-10-30 |
US9652378B2 (en) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI421869B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI495998B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
TW201719415A (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201401050A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201734793A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI514141B (zh) | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI571881B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 |