TWI746927B - 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 - Google Patents
管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 Download PDFInfo
- Publication number
- TWI746927B TWI746927B TW108102728A TW108102728A TWI746927B TW I746927 B TWI746927 B TW I746927B TW 108102728 A TW108102728 A TW 108102728A TW 108102728 A TW108102728 A TW 108102728A TW I746927 B TWI746927 B TW I746927B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- block
- blocks
- read
- memory controller
- Prior art date
Links
Images
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4099—Dummy cell treatment; Reference voltage generators
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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/10—Programming or data input circuits
-
- 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/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭露一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一計時器。該唯讀記憶體係用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,且該計時器用以產生一時間資訊。在該快閃記憶體控制器的操作中,該微處理器根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發。
Description
本發明係有關於快閃記憶體控制器。
隨著快閃記憶體技術的演進,快閃記憶體晶片中之記憶單元由平面排列的方式改變為多層堆疊的模式,以使得單一晶片可以包含更多的記憶單元,以提升快閃記憶體晶片的容量。然而,上述立體快閃記憶體(3D flash memory)會遭遇到一些讀取品質上的問題,例如若是一區塊內的資料長時間沒有被讀取,則該區塊內的資料品質便會快速劣化,而造成後續該區塊的資料在解碼上的困難,或甚至無法被正確的讀取。因此,如何提出一種有效率的管理方法來避免資料保存上的問題是一個重要的技術方向。
因此,本發明的目的之一在於提出一種管理快閃記憶體的方法,其可以有效地避免上述區塊內的資料因為長時間沒有讀取而發生劣化的情形,以解決先前技術中的問題。
在本發明的一個實施例中,揭露一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一計時器。該唯讀記憶體係用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,且該計時器用以產生一時間資訊。在該快閃記憶體控制器的操作中,該微處理器根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發。
在本發明的另一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該方法包含有:使用一計時器以產生一時間資訊;以及根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁。在該快閃記憶體控制器的操作中,該快閃記憶體控制器根據一計時器所產生的時間資訊以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
119:計時器
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
N1~NK:接腳
200、B1~BN:區塊
202:浮閘電晶體
BL1、BL2、BL3:位元線
WL0~WL2、WL4~WL6:字元線
L1~L8:電壓位準
Vt1~Vt7:臨界電壓
400:區塊記錄表
500、600:區塊讀取時間記錄表
800~804:步驟
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之快閃記憶體中一區塊的示意圖。
第3圖為三層式儲存區塊之每一個記憶單元中多個寫入電壓位準以及多個臨界電壓的示意圖。
第4圖為根據本發明一實施例之區塊記錄表的示意圖。
第5圖為根據本發明一實施例之區塊讀取時間記錄表的示意圖。
第6圖為根據本發明一實施例之區塊讀取時間記錄表的示意圖。
第7圖為根據本發明一實施例之更新區塊讀取時間記錄表的示意圖。
第8圖為根據本發明一實施例之一種管理一快閃記憶體模組的方法的流程圖。
第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、一介面邏輯118以及一計時器119。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
此外,快閃記憶體控制器110與快閃記憶體模組120均包含了多個相互連接的接腳N1~NK,以供彼此之間的資料及命令的傳輸。由於接腳N1~NK的功用可參考快閃記憶體的相關規格書,故細節不再此敘述。
於典型狀況下,快閃記憶體模組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可以是固態硬碟或符合通用快閃記憶體儲存(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型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
在記憶裝置100的操作中,由於快閃記憶體模組120內的一區塊在有資料寫入的狀態下,若是該區塊長時間沒有被讀取,則該區塊的資料品質便會大幅度下降,因而造成解碼器134在解碼上的困難。因此,在本實施例中,微處
理器112會根據計時器119所產生的時間資訊,以對快閃記憶體模組120內有儲存資料之至少一部份區塊進行冗餘讀取(dummy read)操作,以避免區塊內的資料因為長時間沒有讀取而劣化。詳細來說,上述冗餘讀取操作指的是微處理器112實質上並不會真的自快閃記憶體模組120中取得該區塊的內容,且冗餘讀取操作也並非是由主裝置130的讀取命令所觸發的(亦即,微處理器112並非是因為主裝置130的要求才對該區塊進行冗餘讀取操作)。
在本實施例中,當微處理器112對該區塊進行冗餘讀取操作時,微處理器112會發送一讀取請求至快閃記憶體模組120,但此時微處理器112會關閉快閃記憶體控制器110的一讀取致能接腳(read enable pin)(例如,第1圖所示的接腳N2),亦即快閃記憶體控制器110無法自快閃記憶體模組120取得所要求讀取的資料。在接收到來自快閃記憶體控制器110的該讀取請求之後,快閃記憶體模組120便對該區塊的一或多個資料頁進行讀取,並僅將所讀取的內容暫存在本身的暫存區中,而不會將所讀取的資料傳送至快閃記憶體控制器110。如上所述,透過對該區塊進行冗餘讀取操作,可以避免該區塊內的資料品質因為長時間沒有讀取而下降。
在一實施例中,由於冗餘讀取操作的目的僅是為了避免該區塊內的資料品質因為長時間沒有讀取而下降,故快閃記憶體控制器110可以僅要求讀取該區塊的一個資料頁即可,以加速冗餘讀取操作的進行。
在另一實施例中,微處理器112可以控制/指示快閃記憶體模組120使用一單層式儲存(Single-Level Cell,SLC)讀取模式來對該區塊進行該冗餘讀取操作,而不論該區塊是單層式儲存區塊、雙層式儲存(Multi-Level Cell,MLC)區塊、
三層式儲存(Triple-Level Cell,TLC)區塊、以及四層式儲存(Quad-Level Cell,QLC)區塊中的任一者。以該區塊是三層式儲存區塊來做為說明,請參考第3圖所示之三層式儲存區塊中每一個記憶單元的多個寫入電壓位準L1~L8以及多個臨界電壓(或稱為,讀取電壓)Vt1~Vt7的示意圖。如第3圖所示,每個浮閘電晶體202可以被程式化(programmed(為具有電壓位準L1(亦即(MSB,CSB,LSB)=(1,1,1))、電壓位準L2(亦即(MSB,CSB,LSB)=(1,1,0)、電壓位準L3(亦即(MSB,CSB,LSB)=(1,0,0))、電壓位準L4(亦即(MSB,CSB,LSB)=(0,0,0))、電壓位準L5(亦即(MSB,CSB,LSB)=(0,1,0))、電壓位準L6(亦即(MSB,CSB,LSB)=(0,1,1))、電壓位準L7(亦即(MSB,CSB,LSB)=(0,0,1))或是電壓位準L8(亦即(MSB,CSB,LSB)=(1,0,1))。當快閃記憶體控制器110需要讀取浮閘電晶體202中的最低有效位元(LSB)時,快閃記憶體控制器110會使用臨界電壓Vt1、Vt5去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來產生“1”或是“0”,類似地,當快閃記憶體控制器110需要讀取浮閘電晶體202中的中間有效位元(CSB)時,快閃記憶體控制器110會使用臨界電壓Vt2、Vt4與Vt6去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來產生“1”或是“0”,以供解碼器134進行解碼。類似地,當快閃記憶體控制器110需要讀取浮閘電晶體202中的最高有效位元(MSB)時,快閃記憶體控制器110會使用臨界電壓Vt3與Vt7去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來判斷最高有效位元是“1”或是“0”,以供解碼器134進行解碼。
如第3圖所示,一般讀取三層式儲存區塊時會需要使用到多個臨界電壓Vt1~Vt7來讀取資料內容,然而,在微處理器112對該區塊(三層式儲存區塊)進行冗餘讀取操作時,只會使用單一臨界電壓來對每一個記憶單元來進行讀取,例如快閃記憶體模組120僅會使用臨界電壓Vt4來讀取每一個記憶單元,而
其餘的臨界電壓Vt1~Vt3、Vt5~Vt7則不會在冗餘讀取操作中使用。
冗餘讀取操作的時間點以及微處理器112如何選擇需要進行冗餘讀取操作的區塊的多個實施例如下所述。
在第一個實施例中,微處理器112可以建立一區塊記錄表以記錄快閃記憶體模組120中有哪些區塊有儲存資料。參考第4圖所示之區塊記錄表400的示意圖,假設快閃記憶體模組120包含了多個區塊B1~BN,則微處理器112可以在將資料寫入至快閃記憶體模組120的過程中一併更新區塊記錄表400的內容,亦即當快閃記憶體模組120中有區塊被寫入資料時將區塊序號寫入至區塊記錄表400中(例如,圖示的B1、B2、B12、B13、B14),而在快閃記憶體模組120中有區塊被抹除或是被標記為無效時,將對應的區塊序號自區塊記錄表400中移除。因此,微處理器112便可以根據計時器119所產生的時間資訊以週期性地,例如每隔30分鐘,對區塊記錄表400所記錄的區塊進行冗餘讀取操作,以維持這些有儲存資料之區塊的資料品質。
在本實施例中,區塊記錄表400可以暫存在緩衝記憶體116或是外部的動態隨機存取記憶體中,並在記憶裝置100關機或是需要釋放記憶體空間時將區塊記錄表400寫入至快閃記憶體模組120中。
在第二個實施例中,微處理器112可以建立一區塊讀取時間記錄表以記錄快閃記憶體模組120中有被讀取過的區塊及對應的時間資訊。參考第5圖所示之區塊讀取時間記錄表500的示意圖,假設快閃記憶體模組120包含了多個區塊B1~BN,則微處理器112可以在將快閃記憶體模組120內每一個區塊被讀取時
記錄該區塊的時間資訊(例如,由主裝置130或是計時器119所獲得的時間戳記)。在一實施例中,區塊讀取時間記錄表500的內容會不斷地更新,亦即區塊讀取時間記錄表500所記錄的是每一個區塊最近一次被讀取的時間點。因此,微處理器112便可以在空閒的時候,或是根據計時器119所產生的時間資訊以週期性地,例如每隔30分鐘,根據區塊讀取時間記錄表500的內容來選擇未讀取時間較長的區塊來進行冗餘讀取操作。舉例來說,假設區塊讀取時間記錄表500記錄了區塊B_4及區塊B_5距離上一次讀取的時間點已經超過了20分鐘,則微處理器112可以優先對區塊B_4及區塊B_5進行冗餘讀取操作。
在本實施例中,區塊讀取時間記錄表500可以暫存在緩衝記憶體116或是外部的動態隨機存取記憶體中,並在記憶裝置100關機或是需要釋放記憶體空間時將區塊讀取時間記錄表500寫入至快閃記憶體模組120中。
在第三個實施例中,微處理器112可以建立一區塊讀取時間記錄表以在有區塊被讀取時即時記錄其區塊序號及對應的時間資訊,且該區塊讀取時間記錄表可以進一步被更新/整理以供後續冗餘讀取操作使用。參考第6圖所示之區塊讀取時間記錄表600的示意圖,假設微處理器112從14點01分開始依序讀取了區塊B_123、B_75、B_67、B_123、B_4、B_5、B_67、B_123,則微處理器112會同時地在區塊讀取時間記錄表600中依序紀錄所讀取的區塊及相對應的時間資訊(例如,圖示的時間戳記),其中上述區塊的讀取操作係根據主裝置130的讀取請求所進行的。接著,微處理器112可以根據計時器119所產生的時間資訊以週期性地,例如每隔5分鐘,來整理區塊讀取時間記錄表600以刪除重複的區塊序號。舉例來說,參考第7圖,由於區塊B_123具有三個讀取紀錄,則微處理器112可以直接將前兩筆讀取紀錄刪除;而區塊B_67具有兩個讀取紀錄,則微處理
器112可以直接將前一筆讀取紀錄刪除,以產生一整理後的區塊讀取時間記錄表600。
接著,微處理器112可以根據計時器119所產生的時間資訊以週期性地,例如每隔10分鐘,來根據區塊讀取時間記錄表600來產生一不要作列表(not to do list),以列出讀取時間較短而不需要進行冗餘讀取操作的區塊。舉例來說,假設目前的時間點是14點40分,且微處理器112設定15分鐘以內有讀取過的區塊不需要進行冗餘讀取操作,則此時該不要作列表可以包含了區塊B5、B67、B123。接著,若是微處理器112要進行操作,微處理器112可以根據第4圖所示的區塊記錄表400以及該不要作列表,以對快閃記憶體模組中120有資料儲存的區塊,但不包含該不要作列表可所包含之區塊B5、B67、B123,來進行冗餘讀取操作。
最後,在冗餘讀取操作結束後,微處理器112直接將進行冗餘讀取操作的區塊自區塊讀取時間記錄表600中移除,以第7圖的實施例來說,區塊讀取時間記錄表600可以直接刪除區塊B_75、B4的記錄,亦即不需要記錄進行冗餘讀取操作的區塊序號及對應的時間資訊。
需注意的是,上述冗餘讀取操作的時間點以及微處理器112如何選擇需要進行冗餘讀取操作的區塊的三個實施例僅是作為範例說明,只要微處理器112可以建立相關的表格以判斷哪些區塊需要進行冗餘讀取操作,其表格內容可以根據工程師的設計而有不同的表現方式,而相關設計上的變化均應隸屬於本發明的範疇。
第8圖為根據本發明一實施例之一種管理一快閃記憶體模組的方法
的流程圖。參考以上實施例所述的內容,流程如下所述。
步驟800:流程開始。
步驟802:使用一計時器以產生一時間資訊。
步驟804:根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發。
簡要歸納本發明,在本發明之快閃記憶體控制器中,透過主動偵測區塊的讀取狀態,並主動地對一段時間內沒有被讀取的區塊進行冗餘讀取操作,可以有效地避免區塊內的資料因為長時間沒有讀取而發生劣化的情形,以增進儲存品質及讀取效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
119:計時器
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
N1~NK:接腳
Claims (15)
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一計時器,用以產生一時間資訊;其中該微處理器根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發;其中當該微處理器對該至少一部分區塊進行該冗餘讀取操作的過程中,該微處理器只會讀取該至少一部分區塊中每一個區塊的一個資料頁。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中當該微處理器對該至少一部分區塊進行該冗餘讀取操作的過程中,該快閃記憶體控制器不會自該快閃記憶體模組接收到該快閃記憶體模組對該至少一部分區塊所讀取的資料。
- 如申請專利範圍第2項所述之快閃記憶體控制器,其中該快閃記憶體控制器包含了連接到該快閃記憶體模組的一讀取致能接腳(read enable pin),且當該微處理器對該至少一部分區塊進行該冗餘讀取操作的過程中,該讀取致能接腳係關閉以使得該快閃記憶體控制器不會自該快閃記憶體模組接收到該快閃記憶體模組對該至少一部分區塊所讀取的資料。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一計時器,用以產生一時間資訊;其中該微處理器根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發;其中該至少一部分區塊包含了雙層式儲存(Multi-Level Cell,MLC)區塊、三層式儲存(Triple-Level Cell,TLC)區塊、以及四層式儲存(Quad-Level Cell,QLC)區塊中的至少其一;以及該微處理器使用一單層式儲存(Single-Level Cell,SLC)讀取模式來對該至少一部分區塊進行該冗餘讀取操作。
- 如申請專利範圍第4項所述之快閃記憶體控制器,其中該微處理器僅使用單一讀取電壓來讀取該至少一部分區塊以進行該冗餘讀取操作。
- 如申請專利範圍第4項所述之快閃記憶體控制器,其中該快閃記憶體控制器包含了一緩衝記憶體,該緩衝記憶體儲存了一區塊記錄表以記錄該多個區塊中有哪些區塊有儲存資料;以及該微處理器參考該區塊記錄表以選擇有儲存資料的區塊來作為該至少一部份區塊。
- 如申請專利範圍第6項所述之快閃記憶體控制器,其中該微處理器根據該計時器所產生的該時間資訊,以週期性地對該至少一部分區塊進行該冗餘讀取操作。
- 如申請專利範圍第4項所述之快閃記憶體控制器,其中該快閃記憶體控制器包含了一緩衝記憶體,該緩衝記憶體儲存了一區塊讀取時間記錄表以記錄該多個區塊中有被讀取過的區塊及對應的時間資訊;以及該微處理器參考該區塊讀取時間記錄表以自該多個區塊中選擇出該至少一部份區塊。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該區塊讀取時間記錄表記錄了該多個區塊中有被讀取過的區塊及每一個區塊最近一次被讀取的時間點。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該區塊讀取時間記錄表記錄了該多個區塊中有被一主裝置要求讀取過的區塊及每一個區塊最近一次被讀取的時間點。
- 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該方法包含有:使用一計時器以產生一時間資訊;以及根據該計時器所產生的該時間資訊,以對該多個區塊中的至少一部分區塊 進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發;其中該至少一部分區塊包含了雙層式儲存(Multi-Level Cell,MLC)區塊、三層式儲存(Triple-Level Cell,TLC)區塊、以及四層式儲存(Quad-Level Cell,QLC)區塊中的至少其一,且對該至少一部分區塊進行該冗餘讀取操作的步驟包含有:使用一單層式儲存(Single-Level Cell,SLC)讀取模式來對該至少一部分區塊進行該冗餘讀取操作。
- 如申請專利範圍第11項所述之方法,另包含有:在對該至少一部分區塊進行該冗餘讀取操作的過程中,不會自該快閃記憶體模組接收到該快閃記憶體模組對該至少一部分區塊所讀取的資料。
- 一種電子裝置,包含有:一快閃記憶體模組,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁;以及一快閃記憶體控制器,用以存取該快閃記憶體模組;其中該快閃記憶體控制器根據一計時器所產生的時間資訊以對該多個區塊中的至少一部分區塊進行一冗餘讀取操作,其中該冗餘讀取操作並非由一主裝置之讀取命令所觸發;其中當該快閃記憶體控制器對該至少一部分區塊進行該冗餘讀取操作的過程中,該快閃記憶體控制器只會讀取該至少一部分區塊中每一個區塊的一個資料頁。
- 如申請專利範圍第13項所述之電子裝置,其中當該快閃記憶體控制器對該至少一部分區塊進行該冗餘讀取操作的過程中,該快閃記憶體控制器不會自該快閃記憶體模組接收到該快閃記憶體模組對該至少一部分區塊所讀取的資料。
- 如申請專利範圍第14項所述之電子裝置,其中該快閃記憶體控制器包含了連接到該快閃記憶體模組的一讀取致能接腳(read enable pin),且當該快閃記憶體控制器對該至少一部分區塊進行該冗餘讀取操作的過程中,該讀取致能接腳係關閉以使得該快閃記憶體控制器不會自該快閃記憶體模組接收到該快閃記憶體模組對該至少一部分區塊所讀取的資料。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108102728A TWI746927B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN201910238895.5A CN111475426B (zh) | 2019-01-24 | 2019-03-27 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
US16/683,191 US11074174B2 (en) | 2019-01-24 | 2019-11-13 | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations |
US17/355,192 US11487655B2 (en) | 2019-01-24 | 2021-06-23 | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108102728A TWI746927B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202028967A TW202028967A (zh) | 2020-08-01 |
TWI746927B true TWI746927B (zh) | 2021-11-21 |
Family
ID=71733789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108102728A TWI746927B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11074174B2 (zh) |
CN (1) | CN111475426B (zh) |
TW (1) | TWI746927B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494101B2 (en) * | 2020-10-14 | 2022-11-08 | Western Digital Technologies, Inc. | Storage system and method for time-duration-based efficient block management and memory access |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI623878B (zh) * | 2017-07-07 | 2018-05-11 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法以及儲存控制器 |
TW201828294A (zh) * | 2017-01-18 | 2018-08-01 | 南韓商愛思開海力士有限公司 | 半導體設備、記憶體模組及其操作方法 |
CN108932175A (zh) * | 2017-05-24 | 2018-12-04 | 光宝电子(广州)有限公司 | 固态储存装置的控制方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101826140B1 (ko) * | 2011-08-04 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 |
JP2015201057A (ja) * | 2014-04-09 | 2015-11-12 | 富士通株式会社 | 制御装置、再圧縮制御方法、及びプログラム |
US9910676B1 (en) * | 2015-09-22 | 2018-03-06 | Microsemi Solutions (U.S.), Inc. | Hardware based XIP exit sequence to enable XIP mode operation on SPI boot interface |
US10110255B2 (en) * | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
JP2019046530A (ja) * | 2017-09-07 | 2019-03-22 | 東芝メモリ株式会社 | メモリシステム |
-
2019
- 2019-01-24 TW TW108102728A patent/TWI746927B/zh active
- 2019-03-27 CN CN201910238895.5A patent/CN111475426B/zh active Active
- 2019-11-13 US US16/683,191 patent/US11074174B2/en active Active
-
2021
- 2021-06-23 US US17/355,192 patent/US11487655B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201828294A (zh) * | 2017-01-18 | 2018-08-01 | 南韓商愛思開海力士有限公司 | 半導體設備、記憶體模組及其操作方法 |
CN108932175A (zh) * | 2017-05-24 | 2018-12-04 | 光宝电子(广州)有限公司 | 固态储存装置的控制方法 |
TWI623878B (zh) * | 2017-07-07 | 2018-05-11 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法以及儲存控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN111475426A (zh) | 2020-07-31 |
CN111475426B (zh) | 2022-12-30 |
US11487655B2 (en) | 2022-11-01 |
US20210318953A1 (en) | 2021-10-14 |
US20200242024A1 (en) | 2020-07-30 |
TW202028967A (zh) | 2020-08-01 |
US11074174B2 (en) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11630768B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
CN110874187A (zh) | 数据储存装置与数据处理方法 | |
TWI545571B (zh) | 存取快閃記憶體的方法及相關的控制器與記憶裝置 | |
CN111399751B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
US11194502B1 (en) | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module | |
TWI759580B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN111159069B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN113903383A (zh) | 存储装置、快闪存储器控制器及其存取方法 | |
TWI746927B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI768336B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
US11249676B2 (en) | Electronic device, flash memory controller and associated control method | |
TW202234253A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |