TW201719663A - 資料配置方法及應用其之電子系統 - Google Patents
資料配置方法及應用其之電子系統 Download PDFInfo
- Publication number
- TW201719663A TW201719663A TW105110874A TW105110874A TW201719663A TW 201719663 A TW201719663 A TW 201719663A TW 105110874 A TW105110874 A TW 105110874A TW 105110874 A TW105110874 A TW 105110874A TW 201719663 A TW201719663 A TW 201719663A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- sub
- blank
- physical memory
- Prior art date
Links
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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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/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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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
-
- 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/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料配置方法,包括以下步驟:判斷欲寫入一實體記憶區塊的一資料為熱資料或冷資料;若該資料為熱資料,依據一熱資料配置順序自該實體記憶區塊中搜尋至少一第一空白子區塊以配置該資料;若該資料為冷資料,依據一冷資料配置順序自該實體記憶區塊中搜尋至少一第二空白子區塊以配置該資料。
Description
本發明是有關於一種資料配置方法及應用其之電子系統,且特別是有關於一種可改善編程干擾(program disturb)的資料配置方法及應用其之電子系統。
快閃記憶體(flash memory)係非揮發性記憶體(non-volatile memory)技術的一種。快閃記憶體具有存取速度快、耗電量低的優點。傳統的快閃記憶體採用浮接閘極(floating gate)記憶胞。藉由對浮接閘極注入/釋放電子,可改變記憶胞的閥電壓分佈,使其對應於特定的資料狀態。
然而,隨著記憶體裝置的密度增加且記憶胞間變得越來越緊密,編程干擾(program disturb)效應將越趨明顯。舉例來說,在編程NAND快閃記憶體中的一選定記憶胞時,附近記憶胞的閥電壓分佈將受到編程的干擾而偏移,使得原先的偏壓設定將無法正確地讀取資料。
本發明係有關於一種可改善編程干擾的資料配置方法及應用其之電子系統。
根據本發明一方面,提出一種資料配置方法。該資料配置方法包括以下步驟:判斷欲寫入一實體記憶區塊的一資料為熱資料或冷資料;若該資料為熱資料,依據一熱資料配置順序自該實體記憶區塊中搜尋至少一第一空白子區塊以配置該資料,其中基於該熱資料配置順序,在該實體記憶區塊中編程順序排得越前面且兩資料狀態間的可容許邊界越窄的空白子區塊係優先被選為該至少一第一空白子區塊;若該資料為冷資料,依據一冷資料配置順序自該實體記憶區塊中搜尋至少一第二空白子區塊以配置該資料,其中基於該冷資料配置順序,在該實體記憶區塊中編程順序排得越後面且可容許邊界越寬的空白子區塊係優先被選為該至少一第二空白子區塊。
根據本發明另一方面,提出一種電子系統。該電子系統包括記憶體以及控制器。記憶體包括實體記憶區塊。控制器耦接該記憶體,並經配置而用以:判斷欲寫入該實體記憶區塊的一資料為熱資料或冷資料;若該資料為熱資料,依據一熱資料配置順序自該實體記憶區塊中搜尋至少一第一空白子區塊以配置該資料,其中基於該熱資料配置順序,在該實體記憶區塊中編程順序排得越前面且兩資料狀態間的可容許邊界越窄的空白子區塊係優先被選為該至少一第一空白子區塊;若該資料為冷資料,依據一冷資料配置順序自該實體記憶區塊中搜尋至少一第二空白子區塊以配置該資料,其中基於該冷資料配置順序,在該實體記憶區塊中編程順序排得越後面且可容許邊界越寬的空白子區塊係優先被選為該至少一第二空白子區塊。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
在本文中,參照所附圖式仔細地描述本發明的一些實施例,但不是所有實施例都有表示在圖示中。實際上,這些發明可使用多種不同的變形,且並不限於本文中的實施例。相對的,本揭露提供這些實施例以滿足應用的法定要求。圖式中相同的參考符號用來表示相同或相似的元件。
第1圖繪示不同類型記憶胞的閥電壓分佈示意圖。如第1圖所示,像是單階記憶胞(Single Level Cell, SLC)的記憶胞係用以儲存1位元資料,而像是多階記憶胞(Multi Level Cell, MLC)的記憶胞係用以儲存2位元資料。隨著單位記憶胞所儲存的位元數變多,對應不同資料狀態的分佈彼此之間將靠得越近,導致分佈間的可容許邊界(margin)變窄。所述之可容許邊界係表示兩鄰近資料狀態之間的最小可容忍間距。
進一步說,一SLC可儲存1位元的資料,故在一定的閥電壓範圍內,係可能被編程(program)至閥電壓分佈S1或S0以表示資料狀態“1”或“0”。相較之下,一MLC可儲存2位元的資料,故在一定的閥電壓範圍內,係可能被編程至閥電壓分佈S11、S10、S00或S01以表示資料狀態“11”、“10”、“00”或“01”。在對MLC進行編程時,對應在SLC模式下所編程的資料係稱為高位元(high bit)資料(在此例中係對應2位元資料中的第一個位元),而對應在MLC模式下所編程的資料係稱為低位元(low bit)資料(在此例中係對應2位元資料中的第二個位元)。一般來說,當單位記憶胞所儲存的位元數越多,編程越低位元的資料時的可容許邊界將變得越窄。以編程三階記憶胞(Triple-Level Cell, TLC)為例,編程高位元資料時的可容許邊界>編程中位元資料時的可容許邊界>編程低位元資料時的可容許邊界。
編程干擾可能會導致記憶胞原本的閥電壓分佈產生偏移。如第1圖所示,SLC的閥電壓分佈S1及S0受編程干擾後係分別偏移至閥電壓分佈S1’及S0’,而MLC的閥電壓分佈S11、S10、S00及S01受編程干擾後係分別偏移至閥電壓分佈S11’、S10’、S00’及S01’。因此,當兩資料狀態間的可容許邊界越寬,即便閥電壓分佈發生偏移,透過預設的偏壓設定(如圖中的感測電壓Vt)仍可讀取出所儲存的資料。反之,當閥電壓分佈間的可容許邊界越窄,編程干擾所導致的分佈偏移將可能使預設的偏壓設定無法正確地判別出記憶胞所儲存的資料。
另一方面,由於編程干擾係指對選定記憶胞進行編程後對鄰近記憶胞之資料所產生的影響,故只有後編程的記憶胞才可能對先編程的記憶胞產生影響。基於上述特性,可定義出一資料儲存位置的編程干擾耐受度。當一資料儲存位置的編程干擾耐受度越高,表示存放在該資料儲存位置的資料越不易因編程干擾而發生錯誤。
依據本發明實施例,低編程干擾耐受度的資料儲存位置係優先被選擇存放熱資料(hot data),而高編程干擾耐受度的資料儲存位置則係優先被選擇存放冷資料(cold data)。所述之熱資料係表示寫入頻率較高的資料,而冷資料係表示寫入頻率較低的資料。
基於快閃記憶體的外部更新機制(out-of-place update),更新的資料會被寫入新的空白位置,而過時的資料將會變成無效(invalid)。因此,當寫入資料為熱資料,係表示該資料很容易變成無效。由於編程干擾對無效資料所產生的影響是無意義的,故可藉由優先選擇編程干擾耐受度較低的空白位置寫入熱資料,以將降低編程干擾在記憶體中的影響。相反地,當寫入資料為冷資料,係表示該資料較不易變成無效。此時,可選擇將冷資料優先配置到編程干擾耐受度較高的空白位置,以保護該冷資料免於受到編程干擾的影響。
第2圖繪示依據本發明一實施例之電子系統200之簡化方塊圖。電子系統200包括記憶體202以及控制器204。記憶體202例如是二維或三維的NAND快閃記憶體,或是其他任意的記憶體類型。記憶體202包括一或多個實體記憶區塊(block)PB。以NAND快閃記憶體為例,執行抹除(erase)操作係以一實體記憶區塊PB為最小單位。實體記憶區塊PB包括多個資料單元DU。此些資料單元DU又可劃分成多個虛擬的子區塊以供操作(詳細劃分方式將於後述)。資料單元DU例如是資料頁(page)或其他基本的資料管理單元,端視記憶體的類型而定。
控制器204耦接記憶體202,並可經配置而對記憶體202執行本發明實施例之資料配置方法。控制器204例如是中央處理單元、微處理器或其他任何可對記憶體204執行寫入/編程、讀取、抹除等操作的運算處理電路。
第3圖繪示依據本發明一實施例之資料配置方法之流程圖。此例示之資料配置方法例如是由第2圖之電子系統200之控制器204所執行。
在步驟302,控制器204判斷欲寫入實體記憶區塊PB的資料為熱資料或冷資料。在一實施例中,控制器204可藉由紀錄資料的寫入次數/寫入頻率來判斷該資料的冷、熱特性。
在步驟304,若欲寫入的資料為熱資料,控制器204將依據一熱資料配置順序(hot data allocation order)自實體記憶區塊PB中搜尋一或多個空白子區塊以配置該資料。
所述之熱資料配置順序可基於以下兩個原則而決定:(1)當一資料儲存位置的編程干擾耐受度越低,其被配置熱資料的優先順序排得越前面,及/或(2)若基於原則(1)所選的資料儲存位置會對具有最低編程干擾耐受度的子區塊產生編程干擾,則跳過該資料儲存位置,改尋找另一資料儲存位置(例如基於原則(1)的下一順位子區塊),以避免具有最低編程干擾耐受度的資料儲存位置受編程干擾影響。
因此,基於熱資料配置順序,在實體記憶區塊PB中編程順序排得越前面且兩資料狀態間的可容許邊界越窄的空白子區塊將優先被選為配置該熱資料的子區塊。換言之,具有較低編程干擾耐受度的空白子區塊將優先被選為放置該熱資料的子區塊。
又,若編程空白子區塊將對實體記憶區塊PB中具有最低編程干擾耐受度的子區塊產生編程干擾,控制器204將跳過該空白子區塊,改尋找另一空白子區塊以配置該熱資料,以避免對具有最低編程干擾耐受度的子區塊產生嚴重的編程干擾,其中具有最低編程干擾耐受度的該子區塊所對應之編程順序在實體記憶區塊PB中為最優先,且所對應之可容許邊界最窄。
在步驟306,若欲寫入的資料為冷資料,控制器204將依據一冷資料配置順序(cold data allocation order)自實體記憶區塊PB中搜尋一或多個空白子區塊以配置該資料。
所述之冷資料配置順序係基於以下兩個原則而決定:(1)當一資料儲存位置的編程干擾耐受度越高,其被配置冷資料的優先順序排得越前面,及/或(2)若基於原則(1)所選的資料儲存位置會對具有最低編程干擾耐受度的資料儲存位置產生編程干擾,則跳過該資料儲存位置,改尋找另一資料儲存位置(例如基於原則(1)的下一順位資料儲存位置),以避免具有最低編程干擾耐受度的資料儲存位置受編程干擾影響。
因此,基於冷資料配置順序,在實體記憶區塊PB中編程順序排得越後面且兩資料狀態間的可容許邊界越寬的空白子區塊將優先被選為配置該冷資料的子區塊。換言之,具有較高編程干擾耐受度的空白子區塊將優先被選為放置該冷資料的子區塊。
又,若編程該空白子區塊將對實體記憶區塊PB中具有最低編程干擾耐受度的子區塊產生編程干擾,控制器204將跳過該空白子區塊,改尋找另一空白子區塊以配置該冷資料,以避免對具有最低編程干擾耐受度的子區塊產生嚴重的編程干擾。
若控制器204基於步驟304/306同時找到多個空白子區塊可以配置熱資料/冷資料,控制器204將執行步驟308,藉由比較該些空白子區塊的鄰近子區塊(例如實體上毗鄰該些空白子區塊的子區塊)的無效資料數量來決定要將資料寫入哪一個空白子區塊。
舉例來說,若欲寫入的資料為熱資料,且控制器204基於步驟304找出多個空白子區塊可寫入該熱資料,此時控制器204將比較各個空白子區塊的鄰近子區塊的無效資料數量,以選擇與最多無效資料相鄰的空白子區塊來寫入該資料。透過此方式,可較佳地將編程干擾散佈至無效資料上,並減少編程干擾對有效資料的影響。
類似地,若欲寫入的資料為冷資料,且控制器204基於步驟304找出多個空白子區塊可寫入該冷資料,此時控制器204將比較各個空白子區塊的鄰近子區塊的無效資料數量,以自該些空白子區塊中選擇與最多無效資料相鄰的空白子區塊來寫入該資料。
依據本發明實施例,實體記憶區塊PB中的多個資料單元DU可依據一實體位置交錯(interleaving)條件及/或一資料準位(leveling)條件而劃分成多個虛擬(virtual)的子區塊。所述之子區塊係指虛擬的單元,也就是虛擬的管理單元,其可被控制器,或被儲存系統相關的管理軟體層所使用(像是檔案系統(File System)、快閃記憶體轉換層(Flash Translation Layer, FTL)、記憶體裝置技術層(Memory Technology Device, MTD)等)。虛擬的單元並不同於記憶體中實體的抹除單元。所述之實體位置交錯條件係指一子區塊中的資料單元DU彼此實體不相鄰。而所述之資料準位條件係指對應不同資料準位的資料單元DU係被歸類至不同的子區塊。以下,將配合第4a~4c、5、6圖作說明。然需注意的是,以下例示僅是作為說明之用,而非用以限制本發明。實體記憶區塊PB中資料單元DU的數量、類型以及結構配置皆可是任意的,端視不同的應用而定。
第4a圖繪示依據實體位置交錯條件劃分資料單元DU(以資料頁為例)以形成子區塊的一例示意圖。如第4a圖所示,實體記憶區塊中的字元線WL0係對應資料頁P1、P2、P3及P4。資料頁P1~P4沿X軸方向依序排列。基於所述之實體位置交錯條件,資料頁P1及P3係被劃分至同一子區塊402,而資料頁P2及P4係被劃分至另一子區塊404。換言之,針對子區塊402,當中的資料頁P1、P3係彼此實體不相鄰;而針對子區塊404,當中的資料頁P2、P4係彼此實體不相鄰。
第4b圖繪示依據實體位置交錯條件劃分資料單元DU(以資料頁為例)以形成子區塊的另一例示意圖。在第4b圖的例子中,實體記憶區塊中的字元線WL0對應沿X軸方向依序排列資料頁P1~P4,而字元線WL1對應沿X軸方向依序排列資料頁P5~P8。字元線WL0及WL1沿Y軸方向相鄰設置。基於所述之實體位置交錯條件,資料頁P1、P3、P6及P8係被劃分至同一子區塊406,而資料頁P2、P4、P5及P7係被劃分至另一子區塊408。換言之,針對子區塊406,當中的資料頁P1、P3、P6及P8係彼此實體不相鄰;而針對子區塊408,當中的資料頁P2、P4、P5及P7係彼此實體不相鄰。
第4c圖繪示依據實體位置交錯條件劃分資料單元DU(以資料頁為例)以形成子區塊的又一例示意圖。在此例中,字元線WL0對應沿著Z軸方向堆疊的資料頁P1~P4。基於所述之實體位置交錯條件,資料頁P1及P3係被劃分至同一子區塊410,而資料頁P2及P4係被劃分至另一子區塊412。換言之,針對子區塊410,當中的資料頁P1、P3係彼此實體不相鄰;而針對子區塊412,當中的資料頁P2、P4係彼此實體不相鄰。
第5圖繪示依據資料準位條件劃分資料單元DU(以資料頁為例)以形成子區塊的一例示意圖。假設資料頁P1、P2及P3為MLC的架構,則資料頁P1、P2及P3可虛擬地劃分成用以儲存高位元資料的子區塊502以及用以儲存低位元資料的子區塊504。同理,若資料頁P1、P2及P3為TLC的架構,則資料頁P1、P2及P3可虛擬地劃分成用以儲存高位元資料的子區塊512、用以儲存中位元資料的子區塊514、以及用以儲存低位元資料的子區塊516。總而言之,若實體記憶區塊PB中的記憶單元DU係採用N階記憶胞的架構,則基於資料準位條件,該些記憶單元DU可劃分成用以儲存第一位元資料的子區塊、用以儲存第二位元資料的子區塊、…以及用以儲存第N位元資料的子區塊,其中N為正整數。
第6圖繪示結合實體位置交錯條件以及資料準位條件劃分資料單元DU(以資料頁為例)以形成子區塊的一例示意圖。在此例中,實體記憶區塊中的字元線WL0對應沿X軸方向依序排列資料頁P1~P4,而字元線WL1對應沿X軸方向依序排列資料頁P5~P8。字元線WL0及WL1沿Y軸方向相鄰設置。資料頁P1~P8例如分別包括沿著Z軸方向堆疊成K層的記憶胞,其中K為正整數。
若資料頁P1~P8中的記憶胞係採用MLC的架構,則基於所述之實體位置交錯條件以及資料準位條件,彼此實體不相鄰的資料頁P1、P3、P6、P8可劃分成用以儲存高位元資料的子區塊602以及用以儲存低位元資料的子區塊604,而彼此實體不相鄰的資料頁P2、P4、P5、P7可劃分成用以儲存高位元資料的子區塊606以及用以儲存低位元資料的子區塊608。
更一般地說,若實體記憶區塊PB包括多個採取N階記憶胞架構的資料單元DU,該些資料單元DU中彼此實體不相鄰的一組資料單元DU將被劃分成N個子區塊,以分別儲存N位元資料中的第一位元資料、第二位元資料、...、以及第N位元資料。如第6圖所示,一組資料單元DU(如資料頁P1、P3、P6、P8)係被劃分成一用以儲存該組資料單元DU之高位元資料的子區塊(如子區塊602),以及一用以儲存該組資料單元DU之低位元資料的子區塊(如子區塊604)。
類似地,實體記憶區塊PB中彼此實體不相鄰的另一組資料單元DU(如資料頁P2、P4、P5、P7)將被劃分N個子區塊,以分別儲存N位元資料中的第一位元資料、第二位元資料、...、以及第N位元資料。如第6圖所示,該另一組資料單元DU(如資料頁P2、P4、P5、P7)係被劃分成一用以儲存該另一組資料單元DU之高位元資料的子區塊(如子區塊606),以及一用以儲存該另一組資料單元DU之低位元資料的子區塊(如子區塊608)。
第7圖繪示結合實體位置交錯條件以及資料準位條件劃分出子區塊後,各子區塊間的編程干擾耐受度強弱關係。在第7圖的例子中,子區塊A及B分別對應儲存高位元資料以及低位元資料的同一組實體不相鄰的資料單元DU;子區塊C及D分別對應儲存高位元資料以及低位元資料的另一組實體不相鄰的資料單元DU。
基於預設的編程設定,控制器對子區塊A~D的編程MLC資料的順序由先至後依序為A→C→B→D。第7圖中符號「( )」中的數字即表示此些子區塊A~D的編程順序。
由於低位元資料所對應的可容許邊界較窄,故其相較於高位元資料更容易受編程干擾的影響。此外,後編程的子區塊將對鄰近的先編程子區塊產生編程干擾。基於此兩因素,可區分出子區塊A~D所對應的編程干擾耐受度。進一步說,由於子區塊B係用以儲存低位元資料且其儲存的資料可能受後編程的子區塊D影響,故子區塊B的編程干擾耐受度最低。而子區塊D因為是用以儲存低位元資料,故其編程干擾耐受度為次低。子區塊A雖是用以儲存高位元資料,但因其儲存的資料可能受後編程的子區塊C、B、D影響,故其編程干擾耐受度為次高。最後,由於子區塊C不但是用以儲存高位元資料,且相較於子區塊A為後編程(只會受到後編程的子區塊B、D的影響),故其編程干擾耐受度為最高。
可理解,基於相同的原則,亦可區分出採取不同資料儲存架構(如N階記憶胞架構)以及編程順序的子區塊的編程干擾耐受度。
第8圖繪示對第7圖之子區塊A~D配置熱資料之優先次序圖。基於熱資料配置順序,控制器(如控制器204)係優先尋找具有最低編程干擾耐受度的空白子區塊以配置熱資料。如第8圖所示,控制器最先尋找空白的子區塊B以配置熱資料。進一步說,由於子區塊A~D的編程資料的順序由先至後依序為A→C→B→D,故當編程順序輪到子區塊B,且子區塊B為空白,控制器將優先對子區塊B填入熱資料。
當無法找到空白的子區塊B,控制器將改尋找空白的子區塊A以配置熱資料,而非尋找具有次低編程干擾耐受度的空白子區塊D。這是因為若將熱資料寫入子區塊D,子區塊B將會受到編程干擾。由於子區塊B的編程干擾耐受度最低,故當中的既存資料很可能因為編程干擾而發生錯誤。為避免上述情況發生,子區塊D反而是被列為最後被選擇寫入熱資料的子區塊。故在此例中,子區塊B具有最優先的候選順序被配置熱資料,子區塊A次之,再次為子區塊C,最後為子區塊D。第8圖中符號「( )」中的數字即表示此些子區塊A~D所對應的熱資料配置順序。
第9圖繪示對第7圖之子區塊A~D配置冷資料之優先次序圖。基於冷資料配置順序,控制器(如控制器204)係優先尋找具有最高編程干擾耐受度的空白子區塊以配置冷資料。如第9圖所示,控制器最先尋找空白的子區塊C以配置冷資料。進一步說,由於控制器對子區塊A~D的編程資料的順序由先至後依序為A→C→B→D,故當編程順序輪到子區塊C,且子區塊C為空白,控制器將優先對其配置冷資料。若無法找到空白的子區塊C,控制器將改尋找具有次高編程干擾空白的子區塊A以配置資料。
若仍無法找到空白的子區塊A,控制器將改尋找空白的子區塊B以配置冷資料,而非尋找具有次低編程干擾耐受度的空白子區塊D。這是因為若將冷資料寫入子區塊D,子區塊B將會受到編程干擾。由於子區塊B的編程干擾耐受度最低,故當中的既存資料很可能因為編程干擾而發生錯誤。為避免上述情況發生,子區塊D反而是被列為最後被選擇配置冷資料的子區塊。故在此例中,子區塊C具有最優先的候選順序被配置冷資料,子區塊A次之,再次為子區塊B,最後為子區塊D。第9圖中符號「( )」中的數字即表示子區塊A~D所對應的冷資料配置順序。
第10圖繪示對基於TLC架構之子區塊A~F配置熱資料之優先次序圖。在此例中,子區塊A、D用以儲存高位元資料,其中子區塊A為先編程部分(對應一組資料單元DU),子區塊D為後編程部分(對應另一組資料單元DU)。子區塊B、E用以儲存中位元資料,其中子區塊B為先編程部分,子區塊E為後編程部分。子區塊C、F用以儲存低位元資料,其中子區塊C為先編程部分,子區塊F為後編程部分。假設編程高位元資料的可容許邊界>編程中位元資料的可容許邊界>編程低位元資料的可容許邊界,子區塊A~F的編程干擾耐受度由弱至強依序為:C→F→B→E→A→D。
此時,若欲寫入的資料為熱資料,則基於熱資料配置順序,可決定出對子區塊A~F配置熱資料的候選順序由先至後依序為:C→B→E→A→D→F。第10圖中符號「( )」中的數字即表示子區塊A~F所對應的熱資料配置順序。
第11圖繪示對基於TLC架構之子區塊A~F配置冷資料之優先次序圖。類似第10圖的例子,子區塊A、D用以儲存高位元資料,其中子區塊A為先編程部分(對應一組資料單元DU),子區塊D為後編程部分(對應另一組資料單元DU)。子區塊B、E用以儲存中位元資料,其中子區塊B為先編程部分,子區塊E為後編程部分。子區塊C、F用以儲存低位元資料,其中子區塊C為先編程部分,子區塊F為後編程部分。假設編程高位元資料的可容許邊界>編程中位元資料的可容許邊界>編程低位元資料的可容許邊界,子區塊A~F的編程干擾耐受度由弱至強依序為:C→F→B→E→A→D。
此時,若欲寫入的資料為冷資料,則基於冷資料配置順序,可決定對子區塊A~F配置冷資料的候選順序由先至後依序為:D→A→E→B→C→F。第11圖中符號「( )」中的數字即表示子區塊A~F所對應的冷資料配置順序。
綜上所述,本發明所提出之資料配置方法及應用其之電子系統可減輕編程干擾的影響。藉由重新劃分實體記憶區塊,並基於資料本身的冷、熱特性以將其配置至特定的資料儲存位置,因編程干擾而造成的錯誤可有效地被降低,進而提升記憶體的可靠度。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S1、S0、S11、S10、S00、S01、S1’、S0’、S11’、S10’、S00’、S01’‧‧‧閥電壓分佈
Vt‧‧‧感測電壓
200‧‧‧電子系統
202‧‧‧記憶體
204‧‧‧控制器
PB‧‧‧實體記憶區塊
DU‧‧‧資料單元
302、304、306、308‧‧‧步驟
WL0、WL1‧‧‧字元線
P1~P8‧‧‧資料頁
402、404、406、408、410、412、502、504、512、514、516、602、604、606、608、A、B、C、D、E、F‧‧‧子區塊
第1圖繪示不同類型記憶胞的閥電壓分佈示意圖。 第2圖繪示依據本發明一實施例之電子系統之簡化方塊圖。 第3圖繪示依據本發明一實施例之資料配置方法之流程圖。 第4a圖繪示依據實體位置交錯條件劃分資料單元以形成子區塊的一例示意圖。 第4b圖繪示依據實體位置交錯條件劃分資料單元以形成子區塊的另一例示意圖。 第4c圖繪示依據實體位置交錯條件劃分資料單元以形成子區塊的又一例示意圖。 第5圖繪示依據資料準位條件劃分資料單元以形成子區塊的一例示意圖。 第6圖繪示結合實體位置交錯條件以及資料準位條件劃分資料單元以形成子區塊的一例示意圖。 第7圖繪示結合實體位置交錯條件以及資料準位條件劃分出子區塊後,各子區塊間的編程干擾耐受度強弱關係。 第8圖繪示對第7圖之子區塊配置熱資料之優先次序圖。 第9圖繪示對第7圖之子區塊配置冷資料之優先次序圖。 第10圖繪示對基於TLC架構之子區塊配置熱資料之優先次序圖。 第11圖繪示對基於TLC架構之子區塊配置冷資料之優先次序圖。
302、304、306、308‧‧‧步驟
Claims (10)
- 一種資料配置方法,包括: 判斷欲寫入一實體記憶區塊的一資料為熱資料或冷資料; 若該資料為熱資料,依據一熱資料配置順序自該實體記憶區塊中搜尋至少一第一空白子區塊以配置該資料,其中基於該熱資料配置順序,在該實體記憶區塊中編程順序排得越前面且兩資料狀態間的可容許邊界越窄的空白子區塊係優先被選為該至少一第一空白子區塊;以及 若該資料為冷資料,依據一冷資料配置順序自該實體記憶區塊中搜尋至少一第二空白子區塊以配置該資料,其中基於該冷資料配置順序,在該實體記憶區塊中該編程順序排得越後面且該可容許邊界越寬的空白子區塊係優先被選為該至少一第二空白子區塊。
- 如申請專利範圍第1項所述之資料配置方法,更包括: 當該資料為熱資料,且編程該至少一第一空白子區塊將對該實體記憶區塊中具有最低編程干擾耐受度的一子區塊產生編程干擾,跳過該至少一第一空白子區塊,改選取另一空白子區塊以配置該資料;以及 當該資料為冷資料,且編程該至少一第二空白子區塊將對該實體記憶區塊中具有最低編程干擾耐受度的該子區塊產生編程干擾,跳過該至少一第二空白子區塊,改選另一空白子區塊以配置該資料; 其中具有最低編程干擾耐受度的該子區塊所對應之該編程順序在該實體記憶區塊中為最優先,且所對應之該可容許邊界最窄。
- 如申請專利範圍第1項所述之資料配置方法,其中該實體記憶區塊包括複數個資料單元,該些資料單元中彼此實體不相鄰的一組資料單元係被劃分成一第一子區塊以及一第二子區塊,該第一子區塊用以儲存該組資料單元的高位元資料,該第二子區塊用以儲存該組資料單元的低位元資料; 該實體記憶區塊中彼此實體不相鄰的另一組資料單元係被劃分成一第三子區塊以及一第四子區塊,該第三子區塊用以儲存該另一組資料單元的高位元資料,該第四子區塊用以儲存該另一組資料單元的低位元資料; 該第一、二、三、四子區塊的在該實體記憶區塊中的編程順序由先至後為:該第一子區塊、該第三子區塊、該第二子區塊、該第四子區塊; 該資料配置方法更包括: 當該資料為熱資料,在該實體記憶區塊中優先尋找空白的該第二子區塊以配置該資料,若無法找到空白的該第二子區塊,改尋找空白的該第一子區塊以配置該資料;以及 當該資料為冷資料,在該實體記憶區塊中優先尋找空白的該第三子區塊以配置該資料,若無法找到空白的該第三子區塊,改尋找空白的該第一子區塊以配置該資料。
- 如申請專利範圍第3項所述之資料配置方法,其中基於該熱資料配置順序,該第二子區塊具有最優先的候選順序以配置該資料,該第一子區塊次之,再次為該第三子區塊,最後為該第四子區塊; 基於該冷資料配置順序以配置該資料,該第三子區塊具有最優先的候選順序,該第一子區塊次之,再次為該第二子區塊,最後為該第四子區塊。
- 如申請專利範圍第1項所述之資料配置方法,其中該至少一第一空白子區塊以及該至少一第二空白子區塊的數量為複數個,該資料配置方法更包括: 當該資料為熱資料,比較各該第一空白子區塊的鄰近子區塊的無效資料數量,以自該些第一空白子區塊中選擇鄰近最多無效資料的一者以配置該資料;以及 當該資料為冷資料,比較各該第二空白子區塊的鄰近子區塊的無效資料數量,以自該些第二空白子區塊中選擇鄰近最多無效資料的一者以配置該資料。
- 一種電子系統,包括: 一記憶體,包括一實體記憶區塊;以及 一控制器,耦接該記憶體,並經配置而用以: 判斷欲寫入該實體記憶區塊的一資料為熱資料或冷資料; 若該資料為熱資料,依據一熱資料配置順序自該實體記憶區塊中搜尋至少一第一空白子區塊以配置該資料,其中基於該熱資料配置順序,在該實體記憶區塊中編程順序排得越前面且兩資料狀態間的可容許邊界越窄的空白子區塊係優先被選為該至少一第一空白子區塊;以及 若該資料為冷資料,依據一冷資料配置順序自該實體記憶區塊中搜尋至少一第二空白子區塊以配置該資料,其中基於該冷資料配置順序,在該實體記憶區塊中該編程順序排得越後面且該可容許邊界越寬的空白子區塊係優先被選為該至少一第二空白子區塊。
- 如申請專利範圍第6項所述之電子系統,其中當該資料為熱資料,且編程該至少一第一空白子區塊將對該實體記憶區塊中具有最低編程干擾耐受度的一子區塊產生編程干擾,該控制器跳過該至少一第一空白子區塊,改選取另一空白子區塊以配置該資料; 當該資料為冷資料,且編程該至少一第二空白子區塊將對該實體記憶區塊中具有最低編程干擾耐受度的該子區塊產生編程干擾,該控制器跳過該至少一第二空白子區塊,改選取另一空白子區塊以配置該資料; 其中具有最低編程干擾耐受度的該子區塊所對應之該編程順序在該實體記憶區塊中為最優先,且所對應之該可容許邊界最窄。
- 如申請專利範圍第6項所述之電子系統,其中該實體記憶區塊包括複數個資料單元,該些資料單元中彼此實體不相鄰的一組資料單元係被劃分成一第一子區塊以及一第二子區塊,該第一子區塊用以儲存該組資料單元的高位元資料,該第二子區塊用以儲存該組資料單元的低位元資料; 該實體記憶區塊中彼此實體不相鄰的另一組資料單元係被劃分成一第三子區塊以及一第四子區塊,該第三子區塊用以儲存該另一組資料單元的高位元資料,該第四子區塊用以儲存該另一組資料單元的低位元資料; 該第一、二、三、四子區塊的在該實體記憶區塊中的編程順序由先至後為:該第一子區塊、該第三子區塊、該第二子區塊、該第四子區塊; 該控制器更用以: 當該資料為熱資料,在該實體記憶區塊中優先尋找空白的該第二子區塊以配置該資料,若無法找到空白的該第二子區塊,改尋找空白的該第一子區塊以配置該資料;以及 當該資料為冷資料,在該實體記憶區塊中優先尋找空白的該第三子區塊以配置該資料,若無法找到空白的該第三子區塊,改尋找空白的該第一子區塊以配置該資料。
- 如申請專利範圍第8項所述之電子系統,其中基於該熱資料配置順序,該第二子區塊具有最優先的候選順序以配置該資料,該第一子區塊次之,再次為該第三子區塊,最後為該第四子區塊; 基於該冷資料配置順序以配置該資料,該第三子區塊具有最優先的候選順序,該第一子區塊次之,再次為該第二子區塊,最後為該第四子區塊。
- 如申請專利範圍第6項所述之電子系統,其中該至少一第一空白子區塊以及該至少一第二空白子區塊的數量為複數個,當該資料為熱資料,該控制器比較各該第一空白子區塊的鄰近子區塊的無效資料數量,以自該些第一空白子區塊中選擇鄰近最多無效資料的一者以配置該資料; 當該資料為冷資料,該控制器比較各該第二空白子區塊的鄰近子區塊的無效資料數量,以自該些第二空白子區塊中選擇所鄰近最多無效資料的一者以配置該資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562259663P | 2015-11-25 | 2015-11-25 | |
US62/259,663 | 2015-11-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201719663A true TW201719663A (zh) | 2017-06-01 |
TWI625729B TWI625729B (zh) | 2018-06-01 |
Family
ID=58721012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105110874A TWI625729B (zh) | 2015-11-25 | 2016-04-07 | 資料配置方法及應用其之電子系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10120605B2 (zh) |
CN (1) | CN106802767B (zh) |
TW (1) | TWI625729B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI629592B (zh) * | 2017-10-25 | 2018-07-11 | 旺宏電子股份有限公司 | 記憶體裝置及應用於其上之資料管理方法 |
CN109710173A (zh) * | 2017-10-26 | 2019-05-03 | 旺宏电子股份有限公司 | 存储器装置及应用于其上的数据管理方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10168917B2 (en) * | 2016-04-05 | 2019-01-01 | International Business Machines Corporation | Hotness based data storage for facilitating garbage collection |
US11055167B2 (en) * | 2018-05-14 | 2021-07-06 | Micron Technology, Inc. | Channel-scope proximity disturb and defect remapping scheme for non-volatile memory |
US10838831B2 (en) * | 2018-05-14 | 2020-11-17 | Micron Technology, Inc. | Die-scope proximity disturb and defect remapping scheme for non-volatile memory |
KR102565913B1 (ko) * | 2018-06-12 | 2023-08-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 |
US10672469B1 (en) * | 2018-11-30 | 2020-06-02 | Macronix International Co., Ltd. | In-memory convolution for machine learning |
US11194515B2 (en) * | 2019-09-16 | 2021-12-07 | Macronix International Co., Ltd. | Memory system, method of operating memory, and non-transitory computer readable storage medium |
CN114528326A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种数据管理方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7508693B2 (en) * | 2006-03-24 | 2009-03-24 | Macronix International Co., Ltd. | One-time-programmable (OTP) memory device and method for testing the same |
KR100874702B1 (ko) * | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 |
KR101464338B1 (ko) * | 2007-10-25 | 2014-11-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
JP2012022739A (ja) * | 2010-07-13 | 2012-02-02 | Toshiba Corp | 半導体記憶装置 |
US20120317337A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
TWI471862B (zh) * | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
KR101962786B1 (ko) * | 2012-03-23 | 2019-03-27 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법 |
CN103700401A (zh) * | 2012-09-28 | 2014-04-02 | 广明光电股份有限公司 | 快闪存储器编程及读取的方法 |
US9710199B2 (en) * | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
-
2016
- 2016-04-07 TW TW105110874A patent/TWI625729B/zh active
- 2016-04-08 US US15/093,841 patent/US10120605B2/en active Active
- 2016-04-11 CN CN201610220245.4A patent/CN106802767B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI629592B (zh) * | 2017-10-25 | 2018-07-11 | 旺宏電子股份有限公司 | 記憶體裝置及應用於其上之資料管理方法 |
CN109710173A (zh) * | 2017-10-26 | 2019-05-03 | 旺宏电子股份有限公司 | 存储器装置及应用于其上的数据管理方法 |
CN109710173B (zh) * | 2017-10-26 | 2021-12-03 | 旺宏电子股份有限公司 | 存储器装置及应用于其上的数据管理方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI625729B (zh) | 2018-06-01 |
US10120605B2 (en) | 2018-11-06 |
CN106802767A (zh) | 2017-06-06 |
CN106802767B (zh) | 2019-11-05 |
US20170147217A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI625729B (zh) | 資料配置方法及應用其之電子系統 | |
KR102042889B1 (ko) | 메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출 | |
US9740425B2 (en) | Tag-based wear leveling for a data storage device | |
EP3158454B1 (en) | Sub-block garbage collection | |
US9104556B2 (en) | Update block programming order | |
US9349479B1 (en) | Boundary word line operation in nonvolatile memory | |
US9182928B2 (en) | Lower page only host burst writes | |
US20160179399A1 (en) | System and Method for Selecting Blocks for Garbage Collection Based on Block Health | |
TWI395223B (zh) | 用於系統管理之多位準單元選擇的多程式 | |
US9841910B2 (en) | Moving and committing valid data on a set-by-set basis | |
TW200849261A (en) | Partial block erase architecture for flash memory | |
TW201407620A (zh) | 用於非揮發性記憶體的程式化方法、用於記憶體系統的資料管理方法、用於非揮發性記憶體的資料管理方法、記憶體系統以及用於記憶體系統的控制器 | |
US9804785B2 (en) | Nonvolatile memory adaptive to host boot up routine | |
US9817593B1 (en) | Block management in non-volatile memory system with non-blocking control sync system | |
US10055267B2 (en) | Block management scheme to handle cluster failures in non-volatile memory | |
US9384845B2 (en) | Partial erase of nonvolatile memory blocks | |
CN112650442B (zh) | 存储器系统、存储器控制器及操作方法 | |
KR20150094543A (ko) | 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리 | |
US20160094339A1 (en) | Scrambling schemes for scrambling and descrambling data | |
US8995183B2 (en) | Data retention in nonvolatile memory with multiple data storage formats | |
TWI578320B (zh) | 記憶體的操作方法及應用其之記憶體裝置 | |
CN112037837B (zh) | 存储器系统、存储器控制器和存储器设备 | |
CN117636980A (zh) | 部分块读取电压偏移 | |
CN115933963A (zh) | 存储器系统及存储器系统的操作方法 |