TW202113850A - 記憶體系統以及記憶體操作方法 - Google Patents
記憶體系統以及記憶體操作方法 Download PDFInfo
- Publication number
- TW202113850A TW202113850A TW108133277A TW108133277A TW202113850A TW 202113850 A TW202113850 A TW 202113850A TW 108133277 A TW108133277 A TW 108133277A TW 108133277 A TW108133277 A TW 108133277A TW 202113850 A TW202113850 A TW 202113850A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- page
- block
- version
- controller
- Prior art date
Links
Images
Abstract
本揭示文件提供一種記憶體系統以及記憶體操作方法。記憶體系統包含一快閃記憶體晶片以及一控制器。控制器耦接該快閃記憶體晶片,其中該控制器經配置以自一檔案系統接收一第一版本之一資料,以儲存該第一版本之該資料至該快閃記憶體晶片之一第一頁面;以及響應於該資料之一第二版本以編程該第二版本之該資料於該第一頁面,其中該第二版本新於該第一版本。
Description
本揭示文件係有關於一種記憶體及其操作方法,且特別是有關於一種記憶體系統及操作記憶體方法。
基於快閃記憶體之硬體上的特性,對於資料的寫入(program)及抹除(erase)次數方面需要嚴謹的管理。一方面來說,在快閃記憶體中頻繁地讀寫時,往往會加速電子元件的使用壽命下降。另一方面,為提升快閃記憶體的資料密度,多級單元(multi-level cell)的架構亦被提出,使得一個記憶單元中可以儲存多個位元。在多級單元的架構中,雖然可以讓可儲存的資料量上升而降低了硬體成本,然而,這樣的架構卻相對地提高了錯誤更正碼(error correcting code)的要求。
有鑑於此,基於快閃記憶體的電子特性條件下,如何有效地克服使用壽命下降及降低錯誤更正的要求,係亟需解決的問題。
本案之一態樣是在提供一種記憶體系統,包含一快閃記憶體晶片以及一控制器。控制器耦接該快閃記憶體晶片,其中該控制器經配置以自一檔案系統接收一第一版本之一資料,以儲存該第一版本之該資料至該快閃記憶體晶片之一第一頁面;以及響應於該資料之一第二版本以編程該第二版本之該資料於該第一頁面,其中該第二版本新於該第一版本。
本案之一態樣是在提供一種記憶體操作方法。記憶體操作方法包含以下步驟:自一檔案系統接收一第一版本之一資料,以透過一控制器儲存該第一版本之該資料至一快閃記憶體晶片之一第一頁面;以及響應於該資料之一第二版本,透過該控制器編程該第二版本之該資料於該第一頁面,其中該第二版本新於該第一版本。
100‧‧‧記憶體系統
110‧‧‧控制器
120‧‧‧檔案系統
130‧‧‧快閃記憶體轉換層
131‧‧‧寫入資料頻率分析器
133‧‧‧記憶體回收器
135‧‧‧干擾處理器
140‧‧‧記憶體技術裝置層
141‧‧‧編程程序
143‧‧‧讀取程序
145‧‧‧抹除程序
150‧‧‧快閃記憶體晶片
151‧‧‧一般區塊範圍
153‧‧‧可重寫區塊範圍
200‧‧‧區塊
210、220、230‧‧‧頁面
RW0、RW1、RW2、RW3、RW4‧‧‧重寫指令
WL0、WL1、WL2‧‧‧字元線
A1~A4、B1~B4、C1‧‧‧資料
Vt‧‧‧臨界電壓
Vp01、Vp02、Vp03、Vp04‧‧‧電壓
Vp11‧‧‧電壓
Vp21‧‧‧電壓
Vr1~Vr4‧‧‧讀取電壓
S410~S440、S510~S540、S610~S660‧‧‧步驟
為讓本案之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下:第1圖係根據本案之一些實施例所繪示之一種記憶體系統之架構示意圖。
第2圖係根據第1圖之快閃記憶體系統所繪示之重寫資料至快閃記憶體晶片中一區塊之示意圖。
第3A圖係根據本案之一些實施例所繪示於編程資
料至第2圖之區塊中的頁面的臨界電壓與記憶胞數量之示意圖。
第3B圖係根據本案之一些實施例所繪示於編程資料至第2圖之區塊中的頁面的臨界電壓與記憶胞數量之示意圖。
第3C圖係根據本案之一些實施例所繪示於編程資料至第2圖之區塊中的頁面的臨界電壓與記憶胞數量之示意圖。
第4圖係根據本案之一些實施例所繪示之重新寫入方法之步驟流程圖。
第5圖係根據本案之一些實施例所繪示之執行記憶體回收之步驟流程圖。
第6圖係根據本案之一些實施例所繪示之編程干擾偵測之步驟流程圖。
以下揭示提供許多不同實施例或例證用以實施本案的不同特徵。特殊例證中的元件及配置在以下討論中被用來簡化本揭示。所討論的任何例證只用來作解說的用途,並不會以任何方式限制本案或其例證之範圍和意義。此外,本揭示在不同例證中可能重複引用數字符號且/或字母,這些重複皆為了簡化及闡述,其本身並未指定以下討論中不同實施例且/或配置之間的關係。
在全篇說明書與申請專利範圍所使用之用
詞(terms),除有特別註明外,通常具有每個用詞使用在此領域中、在此揭露之內容中與特殊內容中的平常意義。某些用以描述本揭露之用詞將在此說明書的別處討論,以提供本領域技術人員在有關本揭露之描述上額外的引導。
關於本文中所使用之『耦接』或『連接』,均可指二或多個元件相互直接作實體或電性接觸,或是相互間接作實體或電性接觸,而『耦接』或『連接』還可指二或多個元件相互操作或動作。
在本文中,使用第一、第二與第三等等之詞彙,是用於描述各種元件、組件、區域、層與/或區塊是可以被理解的。但是這些元件、組件、區域、層與/或區塊不應該被這些術語所限制。這些詞彙只限於用來辨別單一元件、組件、區域、層與/或區塊。因此,在下文中的第一元件、組件、區域、層與/或區塊也可被稱為第二元件、組件、區域、層與/或區塊,而不脫離本案的本意。
值得一提的是,在本揭示文件中,用語「儲存」、「寫入」及「編程」可交換地使用,在意思表示上應被理解為相同意義而不致產生歧異。
請參照第1圖,其係根據本案之一些實施例所繪示之一種記憶體系統100之架構示意圖。如第1圖所示,記憶體系統100包含控制器110、檔案系統(File Systems)120、快閃記憶體轉換層(Flash Translation Layer)130、記憶體技術裝置層(Memory Technology
Device Layer)140、以及快閃記憶體晶片(Flash Memory Chips)150。在一些實施例中,控制器110用於操作檔案系統120、快閃記憶體轉換層130、記憶體技術裝置層140、以及快閃記憶體晶片150之運作。上述之操作可以為但不限於硬體操作、韌體操作、軟體操作及其組合。
控制器110耦接於快閃記憶體晶片150。在一實施例中,控制器110經配置以操作快閃記憶體晶片150,以執行快閃記憶體晶片150的編程(program)、讀取(read)、以及抹除(erase)。在另一些實施例中,控制器110經配置以管理快閃記憶體晶片150中的空間分配使用以及抹寫次數(program/erase cycle)。控制器110可以為但不限於封裝在記憶體晶片中的控制電路或控制晶片。
在一實施例中,快閃記憶體晶片150為反及閘型(NAND)快閃記憶體晶片。快閃記憶體晶片150可以為但不限於使用單級單元(single-level cell,SLC)、多級單元(multi-level,MLC)、三級單元(triple-level cell,TLC)、四級單元(quad-level cell,QLC)架構之記憶體晶片。
記憶體技術裝置層140經配置以操作於快閃記憶體轉換層130與快閃記憶體晶片150。舉例來說,記憶體技術裝置層140可以為但不限於用於在快閃記憶體轉換層130與快閃記憶體晶片150之間溝通的韌體。在一些實施例中,記憶體技術裝置層140用以執行編程程序(program procedure)141、讀取程序(read procedure)143、
以及抹除程序(erase procedure)145。在一些實施例中,記憶體技術裝置層140中儲存可重寫區塊表(rewritable block table),可重寫區塊表用以記錄各頁面已被執行資料重寫的次數。此些程序將於後續篇幅作詳細說明。
快閃記憶體轉換層130經配置以對檔案系統120的資料執行相關的軟體操作。在一些實施例中,快閃記憶體轉換層130包含寫入資料頻率分析器(write hot/cold data analyzer)131、記憶體回收器(garbage collector)133、以及干擾處理器(disturbance controller)135。
寫入資料頻率分析器131用以分析將寫入快閃記憶體晶片150的資料類型,例如經常存取資料(或熱資料(hot data))以及不常存取資料(或冷資料(cold data))。寫入資料頻率分析器131判斷資料類型的方式可以為但不限於使用雜湊函數(hash function)、最近最少使用(least recently used)等方法,本揭示文件不限於此,其他可判斷冷資料/熱資料的方法亦涵蓋在本揭示文件之範疇。
快閃記憶體晶片150包含一般區塊範圍(traditional block region)151以及可重寫區塊範圍(rewritable block region)153。在一些實施例中,當寫入資料頻率分析器131分析出資料為不常存取資料,控制器110透過記憶體技術裝置層140之編程程序141將資料儲存於一般區塊範圍151。在另一些實施例中,當寫入
資料頻率分析器131分析出資料為經常存取資料,控制器110透過記憶體技術裝置層140之編程程序141將資料儲存於可重寫區塊範圍153。
記憶體回收器133經配置以管理快閃記憶體晶片150的區塊抹除。在一些實施例中,記憶體回收器133可以為一軟體程序,而由控制器110來執行軟體程序並對快閃記憶體晶片150施加電壓以執行資料抹除。
干擾處理器135經配置以管理快閃記憶體晶片150中的各頁面之受干擾(disturb)情況。在一些實施例中,干擾處理器135可以為一軟體程序,而由控制器110來執行軟體程序以處理各頁面的干擾問題。
請參照第2圖,其係根據第1圖之快閃記憶體系統100所繪示之重寫資料至快閃記憶體晶片150中一區塊200之示意圖。以下為便於說明重寫資料之程序,本揭示文件中係以一個區塊包含三個頁面(page),其中每個頁面包含一個記憶單元(memory cell)作為說明,於具體實施上並不以此為限。舉例來說,一個區塊包含三個以上的複數個頁面(例如256個頁面),並且每個頁面包含一個以上的複數個記憶單元(例如32768個記憶單元)亦在本揭示文件的涵蓋範圍。
如第2圖所示,區塊200包含頁面210、220、230,以及字元線WL0、WL1、WL2。字元線WL0用以控制頁面210的資料讀寫。字元線WL1用以控制頁面220的資料讀寫。字元線WL2用以控制頁面230的資料讀寫。在
此實施例中,頁面210、220、230分別包含一個記憶單元,其中該記憶單元用以儲存一個位元的資料。
在資料重寫之程序的一實施例中,適用於儲存經常存取資料(hot data)。舉例來說,在一頁面中已儲存有一筆資料,當此筆資料因為重新運算而產生更新的版本時,在儲存此更新版本的資料之前並不會對原本頁面進行抹除後寫入,而是透過增加儲存資料的電壓位準方式來將新版本的資料儲存於頁面中。
為更詳細地說明資料重寫之程序,請參照第4圖,其係根據本案之一些實施例所繪示之重新寫入方法之步驟流程圖。並且,請一併參照第1圖、第2圖、第3A~3C圖的圖式以得到清楚的理解。值得一提的是,第2圖中的頁面210、頁面220、及頁面230分別對應於字元線WL0、字元線WL1、及字元線WL2。頁面210經配置以儲存第一資料A1及其更新版本,頁面220經配置以儲存第二資料B1及其更新版本,頁面230經配置以儲存第三資料C1及其更新版本。其中第一資料A1係指第一資料的第一版本,第一資料A2係指第一資料的第二版本,第一資料A3係指第一資料的第三版本,以此類推。在一些實施例中,第二版本的資料較新於第一版本的資料,第三版本的資料較新於第二版本的資料。本揭示文件以三次的資料更新作為說明,資料更新的次數不因此而受到限制。
在步驟S410中,透過控制器110接收一資料
並根據資料之版本來儲存資料於對應之頁面。舉例來說,如第2圖所示,當第一資料A1準備被寫入至區塊200時,控制器110以重寫指令RW1控制字元線WL0將第一資料A1寫入頁面210,此時第一資料A1為第一版本。在另一實施例中,當第一資料A2準備被寫入至區塊200時,控制器110以重寫指令RW2控制字元線WL0將第一資料A2寫入頁面210,此時第一資料A2為第二版本。
在步驟S420中,增加一電壓視窗(voltage window)至臨界電壓,以作為寫入資料的電壓。請參照第3A圖。第3A圖係根據本案之一些實施例所繪示於編程資料至第2圖之區塊200中的頁面210的臨界電壓與記憶胞數量之示意圖。在記憶胞被寫入資料之前的邏輯值如階段RW0所示,此時的記憶胞為抹除(erase)狀態。在一實施例中,記憶胞的邏輯值被設定為第一邏輯值,例如1。在第一資料A1被寫入頁面210時,如第3A圖所示,對應至重寫指令RW1的臨界電壓被新增至電壓Vp01。接著,此電壓Vp01被作為驗證電壓,以供後續驗證寫入資料的記憶胞的臨界電壓是否位於預期的範圍內。舉例來說,在第一資料A1被寫入頁面210以及臨界電壓被新增至電壓Vp01之後,此電壓Vp01會被作為驗證電壓進行讀取,以驗證第一資料A1是否被正確地寫入頁面210。據此,若經判斷第一資料A1的記憶胞的臨界電壓位於預期的範圍內,例如電壓Vp01,則判斷第一資料A1被正確地寫入頁面210。
電壓Vp01之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp01之後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。第一資料A1此時被儲存在頁面210,在第一資料A1為最新版本的資料之情況下,控制器110操作取程序143以讀取第一資料A1時,可以透過讀取電壓Vr1讀取到正確版本的資料。
以此類推,當第一資料A1被更新為第一資料A2時,第一資料A2被寫入頁面210,如第3A圖所示,對應至重寫指令RW2的臨界電壓被新增至電壓Vp02。電壓Vp02之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp02之後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。第一資料A2此時被儲存在頁面210,在第一資料A2為最新版本的資料之情況下,控制器110操作取程序143以讀取第一資料A2時,可以透過讀取電壓Vr2讀取到正確版本的資料。
在步驟S430中,標記前一版本的資料為無效及標記新版本的資料為有效。舉例來說,如第2圖所示,控制器110讀取第一資料A1以執行運算後產生第一資料A2。此時,第一資料A2為新版本之資料,而第一資料A1為舊版本之資料,因此標記第一資料A2為有效資料(valid data),標記第一資料A1為無效資料(invalid data)。
在步驟S440中,控制器110會記錄各頁面經歷重寫的次數。舉例來說,在前述步驟S430中第一資料
A1更新為第一資料A2時,控制器110會記錄頁面210的重寫次數為2次。
以此類推,若第一資料A2持續被更新(例如更新為第一資料A3),則新版本的內容將被持續儲存於頁面210,以及根據重寫指令RW3在電壓Vp02加上電壓視窗而使得臨界電壓新增至電壓Vp03。電壓Vp03之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp03後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。第一資料A3被標記為有效資料,第一資料A2被標記為無效資料。控制器110會記錄頁面210的重寫次數為3次。控制器110可以透過讀取電壓Vr3以讀取到正確版本的第一資料A3。
以及,若第一資料A3再次被更新(例如更新為第一資料A4),則新版本的內容將被持續儲存於頁面210,以及根據重寫指令RW4在電壓Vp03加上電壓視窗而使得臨界電壓新增至電壓Vp04。電壓Vp04之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp04之後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。第一資料A4被標記為有效資料,第一資料A3被標記為無效資料。控制器110會記錄頁面210的重寫次數為4次。控制器110可以透過讀取電壓Vr4以讀取到正確版本的第一資料A4。
因此,若快閃記憶體晶片150的架構為四級單元(QLC),則每個頁面最多可以重新寫入15次的資
料。舉例來說,四級單元之記憶體架構中的每個記憶細胞最多有16種電壓狀態。於重複執行步驟S410~步驟S440時,每次可在頁面寫入1個位元的資料並遞增一電壓視窗至驗證電壓。因此,每個頁面最多可被更新15次的資料。
在控制器110讀取資料時,只需判斷兩種電壓狀態即可讀取到最新版本的資料。舉例來說,第一資料A1將被讀取時,控制器110只需控制以(如第3A圖所示)讀取電壓Vr1之電壓即可讀到正確的資料。
值得一提的是,記憶體技術裝置層140中儲存有一對照表,此對照表用來儲存各頁面以及驗證電壓的對應關係,其中驗證電壓值係對應至最新版本的資料。舉例來說,當頁面210中儲存之最新資料為第一資料A1,則對照表中記錄對應於頁面210的驗證電壓為電壓Vp01。當頁面210中儲存之最新資料為第一資料A2,則對照表中記錄對應於頁面210的驗證電壓為電壓Vp02。如此一來,控制器110依據對照表中取得驗證電壓值,並根據讀取電壓讀取到最新版本的資料。
相似地,選擇性地重複執行步驟S410~步驟S440,第2圖之區塊200寫入資料順序以下述資料順序為例:第二資料B1、第二資料B2、第三資料C1、第一資料A3、第一資料A4、第二資料B3、第二資料B4。
當第二資料B1準備被寫入至區塊200時,控制器110以重寫指令RW1控制字元線WL2將第二資料B1
寫入頁面220,其中第二資料B1為第一版本。
另一方面,請參照第3B圖。第3B圖係根據本案之一些實施例所繪示於編程資料至第2圖之區塊200中的頁面220的臨界電壓與記憶胞數量之示意圖。在記憶胞被寫入資料之前的邏輯值如階段RW0所示,此時的記憶胞為抹除狀態。在一實施例中,記憶胞的邏輯值被設定為第一邏輯值,例如1。在第二資料B1被寫入頁面220時,如第3B圖所示,對應至重寫指令RW1的臨界電壓新增至電壓Vp11。電壓Vp11之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp11之後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。控制器110會記錄頁面220的重寫次數為1次。
在控制器110讀取資料時,只需判斷兩種電壓狀態即可讀取到最新版本的資料。舉例來說,在欲讀取第二資料B1時,控制器110只需控制以(如第3B圖所示)讀取電壓Vr1之電壓即可讀到正確的資料。第二資料B1被更新及被讀取的程序相似於第3A圖的說明而不予重述。
當第三資料C1準備被寫入至區塊200時,控制器110以重寫指令RW1控制字元線WL3將第三資料C1寫入頁面230,其中第三資料C1為第一版本。
另一方面,請參照第3C圖。第3C圖係根據本案之一些實施例所繪示於編程資料至第2圖之區塊200中的頁面230的臨界電壓與記憶胞數量之示意圖。在記
憶胞被寫入資料之前的邏輯值如階段RW0所示,此時的記憶胞為抹除狀態。在一實施例中,記憶胞的邏輯值被設定為第一邏輯值,例如1。在第三資料C1被寫入頁面220時,如第3C圖所示,對應至重寫指令RW1的臨界電壓新增至電壓Vp21。電壓Vp21之前的一電壓範圍的記憶胞的邏輯值設為第一邏輯值,例如1。電壓Vp21之後的一電壓範圍的記憶胞的邏輯值設為第二邏輯值,例如0。控制器110會記錄頁面230的重寫次數為1次。
在控制器110讀取資料時,只需判斷兩種電壓狀態即可讀取到最新版本的資料。舉例來說,在欲讀取第三資料C1時,控制器110只需控制以(如第3C圖所示)讀取電壓Vr1之電壓即可讀到正確的資料。
在傳統的增量階躍脈衝程式(Incremental Step Pulse Programming,ISPP)的編程方法中,以四級單元架構的記憶體晶片為例,每個記憶胞只能被編程四次。當寫入資料是熱資料時,由於熱資料僅佔記憶體中的整體資料量的少部分,但性質上為需要經常被更新,因此傳統的編程方法中,儲存熱資料的記憶胞在執行了四次的更新之後便無法再繼續編程資料,導致記憶體晶片整體的使用效率低落。相較之下,本案的操作於快閃記憶體晶片150之重新寫入方法可讓儲存熱資料的記憶胞更新次數提升至最多15次,提高了記憶胞的寫入效率。據此,相較於傳統的編程方法,本案可以在多級單元架構的記憶體晶片中提升資料寫入效率的有益功效。
另一方面,由於每一個記憶胞可重新寫入的次數增加,因此在記憶體區塊的抹寫次數(program/erase cycle)相同的情況下,本案可提升記憶胞的總寫入位元組(Total Byte Written)。此外,在總寫入位元組相同的情況下,本案可以讓記憶體區塊的抹寫次數降低,如此一來可降低在記憶體晶片中使用的錯誤更正碼的強度,以減少處理錯誤更正碼所需的花費。
以及,本揭示文件的操作於快閃記憶體晶片150之重新寫入方法提供在資料更新時不需立即抹除舊資料,而是在區塊中的無效資料比例高於一定門檻值時,才抹除整個區塊。如此一來,可以避免特定頁面的資料更新比例過於頻繁,所造成的頁面損耗問題。
此外,在控制器110讀取資料時,只需判斷兩種電壓狀態即可讀取到最新版本的資料。相較於傳統之多級單元架構中,控制器110需要記錄4個或以上的驗證電壓,才能正確地讀到每個電壓範圍對應的資料,對於電壓控制稍有不慎,則會讀取到錯誤的資料。本揭示文件運用了多級單元的架構來儲存同一筆資料之更新內容,頁面中一次儲存一筆資料,但可在頁面中使用多次的更新,如此一來,可降低資料讀取及寫入資料時的複雜度。
請參照第5圖,其係根據本案之一些實施例所繪示之執行記憶體回收之步驟流程圖。請一併參照第1圖、第2圖及第5圖以得到清楚的理解。
在步驟S510中,控制器110使用區塊200,並且記憶體回收器133計算區塊200中的無效空間大小。
舉例來說,以區塊200包含三個頁面210、220、230,並且各頁面包含一個記憶單元為例。若記憶單元為可以運行於四級單元(QLC)之架構,則在每次儲存一個位元的情況下,依據前述第4圖之步驟S410~步驟S440,一個頁面最多可以執行重新寫入15次,因此,總空間大小為45(15*3)。另一方面,在第2圖之區塊200中,有效資料為第一資料A4、第二資料B4、以及第三資料C1,因此,無效空間大小為6(即前述被標記為無效資料之第一資料A1、A2、A3及第二資料B1、B2、B3)。
值得一提的是,記憶體技術裝置層140中的可重寫區塊表會記錄區塊的重寫計數(rewrite count)。舉例來說,第2圖所示之區塊200已寫入9次資料,因此在可重寫區塊表中記錄區塊200的重寫計數為9。在一些實施例中,區塊200的重寫計數可以為但不限於頁面210、頁面220、及頁面230的重寫次數之總和。
在步驟S520中,控制器110判斷區塊200中無效空間大小佔總空間大小之比例是否大於效用臨界值(efficiency threshold)。
如第2圖所示之區塊200的實施例中,無效空間大小佔總空間大小之比例約為13%,代表區塊200的剩餘可用次數還很充裕,而可繼續使用區塊200。值得一提的是,本揭示文件不限制效用臨界值之實際數值,可
依據實際狀況而作對應的數值設定,例如效用臨界值設定為95%,代表讓區塊200的使用次數較高。在另一些實施例中,控制器110設定區塊200的每個頁面的可重寫次數為7次,則總空間大小為21。如第2圖所示之區塊200的儲存狀態(共6筆無效資料),因此,無效空間大小佔總空間大小之比例約為29%。換言之,各頁面的重寫次數的設定可決定區塊被重寫的上限次數。
若在步驟S520中,無效空間大小占總空間大小之比例不大於效用臨界值,則回到步驟S510。若無效空間大小占總空間大小之比例大於效用臨界值,則執行步驟S530。
在步驟S530中,控制器110編程區塊200中的有效之資料至另一區塊(第2圖未繪示)。
舉例來說,區塊200之有效資料為第一資料A4、第二資料B4、第三資料C1。因此,將此些有效資料寫入至另一空白之區塊。
接著,在步驟S540中,控制器110標記區塊200為無效之區塊。因此,控制器110將不再讀取區塊200中的資料,以及不再將資料寫入區塊200。在一些實施例中,於區塊200的空間需要被使用時,才抹除區塊200中的資料。
請參照第6圖,其係根據本案之一些實施例所繪示之編程干擾偵測之步驟流程圖。請一併參照第1圖、第2圖及第6圖以得到清楚的理解。
在步驟S610中,控制器110編程一資料至區塊200之一頁面。舉例來說,將第二資料B1寫入頁面220中,此步驟之已詳細說明如前述。
接著,在步驟S620中,干擾處理器135遞增區塊200中與執行資料編程之頁面相鄰之其他頁面(例如頁面210及頁面230)之干擾係數(disturb factor),並重置執行資料編程之頁面之干擾係數。
舉例來說,以區塊200中已儲存有第一資料A1為例,頁面220與頁面230中尚未被寫入任何資料。此時,頁面210的干擾係數被重置為0,頁面220的干擾係數從0被遞增至1(以所有空白頁面的干擾係數之初使值是0為例)。若第一資料A2接續被寫入頁面210時,頁面210的干擾係數被重置為0,頁面220的干擾係數從1被遞增至2。
接著,當第二資料B1被寫入頁面220時,與頁面220相鄰之頁面210與頁面230之干擾係數會分別會從0遞增至1。並且,頁面220的干擾係數會被重置為0。以此類推,在寫入資料順序為<A1,A2,B1,B2,C1,A3,A4,B3,B4>的實施例中,頁面210的干擾係數為2,頁面220的干擾係數為0,頁面230的干擾係數為2。
在步驟S630中,判斷區塊200中各頁面的干擾係數是否大於一干擾臨界值(disturb threshold)。
以干擾臨界值被設定成1為例,頁面210與頁面230的干擾係數均大於干擾臨界值。
接著,在步驟S640中,當頁面的干擾係數大於干擾臨界值時,重新編程資料至該頁面,以重置該頁面的干擾係數。
舉例來說,如第2圖所示,頁面210與頁面230的干擾係數均大於干擾臨界值,此時,第一資料A4會被重新編程至頁面210,以重置頁面210的干擾係數。相似地,第三資料C1會被重新編程至頁面230,以重置頁面230的干擾係數。
另一方面,在當頁面的干擾係數大於干擾臨界值時,亦可執行步驟S650。在步驟S650中,當頁面的干擾係數大於干擾臨界值時,重新編程資料至另一頁面,並標記干擾係數大於干擾臨界值之頁面為無效之頁面。
舉例來說,如第2圖所示,頁面210儲存第一資料A4以及頁面230儲存第三資料C1。當頁面210的干擾係數大於干擾臨界值時,第一資料A4會被重新寫入至另一空白頁面(第2圖未繪示),並且頁面210會被標記為無效之頁面。相似地,當頁面230的干擾係數大於干擾臨界值時,第三資料C1會被寫入至又另一空白頁面(第2圖未繪示),並且頁面230會被標記為無效之頁面。
值得一提的是,在步驟S630中判斷頁面的干擾係數大於干擾臨界值時,可選擇性地執行步驟S640或步驟S650。步驟S640及步驟S650均可處理頁面被干擾程度過高的問題。
請復參照步驟S630,於頁面220的干擾係數小於干擾臨界值時,則回到步驟S610,繼續使用該頁面。
在一些實施例中,本揭示文件提出一種非暫態電腦可讀取記錄媒體,可儲存多個程式碼。程式碼被載入至如第1圖之控制器110後,控制器110執行程式碼並執行包含第4圖、第5圖及第6圖之步驟。舉例來說,控制器110接收資料並根據資料之版本將該資料儲存於對應之頁面、增加電壓視窗至臨界電壓以作為寫入資料的電壓、標記前一版本的資料為無效並標記新版本的資料為有效、以及記錄各頁面經歷重寫的次數。
本揭示文件的操作於快閃記憶體晶片150之編程干擾偵測方法偵測相鄰頁面之間的干擾偵測,避免同一個資料在同一個頁面頻繁地被使用所造成之影響,以維護其他頁面的資料正確性。
綜上所述,本揭示文件之記憶體管理系統及記憶體操作方法考量到經常使用資料與不常使用資料在記憶體晶片中的區分不同的儲存方式。對於經常使用資料在同一頁面以遞增的臨界電壓來編程資料,據以降低對區塊的抹除頻率,提升可用度。本揭示文件之記憶體回收及干擾偵測方法對記憶體晶片的寫入方式進行管理,例如以最少的抹除次數來回收記憶體,以及維護記憶體資料的正確性。據此,記憶體晶片的讀取、編程、及抹除方面均可延長記憶體晶片的使用壽命。
另外,上述例示包含依序的示範步驟,但該
些步驟不必依所顯示的順序被執行。以不同順序執行該些步驟皆在本揭示內容的考量範圍內。在本揭示內容之實施例的精神與範圍內,可視情況增加、取代、變更順序及/或省略該些步驟。
雖然本案已以實施方式揭示如上,然其並非用以限定本案,任何熟習此技藝者,在不脫離本案之精神和範圍內,當可作各種之更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧記憶體系統
110‧‧‧控制器
120‧‧‧檔案系統
130‧‧‧快閃記憶體轉換層
131‧‧‧寫入資料頻率分析器
133‧‧‧記憶體回收器
135‧‧‧干擾處理器
140‧‧‧記憶體技術裝置層
141‧‧‧編程程序
143‧‧‧讀取程序
145‧‧‧抹除程序
150‧‧‧快閃記憶體晶片
151‧‧‧一般區塊範圍
153‧‧‧可重寫區塊範圍
Claims (10)
- 一種記憶體系統,包含:一快閃記憶體晶片;以及一控制器,耦接該快閃記憶體晶片,其中該控制器經配置以:自一檔案系統接收一第一版本之一第一資料,以儲存該第一版本之該第一資料至該快閃記憶體晶片之一第一頁面;以及響應於該第一資料之一第二版本以編程該第二版本之該第一資料於該第一頁面,其中該第二版本新於該第一版本。
- 如請求項1所述之記憶體系統,其中當該控制器編程該第二版本之該第一資料於該第一頁面時,該控制器還用以:增加一電壓視窗至一臨界電壓;以及標記該第一版本的該第一資料為一無效資料以及標記該第二版本的該第一資料為一有效資料,並於一可重寫區塊表中遞增對應該第一頁面所在的一第一區塊的一重寫計數。
- 如請求項2所述之記憶體系統,其中該控制器還用以根據該重寫計數計算該第一區塊中的一無效空間大小,以及該控制器於判斷該第一區 塊之該無效空間佔該第一區塊的一總空間大小之一比例大於一效用臨界值時,編程該第一區塊中有效之該第一資料至該快閃記憶體晶片之一第二區塊,並標記該第一區塊為該無效資料。
- 如請求項1所述之記憶體系統,其中當該控制器編程一第二資料至一第一區塊之一第二頁面時,該控制器還用以遞增該第一區塊之一第一頁面之該干擾係數,並於該第一頁面之該干擾係數大於一干擾臨界值時,該控制器還用以重新編程該第一資料至該第一頁面以重置該第一頁面之該干擾係數。
- 如請求項1所述之記憶體系統,其中當該控制器編程一第二資料至一第一區塊之一第二頁面時,該控制器還用以遞增第一區塊之一第一頁面之該干擾係數,並於該第一頁面之該干擾係數大於一干擾臨界值時,該控制器還用以重新編程該第一資料至該第一區塊之一第三頁面,並標記該第一頁面為一無效資料。
- 一種記憶體操作方法,包含:自一檔案系統接收一第一版本之一第一資料,以透過一控制器儲存該第一版本之該第一資料至一 快閃記憶體晶片之一第一頁面;以及響應於該第一資料之一第二版本,透過該控制器編程該第二版本之該第一資料於該第一頁面,其中該第二版本新於該第一版本。
- 如請求項6所述之記憶體操作方法,其中編程該第二版本之該第一資料於該第一頁面還包含:增加一電壓視窗至一臨界電壓;以及標記該第一版本的該第一資料為一無效資料,以及標記該第二版本的該第一資料為一有效資料,並於一可重寫區塊表中遞增對應該第一頁面所在的一第一區塊的一重寫計數。
- 如請求項7所述之記憶體操作方法,還包含:根據該重寫計數計算該第一區塊中的一無效空間;以及於判斷該第一區塊之該無效空間佔該第一區塊的一總空間大小之一比例大於一效用臨界值時,編程該第一區塊中有效之該第一資料至該快閃記憶體晶片之一第二區塊,並標記該區塊為該無效資料。
- 如請求項6所述之記憶體操作方法, 還包含:當一第二資料被編程至一第一區塊之一第二頁面時,遞增該第一區塊之一第一頁面之該干擾係數,並於該第一頁面之該干擾係數大於一干擾臨界值時,重新編程該第一資料至該第一頁面以重置該第一頁面之該干擾係數。
- 如請求項6所述之記憶體操作方法,還包含:當一第二資料被編程至一第一區塊之一第二頁面時,遞增該第一區塊之一第一頁面之該干擾係數,並於該第一頁面之該干擾係數大於一干擾臨界值時,重新編程該第一資料至該第一區塊之一第三頁面;以及標記該第一頁面為一無效資料。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108133277A TWI694449B (zh) | 2019-09-16 | 2019-09-16 | 記憶體系統以及記憶體操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108133277A TWI694449B (zh) | 2019-09-16 | 2019-09-16 | 記憶體系統以及記憶體操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI694449B TWI694449B (zh) | 2020-05-21 |
TW202113850A true TW202113850A (zh) | 2021-04-01 |
Family
ID=71896249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108133277A TWI694449B (zh) | 2019-09-16 | 2019-09-16 | 記憶體系統以及記憶體操作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI694449B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718975B (zh) * | 2020-07-17 | 2021-02-11 | 汎思數據股份有限公司 | 提高記憶體資料讀寫速度的方法及裝置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI270076B (en) * | 2002-05-14 | 2007-01-01 | Taiwan Semiconductor Mfg | Flash memory cell array structure featuring selectable bit data modification |
JP4480454B2 (ja) * | 2004-05-07 | 2010-06-16 | パイオニア株式会社 | メモリ制御装置、車載用機器、メモリ制御方法、メモリ制御プログラムおよび記録媒体 |
US9070453B2 (en) * | 2010-04-15 | 2015-06-30 | Ramot At Tel Aviv University Ltd. | Multiple programming of flash memory without erase |
JP5743790B2 (ja) * | 2010-08-06 | 2015-07-01 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JP6421042B2 (ja) * | 2015-01-16 | 2018-11-07 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US9857988B1 (en) * | 2016-07-10 | 2018-01-02 | Winbond Electronics Corporaiton | Data management in multiply-writeable flash memories |
-
2019
- 2019-09-16 TW TW108133277A patent/TWI694449B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI694449B (zh) | 2020-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9019770B2 (en) | Data reading method, and control circuit, memory module and memory storage apparatus and memory module using the same | |
US8510637B2 (en) | Data reading method, memory storage apparatus and memory controller thereof | |
KR101517416B1 (ko) | 셀당 단일 비트 nand 플래시 메모리를 에뮬레이팅하기 위한 셀당 다수 비트 nand 플래시 메모리에 대한 제어기 | |
TWI467376B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
US9703698B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US7961488B2 (en) | Method for modifying data more than once in a multi-level cell memory location within a memory array | |
US20220238152A1 (en) | Performing an on demand refresh operation of a memory sub-system | |
US8578245B2 (en) | Data reading method, memory storage apparatus, and controller thereof | |
TWI545572B (zh) | 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9478298B2 (en) | Memory system and method of reading data thereof | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8972653B2 (en) | Memory management method, and memory controller and memory storage apparatus using the same | |
US9563508B2 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TW201351137A (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI694449B (zh) | 記憶體系統以及記憶體操作方法 | |
US9760456B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN105761754B (zh) | 存储单元编程方法、存储器控制电路单元与存储装置 | |
CN112988076A (zh) | 快闪存储器控制方法、存储装置及控制器 | |
US11194515B2 (en) | Memory system, method of operating memory, and non-transitory computer readable storage medium | |
CN117636967B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11561719B2 (en) | Flash memory control method of re-programming memory cells before erase operations, flash memory storage device and flash memory controller | |
US20230298672A1 (en) | Memory system and read method |