TW201327185A - 記憶體儲存裝置及其記憶體控制器與資料寫入方法 - Google Patents
記憶體儲存裝置及其記憶體控制器與資料寫入方法 Download PDFInfo
- Publication number
- TW201327185A TW201327185A TW100147011A TW100147011A TW201327185A TW 201327185 A TW201327185 A TW 201327185A TW 100147011 A TW100147011 A TW 100147011A TW 100147011 A TW100147011 A TW 100147011A TW 201327185 A TW201327185 A TW 201327185A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- temporary storage
- data
- write
- write data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組、第二暫存記憶體以及具有第一暫存記憶體的記憶體控制器。記憶體控制器用以接收寫入指令與寫入資料,並將寫入資料暫存至第一暫存記憶體。記憶體控制器更將寫入資料複製到第二暫存記憶體中且根據寫入指令將寫入資料寫入至可複寫式非揮發性記憶體模組中。此外,記憶體控制器更用以判斷在執行此寫入指令時是否發生程式化錯誤,若發生程式化錯誤,則從第二暫存記憶體中讀取寫入資料,重新執行此寫入指令。藉此,記憶體儲存裝置的寫入速度可有效地被提升。
Description
本發明是有關於一種記憶體儲存裝置,且特別是有關於一種能夠有效地提升寫入速度的記憶體儲存裝置、記憶體控制器與資料寫入方法。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
若記憶體儲存裝置是以可複寫式揮發性記憶體作為儲存媒體,當有資料寫入至可複寫式揮發性記憶體時,可複寫式揮發性記憶體可能會發生程式化錯誤,使得資料並沒有成功地被寫入。因此,一個記憶體儲存裝置中通常會配置至少一個暫存記憶體。此暫存記憶體可以用來暫存欲寫入記憶體儲存裝置的資料。也就是說,每一筆欲寫入至記憶體儲存裝置的資料都需要先暫存至此暫存記憶體,並且之後再從從暫存記憶體中將欲寫入的資料寫入至可複寫式揮發性記憶體中。由於對於一筆寫入資料來說,都需要對暫存記憶體進行暫存與讀取兩個動作。因此,當暫存記憶體的傳輸頻寬不夠大時,相對於分配給寫入運作的頻寬就會相對較少。
此外,當資料被暫存至暫存記憶體後,記憶體儲存裝置的控制電路就會向主機傳送已完成指令的訊息,以便接收下一個指令與資料。當將資料寫入至可複寫式揮發性記憶體時,可能會發生程式化錯誤(program fail),使得資料並沒有成功地被寫入。因此,記憶體儲存裝置的控制電路會需要從暫存記憶體中將為成功寫入之資料再次寫入(亦稱為重寫)至可複寫式揮發性記憶體中。因此,在記憶體儲存裝置中所配置的暫存記憶體必須足夠大來暫存資料,以避免無法進行重寫。
基於上述,為了提升寫入速度,使用頻寬較大的暫存記憶體是需要的。然而,為了考量上述重寫的需求,必須使用大容量的暫存記憶體。對於頻寬較大的暫存記憶體來說,每記憶單位的成本較高。因此,如何能夠在降低製造成本下,又具有適當容量的暫存記憶體及具有適當的記憶體頻寬,為此領域技術人員所關心的議題。
本發明實施例提供一種記憶體儲存裝置及其記憶體控制器與資料寫入方法,其可有效地提升記憶體儲存裝置的寫入速度。
本發明一實施例提供一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組、記憶體控制器與第二暫存記憶體。連接器是用以耦接至主機系統。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組,並且具有第一暫存記憶體,其中第一暫存記憶體具有一寫入資料暫存區。第二暫存記憶體是耦接第一暫存記憶體,其中第二暫存記憶體的傳輸頻寬低於第一暫存記憶體的傳輸頻寬。記憶體控制器用以從主機系統中接收到對應寫入指令的寫入資料,並且將寫入資料暫存至寫入資料暫存區。記憶體控制器更用以從寫入資料暫存區中將寫入資料複製到第二暫存記憶體中,並且根據寫入指令從寫入資料暫存區中將寫入資料寫入至可複寫式非揮發性記憶體模組中。此外,記憶體控制器在將寫入資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤。若發生程式化錯誤時,則記憶體控制器更用以從第二暫存記憶體中讀取寫入資料,並根據寫入指令將寫入資料寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述記憶體控制器更用以從主機系統接收讀取指令,並判斷第二暫存記憶體是否儲存有對應讀取指令的讀取資料。若第二暫存記憶體儲存有對應讀取指令的讀取資料時,則記憶體控制器從第二暫存記憶體中讀取此讀取資料並將此讀取資料傳送至主機系統以回應上述讀取指令。
在本發明的一實施例中,上述第二暫存記憶體是配置在記憶體控制器中或者配置在記憶體控制器的外部。
在本發明的一實施例中,上述第一暫存記憶體為靜態隨機存取記憶體(static random access memory,SRAM)。
在本發明的一實施例中,上述第二暫存記憶體為同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)。
在本發明的一實施例中,上述第二暫存記憶體的容量大於第一暫存記憶體的容量。
在本發明的一實施例中,上述第二暫存記憶體的容量為第一暫存記憶體的容量的8倍。
在本發明的一實施例中,上述第二暫存記憶體的傳輸頻寬是應用於單一運作程序,而上述第一暫存記憶體的傳輸頻寬可同時分享於多個運作程序。
以另外一個角度來說,本發明一實施例提供一種資料寫入方法,用於一記憶體儲存裝置。此記憶體儲存裝置具有第二暫存記憶體、記憶體控制器以及可複寫式非揮發性記憶體模組,其中第一暫存記憶體配置在記憶體控制器中並且第一暫存記憶體的傳輸頻寬大於第二暫存記憶體的傳輸頻寬。本資料寫入方法包括從主機系統接收寫入指令與對應寫入指令的寫入資料並且將寫入資料暫存至第一暫存記憶體的寫入資料暫存區中。本資料寫入方法也包括從寫入資料暫存區中將寫入資料複製到第二暫存記憶體中,並且根據寫入指令從寫入資料暫存區中將寫入資料寫入至可複寫式非揮發性記憶體模組中。此寫入方法更包括:在將寫入資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤;以及,若發生程式化錯誤時,則從第二暫存記憶體中讀取寫入資料,並根據寫入指令將寫入資料寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述資料寫入方法還包括:從主機系統接收讀取指令;判斷第二暫存記憶體是否儲存有對讀取指令的讀取資料;以及若第二暫存記憶體儲存有對應讀取指令的讀取資料,則從第二暫存記憶體中讀取對應的讀取資料並將此讀取資料傳送至主機系統以回應讀取指令。
以另外一個角度來說,本發明一實施例提供一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組。記憶體控制器包括主機介面、記憶體介面、記憶體管理電路與第一暫存記憶體。主機介面是用以耦接至主機系統。記憶體介面是用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路是耦接至主機介面與記憶體介面。第一暫存記憶體是耦接至記憶體管理電路,並且具有一寫入資料暫存區。其中,記憶體管理電路用以從主機系統中接收到對應寫入指令的寫入資料,並且將寫入資料暫存至寫入資料暫存區。記憶體管理電路更用以從寫入資料暫存區中根據寫入指令將寫入資料寫入至可複寫式非揮發性記憶體模組中。記憶體管理電路更用以從寫入資料暫存區中將寫入資料複製到第二暫存記憶體中,其中第一暫存記憶體的傳輸頻寬高於第二暫存記憶體的傳輸頻寬。記憶體管理電路更用以在將寫入資料寫入至可複寫式非揮發性記憶體模組中之後判斷是否發生程式化錯誤。若發生程式化錯誤時,則記憶體管理電路更用以從第二暫存記憶體中讀取寫入資料,並根據寫入指令將寫入資料寫入至可複寫式非揮發性記憶體模組中。
在本發明的一實施例中,上述記憶體管理電路更用以從主機系統接收讀取指令,並判斷第二暫存記憶體是否儲存有對應讀取指令的讀取資料。若第二暫存記憶體儲存有對應讀取指令的讀取資料,則記憶體管理電路從第二暫存記憶體中讀取讀取資料並將讀取資料傳送至主機系統以回應讀取指令。
基於上述,本發明提出的記憶體儲存裝置、寫入方法與記憶體控制器,能夠將記憶體控制器中的第一暫存記憶體作為緩衝區,而第二暫存記憶體的傳輸頻寬全都作為寫入資料時的傳輸頻寬。因此,可以有效的使用第二暫存記憶體的傳輸頻寬,進而提升記憶體儲存裝置的寫入速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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與第二暫存記憶體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)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106包括多個實體區塊(未繪式)。在本範例實施例中,可複寫式非揮發性記憶體模組106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
第二暫存記憶體108是配置在記憶體控制器的外部且耦接至記憶體控制器108。第二暫存記憶體108用以暫存記憶體控制器104所執行的指令或資料。例如,第二暫存記憶體是用以備份接收自主機系統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)或其他的記憶體。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206與第一暫存記憶體208。
記憶體管理電路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標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
第一暫存記憶體208是耦接至記憶體管理電路202,用以暫存記憶體管理電路202所執行的指令或是資料。具體來說,第一暫存記憶體208包括寫入資料暫存區300,其用以暫存主機系統1000所寫入的資料。然而,必須瞭解的是,除了寫入資料暫存區300,第一暫存記憶體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位元/秒。
在本範例實施例中,為了增加記憶體儲存裝置100的寫入速度,是將傳輸頻寬較大的第一暫存記憶體208作為暫存寫入資料的區域,並將傳輸頻寬較小的第二暫存記憶體108作為備份寫入資料的區域。
圖4是根據一範例實施例所繪示之寫入資料的示意圖。
請參照圖4,當記憶體儲存裝置100從主機系統1000中接收到寫入指令及對應此寫入指令的寫入資料302時,記憶體管理電路202會將寫入資料302暫存至寫入資料暫存區300。由於第一暫存記憶體208的傳輸頻寬較大,因此可滿足主機系統1000的寫入需求。也就是說,記憶體管理電路202將寫入資料302暫存在寫入資料暫存區300的速度會不低於主機系統1000傳送寫入資料302至記憶體管理電路202的速度,由此可即時地從主機系統1000接收資料並且暫存至第一暫存記憶體208。
其中在此範例實施例中,第一暫存記憶體208之傳輸頻寬可同時被至少兩種運作程序來分享,此運作程序例如為寫入或讀取程序。例如,當一資料被寫入至第一暫存記憶體208的同時,其他資料可從第一暫存記憶體208中被讀取出並被傳輸至可複寫式非揮發性記憶體模組106。例如,當一資料被寫入至第一暫存記憶體208的同時,其他資料也可從第一暫存記憶體208中被讀取出並且被傳送至第二暫存記憶體108。
接著,記憶體管理電路202從寫入資料暫存區300中讀取寫入資料302,並根據上述寫入指令將寫入資料302寫入至可複寫式非揮發性記憶體模組106中。
另一方面,記憶體管理電路202也會從寫入資料暫存區300中讀取寫入資料302,並將寫入資料302複製到第二暫存記憶體108中。值得注意的是,在本範例實施例中,此時第二暫存記憶體108的傳輸頻寬可全部都被用來傳輸寫入資料302。也就是說,對於一份寫入資料302,記憶體管理電路202可只需要對第二暫存記憶體108做寫入的動作,而不做讀取的動作。另一方面,記憶體管理電路202也可以在將寫入資料302寫入至可複寫式非揮發性記憶體模組106的同時,將寫入資料302複製到第二暫存記憶體108中。
基此,寫入資料302便被備份在第二暫存記憶體108中,並且記憶體控制器104就可再從主機系統1000下一個寫入指令並且將新的寫入資料暫存至第一暫存記憶體208。特別是,寫入資料302已被備份至第二暫存記憶體108中,因此,在第一暫存記憶體208中,既使原先儲存寫入資料302的位址被用來暫存新的寫入資料,亦不會影響記憶體儲存裝置100的運作。
具體來說,記憶體管理電路202會在將寫入資料302寫入至可複寫式非揮發性記憶體模組106中之後,判斷是否發生程式化錯誤。若發生程式化錯誤時,記憶體管理電路202會從第二暫存記憶體108中讀取寫入資料302,並根據寫入指令將寫入資料302重新寫入至可複寫式非揮發性記憶體模組106中。也就是說,當發生程式化錯誤而未成功地將寫入資料302寫入至可複寫式非揮發性記憶體模組106時,既使在第一暫存記憶體208中寫入資料302已被覆寫成新的寫入資料,記憶體管理電路202仍可將寫入資料302從第二暫存記憶體108中重新寫入至可複寫式非揮發性記憶體模組106中。基此,記憶體儲存裝置100能夠在利用頻寬較大之第一暫存記憶體208來提升寫入速度的同時,確保寫入資料302能成功的寫入至可複寫式非揮發性記憶體模組106。在本範例實施例中,當記憶體管理電路202從第二暫存記憶體108中讀取寫入資料302時,第二暫存記憶體108的傳輸頻寬可全部都被用來傳輸寫入資料302。也就是說,在此範例實施例中,第二暫存記憶體108的傳輸頻寬可全部用來執行一個單一運作程序,此單一運作程序例如為寫入或讀取程序。例如,第二暫存記憶體108的傳輸頻寬全部被用來將資料寫入至第二暫存記憶體108。或者,第二暫存記憶體的傳輸頻寬全部被用來將資料從第二暫存記憶體108讀取出。
除此之外,在本範例實施例中,記憶體管理電路202更用以從該主機系統1000接收讀取指令。特別是,在接收到此讀取指令以後,記憶體管理電路202會判斷第二暫存記憶體108是否儲存有對應此讀取指令的讀取資料。若第二暫存記憶體108儲存有對應此讀取指令的讀取資料,則記憶體管理電路202會從第二暫存記憶體108中讀取所對應的讀取資料並將此讀取資料傳送至該主機系統1000以回應記憶體管理電路202所接收到的讀取指令。舉例來說,主機系統1000是先將寫入資料302寫入至記憶體儲存裝置100,在一段時間以後,再從記憶體儲存裝置100讀取寫入資料302。由於記憶體管理電路在將寫入資料302寫入至可複寫式非揮發性記憶體模組106時,會備份寫入資料302至第二暫存記憶體108中,因此,主機系統1000要從記憶體儲存裝置100讀取寫入資料302時,寫入資料302可能還存在第二暫存記憶體108與可複寫式非揮發性記憶體模組106中。因此,若對應讀取指令的資料還儲存在第二暫存記憶體108時,直接從第二暫存記憶體108中將對應的資料傳送給主機系統1000,可有效地提升讀取的速度。
在本範例實施例中,第一暫存記憶體208的容量小於第二暫存記憶體108的容量。例如,第二暫存記憶體108的容量為第一暫存記憶體208的容量的8倍,在此倍率(即,8倍)之下,第二暫存記憶體108與第一暫存記憶體208可以有較好的使用效率。詳細來說,在第二暫存記憶體108的容量小於第一暫存記憶體208的容量的8倍的例子中,當寫入資料暫存區300存滿寫入資料,並且記憶體管理電路202要將寫入資料暫存區300中的寫入資料備份至第二暫存記憶體108時,第二暫存記憶體108可能會不具有足夠的空間來備份這些寫入資料。另一方面,若第二暫存記憶體108的容量大於第一暫存記憶體208的容量的8倍時,雖然不會有上述第二暫存記憶體108空間不夠的問題,但第二暫存記憶體108可能會有太多閒置的記憶體空間或者是所備份的資料太舊,主機系統1000並不常讀取這麼舊的資料,以致於第二暫存記憶體108的使用效率降低。因此,當第二暫存記憶體108的容量為第一暫存記憶體208的容量的8倍時,可以有較佳的記憶體使用效率,但值得說明的是,此比例關係系為一經驗值,其亦可依實際之需求,而改變為4倍、10倍為其他比例。
圖5是根據一範例實施例所繪示之資料寫入方法的流程圖。
請參照圖5,在步驟S502中,記憶體控制器104的記憶體管理電路202會從主機系統接收寫入指令與對應此寫入指令的寫入資料。接著,在步驟S504中,記憶體管理電路202會將寫入資料暫存至第一暫存記憶體的寫入資料暫存區中。
之後,在步驟S506中,記憶體管理電路202會根據寫入指令從寫入資料暫存區中將寫入資料寫入至可複寫式非揮發性記憶體模組中,並且從寫入資料暫存區中將寫入資料複製到第二暫存記憶體中。
然後,在步驟S508中,記憶體管理電路202會在將寫入資料寫入至可複寫式非揮發性記憶體模組中之後,判斷是否發生程式化錯誤。並且,若發生程式化錯誤,則在步驟S510中,記憶體管理電路202會從第二暫存記憶體中讀取寫入資料,並根據寫入指令將寫入資料重新寫入至可複寫式非揮發性記憶體模組中。
然而,上述資料寫入方法的各步驟可以有其他順序,本發明並不限制圖5各步驟的順序。
值得一提的是,儘管在本發明範例實施例中,第二暫存記憶體108是配置在記憶體控制器104的外部。然而,本發明不限於此,在本發明另一範例實施例中,第二暫存記憶體108亦可配置在記憶體控制器104的內部。
綜上所述,本發明實施例所提出的記憶體儲存裝置、記憶體控制器與寫入方法,可以更有效率的使用記憶體儲存裝置中一暫存記憶體的傳輸頻寬。也就是說,在寫入資料時,用來備份寫入資料的暫存記憶體的傳輸頻寬全都被用來傳輸寫入資料。據此,可以增加記憶體儲存裝置的寫入速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...第二暫存記憶體
202...記憶體管理電路
204...主機介面
206...記憶體介面
208...第一暫存記憶體
300...寫入資料暫存區
302...寫入資料
S502、S504、S506、S508、S510...資料寫入方法的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例所繪示的記憶體儲存裝置的方塊圖。
圖5是一實施例所繪示之資料寫入方法的流程圖。
S502、S504、S506、S508、S510...資料寫入方法的步驟
Claims (17)
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器包括一第一暫存記憶體,且該第一暫存記憶體包括一寫入資料暫存區;以及一第二暫存記憶體,耦接該第一暫存記憶體,其中該第二暫存記憶體的一傳輸頻寬低於該第一暫存記憶體的一傳輸頻寬,其中該記憶體控制器用以從該主機系統中接收到對應至少一寫入指令的至少一寫入資料,並且將該至少一寫入資料暫存至該寫入資料暫存區,其中該記憶體控制器更用以從該寫入資料暫存區中根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中,其中該記憶體控制器更用以從該寫入資料暫存區中將該至少一寫入資料複製到該第二暫存記憶體中,其中該記憶體控制器更用以在將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤,其中若發生該程式化錯誤時,則該記憶體控制器更用以從該第二暫存記憶體中讀取該至少一寫入資料,並根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該記憶體控制器更用以從該主機系統接收至少一讀取指令,其中該記憶體控制器更用以判斷該第二暫存記憶體是否儲存有對應該至少一讀取指令的至少一讀取資料,其中若該第二暫存記憶體儲存有對應該至少一讀取指令的該至少一讀取資料時,則該記憶體控制器從該第二暫存記憶體中讀取該至少一讀取資料並將該至少一讀取資料傳送至該主機系統以回應該至少一讀取指令。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第二暫存記憶體是配置在該記憶體控制器中或者配置在該記憶體控制器的外部。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第一暫存記憶體為一靜態隨機存取記憶體(static random access memory,SRAM)。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第二暫存記憶體為一同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第二暫存記憶體的一容量大於該第一暫存記憶體的一容量。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中該第二暫存記憶體的容量為該第一暫存記憶體的容量的8倍。
- 如申請專利範圍第1項所述之記憶體儲存裝置,其中該第二暫存記憶體的該傳輸頻寬是應用於一單一運作程序,其中該第一暫存記憶體的該傳輸頻寬可同時分享於多個運作程序。
- 一種資料寫入方法,用於一記憶體儲存裝置,其中該記憶體儲存裝置具有一第二暫存記憶體、一記憶體控制器以及一可複寫式非揮發性記憶體模組,一第一暫存記憶體在該記憶體控制器中並且該第一暫存記憶體的一傳輸頻寬大於該第二暫存記憶體的一傳輸頻寬,該寫入方法包括:從一主機系統接收至少一寫入指令與對應該至少一寫入指令的至少一寫入資料;將該至少一寫入資料暫存至該第一暫存記憶體的一寫入資料暫存區中;從該寫入資料暫存區中根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中;從該寫入資料暫存區中將該至少一寫入資料複製到該第二暫存記憶體中;在將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤;以及若發生該程式化錯誤時,則從該第二暫存記憶體中讀取該至少一寫入資料,並根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第9項所述之資料寫入方法,還包括:從該主機系統接收至少一讀取指令;判斷該第二暫存記憶體是否儲存有對該至少一讀取指令的至少一讀取資料;以及若該第二暫存記憶體儲存有對該至少一讀取指令的至少一讀取資料,則從該第二暫存記憶體中讀取該至少一讀取資料並將該至少一讀取資料傳送至該主機系統以回應該至少一讀取指令。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面、該記憶體介面;以及一第一暫存記憶體,耦接至該記憶體管理電路,並且具有一寫入資料暫存區;其中該記憶體管理電路用以從該主機系統中接收到對應至少一寫入指令的至少一寫入資料,並且將該至少一寫入資料暫存至該寫入資料暫存區,其中該記憶體管理電路更用以從該寫入資料暫存區中根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中,其中該記憶體管理電路更用以從該寫入資料暫存區中將該至少一寫入資料複製到一第二暫存記憶體中,其中該第一暫存記憶體的一傳輸頻寬高於該第二暫存記憶體的一傳輸頻寬,其中該記憶體管理電路更用以在將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中之後判斷是否發生一程式化錯誤,其中若發生該程式化錯誤時,則該記憶體管理電路更用以從該第二暫存記憶體中讀取該至少一寫入資料,並根據該至少一寫入指令將該至少一寫入資料寫入至該可複寫式非揮發性記憶體模組中。
- 如申請專利範圍第11項所述之記憶體控制器,其中該記憶體管理電路更用以從該主機系統接收至少一讀取指令,其中該記憶體管理電路更用以判斷該第二暫存記憶體是否儲存有對應該至少一讀取指令的至少一讀取資料,其中若該第二暫存記憶體儲存有對應該至少一讀取指令的該至少一讀取資料時,則該記憶體管理電路從該第二暫存記憶體中讀取該至少一讀取資料並將該至少一讀取資料傳送至該主機系統以回應該至少一讀取指令。
- 如申請專利範圍第11項所述之記憶體控制器,其中該第二暫存記憶體是配置在該記憶體控制器中或者配置在該記憶體控制器的外部。
- 如申請專利範圍第11項所述之記憶體儲存裝置,其中該第一暫存記憶體為一靜態隨機存取記憶體(static random access memory,SRAM)。
- 如申請專利範圍第11項所述之記憶體控制器,其中該第二暫存記憶體為一同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)。
- 如申請專利範圍第11項所述之記憶體控制器,其中該第二暫存記憶體的一容量大於該第一暫存記憶體的一容量。
- 如申請專利範圍第16項所述之記憶體控制器,其中該第二暫存記憶體的容量為該第一暫存記憶體的容量的8倍。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100147011A TWI454922B (zh) | 2011-12-19 | 2011-12-19 | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 |
US13/412,640 US20130159604A1 (en) | 2011-12-19 | 2012-03-06 | Memory storage device and memory controller and data writing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100147011A TWI454922B (zh) | 2011-12-19 | 2011-12-19 | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201327185A true TW201327185A (zh) | 2013-07-01 |
TWI454922B TWI454922B (zh) | 2014-10-01 |
Family
ID=48611409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100147011A TWI454922B (zh) | 2011-12-19 | 2011-12-19 | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130159604A1 (zh) |
TW (1) | TWI454922B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699413A (zh) * | 2013-12-09 | 2015-06-10 | 群联电子股份有限公司 | 数据管理方法、存储器存储装置及存储器控制电路单元 |
TWI501142B (zh) * | 2013-08-04 | 2015-09-21 | Transcend Information Inc | 儲存裝置及其記憶體存取方法 |
TWI747191B (zh) * | 2020-03-09 | 2021-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101342658B1 (ko) * | 2011-12-06 | 2013-12-16 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 및 그 구성 방법 |
CN110177279B (zh) * | 2014-03-28 | 2021-10-08 | 联咏科技股份有限公司 | 视频处理装置与其视频处理电路 |
KR102312399B1 (ko) * | 2015-09-07 | 2021-10-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN114415937B (zh) * | 2021-12-06 | 2024-06-21 | 北京航空航天大学 | 一种非易失存储的存储控制器及控制方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359723A (en) * | 1991-12-16 | 1994-10-25 | Intel Corporation | Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only |
US20050091432A1 (en) * | 2003-10-28 | 2005-04-28 | Palmchip Corporation | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs |
US7380062B2 (en) * | 2005-02-11 | 2008-05-27 | International Business Machines Corporation | Mechanism in a multi-threaded microprocessor to maintain best case demand instruction redispatch |
US7373462B2 (en) * | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
US8335894B1 (en) * | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US20070050561A1 (en) * | 2005-08-23 | 2007-03-01 | Advanced Micro Devices, Inc. | Method for creating critical section code using a software wrapper for proactive synchronization within a computer system |
US7639531B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Dynamic cell bit resolution |
US8046527B2 (en) * | 2007-02-22 | 2011-10-25 | Mosaid Technologies Incorporated | Apparatus and method for using a page buffer of a memory device as a temporary cache |
US7774540B2 (en) * | 2007-12-26 | 2010-08-10 | Hitachi Global Storage Technologies Netherlands B.V. | Storage system and method for opportunistic write-verify |
US20090193189A1 (en) * | 2008-01-30 | 2009-07-30 | Formation, Inc. | Block-based Storage System Having Recovery Memory to Prevent Loss of Data from Volatile Write Cache |
TWI397821B (zh) * | 2009-01-19 | 2013-06-01 | Phison Electronics Corp | 資料串傳送方法、系統及其控制器 |
JP2011198133A (ja) * | 2010-03-19 | 2011-10-06 | Toshiba Corp | メモリシステムおよびコントローラ |
US8880778B2 (en) * | 2010-05-13 | 2014-11-04 | Micron Technology, Inc. | Memory buffer having accessible information after a program-fail |
JP2012186787A (ja) * | 2010-12-06 | 2012-09-27 | Panasonic Corp | 記録媒体アダプタ、情報記録装置、および情報記録システム |
-
2011
- 2011-12-19 TW TW100147011A patent/TWI454922B/zh active
-
2012
- 2012-03-06 US US13/412,640 patent/US20130159604A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI501142B (zh) * | 2013-08-04 | 2015-09-21 | Transcend Information Inc | 儲存裝置及其記憶體存取方法 |
CN104699413A (zh) * | 2013-12-09 | 2015-06-10 | 群联电子股份有限公司 | 数据管理方法、存储器存储装置及存储器控制电路单元 |
TWI747191B (zh) * | 2020-03-09 | 2021-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US11662940B2 (en) | 2020-03-09 | 2023-05-30 | Silicon Motion, Inc. | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short |
Also Published As
Publication number | Publication date |
---|---|
US20130159604A1 (en) | 2013-06-20 |
TWI454922B (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI494849B (zh) | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 | |
TWI454922B (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201839613A (zh) | 數據儲存裝置及其操作方法 | |
US9436267B2 (en) | Data storage device | |
US20110231732A1 (en) | Error correcting method, and memory controller and memory storage system using the same | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8423838B2 (en) | Block management method, memory controller, and memory storage apparatus | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN103186470B (zh) | 存储器储存装置及其存储器控制器与数据写入方法 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI622044B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |