TWI793932B - 固態儲存裝置及其相關的寫入控制方法 - Google Patents
固態儲存裝置及其相關的寫入控制方法 Download PDFInfo
- Publication number
- TWI793932B TWI793932B TW110147917A TW110147917A TWI793932B TW I793932 B TWI793932 B TW I793932B TW 110147917 A TW110147917 A TW 110147917A TW 110147917 A TW110147917 A TW 110147917A TW I793932 B TWI793932 B TW I793932B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- area
- data
- writing
- control circuit
- Prior art date
Links
- 239000007787 solid Substances 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims description 37
- 239000000872 buffer Substances 0.000 claims description 39
- 239000010410 layer Substances 0.000 claims description 7
- 239000002356 single layer Substances 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000003139 buffering effect Effects 0.000 abstract description 2
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Abstract
本發明為一種固態儲存裝置,包括:一控制電路、一揮發性記憶體與一非揮發性記憶體。該非揮發性記憶體被區分為一第一區域與一第二區域。當該主機發出的一寫入命令與一寫入資料後,該控制電路監測連續儲存至該非揮發性記憶體的一資料量。當連續儲存的該資料量到達一預設量之前,以一第一種寫入模式將該寫入資料儲存至該第一區域中的複數個緩衝區塊。當連續儲存的該資料量到達該預設量之後,以一第二種寫入模式將該寫入資料儲存至該第二區域中的複數個儲存區塊。
Description
本發明是有關於一種儲存裝置的控制方法,且特別是有關於一種固態儲存裝置及其相關的寫入控制方法。
眾所周知,固態儲存裝置(Solid State Storage Device)使用非揮發性記憶體(non-volatile memory)為主要儲存元件。也就是說,當資料寫入非揮發性記憶體後,一旦系統電源關閉(power off),資料仍可保存在非揮發性記憶體中。
請參照第1圖,其所繪示為習知固態儲存裝置。固態儲存裝置100中包括一控制電路110、揮發性記憶體130與一非揮發性記憶體120,控制電路110連接至揮發性記憶體130與非揮發性記憶體120。其中,揮發性記憶體130可為DRAM或SRAM。亦即,當系統電源關閉(power off)時,揮發性記憶體130所儲存之內容皆會消失。
在固態儲存裝置100外部,控制電路110通過一外部匯流排20與主機(host)12之間進行指令與資料的傳遞。其中,外部匯流排20可為USB匯流排、SATA匯流、M.2匯流排或PCIe匯流排等等。再者,揮發性記憶體130也可以直接設計在控制電路110中。
當主機12欲將寫入資料儲存至固態儲存裝置100時,主機12發出寫入指令(write command)至固態儲存裝置100的控制電路110。接著,控制電路110接收主機12發出的寫入資料,並將寫入資料暫時儲存於揮發性記憶體130。之後,控制電路110將揮發性記憶體130中的寫入資料儲存至非揮發性記憶體120。
另外,非揮發性記憶體120中包括多個區塊,每個區塊中包括多個頁(page)。舉例來說,非揮發性記憶體120中有1024個區塊,而每個區塊中有64頁,每個頁的容量為16Kbytes。亦即,每個區塊的容量為1Mbytes。當然,非揮發性記憶體120不限定於僅有1024個區塊,而非揮發性記憶體120製造商可以決定每個區塊中的頁數以及每頁的容量。也就是說,每個區塊並不限定於只有64頁,每個頁也不限定於只有16Kbytes的容量。
再者,由於非揮發性記憶體120的特性,控制電路110是以頁為基本單位來儲存寫入資料,且控制電路110則是以區塊為單位進行區塊抹除動作。
舉例來說,以每個頁的容量為16Kbytes為例,將揮發性記憶體130中的寫入資料儲存至揮發性記憶體120時,寫入資料會被區分為多個16Kbytes(亦即,一頁的容量),並分別寫入非揮發性記憶體120內的開啟區塊(open block)的多個頁。當開啟區塊的每一頁皆儲存寫入資料後,控制電路110會將此開啟區塊設定為關閉區塊(closed block)。之後,控制電路110會在非揮發性記憶體120中另外選擇一空白區塊(blank block)作為開啟區塊,並繼續以頁為單位儲存寫入資料。其中,空白區塊即為可使用區塊,供控制電路110選擇使用。
當非揮發性記憶體120中的總儲存量到達一臨限量時,控制電路110會進行垃圾蒐集動作(garbage collection)。由於非揮發性記憶體120在寫入的過程中會產生許多無效頁(invalid page),分佈在多個區塊中。也就是說,多個區塊中會同時有無效頁以及有效頁(valid page),無效頁中儲存無效的寫入資料,有效頁中儲存有效的寫入資料。於進行垃圾蒐集動作時,控制電路110會將關閉區塊內有效頁(valid page)的寫入資料複製到其他空白區塊。當關閉區塊中有效頁內的寫入資料複製完成之後,該關閉區塊會被抹除而成為新的空白區塊並再次利用。
基本上,在進行垃圾蒐集動作時,控制電路110會耗費大量的時間搜尋關閉區塊以及複製寫入資料。如果控制電路110正在進行垃圾蒐集動作,又接收到主機12的寫入指令或者讀取指令時,固態儲存裝置100的效能(performance)會大幅下降。
另外,非揮發性記憶體120依據記憶胞(cell)可儲存的位元(bit)數的設計,可分為單層記憶胞(single-level cell,簡稱SLC)型非揮發性記憶體以及多層記憶胞(multi-level cell,簡稱MLC)型非揮發性記憶體。SLC型非揮發性記憶體的一個記憶胞僅可儲存1位元的資料,而MLC型非揮發性記憶體的一個記憶胞則可儲存多位元的資料。雖然,MLC型非揮發性記憶體可儲存的資料量較多,但SLC型非揮發性記憶體的存取速度較快。
由於MLC型非揮發性記憶體的價格較便宜,所以現今市面上所販售的固態儲存裝置100中的非揮發性記憶體120幾乎都是MLC型非揮發性記憶體。然而,由MLC型非揮發性記憶體120組成的固態儲存裝置100,其存取速度較慢,使固態儲存裝置100的效能降低。
因此,如何保留MLC型非揮發性記憶體的高儲存資料量的優點,並克服因存取速度較慢而使效能降低的問題,是目前欲解決的問題之一。
本發明的目的在於設計固態儲存裝置,並提供對應的寫入控制方法,使得固態儲存裝置具有較佳寫入效能。
本發明係有關於一種固態儲存裝置,連接至一主機,該固態儲存裝置包括:一控制電路,連接至該主機;一揮非發性記憶體,連接至該控制電路;一非揮發性記憶體,連接至該控制電路,其中該非揮發性記憶體被區分為一第一區域與一第二區域;其中,當該主機發出的一寫入命令與一寫入資料後,該控制電路監測連續儲存至該非揮發性記憶體的一資料量;其中,當連續儲存的該資料量到達一預設量之前,以一第一種寫入模式將該寫入資料儲存至該第一區域中的複數個緩衝區塊;以及,當連續儲存的該資料量到達該預設量之後,以一第二種寫入模式將該寫入資料儲存至該第二區域中的複數個儲存區塊;其中,該第一種寫入模式的寫入速度高於該第二種寫入模式的寫入速度;其中,該第一區域中的總儲存量到達一臨限量時,對該第一區域進行一垃圾蒐集動作,其中,該預設量小於該臨限量。
本發明係有關於一種固態儲存裝置的寫入控制方法。該固態儲存裝置包括一非揮發性記憶體以及一揮發性記憶體,該非揮發性記憶體被區分為一第一區域與一第二區域。該寫入控制方法包括下列步驟:(a)於未接收到一主機的指令時,處於一待機狀態;(b)於接收到該主機的一寫入主機時,將該主機提供的一寫入資料暫存在該揮發性記憶體;以及,(c)將該揮發性記憶體中的該寫入資料儲存至該非揮發性記憶體,並回到該步驟(a);其中,該步驟(c)更包括下列步驟:(c1)監測連續儲存至該非揮發性記憶體的一資料量;(c2)當連續儲存的該資料量到達一預設量之前,以一第一種寫入模式將該寫入資料儲存至該非揮發性記憶體中該第一區域內的複數個緩衝區塊;以及,(c3)當連續儲存的該資料量到達該預設量之後,以一第二種寫入模式將該寫入資料儲存至該非揮發性記憶體中該第二區域內的複數個儲存區塊;其中,該第一種寫入模式的寫入速度高於該第二種寫入模式的寫入速度。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
本發明提出一種固態儲存裝置及其相關的寫入控制方法,本發明利用單層記憶胞(single-level cell,簡稱SLC)的寫入模式來將寫入資料儲存於多層記憶胞(multi-level cell,簡稱MLC)型非揮發性記憶體,用以大幅提高固態儲存裝置的寫入效能(write performance)。本發明提及的多層記憶胞(multi-level cell,簡稱MLC)僅表示一個記憶胞可儲存多位元的資料,並未限制一個記憶胞可儲存的位元數。隨著非揮發性記憶體的技術發展,一個記憶胞可儲存2位元、3位元、甚至4位元以上的資料。
請參照第2A圖,其所繪示為本發明的固態儲存裝置。固態儲存裝置200中包括一控制電路210、揮發性記憶體230與一多層記憶胞(MLC)型非揮發性記憶體220,控制電路210連接至揮發性記憶體230與MLC型非揮發性記憶體220。其中,揮發性記憶體230可為DRAM或SRAM。亦即,當系統電源關閉(power off)時,揮發性記憶體230所儲存之內容皆會消失。
在固態儲存裝置200外部,控制電路210通過一外部匯流排20與主機(host)12之間進行指令與資料的傳遞。其中,外部匯流排20可為USB匯流排、SATA匯流、M.2匯流排或PCIe匯流排等等。再者,揮發性記憶體230也可以直接設計在控制電路210中。
根據本發明的實施例,MLC型非揮發性記憶體220中被區分為第一區域(first area)222與第二區域224。第一區域222中包括多個緩衝區塊(buffering block),第二區域中包括多個儲存區塊(storing block)。再者,控制電路210將第一區域222中的緩衝區塊視為單層記憶胞區塊,簡稱SLC區塊,並以單層記憶胞(SLC)寫入模式將寫入資料寫入第一區域222中的緩衝區塊。控制電路210將第二區域224中的儲存區塊視為多層記憶胞區塊,簡稱MLC區塊,並以多層記憶胞(MLC)寫入模式將寫入資料寫入第二區域224中的儲存區塊。
請參照第2B圖,其所繪示為運用於本發明固態儲存裝置的寫入控制方法第一實施例。基本上,於電源開啟後,固態儲存裝置200開始運作。於電源關閉後,固態儲存裝置200停止運作。
固態儲存裝置200運作時,控制電路210判斷是否收到主機12發出的指令(步驟S250)。當控制電路210未接收到主機12的指令時,固態儲存裝置200處於待機狀態(步驟S260),直到控制電路210收到主機12的指令為止。
再者,當控制電路210接收到主機12的指令不是寫入指令時,則控制電路210執行主機12的指令(步驟S258)後,回到步驟S260。舉例來說,當控制電路210接收到讀取指令時,則控制電路210由MLC型非揮發性記憶體220中取得讀取資料,並回傳至主機12。
根據本發明的實施例,當主機12發出寫入指令時,則控制電路210將主機12的寫入資料暫存在揮發性記憶體230(步驟S254)。接著,控制電路210將揮發性記憶體230中的寫入資料以SLC寫入模式儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。之後,回到步驟260。
由以上的說明可知,本發明固態儲存裝置200包括MLC型非揮發性記憶體220。在本發明的第一實施例中,由於控制電路210是以SLC寫入模式將寫入資料儲存於MLC型非揮發性記憶體220中的第一區域222,因此控制電路210執行寫入指令時可以大幅提高固態儲存裝置200的寫入效能。
再者,由於寫入資料以SLC寫入模式儲存於第一區域222內的緩衝區塊,將使得緩衝區塊的儲存空間降低。因此,如第2B圖所示,本發明在固態儲存裝置200處於待機狀態時,更利用控制電路210判斷第一區域222的總儲存量是否到達一臨限量(步驟S262)。
當第一區域222的總儲存量尚未到達該臨限量時,代表緩衝區塊的數目足夠,固態儲存裝置200繼續處於待機狀態。
反之,當第一區域222的總儲存量到達該臨限量時,代表緩衝區塊的數目不足,控制電路210對第一區域222進行垃圾蒐集動作。根據本發明的實施例,於進行垃圾蒐集動作時,控制電路210以MLC寫入模式將第一區域222內緩衝區塊中的有效資料儲存至第二區域224內的儲存區塊(步驟S264)。接著,抹除第一區域222內的緩衝區塊(步驟S264)。之後,回到步驟S262,讓固態儲存裝置200繼續處於待機狀態。也就是說,於垃圾蒐集動作之後,第一區域222內會有更多可使用的緩衝區塊。當主機12再次發出寫入指令時,控制電路210仍可以較佳的寫入效能來執行寫入命令,並以SLC寫入模式將寫入資料儲存於第一區域222的緩衝區塊。
由以上的說明可知,在本發明的第一實施例中,控制電路210在執行寫入指令時是利用第一種寫入模式,將寫入資料儲存至MLC型非揮發性記憶體220中的第一區域222。而在對第一區域222執行垃圾蒐集動作時,控制電路210是利用第二種寫入模式,將第一區域222中的有效資料儲存至MLC型非揮發性記憶體220中的第二區域222。其中,第一種寫入模式為SLC寫入模式,第二種寫入模式為MLC寫入模式。換句話說,第一種寫入模式的寫入速度(write speed)高於第二種寫入模式的寫入速度。
請參照第3A圖至第3D圖,其所繪示為本發明第一實施例寫入控制方法運用於MLC型非揮發性記憶體的示意圖。
如第3A圖所示,當控制電路210接收到主機12的寫入指令時,控制電路210以SLC寫入模式將寫入資料270儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。再者,由於第一區域222的總儲存量未到達虛線所示的臨限量S
TH,亦即可使用的緩衝區塊數目還剩下很多。固態儲存裝置200於待機狀態時,控制電路210不會對第一區域222進行垃圾蒐集動作。
如第3B圖所示,控制電路210將寫入資料270儲存於MLC型非揮發性記憶體220中第一區域222內的緩衝區塊,並且第一區域222的總儲存量已到達臨限量S
TH,亦即可使用的緩衝區塊數目剩下很少。
如第3C圖所示,當固態儲存裝置200於待機狀態時,控制電路210對第一區域222進行垃圾蒐集動作。此時,控制電路210以MLC寫入模式將第一區域222內緩衝區塊中的有效資料儲存至第二區域224內的儲存區塊。由於一個儲存區塊的資料儲存量為一個緩衝區塊的多倍,所以控制電路210可使用較少數目的儲存區塊來儲存有效資料272。舉例來說,對第一區域222進行垃圾蒐集動作時,控制電路210將第一區域222中M個緩衝區塊中的有效資料寫入第二區域224中N個儲存區塊。其中,N小於等於M/x,其中,x大於1,且x取決於第二區域224中每個記憶胞(cell)可儲存的位元(bit)數。舉例來說,假設第二區域224中每個記憶胞(cell)可儲存3位元(bit),則x等於3。
最後,如第3D圖所示,控制電路210抹除第一區域222內的緩衝區塊儲存的寫入資料270,使得第一區域222內可使用的緩衝區塊的數量增加。
由以上的說明可知,本發明將固態儲存裝置200中的MLC型非揮發性記憶體230區分為第一區域222與第二區域224。利用SLC寫入模式將寫入資料儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。之後,於待機狀態時,再對第一區域222進行垃圾蒐集動作,將第一區域222中緩衝區塊內的有效資料以MLC寫入模式儲存至第二區域224內的儲存區塊。因此,固態儲存裝置200執行寫入指令時可以大幅提高固態儲存裝置200的寫入效能。
然而,在第一實施例中,是於MLC型非揮發性記憶體220設定固定大小的第一區域222,並以SLC寫入模式儲存寫入資料。如此的設計方式,將使得MLC型非揮發性記憶體220的實際資料儲存量下降。舉例來說,一個256GByte的MLC型非揮發性記憶體220包括2048個區塊,每個區塊利用MLC寫入模式,以每個記憶胞儲存3位元為例,可以儲存128Mbyte的資料。亦即,MLC型非揮發性記憶體220的共可儲存256GByte(2048×128Mbyte)的資料。
根據上述的例子,如果將2048區塊中一定比例的區塊數目(例如1500個區塊)作為緩衝區塊,其他區塊(例如548個區塊)作為儲存區塊。則每個儲存區塊能儲存128Mbyte的資料,而每個緩衝區塊僅能儲存(128/3)Mbyte的資料。此時,MLC型非揮發性記憶體220的實際資料儲存量將下降至約128GByte(1/3×1500×128Mbyte+548×128Mbyte)。亦即,第一區域222可以儲存約64GMbyte的資料,第二區域224可以儲存約64GMbyte的資料。也就是說,將使得MLC型非揮發性記憶體220實際的資料儲存量變為原來的一半。
另外,於主機12提供大量的連續寫入資料時,利用第一實施例的寫入控制方法會造成固態儲存裝置200的寫入效能降低。舉例來說,假設使用者欲將儲存100GByte的影片儲存至固態儲存裝置 200,則主機12發出寫入命令後,即提供100GByte的寫入資料至固態儲存裝置200。
由於固態儲存裝置200無法預先得知主機12將傳遞的寫入資料量,所以控制電路210以SLC寫入模式將寫入資料儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。在初始的時候,固態儲存裝置200的寫入效能很高。但是,當連續儲存的寫入資料量接近64GByte(亦即,接近第一區域222的資料儲存上限)時,第一區域222中已經沒有空白的緩衝區塊可以繼續儲存寫入資料。此時,控制電路210必須暫停寫入動作,並立刻對第一區域222進行垃圾蒐集動作。於垃圾蒐集動作後,第一區域222中產生新的空白緩衝區塊時,控制電路210才可以繼續以SLC寫入模式將儲存資料儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。由於垃圾蒐集動作非常耗時,將使固態儲存裝置200的寫入效能急遽下降。
請參照第4圖,其所繪示為運用於本發明固態儲存裝置的寫入控制方法第二實施例。基本上,第二實施例的寫入控制方法也是運用於第2A圖之固態儲存裝置200。
於固態儲存裝置200運作時,控制電路210判斷是否收到主機12發出的指令(步驟S250)。當控制電路210未接收到主機12的指令時,固態儲存裝置200處於待機狀態(步驟S260),直到控制電路210收到主機12的指令為止。相同地,第二實施例的寫入控制方法在待機狀態(步驟S260)時,控制電路210可適時地對第一區域222進行垃圾蒐集動作,其運作方式相同於第2B圖的步驟S262至步驟S266,此處不再贅述。
再者,當控制電路210接收到主機12的指令不是寫入指令時,則控制電路210執行主機12的指令(步驟S258)後,回到步驟S260。舉例來說,當控制電路210接收到讀取指令時,則控制電路210由MLC型非揮發性記憶體220中取得讀取資料,並回傳至主機12。
另外,當主機12發出寫入指令時,控制電路210會將主機12的寫入資料暫存在揮發性記憶體230(步驟S254)。接著,控制電路210將揮發性記憶體230中的寫入資料儲存至MLC型非揮發性記憶體220(步驟S450)。之後,回到步驟260。
根據本發明的實施例,在進行步驟S450的過程時,控制電路210會監測連續儲存至MLC型非揮發性記憶體220的資料量,當連續儲存的資料量到達預設量之前(步驟S452),控制電路210以SLC寫入模式將寫入資料儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊(步驟S454)。反之,當連續儲存的資料量到達預設量之後(步驟S452),控制電路210以MLC寫入模式將寫入資料儲存至MLC型非揮發性記憶體220中第二區域224內的儲存區塊(步驟S456)。
在一實施例中,控制電路210更可根據是否有大量的連續寫入資料來決定寫入控制方法。其中,當控制電路210判斷主機12的多個寫入指令皆未提供大量的連續寫入資料時,則控制電路210可決定採用相同於第3A圖至第3D圖的流程示意圖的寫入控制方法。也就是說,控制電路210以SLC寫入模式將寫入資料270儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。直到第一區域222的總儲存量到達臨限量S
TH時,控制電路210於待機狀態對第一區域222進行垃圾蒐集動作。
再者,當控制電路210判斷主機12提供大量的連續寫入資料時,則控制電路210可決定採用相同於第5A圖至第5B圖的流程示意圖的寫入控制方法。請參照第5A圖至第5B圖,其所繪示為本發明第二實施例寫入控制方法運用於MLC型非揮發性記憶體的示意圖。如第5A圖所示,當控制電路210接收到主機12的寫入指令時,由於連續儲存的資料量尚未到達虛線所示的預設量S
P,所以控制電路210以第一種寫入模式將寫入資料570_1儲存至MLC型非揮發性記憶體220中第一區域222內的緩衝區塊。其中,第一種寫入模式即為SLC寫入模式。其中,預設量S
P小於臨限量S
TH。
如第5B圖所示,當連續儲存的資料量到達預設容量S
P時,控制電路210以第二種寫入模式將寫入資料570_2儲存至MLC型非揮發性記憶體220中第二區域224內的儲存區塊。其中,第二種寫入模式即為MLC寫入模式,意即,第一種寫入模式的寫入速度(write speed)高於第二種寫入模式的寫入速度。
舉例來說,假設預設量設定為10GByte。當主機12提供的寫入資料為30GByte時,在儲存寫入資料至MLC型非揮發性記憶體220的過程中,會持續監測連續儲存至MLC型非揮發性記憶體220的資料量。當連續儲存的資料量到達10GByte之前,控制電路210利用SLC寫入模式將10GByte的寫入資料儲存在第一區域222內的緩衝區塊。當連續儲存的資料量到達10GByte之後,控制電路210利用MLC寫入模式將剩下20GByte的寫入資料儲存在第二區域224的儲存區塊。
由以上的說明可知,由於控制電路 210無法預先得知主機12將傳遞的寫入資料量,為了防止主機12提供大量的連續寫入資料造成第二區域224內的儲存區塊耗盡,並大幅降低寫入效能。在本發明第二實施例的寫入控制方法中,控制電路210會監測連續儲存至MLC型非揮發性記憶體220的資料量,當連續儲存的資料量到達預設量S
P時,控制電路210改以MLC寫入模式將後續的寫入資料儲存至MLC型非揮發性記憶體220中第二區域224內的儲存區塊。如此,固態儲存裝置200不會發生寫入效能大幅下降的情況,仍舊可以維持可接受的寫入效能。
另外,為了增加MLC型非揮發性記憶體220的實際儲存空間,本發明提出的寫入控制方法更可以動態的調整第一區域222與第二區域224的大小(size)。舉例來說,當控制電路210對第一區域222進行垃圾蒐集動作後,控制電路210根據可使用的區塊數目來調整第一區域222與第二區域224的大小。舉例來說,將可使用區塊中70%的區塊分配至第一區域222作為緩衝區塊,另外30%的可使用區塊分配至第二區域224作為緩衝區塊。因此,當MLC型非揮發性記憶體220中的儲存資料量逐漸增加時,控制電路210可以動態地調降第一區域222的大小(size),使得MLC型非揮發性記憶體220實際的資料儲存量提昇。其中,可使用區塊係指可供控制電路110選擇使用用來儲存寫入資料的區塊。其中,可使用區塊可包含空白區塊、僅儲存有無效資料的區塊及/或待抹除的區塊等。
由以上的說明可知,本發明提出一種固態儲存裝置及其相關的寫入控制方法。本發明的寫入控制方法可以提供較佳的寫入速度,並且可防止主機12提供大量的連續寫入資料時,造成寫入效能大幅下降的情況發生。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
12:主機
20:外部匯流排
100,200:固態儲存裝置
110,210:控制電路
120:非揮發性記憶體
130,230:揮發性記憶體
220:MLC非揮發性記憶體
222:第一區域
224:第二區域
270,272,570_1,570_2:寫入資料
第1圖為習知固態儲存裝置;
第2A圖為本發明的固態儲存裝置;
第2B圖為運用本發明固態儲存裝置的寫入控制方法第一實施例;
第3A圖至第3D圖為本發明第一實施例寫入控制方法運用於MLC型非揮發性記憶體的示意圖;
第4圖為運用本發明固態儲存裝置的寫入控制方法第二實施例;以及
第5A圖至第5B圖為本發明第二實施例寫入控制方法運用於MLC型非揮發性記憶體的示意圖。
12:主機
20:外部匯流排
200:固態儲存裝置
210:控制電路
220:非揮發性記憶體
222:第一區域
224:第二區域
230:揮發性記憶體
Claims (9)
- 一種固態儲存裝置,連接至一主機,該固態儲存裝置包括: 一控制電路,連接至該主機; 一揮發性記憶體,連接至該控制電路; 一非揮發性記憶體,連接至該控制電路,其中該非揮發性記憶體被區分為一第一區域與一第二區域; 其中,當該主機發出的一寫入命令與一寫入資料後,該控制電路監測連續儲存至該非揮發性記憶體的一資料量; 其中,當連續儲存的該資料量到達一預設量之前,以一第一種寫入模式將該寫入資料儲存至該第一區域中的複數個緩衝區塊;以及,當連續儲存的該資料量到達該預設量之後,以一第二種寫入模式將該寫入資料儲存至該第二區域中的複數個儲存區塊; 其中,該第一種寫入模式的寫入速度高於該第二種寫入模式的寫入速度; 其中,該第一區域中的總儲存量到達一臨限量時,對該第一區域進行一垃圾蒐集動作,其中,該預設量小於該臨限量。
- 如請求項1所述之固態儲存裝置,其中該非揮發性記憶體為一多層記憶胞型非揮發性記憶體,該第一種寫入模式為一單層記憶胞寫入模式,該第二種寫入模式為一多層記憶胞寫入模式。
- 如請求項1所述之固態儲存裝置,其中在該控制電路對該第一區域進行該垃圾蒐集動作後,該控制電路根據一可使用區塊數目來調整該第一區域與該第二區域的大小,其中,該可使用區塊為可供該控制電路選擇用來儲存寫入資料的區塊。
- 如請求項1所述之固態儲存裝置,其中當該主機發出的該寫入命令後,該寫入資料先暫存於該揮發性記憶體,該控制電路再將該寫入資料由該揮發性記憶體儲存至該非揮發性記憶體。
- 一種固態儲存裝置的寫入控制方法,該固態儲存裝置包括一非揮發性記憶體以及一揮發性記憶體,該非揮發性記憶體被區分為一第一區域與一第二區域,該寫入控制方法包括下列步驟: (a)於未接收到一主機的指令時,處於一待機狀態; (b)於接收到該主機的一寫入主機時,將該主機提供的一寫入資料暫存在該揮發性記憶體;以及 (c)將該揮發性記憶體中的該寫入資料儲存至該非揮發性記憶體,並回到該步驟(a); 其中,該步驟(c)更包括下列步驟:(c1)監測連續儲存至該非揮發性記憶體的一資料量;(c2)當連續儲存的該資料量到達一預設量之前,以一第一種寫入模式將該寫入資料儲存至該非揮發性記憶體中該第一區域內的複數個緩衝區塊;以及,(c3)當連續儲存的該資料量到達該預設量之後,以一第二種寫入模式將該寫入資料儲存至該非揮發性記憶體中該第二區域內的複數個儲存區塊; 其中,該第一種寫入模式的寫入速度高於該第二種寫入模式的寫入速度。
- 如請求項5所述之寫入控制方法,於該待機狀態時,更包括下列步驟: (a1)判斷該第一區域中的總儲存量是否到達一臨限量; (a2)當該第一區域中的總儲存量未到達該臨限量時,處於該待機狀態;以及 (a3) 當該第一區域中的總儲存量到達該臨限量時,對該第一區域進行一垃圾蒐集動作後,處於該待機狀態; 其中,該預設量小於該臨限量。
- 如請求項6所述之寫入控制方法,其中進行該垃圾蒐集動作時更包括下列步驟: (a31)以該第二種寫入模式將該第一區域內該些緩衝區塊中的有效資料儲存至該第二區域中的該些儲存區塊;以及 (a32)抹除該第一區域內的該些緩衝區塊。
- 如請求項6所述之寫入控制方法,其中對該第一區域進行該垃圾蒐集動作後,根據該非揮發性記憶體中的一可使用區塊數目調整該第一區域與該第二區域的大小。
- 如請求項5所述之寫入控制方法,其中該非揮發性記憶體為一多層記憶胞型非揮發性記憶體,該第一種寫入模式為一單層記憶胞寫入模式,該第二種寫入模式為一多層記憶胞寫入模式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110147917A TWI793932B (zh) | 2021-12-21 | 2021-12-21 | 固態儲存裝置及其相關的寫入控制方法 |
US17/678,067 US11899976B2 (en) | 2021-12-21 | 2022-02-23 | Solid state storage device and write control method with different write modes therof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110147917A TWI793932B (zh) | 2021-12-21 | 2021-12-21 | 固態儲存裝置及其相關的寫入控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI793932B true TWI793932B (zh) | 2023-02-21 |
TW202326732A TW202326732A (zh) | 2023-07-01 |
Family
ID=86689368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110147917A TWI793932B (zh) | 2021-12-21 | 2021-12-21 | 固態儲存裝置及其相關的寫入控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11899976B2 (zh) |
TW (1) | TWI793932B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201533742A (zh) * | 2014-02-21 | 2015-09-01 | Phison Electronics Corp | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201725588A (zh) * | 2016-01-04 | 2017-07-16 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201917586A (zh) * | 2017-10-24 | 2019-05-01 | 宇瞻科技股份有限公司 | 延長固態硬碟壽命之方法 |
TW202040370A (zh) * | 2019-04-23 | 2020-11-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US20210065828A1 (en) * | 2019-08-27 | 2021-03-04 | Samsung Electronics Co., Ltd. | Memory system and method of operating the same |
TW202131319A (zh) * | 2020-02-07 | 2021-08-16 | 大陸商合肥兆芯電子有限公司 | 快閃記憶體之資料整理方法、控制電路單元與儲存裝置 |
TW202143047A (zh) * | 2020-04-30 | 2021-11-16 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886911B2 (en) | 2011-05-31 | 2014-11-11 | Micron Technology, Inc. | Dynamic memory cache size adjustment in a memory device |
JP2018120439A (ja) * | 2017-01-25 | 2018-08-02 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10229735B1 (en) | 2017-12-22 | 2019-03-12 | Intel Corporation | Block management for dynamic single-level cell buffers in storage devices |
KR20190128392A (ko) * | 2018-05-08 | 2019-11-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102634631B1 (ko) * | 2018-07-11 | 2024-02-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
WO2020180045A1 (en) * | 2019-03-07 | 2020-09-10 | Samsung Electronics Co., Ltd. | Electronic device and method for utilizing memory space thereof |
KR20200142219A (ko) * | 2019-06-12 | 2020-12-22 | 삼성전자주식회사 | 전자 장치 및 그의 저장 공간 이용 방법 |
US11347403B2 (en) * | 2019-09-04 | 2022-05-31 | Seagate Technolagy LLC | Extending the life of a solid state drive by using MLC flash blocks in SLC mode |
KR20210065356A (ko) * | 2019-11-27 | 2021-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
JP2022030146A (ja) * | 2020-08-06 | 2022-02-18 | キオクシア株式会社 | メモリシステムおよび書き込み制御方法 |
US11556249B2 (en) * | 2020-09-01 | 2023-01-17 | Western Digital Technologies, Inc. | Delaying random data relocation for reducing write amplification in storage devices |
JP2022146519A (ja) * | 2021-03-22 | 2022-10-05 | キオクシア株式会社 | メモリシステム、情報処理システム、およびホスト装置 |
-
2021
- 2021-12-21 TW TW110147917A patent/TWI793932B/zh active
-
2022
- 2022-02-23 US US17/678,067 patent/US11899976B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201533742A (zh) * | 2014-02-21 | 2015-09-01 | Phison Electronics Corp | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201725588A (zh) * | 2016-01-04 | 2017-07-16 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201917586A (zh) * | 2017-10-24 | 2019-05-01 | 宇瞻科技股份有限公司 | 延長固態硬碟壽命之方法 |
TW202040370A (zh) * | 2019-04-23 | 2020-11-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US20210065828A1 (en) * | 2019-08-27 | 2021-03-04 | Samsung Electronics Co., Ltd. | Memory system and method of operating the same |
TW202131319A (zh) * | 2020-02-07 | 2021-08-16 | 大陸商合肥兆芯電子有限公司 | 快閃記憶體之資料整理方法、控制電路單元與儲存裝置 |
TW202143047A (zh) * | 2020-04-30 | 2021-11-16 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US20230195384A1 (en) | 2023-06-22 |
US11899976B2 (en) | 2024-02-13 |
TW202326732A (zh) | 2023-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237765B2 (en) | Data writing method and storage device | |
US11372753B2 (en) | Memory system and method | |
KR100608592B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
US7814276B2 (en) | Data cache architecture and cache algorithm used therein | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8677058B2 (en) | Memory system selecting write mode of data block and data write method thereof | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US11354236B2 (en) | Garbage collection method for data storage device | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
US7610442B2 (en) | Dual journaling store method and storage medium thereof | |
US11126369B1 (en) | Data storage with improved suspend resume performance | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
JP5259138B2 (ja) | 記憶装置 | |
US11175847B2 (en) | Data merging method, control circuit unit and storage device for flash memory | |
US11188245B2 (en) | Data storage device, system, and data writing method | |
JP2022123696A (ja) | メモリシステム | |
US20110225381A1 (en) | Nonvolatile storage device, access device and nonvolatile storage system | |
JPWO2007105688A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP5259257B2 (ja) | 記憶装置 | |
TWI793932B (zh) | 固態儲存裝置及其相關的寫入控制方法 | |
US20220300185A1 (en) | Storage device, storage system, and control method | |
US11809708B2 (en) | Memory system and memory control method | |
WO2019044061A1 (ja) | メモリの電源電圧を動的に制御するメモリコントローラ | |
KR100538338B1 (ko) | 플래시 메모리의 블록 균등 분산 기법 및 이를 이용한데이터 저장 장치 |