TW202028988A - 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 - Google Patents
管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 Download PDFInfo
- Publication number
- TW202028988A TW202028988A TW108102679A TW108102679A TW202028988A TW 202028988 A TW202028988 A TW 202028988A TW 108102679 A TW108102679 A TW 108102679A TW 108102679 A TW108102679 A TW 108102679A TW 202028988 A TW202028988 A TW 202028988A
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- memory controller
- time
- block
- time information
- 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
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭露一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一時間管理電路。該唯讀記憶體係用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,且該時間管理電路用以產生目前的一時間資訊。在該快閃記憶體控制器的操作中,當該微處理器將資料寫入至一特定區塊的最後多個資料頁時,該微處理器將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
Description
本發明係有關於快閃記憶體控制器。
隨著快閃記憶體技術的演進,快閃記憶體晶片中之記憶單元由平面排列的方式改變為多層堆疊的模式,以使得單一晶片可以包含更多的記憶單元,以提升快閃記憶體晶片的容量。然而,上述立體快閃記憶體(3D flash memory)會遭遇到資料保存(data retention)上的問題,亦即當資料寫入到快閃記憶體晶片後不久,其資料品質便會大幅下滑,而可能使得資料無法被正確地讀取。因此,如何提出一種有效率的管理方法來避免資料保存上的問題是一個重要的技術方向。
因此,本發明提出了一種管理快閃記憶體的方法,其可以有效率且快速地尋找出即將發生資料保存問題的區塊來做適切的處理,以解決先前技術中的問題。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一時間管理電路。該唯讀記憶體係用來儲存一程式碼,該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取,且該時間管理電路用以產生目前的一時間資訊。在該快閃記憶體控制器的操作中,當該微處理器將資料寫入至一特定區塊的最後多個資料頁時,該微處理器將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
在本發明的另一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該方法包含有以下步驟:產生目前的一時間資訊;以及當資料被寫入至該快閃記憶體模組的一特定區塊的最後多個資料頁時,將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
在本發明的另一個實施例中,揭露了一種電子裝置,包含有一快閃記憶體模組以及一快閃記憶體控制器。該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁;以及該快閃記憶體控制器係用以存取該快閃記憶體模組,其中該快閃記憶體控制器產生目前的一時間資訊;以及當該快閃記憶體控制器將資料寫入至該快閃記憶體模組的一特定區塊的最後多個資料頁時,該快閃記憶體控制器將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
第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所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(block),而快閃記憶體控制器110對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)模組。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。此外,時間管理電路119透過快閃記憶體控制器的一特定接腳N1與主裝置的一特定接腳N2連接。緩衝記憶體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型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
在第2圖所繪示的架構僅是簡單說明立體快閃記憶體的基本架構,而在實際的製造上會具有更多層的堆疊以達到更高密度的儲存容量。由於立體快閃記憶體採用第2圖所示的堆疊架構,因此資料在儲存上會遭遇到很嚴重的資料保存(data retention)問題,亦即當資料寫入到區塊200之後,經過了一段時間其中的記憶單元便會遭遇資料寫入位準變化、臨界電壓漂移…等等資料品質上的問題,因而使得區塊200內的資料在後續讀取時可能會遭遇的解碼上的困難、或甚至無法成功完成解碼而造成資料遺失。因此,本實施例提出了一種快閃記憶體模組120的管理方法,其可以在快閃記憶體控制器110中設置一時間管理電路119,以有效率地記錄每一個區塊的時間資訊,以供進行品質判斷來進行後續適合的處理,其具體操作內容詳述如下。
第3圖繪示了區塊200包含了多個資料頁P0~PN的示意圖。當快閃記憶體控制器110需要將來自主裝置130的資料、或是將快閃記憶體模組120內其他區塊的資料、及/或將快閃記憶體控制器110本身所暫存的資料寫入至區塊200時,快閃記憶體控制器110會依序將這些資料由第一個資料頁P0依序往下寫入至最後一個資料頁PN。在本實施例中,當快閃記憶體控制器110準備將資料寫入至最後一個資料頁PN、或是準備將資料寫入至最後多個資料頁時,時間管理電路119會透過特定接腳N1發送一個請求指令至主裝置130中,以要求主裝置130提供目前的時間資訊,而由於主裝置130本身有連接到作業系統,故可以提供目前的時間資訊(例如,月、日、分、秒等資訊)至時間管理電路119。在時間管理電路119接收到時間資訊之後,便會將此時間資訊提供給微處理器112,以供微處理器112透過編碼器132的處理後連同其他資料一起寫入至資料頁PN中。
由於區塊200的最後一個資料頁PN所記錄的是絕對時間(例如,時間戳記),因此,當後續快閃記憶體控制器110與快閃記憶體模組120處於閒置狀態時,快閃記憶體控制器110便可以對每一個區塊進行掃描,並透過直接讀取每一個區塊的最後一個資料頁PN來取得該區塊在完成寫入操作時的時間點。之後,快閃記憶體控制器110由時間管理電路119即時由主裝置130所取得的目前時間,以判斷每一個區塊內的資料已經儲存了多久的時間(亦即,每一個區塊在完成寫入操作至目前進行區塊掃描的時間差距)。在本實施例中,若是一區塊內的資料的儲存時間高於一臨界值時(例如,區塊完成寫入操作之後已過了一個月或幾個星期),則快閃記憶體控制器110便可以判斷該區塊可能會遭遇資料保存上的問題,因此,將該區塊排入到垃圾收集(garbage collection)操作的程序中,並在後續適當的時間點將該區塊內的有效資料搬移至另一區塊中,並將該區塊的內容抹除。
如上所述,透過本實施例的管理方法,快閃記憶體控制器110可以簡單有效率地得知每一個區塊的內的資料已經儲存了多久的時間,以供判斷每一個區塊是否即將遭遇到資料保存上的問題,並做出適當的後續處置。
在本發明的另一個實施例中,除了在每一個區塊的最後一個資料頁PN寫入時間資訊之外,微處理器112另建立如第4圖所示的一時間資訊對照表400,其記錄了每一個區塊(例如,圖4的區塊1、區塊2、區塊3、區塊4)所被寫入的時間資訊(例如,圖4的時間資訊1、時間資訊2、時間資訊3、時間資訊4)。在本實施例中,時間資訊對照表400可以暫存在一外部的動態隨機存取記憶體或是快閃記憶體控制器110內部的緩衝記憶體116中,以供快閃記憶體控制器110在不需要讀取快閃記憶體模組120之每一個區塊的情形下,快速地判斷每一個區塊的內的資料已經儲存了多久的時間,並進行適當的後續處置。
另外,當快閃記憶體控制器110準備關機或是記憶體需要釋放空間時,時間資訊對照表400可以被寫入到快閃記憶體模組120中的適當位址,以避免資料遺失。
在另一實施例中,為了更有效率地使用記憶體空間,時間資訊對照表400的內容可以被整合至其他的對照表/映射表中,例如邏輯位址至實體位址映射表(logical address to physical address mapping table)或是實體位址至邏輯位址映射表(physical address to logical address mapping table)中。
第5圖為依據本發明一第二實施例之一種記憶裝置500的示意圖。記憶裝置100包含有一快閃記憶體模組120以及一快閃記憶體控制器510,且快閃記憶體控制器510用來存取快閃記憶體模組120。在本實施例中,快閃記憶體控制器510包含一微處理器112、一唯讀記憶體112M、一控制邏輯114、一緩衝記憶體116、一介面邏輯118、一計時器517以及一時間管理電路519。其中唯讀記憶體112M儲存一程式碼112C,且控制邏輯114包含了一編碼器132以及一解碼器134。第5圖中與第1圖具有相同編號的元件會具有類似的操作,因此其細節便不再贅述,故以下說明僅針對計時器517以及時間管理電路519的部分。
在本實施例中,時間管理電路519可以被整合在微處理器112中,且當快閃記憶體控制器510上電時(亦即,記憶裝置500開機且快閃記憶體控制器510開始與主裝置130連接時),時間管理電路519會自主裝置130接收初始時間(亦即快閃記憶體控制器510上電的時間點),而由於主裝置130本身有連接到作業系統,故可以提供初始時間(例如,月、日、分、秒等資訊)至時間管理電路519。之後,計時器517便開始持續計算快閃記憶體控制器510上電後所經過的時間。
同時參考第3圖所繪示的區塊200,當快閃記憶體控制器510需要將來自主裝置130的資料、或是將快閃記憶體模組120內其他區塊的資料、及/或將快閃記憶體控制器510本身所暫存的資料寫入至區塊200時,快閃記憶體控制器510會依序將這些資料由第一個資料頁P0依序往下寫入至最後一個資料頁PN。在本實施例中,當快閃記憶體控制器510準備將資料寫入至最後一個資料頁PN、或是準備將資料寫入至最後多個資料頁時,時間管理電路519將初始時間加上目前計時器517所計算之快閃記憶體控制器510上電後所經過的時間,以產生一時間資訊。在時間管理電路119計算出時間資訊之後,便會將此資訊提供給微處理器112,以供微處理器112透過編碼器132的處理後連同其他資料一起寫入至資料頁PN中。
在第5圖所示的實施例中,時間管理電路519只有在快閃記憶體控制器510上電時才會從主裝置130取得絕對時間資訊(亦即,上述的初始時間),而之後都是透過本身的計時器517來計算出當下的絕對時間。
由於區塊200的最後一個資料頁PN所記錄的是絕對時間(透過初始時間計時器517的內容所計算出的絕對時間),因此,當後續快閃記憶體控制器510與快閃記憶體模組120處於閒置狀態時,快閃記憶體控制器510便可以對每一個區塊進行掃描,並透過直接讀取每一個區塊的最後一個資料頁PN來取得該區塊在完成寫入操作時的時間點。之後,時間管理電路519再由初始時間加上計時器517的內容來計算出目前的時間,以判斷每一個區塊內的資料已經儲存了多久的時間(亦即,每一個區塊在完成寫入操作至目前進行區塊掃描的時間差距)。在本實施例中,若是一區塊內的資料的儲存時間高於一臨界值時(例如,區塊完成寫入操作之後已過了一個月或幾個星期),則快閃記憶體控制器510便可以判斷該區塊可能會遭遇資料保存上的問題,因此,將該區塊排入到垃圾收集操作的程序中,並在後續適當的時間點將該區塊內的有效資料搬移至另一區塊中,並將該區塊抹除。
如上所述,透過本實施例的管理方法,快閃記憶體控制器510可以簡單有效率地得知每一個區塊的內的資料已經儲存了多久的時間,以供判斷每一個區塊是否即將遭遇到資料保存上的問題,並做出適當的後續處置。
在第5圖所示的實施例中,微處理器112亦可建立如第4圖所示的一時間資訊對照表400,或是將時間資訊對照表400的內容整合至其他的對照表/映射表中,例如邏輯位址至實體位址映射表(logical address to physical address mapping table)或是實體位址至邏輯位址映射表(physical address to logical address mapping table)中。
第6圖為依據本發明一第三實施例之一種記憶裝置600的示意圖。記憶裝置100包含有一快閃記憶體模組120以及一快閃記憶體控制器610,且快閃記憶體控制器610用來存取快閃記憶體模組120。在本實施例中,快閃記憶體控制器610包含一微處理器112、一唯讀記憶體112M、一控制邏輯114、一緩衝記憶體116、一介面邏輯118、一計時器617以及一時間管理電路619。其中唯讀記憶體112M儲存一程式碼112C,且控制邏輯114包含了一編碼器132以及一解碼器134。第6圖中與第1圖具有相同編號的元件會具有類似的操作,因此其細節便不再贅述,故以下說明僅針對計時器617以及時間管理電路619的部分。
在本實施例中,時間管理電路619可以被整合在微處理器112中,且當快閃記憶體控制器610上電時(亦即,記憶裝置600開機且快閃記憶體控制器610開始與主裝置130連接時),時間管理電路619會在適合的時間點取得一基準時間,且計時器617開始持續計算快閃記憶體控制器610上電後所經過的時間。
在本實施例中,時間管理電路619並不會由主裝置130取得任何絕對的時間資訊,而是由快閃記憶體模組120所儲存的內容來估計出目前的時間。舉例來說,參考第7圖所示,假設快閃記憶體控制器610在時間點t0時斷電,且快閃記憶體控制器610在時間點t1時上電,則微處理器112可以讀取時間點t0前最後一個完成寫入操作的區塊710內所儲存的時間資訊712,並再估計出用以表示時斷電時間長度(亦即,(t1-t0))的一預測時間,最後將時間資訊712加上該預測時間以得到該基準時間。在一實施例中,由於快閃記憶體控制器610本身並無法準確得知斷電時間長度(亦即,(t1-t0)),因此,快閃記憶體控制器610可以透過讀取區塊710的資料內容,並根據區塊710的資料品質來估計出該預測時間,其中資料品質越差代表著資料儲存的時間越久,亦即斷電時間長度越長。舉例來說,微處理器112可以讀取區塊710的資料,並根據該資料的位元錯誤率來產生該預測時間,其中位元錯誤率越高所估計出的該預測時間越長;微處理器112也可讀取區塊710的資料並判斷區塊710內之記憶單元的電壓分佈來產生該預測時間,其中電壓分佈越分散所估計出的該預測時間越長;或是微處理器112也可讀取區塊710的資料並判斷區塊710內之記憶單元的臨界電壓偏移程度來產生該預測時間,其中臨界電壓偏移量越高所估計出的該預測時間越長。
同時參考第3圖所繪示的區塊200,當快閃記憶體控制器610需要將來自主裝置130的資料、或是將快閃記憶體模組120內其他區塊的資料、及/或將快閃記憶體控制器610本身所暫存的資料寫入至區塊200時,快閃記憶體控制器610會依序將這些資料由第一個資料頁P0依序往下寫入至最後一個資料頁PN。在本實施例中,當快閃記憶體控制器610準備將資料寫入至最後一個資料頁PN、或是準備將資料寫入至最後多個資料頁時,時間管理電路619將基準時間加上目前計時器617所計算之快閃記憶體控制器610上電後所經過的時間,以產生一時間資訊。在時間管理電路619計算出時間資訊之後,便會將此資訊提供給微處理器612,以供微處理器112透過編碼器132的處理後連同其他資料一起寫入至資料頁PN中。
當後續快閃記憶體控制器610與快閃記憶體模組120處於閒置狀態時,快閃記憶體控制器610可以對每一個區塊進行掃描,並透過直接讀取每一個區塊的最後一個資料頁PN來取得該區塊在完成寫入操作時的時間點。之後,時間管理電路619再由基準時間加上計時器617的內容來計算出目前的時間,以判斷每一個區塊內的資料已經儲存了多久的時間(亦即,每一個區塊在完成寫入操作至目前進行區塊掃描的時間差距)。在本實施例中,若是一區塊內的資料的儲存時間高於一臨界值時(例如,區塊完成寫入操作之後已過了一個月或幾個星期),則快閃記憶體控制器610便可以判斷該區塊可能會遭遇資料保存上的問題,因此,將該區塊排入到垃圾收集操作的程序中,並在後續適當的時間點將該區塊內的有效資料搬移至另一區塊中,並將該區塊抹除。
如上所述,透過本實施例的管理方法,快閃記憶體控制器610可以簡單有效率地得知每一個區塊的內的資料已經儲存了多久的時間,以供判斷每一個區塊是否即將遭遇到資料保存上的問題,並做出適當的後續處置。
第8圖為根據本發明一實施例之一種管理一快閃記憶體模組的方法的流程圖。參考以上實施例所述的內容,流程如下所述。
步驟800:流程開始。
步驟802:產生目前的一時間資訊。
步驟804:當資料被寫入至該快閃記憶體模組的一特定區塊的最後多個資料頁時,將該時間資訊寫入至該最後多個資料頁中的其一。
步驟806:建立/更新一對照表/映射表以儲存每一個區塊及對應的時間資訊。
步驟808:根據每一個區塊的時間資訊來判斷該區塊的資料品質,並據以決定是否將該區塊的資料搬移至其他區塊。
簡易歸納本發明,在本發明的快閃記憶體控制器中,透過記錄每一個區塊的時間資訊,可以在後續快速且有效率地判斷資料保存時間是否過長而可能導致資料品質問題,並據以提前進行適當的後續操作以避免資料遺失的問題。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100、500、600:記憶裝置
110、510、610:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
119、519、619:時間管理電路
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
N1、N2:特定接腳
200、710:區塊
202:浮閘電晶體
BL1、BL2、BL3:位元線
WL0~WL2、WL4~WL6:字元線
P0、P1、P2、P3、P(N-1)、PN:資料頁
400:時間資訊對照表
517、617:計時器
712:時間資訊
800~808:步驟
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之快閃記憶體模組中一區塊的示意圖
第3圖為區塊與資料頁的示意圖。
第4圖為根據本發明一實施例之時間資訊對照表的示意圖。
第5圖為依據本發明一第二實施例之一種記憶裝置的示意圖。
第6圖為依據本發明一第三實施例之一種記憶裝置的示意圖。
第7圖為快閃記憶體控制器斷電與上電的時序圖。
第8圖為根據本發明一實施例之一種管理一快閃記憶體模組的方法的流程圖。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
119:時間管理電路
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
N1、N2:特定接腳
Claims (20)
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有: 一唯讀記憶體,用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取; 一時間管理電路,耦接於該微處理器,用以產生目前的一時間資訊; 其中當該微處理器將資料寫入至一特定區塊的最後多個資料頁時,該微處理器將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該微處理器將該時間資訊連同該資料一併寫入至該特定區塊的最後一個資料頁。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該微處理器另建立一時間資訊對照表,其記錄了每一個區塊所被寫入的該時間資訊,並將該時間資訊對照表暫存在一動態隨機存取記憶體或是該快閃記憶體控制器內部的一緩衝記憶體中。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中在該特定區塊的所有資料頁都完成寫入操作之後,該微處理器對一邏輯位址至實體位址映射表(logical address to physical address mapping table)進行更新,並將該時間資訊寫入至該邏輯位址至實體位址映射表中。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該時間管理電路根據自一主裝置所取的時間來產生該時間資訊。
- 如申請專利範圍第5項所述之快閃記憶體控制器,其中該時間管理電路透過該快閃記憶體控制器的一特定接腳來與該主裝置連接,且該時間管理電路可以即時透過該特定接腳以自該主裝置取得目前時間,以供產生該時間資訊。
- 如申請專利範圍第5項所述之快閃記憶體控制器,其中該時間管理電路只有在該快閃記憶體控制器上電時才會自該主裝置取得一初始時間,且該快閃記憶體控制器另包含有: 一計時器,用以計算該快閃記憶體控制器上電後所經過的時間; 其中該時間管理電路將自該主裝置取得的該初始時間加上該計時器所計算之該快閃記憶體控制器上電後所經過的時間,以產生該時間資訊。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該時間管理電路根據該快閃記憶體控制器所產生的一基準時間來產生該時間資訊。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該基準時間係在該快閃記憶體控制器上電時所產生,且該快閃記憶體控制器另包含有: 一計時器,用以計算該快閃記憶體控制器上電後所經過的時間; 其中該時間管理電路將該基準時間加上該計時器所計算之該快閃記憶體控制器上電後所經過的時間,以產生該時間資訊。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該微處理器讀取該快閃記憶體控制器上電前最後一個有寫入時間資訊的區塊,並根據該區塊所記錄的時間資訊以產生該基準時間。
- 如申請專利範圍第10項所述之快閃記憶體控制器,其中該微處理器根據該區塊所記錄的時間資訊加上一預測時間以產生該基準時間。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中該微處理器該區塊的資料品質來產生該預測時間。
- 如申請專利範圍第12項所述之快閃記憶體控制器,其中該微處理器讀取該區塊的資料,並根據該資料的位元錯誤率來產生該預測時間。
- 如申請專利範圍第12項所述之快閃記憶體控制器,其中該微處理器讀取該區塊的資料並判斷該區塊內之記憶單元的電壓分佈或是臨界電壓偏移程度,並據以產生該預測時間。
- 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁,且該方法包含有: 產生目前的一時間資訊;以及 當資料被寫入至該快閃記憶體模組的一特定區塊的最後多個資料頁時,將該時間資訊寫入至該最後多個資料頁中的其一。
- 如申請專利範圍第15項所述之方法,其中將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一的步驟包含有: 將該時間資訊連同該資料一併寫入至該特定區塊的最後一個資料頁。
- 如申請專利範圍第15項所述之快閃記憶體控制器,其中產生目前的該時間資訊的步驟包含有: 根據自一主裝置所取的時間來產生該時間資訊。
- 一種電子裝置,包含有: 一快閃記憶體模組,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含多個資料頁;以及 一快閃記憶體控制器,用以存取該快閃記憶體模組; 其中該快閃記憶體控制器產生目前的一時間資訊;以及當該快閃記憶體控制器將資料寫入至該快閃記憶體模組的一特定區塊的最後多個資料頁時,該快閃記憶體控制器將該時間管理電路所產生的該時間資訊寫入至該最後多個資料頁中的其一。
- 如申請專利範圍第18項所述之電子裝置,其中該快閃記憶體控制器將該時間資訊連同該資料一併寫入至該特定區塊的最後一個資料頁。
- 如申請專利範圍第18項所述之電子裝置,其中該快閃記憶體控制器根據自一主裝置所取的時間來產生該時間資訊。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108102679A TWI696074B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN201910125843.7A CN111475425B (zh) | 2019-01-24 | 2019-02-20 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
CN202211155661.2A CN115658556A (zh) | 2019-01-24 | 2019-02-20 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
US16/683,211 US11409650B2 (en) | 2019-01-24 | 2019-11-13 | Method for managing flash memory module and associated flash memory controller and electronic device |
US17/853,888 US11630768B2 (en) | 2019-01-24 | 2022-06-29 | Method for managing flash memory module and associated flash memory controller and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108102679A TWI696074B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI696074B TWI696074B (zh) | 2020-06-11 |
TW202028988A true TW202028988A (zh) | 2020-08-01 |
Family
ID=71732530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108102679A TWI696074B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11409650B2 (zh) |
CN (2) | CN111475425B (zh) |
TW (1) | TWI696074B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102671736B1 (ko) * | 2019-05-31 | 2024-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20210044564A (ko) * | 2019-10-15 | 2021-04-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 가비지 컬렉션 방법 |
US11573720B2 (en) * | 2020-08-19 | 2023-02-07 | Micron Technology, Inc. | Open block family duration limited by time and temperature |
TWI733568B (zh) * | 2020-08-27 | 2021-07-11 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
CN112558871B (zh) * | 2020-12-11 | 2022-12-20 | 成都佰维存储科技有限公司 | 闪存数据保存分析方法、装置、可读存储介质及电子设备 |
TWI824843B (zh) * | 2022-11-24 | 2023-12-01 | 慧榮科技股份有限公司 | 記憶裝置的控制方法與相關的快閃記憶體控制器與記憶裝置 |
CN117666972B (zh) * | 2024-02-01 | 2024-05-14 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771521B1 (ko) | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
JP5489434B2 (ja) * | 2008-08-25 | 2014-05-14 | 株式会社日立製作所 | フラッシュメモリ搭載ストレージ装置 |
JP5697796B2 (ja) * | 2011-08-29 | 2015-04-08 | 株式会社日立製作所 | 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置 |
TWI473103B (zh) | 2011-09-14 | 2015-02-11 | 威剛科技股份有限公司 | 快閃記憶體儲存裝置及其不良儲存區域的判定方法 |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
TWI566253B (zh) * | 2015-09-02 | 2017-01-11 | 慧榮科技股份有限公司 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
TWI579696B (zh) * | 2015-11-06 | 2017-04-21 | 群聯電子股份有限公司 | 資料重建方法與系統及其記憶體控制電路單元 |
TWI576699B (zh) * | 2016-03-31 | 2017-04-01 | 慧榮科技股份有限公司 | 紀錄資料區塊的使用時間的方法及其裝置 |
US20170285961A1 (en) * | 2016-04-05 | 2017-10-05 | Alibaba Group Holding Limited | 3d stackable hybrid phase change memory with improved endurance and non-volatility |
US9977597B2 (en) * | 2016-05-10 | 2018-05-22 | Seagate Technology Llc | Enhanced read recovery based on write time information |
CN106598484A (zh) * | 2016-11-17 | 2017-04-26 | 华为技术有限公司 | 数据的存储方法、闪存芯片以及存储装置 |
JP2019169101A (ja) * | 2018-03-26 | 2019-10-03 | 東芝メモリ株式会社 | 電子機器、コンピュータシステム、および制御方法 |
TWI663512B (zh) * | 2018-05-17 | 2019-06-21 | 慧榮科技股份有限公司 | 重讀頁面資料方法 |
KR102637478B1 (ko) * | 2018-12-05 | 2024-02-15 | 삼성전자주식회사 | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 |
TWI759580B (zh) * | 2019-01-29 | 2022-04-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
KR102671402B1 (ko) * | 2019-04-16 | 2024-05-31 | 삼성전자주식회사 | 문턱전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 |
US11199999B2 (en) * | 2020-01-30 | 2021-12-14 | Micron Technology, Inc. | Management of write operations in a non-volatile memory device using a variable pre-read voltage level |
TWI722938B (zh) * | 2020-07-06 | 2021-03-21 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
-
2019
- 2019-01-24 TW TW108102679A patent/TWI696074B/zh active
- 2019-02-20 CN CN201910125843.7A patent/CN111475425B/zh active Active
- 2019-02-20 CN CN202211155661.2A patent/CN115658556A/zh active Pending
- 2019-11-13 US US16/683,211 patent/US11409650B2/en active Active
-
2022
- 2022-06-29 US US17/853,888 patent/US11630768B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11409650B2 (en) | 2022-08-09 |
CN111475425A (zh) | 2020-07-31 |
US11630768B2 (en) | 2023-04-18 |
CN111475425B (zh) | 2022-10-14 |
US20220334960A1 (en) | 2022-10-20 |
US20200242025A1 (en) | 2020-07-30 |
CN115658556A (zh) | 2023-01-31 |
TWI696074B (zh) | 2020-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI696074B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US20150113237A1 (en) | Data storing system and operating method thereof | |
TWI626541B (zh) | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TWI722938B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI734063B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
TWI759580B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TW202137215A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI768336B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI852008B (zh) | 快閃記憶體控制器與電子裝置 | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TW202234253A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI787627B (zh) | 電子裝置、快閃記憶體控制器及其存取方法 | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI523016B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
TWI760094B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI831297B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 |