TWI498899B - 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI498899B TWI498899B TW102130249A TW102130249A TWI498899B TW I498899 B TWI498899 B TW I498899B TW 102130249 A TW102130249 A TW 102130249A TW 102130249 A TW102130249 A TW 102130249A TW I498899 B TWI498899 B TW I498899B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- unit
- buffer memory
- control circuit
- 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
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的資料寫入方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
若記憶體儲存裝置是以可複寫式非揮發性記憶體作為儲存媒體,當有資料寫入至可複寫式非揮發性記憶體時,可複寫式非揮發性記憶體可能會發生程式化錯誤,使得資料並沒有成功地
被寫入。因此,一個記憶體儲存裝置中通常會配置至少一個緩衝記憶體。此緩衝記憶體可以用來暫存欲寫入記憶體儲存裝置的資料。也就是說,每一筆欲寫入至記憶體儲存裝置的資料都需要先暫存至此緩衝記憶體,並且之後再從緩衝記憶體中將欲寫入的資料寫入至可複寫式非揮發性記憶體中。由於對於一筆寫入資料來說,都需要對緩衝記憶體進行暫存與讀取兩個動作。因此,當緩衝記憶體的傳輸頻寬不夠大時,相對於分配給寫入運作的頻寬就會相對較少。
此外,當資料被暫存至緩衝記憶體後,記憶體儲存裝置的控制電路就會向主機傳送已完成指令的訊息,以便接收下一個指令與資料。當將資料寫入至可複寫式非揮發性記憶體時,可能會發生程式化錯誤(program fail),使得資料並沒有成功地被寫入。因此,記憶體儲存裝置的控制電路會需要從緩衝記憶體中將以為成功寫入之資料再次寫入(亦稱為重寫)至可複寫式非揮發性記憶體中。因此,在記憶體儲存裝置中所配置的緩衝記憶體必須足夠大來暫存資料,以避免無法進行重寫。
基於上述,為了提升寫入速度,使用頻寬較大的緩衝記憶體是需要的。然而,為了考量上述重寫的需求,必須使用大容量的緩衝記憶體。對於頻寬較大的緩衝記憶體來說,每記憶單位的成本較高。因此,如何能夠在降低製造成本下,又具有適當容量的緩衝記憶體及具有適當的記憶體頻寬,為此領域技術人員所關心的議題。
本發明提供一種記憶體儲存裝置、記憶體控制電路單元與資料寫入方法,其能夠有效率地使用記憶體儲存裝置中暫存記憶體的頻寬與容量並且提升寫入資料的速度。
本發明一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組、記憶體控制電路單元與第二緩衝記憶體。連接介面單元用以耦接至主機系統。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,其中記憶體控制電路單元包括一第一緩衝記憶體,且第一緩衝記憶體包括第一資料暫存區。第二緩衝記憶體耦接至第一緩衝記憶體,其中第二緩衝記憶體包括第二資料暫存區,且第二緩衝記憶體的傳輸頻寬低於第一緩衝記憶體的傳輸頻寬。在此,記憶體控制電路單元用以從主機系統中接收寫入指令與對應此寫入指令的起始邏輯位址與第一資料,並且用以判斷第一資料是否為連續大資料。倘若第一資料為連續大資料時,記憶體控制電路單元將第一資料暫存至第一資料暫存區,且將第一資料從第一資料暫存區中寫入至可複寫式非揮發性記憶體模組中。倘若第一資料非為連續大資料時,記憶體控制電路單元將第一資料暫存至第二資料暫存區。
在本發明的一實施例中,在判斷第一資料是否為連續大資料的運作中,記憶體控制電路單元會判斷上述起始邏輯位址是否為資料存取單位的倍數並且第一資料的大小是否為此資料存取
單位的倍數。倘若起始邏輯位址為資料存取單位的倍數並且第一資料的大小為資料存取單位的倍數時,記憶體控制電路單元識別第一資料為連續大資料。倘若起始邏輯位址非為資料存取單位的倍數或者第一資料的大小非為資料存取單位的倍數時,記憶體控制電路單元識別第一資料非為連續大資料。
在本發明的一實施例中,記憶體控制電路單元更從第一資料暫存區中將第一資料複製到第二緩衝記憶體的第二資料暫存區中。
在本發明的一實施例中,倘若第一資料非為連續大資料時,記憶體控制電路單元更用以從可複寫式非揮發性記憶體模組的第一實體程式化單元中將第二資料讀取至第二資料暫存區並且將第一資料與第二資料從第二資料暫存區中寫入至可複寫式非揮發性記憶體模組的第二實體程式化單元。
在本發明的一實施例中,上述記憶體控制電路單元更用以在將第一資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤。若發生程式化錯誤時,則記憶體控制電路單元更用以從第二緩衝記憶體中讀取第一資料,並根據寫入指令將所讀取的第一資料重新寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述記憶體控制電路單元更用以從主機系統接收讀取指令。此外,記憶體控制電路單元更用以判斷第二緩衝記憶體是否儲存有屬於此讀取指令所指示之一邏輯
位址的第三資料。若第二緩衝記憶體儲存有屬於此讀取指令所指示之邏輯位址的第三資料時,則記憶體控制電路單元從第二緩衝記憶體中讀取第三資料並將所讀取的第三資料傳送至主機系統以回應此讀取指令。
在本發明的一實施例中,上述的第二緩衝記憶體是配置在記憶體控制電路單元中或者配置在記憶體控制電路單元的外部。
在本發明的一實施例中,上述第一緩衝記憶體為靜態隨機存取記憶體,第二緩衝記憶體為同步動態隨機存取記憶體並且第二緩衝記憶體的容量大於第一緩衝記憶體的容量。
本發明一範例實施例提出一種記憶體控制電路單元,其包括主機介面、記憶體介面、記憶體管理電路、第一緩衝記憶體與第二緩衝記憶體。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。第一緩衝記憶體耦接至記憶體管理電路且包括第一資料暫存區。第二緩衝記憶體耦接至第一緩衝記憶體與記憶體管理電路,其中第二緩衝記憶體包括第二資料暫存區,且第二緩衝記憶體的傳輸頻寬低於第一緩衝記憶體的傳輸頻寬。記憶體管理電路用以從主機系統中接收寫入指令與對應此寫入指令的起始邏輯位址與第一資料。記憶體管理電路更用以判斷第一資料是否為連續大資料。倘若第一資料為連續大資料時,記憶體管理電路將第一資料暫存至第一資料暫存區,且將第一資料
從第一資料暫存區中寫入至可複寫式非揮發性記憶體模組中。倘若第一資料非為連續大資料時,記憶體管理電路將第一資料暫存至第二資料暫存區。
在本發明的一實施例中,在判斷第一資料是否為連續大資料的運作中,記憶體管理電路會判斷上述起始邏輯位址是否為資料存取單位的倍數並且第一資料的大小是否為此資料存取單位的倍數。倘若起始邏輯位址為資料存取單位的倍數並且第一資料的大小為資料存取單位的倍數時,記憶體管理電路識別第一資料為連續大資料。倘若起始邏輯位址非為資料存取單位的倍數或者第一資料的大小非為資料存取單位的倍數時,記憶體管理電路識別第一資料非為連續大資料。
在本發明的一實施例中,記憶體管理電路更從第一資料暫存區中將第一資料複製到第二緩衝記憶體的第二資料暫存區中。
在本發明的一實施例中,倘若第一資料非為連續大資料時,記憶體管理電路更用以從可複寫式非揮發性記憶體模組的第一實體程式化單元中將第二資料讀取至第二資料暫存區並且將第一資料與第二資料從第二資料暫存區中寫入至可複寫式非揮發性記憶體模組的第二實體程式化單元。
在本發明的一實施例中,上述記憶體管理電路更用以在將第一資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤。若發生程式化錯誤時,則記憶體管理電路更用
以從第二緩衝記憶體中讀取第一資料,並根據寫入指令將所讀取的第一資料重新寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述記憶體管理電路更用以從主機系統接收讀取指令。此外,記憶體管理電路更用以判斷第二緩衝記憶體是否儲存有屬於此讀取指令所指示之一邏輯位址的第三資料。若第二緩衝記憶體儲存有屬於此讀取指令所指示之邏輯位址的第三資料時,則記憶體管理電路從第二緩衝記憶體中讀取第三資料並將所讀取的第三資料傳送至主機系統以回應此讀取指令。
在本發明的一實施例中,上述第一緩衝記憶體為靜態隨機存取記憶體,第二緩衝記憶體為同步動態隨機存取記憶體並且第二緩衝記憶體的容量大於第一緩衝記憶體的容量。
本發明一範例實施例提出一種資料寫入方法,用於記憶體儲存裝置,其中此記憶體儲存裝置具有第一緩衝記憶體、第二緩衝記憶體以及可複寫式非揮發性記憶體模組,其中第一緩衝記憶體的傳輸頻寬大於第二緩衝記憶體的傳輸頻寬。本資料寫入方法包括:從主機系統中接收寫入指令與對應此寫入指令的起始邏輯位址與第一資料;並判斷第一資料是否為連續大資料。本資料寫入方法也包括:倘若第一資料為連續大資料時,將第一資料暫存至第一緩衝記憶體的第一資料暫存區,且將第一資料從第一資料暫存區中寫入至可複寫式非揮發性記憶體模組中;以及倘若第一資料非為連續大資料時,將第一資料暫存至第二緩衝記憶體的
第二資料暫存區。
在本發明的一實施例中,上述判斷第一資料是否為連續大資料的步驟包括:判斷起始邏輯位址是否為資料存取單位的倍數並且第一資料的大小是否為資料存取單位的倍數;倘若起始邏輯位址為資料存取單位的倍數並且第一資料的大小為資料存取單位的倍數時,識別第一資料為該連續大資料;以及倘若起始邏輯位址非為資料存取單位的倍數或者第一資料的大小非為資料存取單位的倍數時,識別第一資料非為連續大資料。
在本發明的一實施例中,上述的資料寫入方法更包括:從第一資料暫存區中將第一資料複製到第二緩衝記憶體的第二資料暫存區中。
在本發明的一實施例中,上述的資料寫入方法更包括:倘若第一資料非為連續大資料時,從可複寫式非揮發性記憶體模組的第一實體程式化單元中將第二資料讀取至第二資料暫存區並且將第一資料與第二資料從第二資料暫存區中寫入至可複寫式非揮發性記憶體模組的第二實體程式化單元中。
在本發明的一實施例中,上述的資料寫入方法更包括:在將第一資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤;以及倘若發生程式化錯誤時,則從第二緩衝記憶體中讀取第一資料,並根據寫入指令將所讀取的第一資料重新寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述的資料寫入方法更包括:
從主機系統接收讀取指令;判斷第二緩衝記憶體是否儲存有屬於此讀取指令所指示之一邏輯位址的第三資料;倘若第二緩衝記憶體儲存有屬於此讀取指令所指示之邏輯位址的第三資料時,從第二緩衝記憶體中讀取第三資料並將所讀取的第三資料傳送至主機系統以回應此讀取指令。
基於上述,本發明範例實施例的記憶體儲存裝置、記憶體控制電路單元與資料寫入方法能夠根據不同的資料型態來使用不同的緩衝機制來寫入資料,由此有效率地使用記憶體儲存裝置中暫存記憶體的頻寬與容量並且提升寫入資料的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
108‧‧‧第二緩衝記憶體
108a‧‧‧資料暫存區
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
208a‧‧‧資料暫存區
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
LP(0)‧‧‧邏輯頁面
PP(0)、PP(1)‧‧‧實體頁面
UD1、UD2、OD1、OD2-1、OD2-2‧‧‧資料
S1201、S1203、S1205、S1207、S1209‧‧‧資料寫入方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概
要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8是根據本發明一範例實施例所繪示之更新一個邏輯頁面之資料的範例。
圖9是根據本發明一範例實施例所繪示之更新一個邏輯頁面之資料的另一範例。
圖10是根據本發明一範例實施例所繪示之使用一般緩衝寫入機制來寫入資料的示意圖。
圖11是根據本發明一範例實施例所繪示之使用加速緩衝寫入機制來寫入資料的示意圖。
圖12是根據本發明一範例實施例所繪示之資料寫入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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與第二緩衝記憶體108。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parellel 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所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元410(0)~410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位
址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
第二緩衝記憶體108是配置在記憶體控制電路單元的外部且耦接至記憶體控制電路單元104。第二緩衝記憶體108用以緩衝記憶體控制電路單元104所執行的指令或資料。例如,第二緩衝記憶體108具有資料暫存區108a(以下稱為第二資料暫存區108a)是用以備份接收自主機系統1000的寫入資料。本範例實施例中,第二緩衝記憶體108為同步動態緩衝記憶體(synchronous dynamic random access memory,SDRAM)並且第二緩衝記憶體108的傳輸頻寬為400M位元/秒。然而,本發明不限於此,第二緩衝記憶體108也可以是動態隨機存取記憶體(dynamic random access memory,DRAM)、靜態隨機存取記憶體(static random access memory,
SRAM)、磁電阻式隨機存取記憶(Magnetoresistive Random Access Memory,MRAM)、快取隨機存取記憶體(Cache RAM)、同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)、視頻隨機存取記憶器(Video RAM,VRAM)、反或閘快閃記憶體(NOR Flash)、嵌入式動態隨機存取記憶體(embedded DRAM,eDRAM)或其他的記憶體。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206、第一緩衝記憶體208、錯誤檢查與校正電路210與電源管理電路212。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路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是相容於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並且用以緩衝記憶體管理電路202所執行的指令或是資料。具體來說,第一緩衝記憶體208包括資料暫存區208a(以下稱為第一資料暫存區208a),其用以暫存主機系統1000所寫入或主機系統1000所讀取的資料。然而,必須瞭解的是,除了第一資料暫存區208a,第一緩衝記憶體208可包括其他區域(未繪示),用以暫存其他資料。例如,記憶體管理電路202可將可複寫式非揮發性記憶體模組106中虛擬位址與實體位址的映射表(mapping table)儲存在第一緩衝記憶體208的其他區域中。在本範例實施例中,第一緩衝記憶體
208的傳輸頻寬大於第二緩衝記憶體108的傳輸頻寬。例如,第一緩衝記憶體208為靜態隨機存取記憶體(static random access memory,SRAM)。然而,第一緩衝記憶體208也可以是MRAM、Cache RAM、SDRAM、VRAM、NOR Flash或是eDRAM。並且第一緩衝記憶體208的傳輸頻寬為800M位元/秒。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據第一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制電路單元104(或記憶體管理電路202)會將實體抹除單元410(0)~410-(N)邏輯地分組為資料區502、
閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路202會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區
508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制電路單元104(或記憶體管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯頁面以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。
為了識別每個邏輯頁面的資料被儲存在那個實體程式化單元,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯頁面與實體程式化單元之間的映射,其中一個邏輯頁面的大小是相同於一個實體程式化單元的大小。在此,一個實體程式化單元的大小亦稱為一個資料存取單位。並且,當主機系統1000欲在邏輯頁面中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯頁面所屬的邏輯單元,並且在此邏輯頁面所映射的實體程式化單元中來存取資料。
圖8是根據本發明一範例實施例所繪示之更新一個邏輯頁面之資料的範例。
請參照圖8,倘若主機系統1000下達寫入指令以從邏輯頁面LP(0)的起始位址開始寫入資料UD1且資料UD1的大小相同
一個實體程式化單元時,記憶體控制電路單元104(或記憶體管理電路202)會確認邏輯頁面LP(0)所映射的實體程式化單元PP(0),選擇一個空的實體程式化單元PP(1)來替換原先映射邏輯頁面LP(0)的實體程式化單元PP(0),將資料UD1寫入至所選擇的實體程式化單元PP(1)並且將此邏輯頁面LP(0)重新映射至實體程式化單元PP(1)。然後,儲存在原始邏輯頁面LP(0)的映射實體程式化單元PP(0)上的資料OD1為被標記為無效資料。
圖9是根據本發明一範例實施例所繪示之更新一個邏輯頁面之資料的另一範例。
請參照圖9,倘若主機系統1000下達寫入指令以從邏輯頁面LP(0)的起始位址開始寫入資料UD2且資料UD2的大小為一個實體程式化單元之大小的一半時,記憶體控制電路單元104(或記憶體管理電路202)會確認邏輯頁面LP(0)所映射的實體程式化單元PP(0),選擇一個空的實體程式化單元來替換原先映射邏輯頁面LP(0)的實體程式化單元PP(0),從原先映射邏輯頁面LP(0)的實體程式化單元PP(0)中讀取未被更新的資料OD2-2(即,舊有效資料),將資料UD2與舊有效資料OD2-2寫入至所選擇的實體程式化單元PP(1)並且將邏輯頁面LP(0)重新映射至實體程式化單元PP(1)。然後,儲存在原始邏輯頁面LP(0)的映射實體程式化單元PP(0)上的資料OD2-1與OD2-2會被標記為無效資料。
由於記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯頁面與實體程式化單元的映射關係,因此,之後,當主
機系統1000下達讀取邏輯頁面LP(0)上之資料的指令時,記憶體控制電路單元104(或記憶體管理電路202)可根據所記錄的映射從實體程式化單元PP(1)中讀取更新後的資料。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯-實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯-實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯-實體位址映射表。特別是,當記憶體控制電路單元104(或記憶體管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯-實體位址映射表會被載入至緩衝記憶體208來被更新。
在本範例實施例中,當主機系統1000下達寫入指令與對應的寫入資料至記憶體儲存裝置100時,記憶體控制電路單元104(或記憶體管理電路202)會先將資料暫存至緩衝記憶體。特別是,由於記憶體儲存裝置100配置有具有不同容量與頻寬的第一緩衝記憶體208與第二緩衝記憶體108,因此,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)根據所寫
入之資料的態樣來使用一般緩衝寫入機制與加速緩衝寫入機制來寫入資料。
圖10是根據本發明一範例實施例所繪示之使用一般緩衝寫入機制來寫入資料的示意圖。
請參照圖10,當從主機系統1000接收到寫入指令與對應的寫入資料UD2時,此資料UD2會被暫存至第二緩衝記憶體108的第二資料暫存區108a。例如,記憶體控制電路單元104(或記憶體管理電路202)會透過與第二緩衝記憶體108連接的匯流排直接將資料UD2傳輸至第二緩衝記憶體108或者透過與第一緩衝記憶體208連接的匯流排經由第一緩衝記憶體208傳輸至第二緩衝記憶體108。之後,記憶體控制電路單元104(或記憶體管理電路202)會再從第二緩衝記憶體108的第二資料暫存區108a中將資料UD2傳送至可複寫式非揮發性記憶體模組106的實體程式化單元中。例如,資料OD2-2會先被讀取至第二緩衝記憶體108,然後資料UD2與資料OD2-2會被程式化至一個實體程式化單元PP(1)。
也就是說,在一般緩衝寫入機制中,第二緩衝記憶體108會同時被用來作為接收寫入資料以及將寫入資料傳送至可複寫式非揮發性記憶體模組106的緩衝區域。特別是,在一般緩衝寫入機制中,由於第二暫存記憶體108的傳輸頻寬會被寫入存取與讀取存取來共享,因此,透過一般緩衝寫入機制來寫入資料的速度較慢。
圖11是根據本發明一範例實施例所繪示之使用加速緩衝寫入機制來寫入資料的示意圖。
請參照圖11,為了增加記憶體儲存裝置100的寫入速度,在加速緩衝寫入機制中,記憶體控制電路單元104(或記憶體管理電路202)是將傳輸頻寬較大的第一緩衝記憶體208作為暫存寫入資料的區域,並將傳輸頻寬較小的第二緩衝記憶體108作為備份寫入資料的區域。
例如,當記憶體儲存裝置100從主機系統1000中接收到寫入指令及對應此寫入指令的寫入資料UD1時,記憶體控制電路單元104(或記憶體管理電路202)會將寫入資料UD1暫存至第一緩衝記憶體208的第一資料暫存區208a。由於第一緩衝記憶體208的傳輸頻寬較大,因此可滿足主機系統1000的寫入需求。也就是說,記憶體管理電路202將資料UD1暫存在第一資料暫存區208a的速度會不低於主機系統1000傳送資料UD1至記憶體管理電路202的速度,由此可即時地從主機系統1000接收資料並且暫存至第一緩衝記憶體208。
在加速緩衝寫入機制中,第一緩衝記憶體208之傳輸頻寬可同時被寫入存取與讀取存取來分享。例如,當一資料被寫入至第一緩衝記憶體208的同時,其他資料可從第一緩衝記憶體208中被讀取出並被傳輸至可複寫式非揮發性記憶體模組106。例如,當一資料被寫入至第一緩衝記憶體208的同時,其他資料也可從第一緩衝記憶體208中被讀取出並且被傳送至第二緩衝記憶體
108。
接著,記憶體控制電路單元104(或記憶體管理電路202)會從第一資料暫存區208a中讀取資料UD1,並根據上述寫入指令將資料UD1寫入至可複寫式非揮發性記憶體模組106中。
另一方面,記憶體控制電路單元104(或記憶體管理電路202)也會從第一資料暫存區208a中讀取資料UD1,並將資料UD1複製到第二緩衝記憶體108的第二資料暫存區108a中。值得注意的是,在加速緩衝寫入機制中,第二緩衝記憶體108的傳輸頻寬可全部都被用來寫入資料UD1。也就是說,對於一份資料UD1來說,記憶體控制電路單元104(或記憶體管理電路202)只需要對第二緩衝記憶體108做寫入的動作,而不做讀取的動作。另一方面,記憶體管理電路202也可以在將資料UD1寫入至可複寫式非揮發性記憶體模組106的同時,將資料UD1複製到第二緩衝記憶體108中。
基此,資料UD1便被備份在第二緩衝記憶體108中,並且記憶體控制電路單元104(或記憶體管理電路202)就可再從主機系統1000下一個寫入指令並且將新的寫入資料暫存至第一緩衝記憶體208。特別是,資料UD1已被備份至第二緩衝記憶體108中,因此,在第一緩衝記憶體208中,既使原先儲存資料UD1的位址被用來暫存新的寫入資料,亦不會影響記憶體儲存裝置100的運作。
例如,記憶體管理電路202會在將資料UD1寫入至可複
寫式非揮發性記憶體模組106中之後,判斷是否發生程式化錯誤。若發生程式化錯誤時,記憶體管理電路202會從第二緩衝記憶體108中讀取資料UD1,並根據寫入指令將資料UD1重新寫入至可複寫式非揮發性記憶體模組106中。也就是說,當發生程式化錯誤而未成功地將寫入資料302寫入至可複寫式非揮發性記憶體模組106時,既使在第一緩衝記憶體208中資料UD1已被覆寫成新的資料,記憶體控制電路單元104(或記憶體管理電路202)仍可將資料UD1從第二緩衝記憶體108中重新寫入至可複寫式非揮發性記憶體模組106中。基此,記憶體儲存裝置100能夠在利用頻寬較大之第一緩衝記憶體208來提升寫入速度的同時,確保資料UD1能成功的寫入至可複寫式非揮發性記憶體模組106。在本範例實施例中,當記憶體管理電路202從第二緩衝記憶體108中讀取資料UD1時,第二緩衝記憶體108的傳輸頻寬可全部都被用來傳輸資料UD1。也就是說,在加速緩衝寫入機制中,第二緩衝記憶體108的全部傳輸頻寬會被用來執行一個單一運作程序(例如,寫入存取或讀取存取)。例如,第二緩衝記憶體108的傳輸頻寬全部被用來將資料寫入至第二緩衝記憶體108。或者,第二緩衝記憶體的傳輸頻寬全部被用來將資料從第二緩衝記憶體108讀取出。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在接收到來自於主機系統1000的寫入指令與對應的資料時,判斷此資料是否為連續大資料。並且,倘若此資料為連續大資料時,記憶體控制電路單元104(或記憶體管理電路
202)會使用上述加速緩衝寫入機制來寫入資料,並且倘若此資料非為連續大資料時,記憶體控制電路單元104(或記憶體管理電路202)會使用上述一般緩衝寫入機制來寫入資料。
具體來說,記憶體控制電路單元104(或記憶體管理電路202)會判斷寫入指令所指示開始寫入資料的位址(即,起始邏輯位址)是否為資料存取單位的倍數且寫入指令所指示之寫入資料的大小是否為資料存取單位的倍數。
倘若寫入指令所指示之起始邏輯位址為資料存取單位的倍數且寫入資料的大小為資料存取單位的倍數時,則表示所欲寫入的資料是更新邏輯頁面內的所有資料(如圖8所示)。此時,記憶體控制電路單元104(或記憶體管理電路202)會採用加速緩衝寫入機制。更詳細來說,由於實體程式化單元內的資料是全部更新,無需讀取舊有效資料,因此,透過加速緩衝寫入機制可有效地利用第一緩衝記憶體208的大頻寬來提升寫入速度。
倘若寫入指令所指示之起始邏輯位址非為資料存取單位的倍數且寫入資料的大小非為資料存取單位的倍數時,則表示至少有一個邏輯頁面內的資料非全部被更新(如圖9所示)。此時,記憶體控制電路單元104(或記憶體管理電路202)會採用一般緩衝寫入機制。更詳細來說,由於實體程式化單元內的資料僅部分被更新,因此,需先將寫入資料保留在緩衝記憶體中並讀取舊有效資料,再以實體程式化單元為單位來進行寫入。基此,透過一般緩衝寫入機制可有效地利用第二緩衝記憶體108的大容量,以避
免第一緩衝記憶體208的第一資料暫存區208a被佔滿而無法用於執行其他指令。
圖12是根據本發明一範例實施例所繪示之資料寫入方法的流程圖。
請參照圖12,當從主機系統1000接收到指示起始邏輯位址與寫入資料(以下稱為第一資料)的寫入指令時,在步驟S1201中,記憶體控制電路單元104(或記憶體管理電路202)會判斷第一資料是否屬於連續大資料。例如,如上所述,記憶體控制電路單元104(或記憶體管理電路202)會根據寫入指令所指示的起始邏輯位址與寫入資料的大小來判斷第一資料是否屬於連續大資料。
倘若第一資料屬於連續大資料時,在步驟S1203中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料暫存至第一緩衝記憶體208的第一資料暫存區208a。
之後,在步驟S1205中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料從第一資料暫存區208a中寫入至該可複寫式非揮發性記憶體模組中。然後,在步驟S1207中,記憶體控制電路單元104(或記憶體管理電路202)會從第一資料暫存區208a中將第一資料複製到第二緩衝記憶體108的第二資料暫存區108a中。
倘若第一資料非屬於連續大資料時,在步驟S1209中,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料
暫存至第二緩衝記憶體108的第二資料暫存區108a中。值得一提的是,之後,記憶體控制電路單元104(或記憶體管理電路202)會從對應的實體程式化單元之中將舊有效資料(以下稱為第二資料)讀取至第二緩衝記憶體108的第二資料暫存區108a,並且將所暫存之第一資料與第二資料寫入至空的實體程式化單元中(如圖9所示)。
值得一的是,儘管在本範例實施例中,第二緩衝記憶體108是獨立於記憶體控制電路單元104來被配置,然而,本發明不限於此。在本發明另一範例實施例中,第二緩衝記憶體108亦可被配置在記憶體控制電路單元104中。
綜上所述,本發明實施例所提出的記憶體儲存裝置、記憶體控制電路單元與寫入方法,可以根據不同的資料型態來使用不同的緩衝機制來寫入資料,由此有效率地使用記憶體儲存裝置中暫存記憶體的頻寬與容量並且提升寫入資料的速度。
S1201、S1203、S1205、S1207、S1209‧‧‧資料寫入方法的步驟
Claims (18)
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元包括一第一緩衝記憶體,且該第一緩衝記憶體包括一第一資料暫存區;以及一第二緩衝記憶體,耦接至該第一緩衝記憶體,其中該第二緩衝記憶體包括一第二資料暫存區,該第二緩衝記憶體的一傳輸頻寬低於該第一緩衝記憶體的一傳輸頻寬,其中該記憶體控制電路單元用以從該主機系統中接收一寫入指令與對應該寫入指令的一起始邏輯位址與一第一資料,其中該記憶體控制電路單元更用以判斷該第一資料是否為一連續大資料,倘若該第一資料為該連續大資料時,該記憶體控制電路單元將該第一資料暫存至該第一資料暫存區,且將該第一資料從該第一資料暫存區中寫入至該可複寫式非揮發性記憶體模組中,倘若該第一資料非為該連續大資料時,該記憶體控制電路單元將該第一資料暫存至該第二資料暫存區而不會暫存至該第一資料暫存區中。
- 如申請專利範圍第1項所述的記憶體儲存裝置,其中在判斷該第一資料是否為該連續大資料的運作中,該記 憶體控制電路單元會判斷該起始邏輯位址是否為一資料存取單位的倍數並且該第一資料的大小是否為該資料存取單位的倍數,倘若該起始邏輯位址為該資料存取單位的倍數並且該第一資料的大小為該資料存取單位的倍數時,該記憶體控制電路單元識別該第一資料為該連續大資料,倘若該起始邏輯位址非為該資料存取單位的倍數或者該第一資料的大小非為該資料存取單位的倍數時,該記憶體控制電路單元識別該第一資料非為該連續大資料。
- 如申請專利範圍第2項所述的記憶體儲存裝置,其中倘若該第一資料非為該連續大資料時,該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組的一第一實體程式化單元中將一第二資料讀取至該第二資料暫存區並且將該第一資料與該第二資料從該第二資料暫存區中寫入至該可複寫式非揮發性記憶體模組的一第二實體程式化單元。
- 如申請專利範圍第1項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以在將該第一資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤,其中若發生該程式化錯誤時,則該記憶體控制電路單元更用以從該第二緩衝記憶體中讀取該第一資料,並根據該寫入指令將所讀取的該第一資料重新寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第1項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該主機系統接收一讀取指令,其中該記憶體控制電路單元更用以判斷該第二緩衝記憶體是否儲存有屬於該讀取指令所指示之一邏輯位址的一第三資料,其中若該第二緩衝記憶體儲存有屬於該讀取指令所指示之該邏輯位址的該第三資料時,則該記憶體控制電路單元從該第二緩衝記憶體中讀取該第三資料並將所讀取的該第三資料傳送至該主機系統以回應該讀取指令。
- 如申請專利範圍第1項所述的記憶體儲存裝置,其中該第二緩衝記憶體是配置在該記憶體控制電路單元中或者配置在該記憶體控制電路單元的外部。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第一緩衝記憶體為一靜態隨機存取記憶體,該第二緩衝記憶體為一同步動態隨機存取記憶體並且該第二緩衝記憶體的一容量大於該第一緩衝記憶體的一容量。
- 一種記憶體控制電路單元,包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至一可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面與該記憶體介面;一第一緩衝記憶體,耦接至該記憶體管理電路且包括一第一資料暫存區;以及 一第二緩衝記憶體,耦接至該第一緩衝記憶體與該記憶體管理電路,其中該第二緩衝記憶體包括一第二資料暫存區,該第二緩衝記憶體的一傳輸頻寬低於該第一緩衝記憶體的一傳輸頻寬,其中該記憶體管理電路用以從該主機系統中接收一寫入指令與對應該寫入指令的一起始邏輯位址與一第一資料,其中該記憶體管理電路更用以判斷該第一資料是否為一連續大資料,倘若該第一資料為該連續大資料時,該記憶體管理電路將該第一資料暫存至該第一資料暫存區,並且將該第一資料從該第一資料暫存區中寫入至該可複寫式非揮發性記憶體模組中,倘若該第一資料非為該連續大資料時,該記憶體管理電路將該第一資料暫存至該第二資料暫存區而不會暫存至該第一資料暫存區中。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中在判斷該第一資料是否為該連續大資料的運作中,該記憶體管理電路會判斷該起始邏輯位址是否為一資料存取單位的倍數並且該第一資料的大小是否為該資料存取單位的倍數,倘若該起始邏輯位址為該資料存取單位的倍數並且該第一資料的大小為該資料存取單位的倍數時,該記憶體管理電路識別該第一資料為該連續大資料,倘若該起始邏輯位址非為該資料存取單位的倍數或者該第一資料的大小非為該資料存取單位的倍數時,該記憶體管理電路識 別該第一資料非為該連續大資料。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中倘若該第一資料非為該連續大資料時,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組的一第一實體程式化單元中將一第二資料讀取至該第二資料暫存區並且將該第一資料與該第二資料從該第二資料暫存區中寫入至該可複寫式非揮發性記憶體模組的一第二實體程式化單元。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以在將該第一資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤,其中若發生該程式化錯誤時,則該記憶體管理電路更用以從該第二緩衝記憶體中讀取該第一資料,並根據該寫入指令將所讀取的該第一資料重新寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統接收一讀取指令,其中該記憶體管理電路更用以判斷該第二緩衝記憶體是否儲存有屬於該讀取指令所指示之一邏輯位址的一第三資料,其中若該第二緩衝記憶體儲存有屬於該讀取指令所指示之該邏輯位址的該第三資料時,則該記憶體管理電路從該第二緩衝記憶體中讀取該第三資料並將所讀取的該第三資料傳送至該主機系統以回應該讀取指令。
- 如申請專利範圍第8項所述之記憶體控制電路單元,其中該第一緩衝記憶體為一靜態隨機存取記憶體,該第二緩衝記憶體為一同步動態隨機存取記憶體並且該第二緩衝記憶體的一容量大於該第一緩衝記憶體的一容量。
- 一種資料寫入方法,用於一記憶體儲存裝置,其中該記憶體儲存裝置具有一第一緩衝記憶體、一第二緩衝記憶體及一可複寫式非揮發性記憶體模組,該第一緩衝記憶體的一傳輸頻寬大於該第二緩衝記憶體的一傳輸頻寬,該寫入方法包括:從一主機系統中接收一寫入指令與對應該寫入指令的一起始邏輯位址與一第一資料;判斷該第一資料是否為一連續大資料;倘若該第一資料為該連續大資料時,將該第一資料暫存至該第一緩衝記憶體的一第一資料暫存區,並且將該第一資料從該第一資料暫存區中寫入至該可複寫式非揮發性記憶體模組中;以及倘若該第一資料非為該連續大資料時,將該第一資料暫存至該第二緩衝記憶體的一第二資料暫存區中而不會暫存至該第一資料暫存區中。
- 如申請專利範圍第14項所述的資料寫入方法,其中上述判斷該第一資料是否為該連續大資料的步驟包括:判斷該起始邏輯位址是否為一資料存取單位的倍數並且該第一資料的大小是否為該資料存取單位的倍數;倘若該起始邏輯位址為該資料存取單位的倍數並且該第一資 料的大小為該資料存取單位的倍數時,識別該第一資料為該連續大資料;以及倘若該起始邏輯位址非為該資料存取單位的倍數或者該第一資料的大小非為該資料存取單位的倍數時,識別該第一資料非為該連續大資料。
- 如申請專利範圍第15項所述的資料寫入方法,更包括:倘若該第一資料非為該連續大資料時,從該可複寫式非揮發性記憶體模組的一第一實體程式化單元中將一第二資料讀取至該第二資料暫存區並且將該第一資料與該第二資料從該第二資料暫存區中寫入至該可複寫式非揮發性記憶體模組的一第二實體程式化單元。
- 如申請專利範圍第14項所述的資料寫入方法,更包括:在將該第一資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤;以及倘若發生該程式化錯誤時,則從該第二緩衝記憶體中讀取該第一資料,並根據該寫入指令將所讀取的該第一資料重新寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第14項所述的資料寫入方法,更包括:從該主機系統接收一讀取指令,判斷該第二緩衝記憶體是否儲存有屬於該讀取指令所指示之一邏輯位址的一第三資料;倘若該第二緩衝記憶體儲存有屬於該讀取指令所指示之該邏 輯位址的該第三資料時,從該第二緩衝記憶體中讀取該第三資料並將所讀取的該第三資料傳送至該主機系統以回應該讀取指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102130249A TWI498899B (zh) | 2013-08-23 | 2013-08-23 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US14/038,780 US9619380B2 (en) | 2013-08-23 | 2013-09-27 | Data writing method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102130249A TWI498899B (zh) | 2013-08-23 | 2013-08-23 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201508748A TW201508748A (zh) | 2015-03-01 |
TWI498899B true TWI498899B (zh) | 2015-09-01 |
Family
ID=52481432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102130249A TWI498899B (zh) | 2013-08-23 | 2013-08-23 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9619380B2 (zh) |
TW (1) | TWI498899B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI584122B (zh) * | 2015-11-17 | 2017-05-21 | 群聯電子股份有限公司 | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954796B (zh) * | 2014-03-28 | 2019-06-11 | 联咏科技股份有限公司 | 视频处理装置与其视频处理电路 |
TWI649759B (zh) | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
DE102017124805B4 (de) * | 2017-10-24 | 2019-05-29 | Infineon Technologies Ag | Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten |
KR102583787B1 (ko) * | 2018-11-13 | 2023-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
TWI777087B (zh) * | 2019-09-06 | 2022-09-11 | 群聯電子股份有限公司 | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN112527184A (zh) * | 2019-09-17 | 2021-03-19 | 群联电子股份有限公司 | 数据管理方法、存储器控制电路单元以及存储器存储装置 |
US11366618B2 (en) * | 2020-03-02 | 2022-06-21 | Silicon Motion, Inc. | All flash array server and control method thereof |
KR20230017006A (ko) * | 2021-07-27 | 2023-02-03 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 반도체 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006725A1 (en) * | 2006-12-15 | 2009-01-01 | Takafumi Ito | Memory device |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359569A (en) * | 1991-10-29 | 1994-10-25 | Hitachi Ltd. | Semiconductor memory |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US8250316B2 (en) * | 2006-06-06 | 2012-08-21 | Seagate Technology Llc | Write caching random data and sequential data simultaneously |
US9043572B2 (en) * | 2012-07-16 | 2015-05-26 | International Business Machines Corporation | Automatically preventing large block writes from starving small block writes in a storage device |
-
2013
- 2013-08-23 TW TW102130249A patent/TWI498899B/zh active
- 2013-09-27 US US14/038,780 patent/US9619380B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006725A1 (en) * | 2006-12-15 | 2009-01-01 | Takafumi Ito | Memory device |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI584122B (zh) * | 2015-11-17 | 2017-05-21 | 群聯電子股份有限公司 | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US20150058531A1 (en) | 2015-02-26 |
TW201508748A (zh) | 2015-03-01 |
US9619380B2 (en) | 2017-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
TWI494849B (zh) | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI498902B (zh) | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI660271B (zh) | 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201403319A (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US20150186058A1 (en) | Data storing method, memory control circuit unit and memory storage apparatus | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus |