CN106802767A - 数据配置方法及应用其的电子系统 - Google Patents
数据配置方法及应用其的电子系统 Download PDFInfo
- Publication number
- CN106802767A CN106802767A CN201610220245.4A CN201610220245A CN106802767A CN 106802767 A CN106802767 A CN 106802767A CN 201610220245 A CN201610220245 A CN 201610220245A CN 106802767 A CN106802767 A CN 106802767A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- sub
- blank
- configure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/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/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/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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据配置方法,包括以下步骤:判断欲写入一实体存储区块的一数据为热数据或冷数据;若该数据为热数据,依据一热数据配置顺序自该实体存储区块中搜寻至少一第一空白子区块以配置该数据;若该数据为冷数据,依据一冷数据配置顺序自该实体存储区块中搜寻至少一第二空白子区块以配置该数据。
Description
技术领域
本发明涉及一种数据配置方法及应用其的电子系统,且特别是一种可改善编程干扰(program disturb)的数据配置方法及应用其的电子系统。
背景技术
闪存(flash memory)是非易失性存储器(non-volatile memory)技术的一种。闪存具有访问速度快、耗电量低的优点。传统的闪存采用浮置栅极(floating gate)存储单元。通过对浮置栅极注入/释放电子,可改变存储单元的阀电压分布,使其对应于特定的数据状态。
然而,随着存储器装置的密度增加且存储单元间变得越来越紧密,编程干扰(program disturb)效应将越趋明显。举例来说,在编程NAND闪存中的一选定存储单元时,附近存储单元的阀电压分布将受到编程的干扰而偏移,使得原先的偏压设定将无法正确地读取数据。
发明内容
本发明涉及一种可改善编程干扰的数据配置方法及应用其的电子系统。
根据本发明一方面,提出一种数据配置方法。该数据配置方法包括以下步骤:判断欲写入一实体存储区块的一数据为热数据或冷数据;若该数据为热数据,依据一热数据配置顺序自该实体存储区块中搜寻至少一第一空白子区块以配置该数据,其中基于该热数据配置顺序,在该实体存储区块中编程顺序排得越前面且两数据状态间的可容许边界越窄的空白子区块优先被选为该至少一第一空白子区块;若该数据为冷数据,依据一冷数据配置顺序自该实体存储区块中搜寻至少一第二空白子区块以配置该数据,其中基于该冷数据配置顺序,在该实体存储区块中编程顺序排得越后面且可容许边界越宽的空白子区块优先被选为该至少一第二空白子区块。
根据本发明另一方面,提出一种电子系统。该电子系统包括存储器以及控制器。存储器包括实体存储区块。控制器耦接该存储器,并经配置而用以:判断欲写入该实体存储区块的一数据为热数据或冷数据;若该数据为热数据,依据一热数据配置顺序自该实体存储区块中搜寻至少一第一空白子区块以配置该数据,其中基于该热数据配置顺序,在该实体存储区块中编程顺序排得越前面且两数据状态间的可容许边界越窄的空白子区块优先被选为该至少一第一空白子区块;若该数据为冷数据,依据一冷数据配置顺序自该实体存储区块中搜寻至少一第二空白子区块以配置该数据,其中基于该冷数据配置顺序,在该实体存储区块中编程顺序排得越后面且可容许边界越宽的空白子区块优先被选为该至少一第二空白子区块。
为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下:
附图说明
图1是不同类型存储单元的阀电压分布示意图。
图2是依据本发明一实施例的电子系统的简化方块图。
图3是依据本发明一实施例的数据配置方法的流程图。
图4a是依据实体位置交错条件划分数据单元以形成子区块的一例示意图。
图4b是依据实体位置交错条件划分数据单元以形成子区块的另一例示意图。
图4c是依据实体位置交错条件划分数据单元以形成子区块的又一例示意图。
图5是依据数据准位条件划分数据单元以形成子区块的一例示意图。
图6是结合实体位置交错条件以及数据准位条件划分数据单元以形成子区块的一例示意图。
图7是结合实体位置交错条件以及数据准位条件划分出子区块后,各子区块间的编程干扰耐受度强弱关系。
图8是对第7图的子区块配置热数据的优先次序图。
图9是对第7图的子区块配置冷数据的优先次序图。
图10是对基于TLC架构的子区块配置热数据的优先次序图。
图11是对基于TLC架构的子区块配置冷数据的优先次序图。
【符号说明】
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图是不同类型存储单元的阀电压分布示意图。如第1图所示,像是单阶存储单元(Single Level Cell,SLC)的存储单元用以存储1位数据,而像是多阶存储单元(MultiLevel 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将依据一热数据配置顺序(hotdata allocation order)自实体存储区块PB中搜寻一或多个空白子区块以配置该数据。
所述的热数据配置顺序可基于以下两个原则而决定:(1)当一数据存储位置的编程干扰耐受度越低,其被配置热数据的优先级排得越前面,及/或(2)若基于原则(1)所选的数据存储位置会对具有最低编程干扰耐受度的子区块产生编程干扰,则跳过该数据存储位置,改寻找另一数据存储位置(例如基于原则(1)的下一顺位子区块),以避免具有最低编程干扰耐受度的数据存储位置受编程干扰影响。
因此,基于热数据配置顺序,在实体存储区块PB中编程顺序排得越前面且两数据状态间的可容许边界越窄的空白子区块将优先被选为配置该热数据的子区块。换言之,具有较低编程干扰耐受度的空白子区块将优先被选为放置该热数据的子区块。
又,若编程空白子区块将对实体存储区块PB中具有最低编程干扰耐受度的子区块产生编程干扰,控制器204将跳过该空白子区块,改寻找另一空白子区块以配置该热数据,以避免对具有最低编程干扰耐受度的子区块产生严重的编程干扰,其中具有最低编程干扰耐受度的该子区块所对应的编程顺序在实体存储区块PB中为最优先,且所对应的可容许边界最窄。
在步骤306,若欲写入的数据为冷数据,控制器204将依据一冷数据配置顺序(colddata 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)、闪存转换层(FlashTranslation 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所对应的冷数据配置顺序。
综上所述,本发明所提出的数据配置方法及应用其的电子系统可减轻编程干扰的影响。通过重新划分实体存储区块,并基于数据本身的冷、热特性以将其配置至特定的数据存储位置,因编程干扰而造成的错误可有效地被降低,进而提升存储器的可靠度。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据配置方法,包括:
判断欲写入一实体存储区块的一数据为热数据或冷数据;
若该数据为热数据,依据一热数据配置顺序自该实体存储区块中搜寻至少一第一空白子区块以配置该数据,其中基于该热数据配置顺序,在该实体存储区块中编程顺序排得越前面且两数据状态间的可容许边界越窄的空白子区块优先被选为该至少一第一空白子区块;以及
若该数据为冷数据,依据一冷数据配置顺序自该实体存储区块中搜寻至少一第二空白子区块以配置该数据,其中基于该冷数据配置顺序,在该实体存储区块中该编程顺序排得越后面且该可容许边界越宽的空白子区块优先被选为该至少一第二空白子区块。
2.如权利要求1项所述的数据配置方法,其特征在于,还包括:
当该数据为热数据,且编程该至少一第一空白子区块将对该实体存储区块中具有最低编程干扰耐受度的一子区块产生编程干扰,跳过该至少一第一空白子区块,改选取另一空白子区块以配置该数据;以及
当该数据为冷数据,且编程该至少一第二空白子区块将对该实体存储区块中具有最低编程干扰耐受度的该子区块产生编程干扰,跳过该至少一第二空白子区块,改选另一空白子区块以配置该数据;
其中具有最低编程干扰耐受度的该子区块所对应的该编程顺序在该实体存储区块中为最优先,且所对应的该可容许边界最窄。
3.如权利要求1项所述的数据配置方法,其特征在于,该实体存储区块包括至少两个数据单元,所述数据单元中彼此实体不相邻的一组数据单元被划分成一第一子区块以及一第二子区块,该第一子区块用以存储该组数据单元的高位数据,该第二子区块用以存储该组数据单元的低位数据;
该实体存储区块中彼此实体不相邻的另一组数据单元被划分成一第三子区块以及一第四子区块,该第三子区块用以存储该另一组数据单元的高位数据,该第四子区块用以存储该另一组数据单元的低位数据;
该第一、二、三、四子区块的在该实体存储区块中的编程顺序由先至后为:该第一子区块、该第三子区块、该第二子区块、该第四子区块;
该数据配置方法还包括:
当该数据为热数据,在该实体存储区块中优先寻找空白的该第二子区块以配置该数据,若无法找到空白的该第二子区块,改寻找空白的该第一子区块以配置该数据;以及
当该数据为冷数据,在该实体存储区块中优先寻找空白的该第三子区块以配置该数据,若无法找到空白的该第三子区块,改寻找空白的该第一子区块以配置该数据。
4.如权利要求3项所述的数据配置方法,其特征在于,基于该热数据配置顺序,该第二子区块具有最优先的候选顺序以配置该数据,该第一子区块次之,再次为该第三子区块,最后为该第四子区块;
基于该冷数据配置顺序以配置该数据,该第三子区块具有最优先的候选顺序,该第一子区块次之,再次为该第二子区块,最后为该第四子区块。
5.如权利要求1项所述的数据配置方法,其特征在于,该至少一第一空白子区块以及该至少一第二空白子区块的数量为至少两个,该数据配置方法还包括:
当该数据为热数据,比较各该第一空白子区块的邻近子区块的无效数据数量,以自所述第一空白子区块中选择邻近最多无效数据的一者以配置该数据;以及
当该数据为冷数据,比较各该第二空白子区块的邻近子区块的无效数据数量,以自所述第二空白子区块中选择邻近最多无效数据的一者以配置该数据。
6.一种电子系统,包括:
一存储器,包括一实体存储区块;以及
一控制器,耦接该存储器,并经配置而用以:
判断欲写入该实体存储区块的一数据为热数据或冷数据;
若该数据为热数据,依据一热数据配置顺序自该实体存储区块中搜寻至少一第一空白子区块以配置该数据,其中基于该热数据配置顺序,在该实体存储区块中编程顺序排得越前面且两数据状态间的可容许边界越窄的空白子区块优先被选为该至少一第一空白子区块;以及
若该数据为冷数据,依据一冷数据配置顺序自该实体存储区块中搜寻至少一第二空白子区块以配置该数据,其中基于该冷数据配置顺序,在该实体存储区块中该编程顺序排得越后面且该可容许边界越宽的空白子区块优先被选为该至少一第二空白子区块。
7.如权利要求6项所述的电子系统,其特征在于,当该数据为热数据,且编程该至少一第一空白子区块将对该实体存储区块中具有最低编程干扰耐受度的一子区块产生编程干扰,该控制器跳过该至少一第一空白子区块,改选取另一空白子区块以配置该数据;
当该数据为冷数据,且编程该至少一第二空白子区块将对该实体存储区块中具有最低编程干扰耐受度的该子区块产生编程干扰,该控制器跳过该至少一第二空白子区块,改选取另一空白子区块以配置该数据;
其中具有最低编程干扰耐受度的该子区块所对应的该编程顺序在该实体存储区块中为最优先,且所对应的该可容许边界最窄。
8.如权利要求6项所述的电子系统,其特征在于,该实体存储区块包括至少两个数据单元,所述数据单元中彼此实体不相邻的一组数据单元被划分成一第一子区块以及一第二子区块,该第一子区块用以存储该组数据单元的高位数据,该第二子区块用以存储该组数据单元的低位数据;
该实体存储区块中彼此实体不相邻的另一组数据单元被划分成一第三子区块以及一第四子区块,该第三子区块用以存储该另一组数据单元的高位数据,该第四子区块用以存储该另一组数据单元的低位数据;
该第一、二、三、四子区块的在该实体存储区块中的编程顺序由先至后为:该第一子区块、该第三子区块、该第二子区块、该第四子区块;
该控制器还用以:
当该数据为热数据,在该实体存储区块中优先寻找空白的该第二子区块以配置该数据,若无法找到空白的该第二子区块,改寻找空白的该第一子区块以配置该数据;以及
当该数据为冷数据,在该实体存储区块中优先寻找空白的该第三子区块以配置该数据,若无法找到空白的该第三子区块,改寻找空白的该第一子区块以配置该数据。
9.如权利要求8项所述的电子系统,其特征在于,基于该热数据配置顺序,该第二子区块具有最优先的候选顺序以配置该数据,该第一子区块次之,再次为该第三子区块,最后为该第四子区块;
基于该冷数据配置顺序以配置该数据,该第三子区块具有最优先的候选顺序,该第一子区块次之,再次为该第二子区块,最后为该第四子区块。
10.如权利要求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 |
---|---|
CN106802767A true CN106802767A (zh) | 2017-06-06 |
CN106802767B CN106802767B (zh) | 2019-11-05 |
Family
ID=58721012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610220245.4A Active CN106802767B (zh) | 2015-11-25 | 2016-04-11 | 数据配置方法及应用其的电子系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10120605B2 (zh) |
CN (1) | CN106802767B (zh) |
TW (1) | TWI625729B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111261210A (zh) * | 2018-11-30 | 2020-06-09 | 旺宏电子股份有限公司 | 存储器装置 |
Families Citing this family (8)
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 |
TWI629592B (zh) * | 2017-10-25 | 2018-07-11 | 旺宏電子股份有限公司 | 記憶體裝置及應用於其上之資料管理方法 |
CN109710173B (zh) * | 2017-10-26 | 2021-12-03 | 旺宏电子股份有限公司 | 存储器装置及应用于其上的数据管理方法 |
US10838831B2 (en) * | 2018-05-14 | 2020-11-17 | Micron Technology, Inc. | Die-scope proximity disturb and defect remapping scheme for non-volatile memory |
US11055167B2 (en) * | 2018-05-14 | 2021-07-06 | Micron Technology, Inc. | Channel-scope proximity disturb and defect remapping scheme for non-volatile memory |
KR102565913B1 (ko) * | 2018-06-12 | 2023-08-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 |
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 | 华为技术有限公司 | 一种数据管理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042936A (zh) * | 2006-03-24 | 2007-09-26 | 旺宏电子股份有限公司 | 降低编程边界的可编程非易失性存储元件与其测试方法 |
US20080082729A1 (en) * | 2006-10-02 | 2008-04-03 | Samsung Electronics Co. Ltd. | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof |
US20120014191A1 (en) * | 2010-07-13 | 2012-01-19 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
CN103700401A (zh) * | 2012-09-28 | 2014-04-02 | 广明光电股份有限公司 | 快闪存储器编程及读取的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
TWI471862B (zh) * | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
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
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042936A (zh) * | 2006-03-24 | 2007-09-26 | 旺宏电子股份有限公司 | 降低编程边界的可编程非易失性存储元件与其测试方法 |
US20080082729A1 (en) * | 2006-10-02 | 2008-04-03 | Samsung Electronics Co. Ltd. | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof |
US20120014191A1 (en) * | 2010-07-13 | 2012-01-19 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN103700401A (zh) * | 2012-09-28 | 2014-04-02 | 广明光电股份有限公司 | 快闪存储器编程及读取的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111261210A (zh) * | 2018-11-30 | 2020-06-09 | 旺宏电子股份有限公司 | 存储器装置 |
CN111261210B (zh) * | 2018-11-30 | 2022-02-22 | 旺宏电子股份有限公司 | 存储器装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106802767B (zh) | 2019-11-05 |
US10120605B2 (en) | 2018-11-06 |
TW201719663A (zh) | 2017-06-01 |
US20170147217A1 (en) | 2017-05-25 |
TWI625729B (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802767B (zh) | 数据配置方法及应用其的电子系统 | |
US9104556B2 (en) | Update block programming order | |
CN104282337B (zh) | 存储设备及其写方法 | |
US9182928B2 (en) | Lower page only host burst writes | |
CN102918599B (zh) | 具有基本程序序列和写中止检测的非易失性存储器和方法 | |
CN111095226B (zh) | 具有动态高速缓冲存储器管理的存储器装置 | |
CN107015917A (zh) | 储存装置和其读取回收方法 | |
US20140247660A1 (en) | Compensation for Sub-Block Erase | |
CN106504789A (zh) | 储存器件及其操作方法 | |
US10055267B2 (en) | Block management scheme to handle cluster failures in non-volatile memory | |
CN104641418A (zh) | 存储系统 | |
CN103544993A (zh) | 非易失性存储器件和存储器系统及管理、擦除和编程方法 | |
CN102682848B (zh) | 存储器装置、存储器卡、固态驱动器、系统及其操作方法 | |
US9940058B2 (en) | Data storage device and data maintenance method thereof | |
KR20120106801A (ko) | 온-칩 폴딩을 위한 데이터 전송 | |
US8964467B1 (en) | Systems and methods for partial page programming of multi level cells | |
KR20120106800A (ko) | 데이터의 온-칩 폴딩을 사용한 복수-기어 제어를 가진 비휘발성 메모리 | |
CN107068191A (zh) | 非易失性存储器装置和非易失性存储器装置的编程方法 | |
US9817593B1 (en) | Block management in non-volatile memory system with non-blocking control sync system | |
CN106250052A (zh) | 存储系统及其操作方法 | |
CN109947662A (zh) | 存储器系统及其操作方法 | |
CN105810249A (zh) | 用于非易失性存储器装置的操作参数的快速适应性整理 | |
CN108735253A (zh) | 非易失性存储器存储系统 | |
Mizoguchi et al. | Lateral charge migration suppression of 3D-NAND flash by vth nearing for near data computing | |
CN106920570A (zh) | 存储器系统及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |