TWI787627B - 電子裝置、快閃記憶體控制器及其存取方法 - Google Patents
電子裝置、快閃記憶體控制器及其存取方法 Download PDFInfo
- Publication number
- TWI787627B TWI787627B TW109122423A TW109122423A TWI787627B TW I787627 B TWI787627 B TW I787627B TW 109122423 A TW109122423 A TW 109122423A TW 109122423 A TW109122423 A TW 109122423A TW I787627 B TWI787627 B TW I787627B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- block
- blocks
- storage area
- Prior art date
Links
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
-
- 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
- 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/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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本發明揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一緩衝記憶體,其中該緩衝記憶體包含具有連續位址的一資料暫存區。當該快閃記憶體控制器自該主裝置接收一資料,該微處理器判斷該資料暫存區之最後一筆資料至一結束位址之間是否有足夠空間來儲存該資料的全部內容;若是該資料暫存區之最後一筆資料至該結束位址之間沒有足夠空間來儲存該資料的全部內容,則該微處理器直接將該資料由該資料暫存區之該起始位址開始寫入,而不將該資料的任何部分寫入至該資料暫存區之該結束位址之前的區域。
Description
本發明係有關於快閃記憶體及相關的控制方法。
隨著立體快閃記憶體的快速發展,其堆疊的層數越來越多,儲存在快閃記憶體中的資料品質也變得不穩定,且將資料寫入至快閃記憶體的方式也會影響到其品質,因此,如何提出一種有效率且具有較佳資料品質的資料寫入方式,並具有好的寫入放大指數(write amplification index,WAI),是一個重要的課題。
因此,本發明的目的之一在於提出一種快閃記憶體控制器及相關的控制方法,以使得寫入至快閃記憶體的資料具有較佳的品質,且也具有好的寫入放大指數,以解決先前技術中所述的問題。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了至少一快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包
含多個資料頁。該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一緩衝記憶體,其中該唯讀記憶體用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,且該緩衝記憶體包含具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置的資料。在該快閃記憶體控制器的操作中,當該快閃記憶體控制器自該主裝置接收一資料,該微處理器判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則該微處理器直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之該結束位址之前的區域。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器,其中該快閃記憶體控制器包含一緩衝記憶體,該緩衝記憶體具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置的資料。在該電子裝置的操作中,當該快閃記憶體控制器自該主裝置接收一資料,該快閃記憶體控制器判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則該快閃記憶體控制器直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
在本發明的另一個實施例中,揭露了一種應用於一快閃記憶體控制器的控制方法,其包含有以下步驟:在該快閃記憶體控制器中的一緩衝記憶體規劃具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置的資料;自該主裝置接收一資料;判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;以及若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
100:電子裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
142:讀取重試表
144:讀取成功紀錄表
200:區塊
202:浮閘電晶體
302,304:超級區塊
310,320:儲存面
312_1~312_N:第一區塊
322_1~322_N:第一區塊
314_1~314_M:第二區塊
324_1~324_M:第二區塊
313,315:資料頁
410:資料暫存區
600~608:步驟
AD_S:起始位址
AD_E:結束位址
BL1,BL2,BL3:位元線
WL0~WL2,WL4~WL6:字元線
第1圖為依據本發明一實施例之一種電子裝置的示意圖。
第2圖為依據本發明一實施例之快閃記憶體模組中一區塊的示意圖。
第3圖為依據本發明一實施例之快閃記憶體模組包含多個第一區塊與第二區塊的示意圖。
第4圖為依據本發明一實施例之在緩衝記憶體中規劃資料暫存區的示意圖。
第5圖為依據本發明一實施例之資料暫存區之最後一筆資料後的剩餘空間不足時如何寫入下一筆資料的示意圖。
第6圖為根據本發明一實施例之快閃記憶體控制器之控制方法的流程圖。
第1圖為依據本發明一實施例之一種電子裝置100的示意圖。電子裝
置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(block),而快閃記憶體控制器110對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)模組。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,電子裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與電子裝置100連接的另一電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,電子裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,且可以設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是手機、筆記型電腦、桌上型電腦的一處理器。
第2圖為依據本發明一實施例之快閃記憶體模組120中一區塊200的示意圖,其中快閃記憶體模組120為立體NAND型快閃記憶體。如第2圖所示,區塊200包含了多個記憶單元(例如圖示的浮閘電晶體202或是其他的電荷捕捉(charge trap)元件),其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮閘電晶體構成了至少一資料頁,字元線WL1上的所有浮閘電晶體構成了另至少一資料頁,而字元線WL2的所有浮閘電晶體構成了再另至少一資料頁...以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮閘電晶體僅對應到單一邏輯資料頁;當使用雙層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到兩個邏輯資料頁;當使用三層式儲存(Triple-Level Cell,TLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到三個邏輯資料頁;以及當使用四層式儲存(Quad-Level Cell,QLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到
四個邏輯資料頁。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
第3圖為根據本發明一實施例之快閃記憶體模組120的示意圖。如第3圖所示,快閃記憶體模組120包含了多個儲存面(plane)(在本實施例中,係以兩個儲存面310、320來做為說明),其中儲存面310至少包含了多個第一區塊312_1~312_N以及多個第二區塊314_1~314_M,而儲存面320至少包含了多個第一區塊322_1~322_N以及多個第二區塊324_1~324_M,其中N、M為任意適合的正整數。第一區塊322_1~322_N中的每一個區塊均包含了多個資料頁,例如第3圖所示之第一區塊312_1所包含的資料頁313;第二區塊322_1~322_N中的每一個區塊均包含了多個資料頁,例如第3圖所示之第二區塊322_1所包含的資料頁315。在本實施例中,儲存面310、320中的區塊係構成多個超級區塊,舉例來說,儲存面310的第一區塊312_1與儲存面320的第一區塊322_1構成了超級區塊302,其中超級區塊302中第一區塊312_1、322_1係同時進行存取或抹除,例如當快閃記憶體控制器110將資料寫入至超級區塊302時,係可以將一筆資料依序寫入至第一區塊312_1的資料頁與儲存面320的第一區塊322_1的資料頁、或是交錯地將一筆資料寫入至第一區塊312_1的資料頁與儲存面320的第一區塊322_1的資料頁;在另一例子中,儲存面310的第二區塊314_1與儲存面320的第二區塊324_1構成了超級區塊304,其中超級區塊304中第二區塊314_1、324_1係同時進行存取或抹除,例如當快閃記憶體控制器110將資料寫入至超級區塊304時,係可以將一筆資料依序寫入至第二區塊314_1的資料頁與儲存面320的第二區塊324_1的資料頁、或是交錯地將一筆資料寫入至第二區塊314_1的資料頁與儲存面320的第二區塊324_1的資料頁。
在本實施例中,儲存面310的第一區塊312_1~312_N與儲存面320的第一區塊322_1~322_N均為單層式儲存區塊(SLC block),而儲存面310的第二區塊314_1~314_M與儲存面320的第二區塊324_1~324_M則為雙層式儲存區塊(MLC block)、三層式儲存區塊(TLC block)或是四層式儲存區塊(QLC block)。在以下實施例的敘述當中,為了方面說明,係假設第二區塊314_1~314_M與第二區塊324_1~324_M均為雙層式儲存區塊,亦即單一條字元線上的所有記憶單元構成了兩個資料頁,但本發明並不以此為限。
第3圖所示的第一區塊312_1~312_N、322_1~322_N以及第二區塊314_1~314_M、322_4~324_M係用來直接儲存來自快閃記憶體控制器110的寫入資料,亦即可以視為暫存區塊,而快閃記憶體模組120可以另外包含多個資料區塊以供在後續的操作中儲存來自上述暫存區塊中的有效資料。為了有效地利用快閃記憶體模組120,當快閃記憶體控制器110所寫入的資料具有小的資料量,例如多筆大小為4KB的零碎資料時,則這些資料會被寫入至第一區塊312_1~312_N、322_1~322_N中;另外,當快閃記憶體控制器110所寫入的資料具有大的資料量(大於4KB)時,則會被寫入至第二區塊314_1~314_M、324_1~324_M中以有效地利用快閃記憶體模組120的空間。
由於快閃記憶體模組120為具有堆疊架構的立體快閃記憶體模組,在經過相關的實驗與量測之後,針對雙層式儲存區塊、三層式儲存區塊(TLC block)與四層式儲存區塊的資料寫入以一次性寫入(one shot program)的方式較佳,且可以有效降低錯誤位元的數量以改善寫入品質。具體來說,以快閃記憶體模組120中的包含兩個雙層式儲存區塊的超級區塊304來做為說明,假設一個資料頁的大小為16千位元組(KB),則由於單一條字元線上的所有記憶單元構成了兩個資料
頁,再加上第二區塊314_1、324_1需要同時進行資料寫入,故超級區塊304一次所寫入的資料量(最小資料量)為64KB(亦即,16KB*2*2=64KB)。類似地,包含單層式儲存區塊的超級區塊304一次所寫入的資料量為32KB;若是超級區塊所包含的是兩個三層式儲存區塊,則一次所寫入的資料量為96KB(亦即,16KB*3*2=96KB);而若是超級區塊所包含的是兩個四層式儲存區塊,則一次所寫入的資料量為128KB(亦即,16KB*4*2=128KB)。
如上所述,由於包含單層式儲存區塊的超級區塊302一次所寫入的資料量為32KB、包含雙層式儲存區塊的超級區塊304一次所寫入的資料量為64KB,因此,快閃記憶體控制器110在接收到來自主裝置130的資料時,會先將資料暫存至緩衝記憶體116中,並在適當的時間點將儲存在緩衝記憶體116內的資料搬移到快閃記憶體模組120中。然而,由於來自主裝置130的資料量大小並不一致,因此緩衝記憶體116在儲存空間的規劃上可能無法讓每一筆資料都具有連續的位址,而可能造成原本應該要寫入至超級區塊304的資料被改寫至超級區塊302,而影響到了快閃記憶體模組120的利用率並提高了寫入放大指數。因此,在以下的實施例中提出了一種緩衝記憶體116的存取方法,以有效地解決此一問題。
具體來說,微處理器112可以規劃緩衝記憶體116具有如第4圖所示的一資料暫存區410,其中資料暫存區410具有連續的位址,而此連續位址包含一起始位址AD_S以及一結束位址AD_E。在一範例中,資料暫存區410的大小可以是超級區塊304一次所寫入的資料量的整數倍,例如可以是64KB的8倍,即512KB。而當快閃記憶體控制器110接收到來自主裝置130的資料時,微處理器112會將這些資料依序地自起始位址AD_S開始寫入,以第4圖為例來說明,微處理
器112會將來自主裝置130的第一筆資料寫入至由起始位址AD_S開始的32KB連續位址(需注意的是,第一筆資料可能是由來自主裝置130的多筆資料結合而成),將來自主裝置130的第二筆資料寫入至緊接於第一筆資料後的64KB連續位址,將來自主裝置130的第三筆資料寫入至緊接於第二筆資料後的32KB連續位址…以此類推。而由於第一筆資料僅具有32KB,因此微處理器112會在適當的時間點將第一筆資料寫入至快閃記憶體模組120的超級區塊302中,而等待第一筆資料完成寫入之後,微處理器112會直接將資料暫存區410中的第一筆資料刪除以供儲存其他資料。接著,由於第二筆資料具有64KB,因此微處理器112會在適當的時間點將第二筆資料以一次性寫入的方式寫入至快閃記憶體模組120的超級區塊304中,而等待第二筆資料完成寫入之後,微處理器112會直接將資料暫存區410中的第二筆資料刪除以供儲存其他資料。接著,由於第三筆資料僅具有32KB,因此微處理器112會在適當的時間點將第三筆資料寫入至快閃記憶體模組120的超級區塊302中,而等待第三筆資料完成寫入之後,微處理器112會直接將資料暫存區410中的第三筆資料刪除以供儲存其他資料。
如上所述,由於資料暫存區410的大小可以是超級區塊304一次所寫入的資料量的整數倍,但是資料暫存區410所儲存的一筆資料有可能是32KB或是64KB,因此,資料暫存區410有可能會出現最後一筆資料至結束位址AD_E之間只剩下32KB儲存空間的情形。以第5圖為例來進行說明,假設目前資料暫存區410所儲存的最後一筆資料是第A筆資料,且在第A筆資料之後僅剩下32KB的儲存空間,此時,若是第(A+1)筆資料為64KB,則微處理器112會直接放棄資料暫存區410之在第A筆資料之後的32KB的儲存空間,而直接將第(A+1)筆資料寫入至由起始位址AD_S開始的64KB連續位址。詳細來說,在傳統靜態隨機存取記憶體的操作中,會將資料一直寫至結束位址AD_E後再回到起始位址AD_S繼續寫入,
換句話說,傳統上會將第(A+1)筆資料拆為兩個部分(各為32KB),其中第一部分寫入到第A筆資料至結束位址AD_E之間的32KB儲存空間,而第二部分寫寫入至由起始位址AD_S開始的32KB連續位址,然而,這種寫入方式會讓微處理器112將第(A+1)筆資料視為兩筆不同的資料,而會先將第(A+1)筆資料的第一部分寫入至包含單層式儲存區塊的超級區塊302,之後再將第(A+1)筆資料的第二部分寫入至包含單層式儲存區塊的超級區塊302。由於在傳統記憶體的操作下,原本可以寫入至包含雙層式儲存區塊的超級區塊304的第(A+1)筆資料被寫入至包含單層式儲存區塊的超級區塊302,因此便影響到了快閃記憶體模組120的寫入放大指數。如上所述,透過本實施例之在資料暫存區410中最後一筆資料第A筆資料至結束位址AD_E之間的剩餘儲存空間的情形不足以儲存下一筆資料(第(A+1)筆資料)的全部內容時,直接將第(A+1)筆資料由資料暫存區410之起始位址AD_S開始寫入,而不將第(A+1)筆資料的任何部分寫入至資料暫存區410之最後一筆資料至結束位址AD_E之間的區域,可以有效地避免上述將原本可以寫入至超級區塊304的資料因為記憶體位址不連續而導致寫入至超級區塊302的情形發生。
此外,微處理器112會依序將來自主裝置130的資料寫入至第(A+1)筆資料之後的位址,亦即,關於第5圖所示之在第A筆資料與結束位址之間的32KB的儲存空間,會一直維持著空白區域,直到第A筆資料被刪除後才可被寫入後續的資料。
第6圖為根據本發明一實施例之快閃記憶體控制器之控制方法的流程圖。參考以上實施例所述的內容,第6圖的流程如下所述:
步驟600:流程開始。
步驟602:在快閃記憶體控制器中的一緩衝記憶體規劃具有連續位址
的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置的資料。
步驟604:自該主裝置接收一資料。
步驟606:判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容。
步驟608:若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
簡要歸納本發明,在本發明之快閃記憶體控制器中,透過對內部緩衝記憶體的規劃以及寫入方法,可以確保不會將原本可以寫入至雙層式儲存區塊、三層式儲存區塊或是四層式儲存區塊的資料寫入到單層式儲存區塊,以改善快閃記憶體模組的利用率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:電子裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
Claims (12)
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一緩衝記憶體,包含具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置且之後需要被搬移至該快閃記憶體模組的資料;其中當該快閃記憶體控制器自該主裝置接收一資料,該微處理器判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則該微處理器直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
- 如申請專利範圍第1項所述的快閃記憶體控制器,其中在該資料暫存區之該最後一筆資料被刪除之前,該快閃記憶體控制器不會將任何資料寫入至該資料暫存區之該最後一筆資料至該結束位址之間的區域。
- 如申請專利範圍第1項所述的快閃記憶體控制器,其中該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,其中該多個第一區塊中的每一個第一區塊為單層式儲存(Single-Level Cell,SLC)區塊,而該多個第二區塊中的每一個第二區塊為雙層式儲存(Multi-Level Cell,MLC)區塊、三 層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊;其中該資料暫存區的大小為該第二區塊進行一次性寫入之資料量的整數倍。
- 如申請專利範圍第1項所述的快閃記憶體控制器,其中該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,該多個第一區塊中的每一個第一區塊為單層式儲存區塊,該多個第二區塊中的每一個第二區塊為雙層式儲存區塊、三層式儲存區塊或是四層式儲存區塊,該第一區塊進行一次性寫入之資料量為第一資料量,該第二區塊進行一次性寫入之資料量為第二資料量;以及針對該資料暫存區所儲存之具有連續位址的任一筆資料,若是該任一筆資料的資料量為該第一資料量,則該微處理器將該任一筆資料搬移至該多個第一區塊中的其一;而若是該任一筆資料的資料量為該第二資料量,則該微處理器將該任一筆資料搬移至該多個第二區塊中的其一。
- 申請專利範圍第1項所述的快閃記憶體控制器,其中該緩衝記憶體為一靜態隨機存取記憶體。
- 一種電子裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,其中該快閃記憶體控制器包含一緩衝記憶體,該緩衝記憶體具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置且之後需要被搬移至該快閃記憶體模組的資料; 其中當該快閃記憶體控制器自該主裝置接收一資料,該快閃記憶體控制器判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則該快閃記憶體控制器直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
- 如申請專利範圍第6項所述的電子裝置,其中在該資料暫存區之該最後一筆資料被刪除之前,該快閃記憶體控制器不會將任何資料寫入至該資料暫存區之該最後一筆資料至該結束位址之間的區域。
- 如申請專利範圍第6項所述的電子裝置,其中該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,其中該多個第一區塊中的每一個第一區塊為單層式儲存(Single-Level Cell,SLC)區塊,而該多個第二區塊中的每一個第二區塊為雙層式儲存(Multi-Level Cell,MLC)區塊、三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊;其中該資料暫存區的大小為該第二區塊進行一次性寫入之資料量的整數倍。
- 如申請專利範圍第6項所述的電子裝置,其中該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,該多個第一區塊中的每一個第一區塊為單層式儲存區塊,該多個第二區塊中的每一個第二區塊為雙層式儲存區塊、三層式儲存區塊或是四層式儲存區塊,該第一區塊進行一次性寫 入之資料量為第一資料量,該第二區塊進行一次性寫入之資料量為第二資料量;以及針對該資料暫存區所儲存之具有連續位址的任一筆資料,若是該任一筆資料的資料量為該第一資料量,則該快閃記憶體控制器將該任一筆資料搬移至該多個第一區塊中的其一;而若是該任一筆資料的資料量為該第二資料量,則該快閃記憶體控制器將該任一筆資料搬移至該多個第二區塊中的其一。
- 一種應用於一快閃記憶體控制器的控制方法,包含有:在該快閃記憶體控制器中的一緩衝記憶體規劃具有連續位址的一資料暫存區,其中該連續位址包含一起始位址以及一結束位址,且該資料暫存區用來暫存來自一主裝置且之後需要被搬移至一快閃記憶體模組的資料;自該主裝置接收一資料;判斷該資料暫存區之最後一筆資料至該結束位址之間是否有足夠空間來儲存該資料的全部內容;以及若是該資料暫存區之最後一筆資料至該結束位址之間有空間可以儲存該資料的一部分內容,但是沒有足夠空間來儲存該資料的全部內容,則直接將該資料由該資料暫存區之該起始位址開始寫入,而不會將該資料的任何部分寫入至該資料暫存區之最後一筆資料至該結束位址之間的區域。
- 如申請專利範圍第10項所述的控制方法,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,該多個第一區塊中的每一個第一區塊為單層式儲存 (Single-Level Cell,SLC)區塊,而該多個第二區塊中的每一個第二區塊為雙層式儲存(Multi-Level Cell,MLC)區塊、三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊;其中該資料暫存區的大小為該第二區塊進行一次性寫入之資料量的整數倍。
- 如申請專利範圍第10項所述的控制方法,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個第一區塊以及多個第二區塊,該多個第一區塊中的每一個第一區塊為單層式儲存區塊,該多個第二區塊中的每一個第二區塊為雙層式儲存區塊、三層式儲存區塊或是四層式儲存區塊,該第一區塊進行一次性寫入之資料量為第一資料量,該第二區塊進行一次性寫入之資料量為第二資料量;以及該存取方法另包含有:針對該資料暫存區所儲存之具有連續位址的任一筆資料,若是該任一筆資料的資料量為該第一資料量,則將該任一筆資料搬移至該多個第一區塊中的其一;以及若是該任一筆資料的資料量為該第二資料量,則將該任一筆資料搬移至該多個第二區塊中的其一。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109122423A TWI787627B (zh) | 2020-07-02 | 2020-07-02 | 電子裝置、快閃記憶體控制器及其存取方法 |
CN202010972138.3A CN113886280A (zh) | 2020-07-02 | 2020-09-16 | 电子装置、快闪存储器控制器及其存取方法 |
US17/086,450 US11249676B2 (en) | 2020-07-02 | 2020-11-01 | Electronic device, flash memory controller and associated control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109122423A TWI787627B (zh) | 2020-07-02 | 2020-07-02 | 電子裝置、快閃記憶體控制器及其存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202203030A TW202203030A (zh) | 2022-01-16 |
TWI787627B true TWI787627B (zh) | 2022-12-21 |
Family
ID=79013364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109122423A TWI787627B (zh) | 2020-07-02 | 2020-07-02 | 電子裝置、快閃記憶體控制器及其存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11249676B2 (zh) |
CN (1) | CN113886280A (zh) |
TW (1) | TWI787627B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
TW201407349A (zh) * | 2012-08-01 | 2014-02-16 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
US8667209B2 (en) * | 2010-03-04 | 2014-03-04 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
US9684468B2 (en) * | 2013-12-09 | 2017-06-20 | International Business Machines Corporation | Recording dwell time in a non-volatile memory system |
TW201804311A (zh) * | 2016-07-22 | 2018-02-01 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 |
TW201828065A (zh) * | 2017-01-20 | 2018-08-01 | 宇瞻科技股份有限公司 | 快閃記憶體的動態對齊資料方法 |
TWI697778B (zh) * | 2019-06-17 | 2020-07-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006185162A (ja) * | 2004-12-27 | 2006-07-13 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びその制御方法 |
US10802750B2 (en) * | 2019-02-28 | 2020-10-13 | Silicon Motion Inc. | Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module |
-
2020
- 2020-07-02 TW TW109122423A patent/TWI787627B/zh active
- 2020-09-16 CN CN202010972138.3A patent/CN113886280A/zh active Pending
- 2020-11-01 US US17/086,450 patent/US11249676B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667209B2 (en) * | 2010-03-04 | 2014-03-04 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
TW201407349A (zh) * | 2012-08-01 | 2014-02-16 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
US9684468B2 (en) * | 2013-12-09 | 2017-06-20 | International Business Machines Corporation | Recording dwell time in a non-volatile memory system |
TW201804311A (zh) * | 2016-07-22 | 2018-02-01 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 |
TW201828065A (zh) * | 2017-01-20 | 2018-08-01 | 宇瞻科技股份有限公司 | 快閃記憶體的動態對齊資料方法 |
TWI697778B (zh) * | 2019-06-17 | 2020-07-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113886280A (zh) | 2022-01-04 |
US11249676B2 (en) | 2022-02-15 |
US20220004331A1 (en) | 2022-01-06 |
TW202203030A (zh) | 2022-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI696074B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN108241473B (zh) | 存取闪存的方法及相关的控制器 | |
TWI626541B (zh) | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TW202203227A (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI734063B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
TW202018718A (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI759580B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI746927B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI787627B (zh) | 電子裝置、快閃記憶體控制器及其存取方法 | |
TWI831297B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI768336B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI760094B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI811130B (zh) | 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置 | |
TWI836610B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
TWI523016B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
US20240320142A1 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
TWI852008B (zh) | 快閃記憶體控制器與電子裝置 | |
US20240320173A1 (en) | Storage device providing direct memory access, computing system including the same, and operating method of the storage device | |
TW202234253A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |