CN118212964A - 半导体***、存储器装置以及计算机实施方法 - Google Patents
半导体***、存储器装置以及计算机实施方法 Download PDFInfo
- Publication number
- CN118212964A CN118212964A CN202310388807.6A CN202310388807A CN118212964A CN 118212964 A CN118212964 A CN 118212964A CN 202310388807 A CN202310388807 A CN 202310388807A CN 118212964 A CN118212964 A CN 118212964A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- memory
- semiconductor device
- controller
- 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.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 195
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 407
- 239000000872 buffer Substances 0.000 claims description 170
- 238000012937 correction Methods 0.000 claims description 91
- 238000009826 distribution Methods 0.000 description 56
- 230000008569 process Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 21
- 230000014759 maintenance of location Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 12
- 239000010410 layer Substances 0.000 description 11
- 230000009467 reduction Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002277 temperature effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/0653—Monitoring storage devices or systems
-
- 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/0625—Power saving in storage systems
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开提供一种半导体***、存储器装置及计算机实施方法,该半导体***包括半导体装置以及控制器。半导体装置用于存储数据。控制器通讯耦接于半导体装置。半导体装置以及控制器用于:响应于判断存储于半导体装置的特定数据是否符合可靠度条件,通过采用第一读取电压读取特定数据以取得第一读出数据,以及采用第二读取电压读取特定数据以取得第二读出数据,第二读取电压不同于第一读取电压。半导体装置以及控制器用于比较第一读出数据以及第二读出数据以取得比较结果;以及根据比较结果,判断是否对特定数据执行纠错程序。
Description
技术领域
本公开关于一种装置及方法,尤其一种半导体***、存储器装置及计算机实施方法。
背景技术
一旦数据存储装置(例如半导体存储装置)的存储器单元编程,数据可通过提供电压至存储器单元并感测出相应的电流而由存储器单元读出。读出结果取决于存储器单元的阈值电压。然而,存储器单元的阈值电压以及相应的半导体装置的所有阈值电压分布,会因应于不同的因素而不断地变化。
发明内容
本公开提供一种半导体***、存储器装置及计算机实施方法,以测量半导体装置的数据可靠度,举例而言,半导体装置为存储器装置(例如闪存)。两个或多个读出数据以各自不同的读取电压由半导体装置内读取,上述读出数据互相进行比较。基于比较结果,例如读出数据间的匹配或不匹配等级,以决定是否执行后续纠错程序。
本公开的第一个方面,提供一种半导体***,包括半导体装置以及控制器。半导体装置用于存储数据。控制器通讯耦接于半导体装置。半导体装置以及控制器用于:响应于判断存储于半导体装置的特定数据是否符合可靠度条件,通过第一读取电压读取特定数据以取得第一读出数据,以及以第二读取电压读取特定数据以取得第二读出数据,第二读取电压不同于第一读取电压。半导体装置以及控制器用于比较第一读出数据以及第二读出数据以取得比较结果;以及根据比较结果,判断是否对特定数据执行纠错程序。
在一些实施中,本公开的***可采用一个或多个以下特征来加以实施。
在一实施例中,半导体装置包括第一页面缓冲器以及第二页面缓冲器。半导体装置用于:存储第一读出数据于第一页面缓冲器,存储第二读出数据于第二页面缓冲器,以及比较第一页面缓冲器中的第一读出数据以及第二页面缓冲器中的第二读出数据以取得比较结果。
在一实施例中,半导体装置包括至少一个平面,且至少一个平面的每一平面包括存储器阵列。半导体装置还包括页面缓冲器电路,页面缓冲器电路耦接于至少一个平面。页面缓冲器电路包括至少一个平面的每一平面的至少二个页面缓冲器。特定数据存储于至少一个平面的特定平面,以及第一页面缓冲器以及第二页面缓冲器关联于至少一个平面的特定平面。
在一实施例中,控制器用于由半导体装置接收比较结果,响应于判断比较结果是否符合阈值条件,由半导体装置取得特定数据,以及对特定数据执行纠错程序。
在一实施例中,控制器用于以第一读取电压由半导体装置读取特定数据,取得第一读出数据,以及存储第一读出数据;以第二读取电压由半导体装置读取特定数据,取得第二读出数据,以及存储第二读出数据;以及比较第一读出数据以及第二读出数据以取得比较结果。
在一实施例中,控制器用于响应于判断比较结果是否符合阈值条件,从半导体装置读取特定数据,以及对特定数据执行纠错程序。
在一实施例中,控制器用于,响应于根据纠错程序的结果以判断特定数据是否符合数据更新条件,对特定数据执行数据更新操作。
在一实施例中,控制器包括修正错误码电路(Error-correcting Code circuit,ECC circuit),修正错误码电路用于执行纠错程序,且控制器根据纠错程序的结果以判断特定数据是否符合数据更新条件包括:判断由修正错误码电路侦测到的特定数据中的错误的数量是否超过修正错误码电路的数据更新阈值。
在一实施例中,判断存储于半导体装置的特定数据是否符合可靠度条件根据以下至少一个条件:对特定数据执行读取的数量,对特定数据执行写入的数量,对特定数据执行擦除的数量,或从特定数据存储于半导体装置起的流逝时间周期(lapsed time period)。
在一实施例中,第一读出数据报含第一多个位,且第二读出数据报含第二多个位,比较第一读出数据以及第二读出数据以取得比较结果包括执行位于第一多个位以及第二多个位之间的按位比较(bitwise comparison),以及比较结果基于第一多个位以及第二多个位之间的未匹配的位数量。
在一实施例中,第一读取电压与第二读取电压间的电压差介于0.05V与0.2V。
在一实施例中,第一读取电压与第二读取电压介于半导体装置的单元的两个最高级阈值电压分布峰值。
在一实施例中,第一读取电压以及第二读取电压的数值存储为半导体装置中的默认值;或控制器基于半导体装置的使用程度以判断第一读取电压或第二读取电压的其中至少一个。
在一实施例中,半导体装置包括与非门闪存装置(NAND Flash memory device)。
在一实施例中,半导体装置为第一半导体装置,且***还包括第二半导体装置。控制器用于致使第一半导体装置以及第二半导体装置以各自的两个不同的读取电压去读取第一半导体装置或第二半导体装置各自的特定数据。
在一实施例中,控制器用于传送第一组指令至第一半导体装置致使第一半导体装置以第一组不同读取电压读取第一特定数据以取得第一读出数据对,以及比较第一读出数据对以取得第一比较结果,传送第二组指令至第二半导体装置致使第二半导体装置以第二组不同读取电压读取第二特定数据以取得第二读出数据对,以及比较第二读出数据对以取得第二比较结果,以及连续地接收第一比较结果以及第二比较结果。第一组指令至少部分地与第二组指令交错。
在一实施例中,判断特定数据是否符合可靠度条件包括:判断半导体装置的存储单元是否符合可靠度条件,其中特定数据为存储于存储单元中的数据子集(subset ofdata)。
在一实施例中,本公开的第二个方面,提供一种半导体装置,例如存储器装置。该半导体装置包括第一页面缓冲器、第二页面缓冲器以及电路。电路用于通过以第一读取电压读取存储器装置中的特定数据以取得第一读出数据,存储第一读出数据于第一页面缓冲器,通过以第二读取电压读取存储器装置中的特定数据以取得第二读出数据,其中第二读取电压不同于第一读取电压,存储第二读出数据于第二页面缓冲器,以及比较第一读出数据以及第二读出数据以取得比较结果。
在一实施例中,存储器装置包括至少一个平面。至少一个平面的每一平面包括存储器阵列。存储器装置还包括页面缓冲器电路。页面缓冲器电路耦接于至少一个平面。页面缓冲器电路包括至少一个平面的每一平面的至少二个页面缓冲器。特定数据存储于至少一个平面的特定平面,以及其中第一页面缓冲器以及第二页面缓冲器关联于特定平面。
在一实施例中,第一读出数据报含第一多个位,以及第二读出数据报含第二多个位。比较第一读出数据以及第二读出数据以取得比较结果包括执行位于第一多个位以及第二多个位之间的按位比较(bitwise comparison)。比较结果基于第一多个位以及第二多个位之间的未匹配的位数量。
本公开的第三个方面,提供一种计算机实施方法,该计算机实施方法包括响应于判断存储于半导体装置的特定数据是否符合可靠度条件,通过以第一读取电压读取特定数据以取得第一读出数据,以及通过以第二读取电压读取特定数据以取得第二读出数据,其中第二读取电压不同于第一读取电压;比较第一读出数据以及第二读出数据以取得比较结果;以及根据比较结果,判断是否对特定数据执行纠错程序。
在一实施例中,计算机实施方法包括存储第一读出数据于半导体装置的第一页面缓冲器,存储第二读出数据于半导体装置的第二页面缓冲器,以及比较第一页面缓冲器的第一读出数据以及第二页面缓冲器的第二读出数据以取得比较结果。
在参阅本公开实施方式后,本公开所属技术领域中技术人员当可轻易了解本公开的基本精神及其他发明目的,以及本公开所采用的技术手段与实施方面。
附图说明
根据惯常的作业方式,图中各种特征与元件并未依比例绘制,其绘制方式是为了以最佳的方式呈现与本公开相关的具体特征与元件。此外,在不同附图间,以相同或相似的元件符号来指称相似的元件/部件。为让本公开的上述和其他目的、特征、优点与实施例能更明显易懂,所附附图的说明如下。
图1A至图1B依照本公开一实施例绘示一种半导体装置的示意图;
图2依照本公开一实施例绘示一种包括控制器以及半导体装置的***的示意图;
图3依照本公开一实施例绘示一种阈值电压分布的示意图;
图4A至图4B依照本公开一实施例绘示一种多个存储单元的多个读出电压的示意图;
图5依照本公开一实施例绘示一种错误分析程序的流程示意图;
图6依照本公开一实施例绘示一种读出数据存储于多个页面缓冲器的错误分析程序的流程示意图;
图7依照本公开一实施例绘示一种读出数据传输给控制器的错误分析程序的流程示意图;
图8至图10依照本公开一实施例绘示一种信号的时序图;
图11依照本公开一实施例绘示一种纠错程序与数据更新操作的流程示意图;
图12依照本公开一实施例绘示一种包括一对一配置的控制器以及半导体装置的***的示意图;
图13依照本公开一实施例绘示一种包括控制器、多个接口以及多个半导体装置的***的示意图;
图14依照本公开一实施例绘示一种包括控制器以及各自耦接于多个半导体装置的多个接口的***的示意图;以及
图15依照本公开一实施例绘示一种包括控制器、多任务器以及多个半导体装置的***的示意图。
附图标记说明:
100:半导体装置;
102:控制逻辑电路;
104:IO控制逻辑电路;
106:高压电路;
108:存储器阵列;
110:页面缓冲器电路;
112:指令缓存器;
114:地址缓存器;
116:状态缓存器;
118:R/B#(预备好/忙碌)#模块;
120:比较逻辑电路;
122:比较结果缓存器;
124:引脚;
126:X-译码器;
128:Y-译码器;
130a、130b:页面缓冲器;
142:页面;
144:单元串;
146:串选择线;
148:接地选择线;
149:共源线;
150:平面;
200:控制器;
201:***;
202:主机接口;
204:处理器;
206:ECC编码器;
208:ECC译码器;
210:装置接口;
212:半导体装置;
214:内部存储器;
220:主装置;
222:主控制器;
300:实施例;
302、304、306、308a、308b:分布;
400:分布;
402a:分布;
404a:第一读出数据;
404b:第二读出数据;
420:分布;
402b:分布;
424a:第一读出数据;
424b:第二读出数据;
500:程序;
502、504、506、508、510、512、514:步骤;
600:程序;
602、604、606、610:步骤;
700:程序;
702、704、706、708、710、712:步骤;
802:致能信号;
804a:第一指令;
804b:第二指令;
804c:第三指令;
804d:第四指令;
806:预备好/忙碌#信号;
808:比较结果;
904a、904b、904c、904d、904e、904f、904g、904h:指令;
908a、908b、910a、910b:比较结果;
1002:致能信号;
1004a、1004b、1004c、1004d:指令;
1006a:第一读出数据;
1006b:第二读出数据;
1100:程序;
1102、1104、1106、1108、1110:步骤;
1200:***;
1202:控制器;
1204:界面;
1206:半导体装置;
1208:处理器;
1300:***;
1302:控制器;
1304a、1304b:界面;
1306a~1306d:半导体装置;
1308:处理器;
1310:内部存储器;
1400:***;
1402:控制器;
1404a、1404b:界面;
1406a~1406b:半导体装置;
1408:处理器;
1410:内部存储器;
1500:***;
1502:控制器;
1504a~1504c:界面;
1506a~1506d:半导体装置;
1508:处理器;
1510:内部存储器;
1512a~1512c:物理层;
1514:解多任务器;
1516:多任务装置。
具体实施方式
基于频繁地读取操作,半导体存储器(例如,闪存)会遭受读取干扰,其中存储器中的存储器单元的状态(例如,擦除状态以及一个或多个编程状态)会具有升高的阈值电压。此外,存储器遭受数据保持降低的影响,其中由于例如高温的影响,存储器单元的编程状态会具有降低的阈值电压。读取干扰以及/或数据保持降低会导致于读取数据时产生失败位(或错误位)。再者,若降低内部单元距离以将数据存储密度提高,由内部单元耦合导致的读取错误将会更容易发生。
修正错误码译码器(Error correcion Code decoder,ECC decoder)可被用于译码由存储器读取的数据,以进行侦测及校正任何会发生于数据中的位错误,侦测及校正取决于修正错误码电路的纠错能力。在编程后,修正错误码被写入存储器,且适当的纠错方案(例如基于汉明码方案)可于数据读取时被用于校正错误。
若数据要长时间存储,数据中错误位的数量亦会提高。修正错误码方法或电路会具有可校正位的上限;若错误位的数量超过上限,纠错方案可能就不足以校正所有错误。数据更新操作可根据纠错程序的结果加以执行。然而,纠错程序以及数据更新操作皆会消耗***资源(例如电力、处理资源以及带宽)。若是纠错程序或数据更新操作被不必要地执行(例如当错误位的数量较小时执行),这些资源将会被浪费。
本公开实施例提供方法、装置、***以及技术以于执行纠错程序之前对特定数据执行错误分析。错误分析基于纠错程序是否须执行以组成“检核点”,以协助保存***资源。
在一些实施例中,通过以两个或多个不同读取电压读取特定数据(例如,存储器的特定页面中的数据)以执行错误分析。两个或多个结果读出数据被用于彼此比较以识别不匹配,例如,不匹配位。足够高的不匹配电平指示特定数据的存储错误的程度较高,例如,指示存储器受到读取干扰以及/或数据保持降低。相应地,纠错程序会被执行。
在一些实施例中,半导体装置存储数据(例如,存储器)用于提供错误分析程序。举例而言,半导体装置可包括多个缓冲器对应存储器的每一单元(例如,两个页面缓冲器对应存储器的每一平面),多个读出数据可被存储于对应存储器的每一单元。半导体装置可包括电路,电路用于比较多个读出数据,例如,对多个读出数据实施位运算XOR操作。在一些实施例中,半导体装置包括电路,电路用于存储比较结果,电路可为,例如,比较结果缓存器。
技术以及电路配置可实施于任何类型的半导体装置,半导体装置存储可被传输至其它装置或装置的一部分的数据。在一些实施例中,因为此处所述的程序提供的检核点,***资源的使用量降低,例如电力使用量、处理器使用量以及/或带宽使用量。在一些实施例中,通过对半导体装置执行读出数据比较以降低***资源,避免由半导体装置传输至控制器的读出数据的资源的使用量。
此处所述的技术可被应用于不同类型的存储器以及存储器***,例如,二维存储器(two-dimensional storage,2D storage)以及存储器***或三维存储器(three-dimensional storage,3D storage)以及存储器***。技术可被应用于不同类型的存储器以及存储器装置,例如单层单元装置(single-level cell device,SLC device),或多层单元装置(multi-level cell device,MLC device),上述多层单元装置可为双层单元装置或三层单元装置(triple-level cell device,TLC device)。技术可应用于不同类型的非易失性存储器以及存储器装置,例如静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、闪存(例如或非门闪存(NOR Flash memory)以及/或与非门闪存(NAND Flash memory))、可变电阻式存储器(Resistive random-access memory,RRAM)、磁阻式随机存取存储器(MagnetoresistiveRandom Access Memory,MRAM)或相位变动式存储器(phase-change random-accessmemory,PCRAM)。此外,技术可应用于不同类型的装置以及***,例如安全数字卡(securedigital card,SD card)、嵌入式多介质卡(embedded multimedia cards,eMMC)、固态硬盘(solid-stage drives,SSD)或嵌入式***。
图1A依照本公开一实施例绘示一种半导体装置100的示意图。举例而言,半导体装置100可为存储器(例如与非门闪存芯片(NAND Flash memory chip))。半导体装置100提供基本电路方块,例如控制逻辑电路102、IO控制逻辑电路104、高压电路106、存储器阵列108、X-译码器126、Y-译码器128、指令缓存器112、地址缓存器114、状态缓存器116以及R/B#(预备好/忙碌)#模块118。这些基本电路方块协同运作以由存储器阵列108读取以及存储数据,且由一个或多个其它装置(例如控制器)接收数据以及输出数据;电路方块的详细说明以及其操作将在此处省略。
半导体装置100可包括引脚124,引脚124用于由一个或多个其它装置(例如控制器)传送以及/或接收信号。如图1A的实施例,引脚124包括CE#、CLE、ALE、WE#、WR#、RE#、DQS以及IO[7:0]。CE#(芯片致能)引脚用于由控制器(例如,图2的控制器200)接收芯片致能信号来选择半导体装置100以进行信号交换。CLE(指令锁定致能)以及ALE(地址锁定致能)引脚用于接收总线周期类型的指示(例如,指令、地址以及数据)。WE#(写入致能)引脚用于接收信号以控制指令、地址以及数据的锁定。WR#(写入)引脚用于被驱动以进行写入周期。RE#(读取致能)引脚用于由控制器接收信号,此信号指示控制器已准备好由半导体装置100读取数据。DQS(闪控信号)引脚用于输出(例如,输出至控制器)数据闪控信号,此数据闪控信号指示数据传输的时序。IO[7:0]引脚用于进行数据输入/输出。
在一些实施例中,一个或多个上述引脚不包括,例如,具有与其它引脚结合的功能,或具有不执行操作的功能。再者,在一些实施例中,半导体装置在不脱离本公开的范围的状况下包括一个或多个额外的引脚。
存储器阵列108包括多个区块。存储器阵列108可为二维存储器阵列(two-dimensional(2D)memory array),2D存储器阵列包括2D存储器区块。存储器阵列108可为三维存储器阵列(three-dimensional(3D)memory array),3D存储器阵列包括3D存储器区块。每一区块可包括相同数量的页面,或不同区块可包括不同数量页面。在区块中,每个页面具有唯一编号。在区块中,数据依据页面的唯一编号顺序来存储于区块的页面中。每个页面可分别读取或写入,并且可共同擦除(erase)区块中的页面。在一些实施方式中,区块可区分为多个子区块。每个子区块可包括一个或多个页面。子区块的每个页面可单独地读取或写入。每个子区块的一个或多个页面可共同擦除。
在一些实施例中,存储器阵列108包括在芯片中,且***可包括一个或多个芯片。每一芯片可为存储器芯片并包括多个存储器阵列108以及位于其上的周边电路。存储器阵列108可包括一个平面或多个平面(例如,形成3D存储器),每一平面包括存储器单元的多个实体区块,存储器单元分配于页面之间。每一平面可各自包括存储器阵列。相应地,存储器阵列108可为宏存储器阵列(macro-memory array),宏存储器阵列包括至少一个平面,且至少一个平面的每一平面包括存储器阵列。每一实体区块可包括存储器单元的多个页面,存储器单元可存储多个扇区数据。高压电路106被控制(例如,通过控制器(例如控制器200或主控制器222)来加以控制)以通过X-译码器126提供读取电压至存储器阵列108的字线,以对字线上的存储器单元执行相应的读取操作。半导体装置100包括页面缓冲器电路110,页面缓冲器电路110用于感测相应的位线上的电压以判断存储器单元的状态,感测电压相应于特定位数值,页面缓冲器电路110耦接于存储器阵列108的至少一个平面。
图1B依照本公开一实施例绘示一种存储器阵列108的平面150,例如,至少一个平面150的一个平面,例如形成3D存储器阵列108的多个平面。平面150包括存储器单元151,存储器单元151串联耦接于行位线BL0、BL1、…、BLn-1以及BLn,以形成多个单元串144,以及串联耦接于列字线WL0、WL1、…、WLn-1以及WLn,以形成多个页面142,平面150的存储器单元形成存储器阵列。
矩阵中的存储器单元包括晶体管结构,晶体管结构具有栅极、漏极以及定义于漏极与源极之间的通道。在一些实施例中,每一存储器单元位于字线与位线的交会处(intersection),其中栅极连接至字线,漏极连接至位线,而源极连接至源极线,并逐个地连接至共用接地(common ground)。在一些实施例中,闪存单元的栅极通常具有双栅极结构,双栅极结构包括控制栅极与浮动栅极,其中浮动栅极悬置(suspend)在两层氧化层之间,以捕捉编程存储器单元的电荷。
单元串144可包括多个存储器单元151、串选择晶体管(string selecttransistor,SST)以及接地选择晶体管(ground select transistor,GST),其中皆以串联方式耦接。串选择晶体管的栅极耦接至串选择线(string select line,SSL)146,不同串选择线中的串选择晶体管的栅极亦耦接至相同的串选择线。存储器单元151的栅极各别地耦接至字线WL0、WL1、…、WLn-1、WLn,单元串144或存储器单元151通过接地选择晶体管耦接至共源线(common source line,CSL)149。共源线149可耦接于接地端。接地选择晶体管的栅极耦接至接地选择线(ground select line,GSL)148。不同串144中的接地选择晶体管的栅极亦耦接至相同的接地选择线148。
页面142可包括多个存储器单元151。页面142中的存储器单元151串联耦接至对应的字线。当输入电压施加于字线时,输入电压亦施加至页面142中存储器单元151的栅极。为了在读取操作中读取平面150中的特定页面142,在对应于特定页面142的字线上施加较低的电压。同时,(通过其它页面的相应的字线)在平面150中的其它页面(例如相邻页面及/或所有其它页面)上施加较高的电压。
页面缓冲器电路110耦接于存储器阵列108,页面缓冲器电路110可包括一个或多个页面缓冲器。举例而言,对于存储器阵列108的每一平面150,页面缓冲器电路110可包括一个页面缓冲器,或对于存储器阵列108的每一平面150,页面缓冲器电路110可包括两个页面缓冲器。如图1B所示,页面缓冲器电路110耦接于平面150,页面缓冲器电路110包括两个页面缓冲器130a、130b(共同被称为页面缓冲器130),并相应于平面150。页面缓冲器电路110还可包括额外的页面缓冲器130对(pairs of page buffer 130),页面缓冲器130对相应于存储器阵列108的潜在额外平面。
页面缓冲器130(例如,页面缓冲器130a以及页面缓冲器130b)可包括一个或多个锁定及/或逻辑电路栅,对应于至少一个逻辑电路操作。举例而言,页面缓冲器130可为n-位页面缓冲器,n-位页面缓冲器用于由存储n位数据的页面142或存储n位数据的平面150取得以及存储数据,可由对页面142或平面150进行读取操作来取得。举例而言,在读取操作时,读取电压使用相应的字线以施加于存储器阵列108的选定页面142的存储器单元151。存储于页面142的数据被读取以及存储(作为“读出数据”)至页面缓冲器130,页面缓冲器130关联于具有页面142的平面150,通过位线耦接于页面缓冲器130。举例而言,每一页面缓冲器130a、130b可包括一个子电路对应平面150的每一位线,以取得以及存储数据于位线上相应的单元串144。由页面缓冲器130中,读出数据可被输出至一个或多个其它装置(例如,输出至图2绘示的控制器200以及/或主装置220)。
在一些实施例中,对应于存储器阵列108的每一平面150,具有两个页面缓冲器130,两个页面缓冲器130a、130b可用于单独以及一同存储读出数据。举例而言,在两电压读出操作中,第一读取电压可被施加于特定平面150的存储器单元,且所取得的第一读出数据可存储于第一页面缓冲器130a,第一页面缓冲器130a相应于特定平面150。不同的第二读取电压可接着被施加于相同特定平面150的存储器单元,且所取得的第二读出数据(其可不同于或相同于所取得的第一读出数据)可存储于第二页面缓冲器130b,第二页面缓冲器130b相应于特定平面150,同时第一读出数据维持存储于第一页面缓冲器130a。
在一些实施例中,页面缓冲器电路110可包括超过两个页面缓冲器,页面缓冲器对应于每一平面150,超过两个页面缓冲器可为三个或多个页面缓冲器,三个或多个页面缓冲器对应于每一平面150。相应地,相应于三个或多个不同读取电压的读出数据可同时存储于存储器以作为比较之用。
在一些实施例中,半导体装置100包括两个或多个页面缓冲器130a、130b,两个或多个页面缓冲器130a、130b对应于每一平面150,半导体装置100可包括相应的电路以执行操作于存储在两个或多个页面缓冲器130a、130b中的读出数据。如图1A所示,比较逻辑电路120用于执行比较操作于读出数据以取得比较结果,例如按位互斥或(XOR)操作,随后执行相加操作。更详细的比较操作将在图5中说明。比较结果缓存器122用于取得通过比较逻辑电路120所判断的比较结果。从比较结果缓存器122中,比较结果可被输出至一个或多个其它装置,例如输出至图2中的控制器200以及/或主装置220。比较逻辑电路120以及比较结果缓存器122不需包括在一些实施例中,例如,每一平面150包括单一页面缓冲器130的实施例。
图2依照本公开一实施例绘示一种包括控制器200以及半导体装置212(例如,半导体装置100(如存储器))的***201的示意图。控制器200可包括装置接口210以及/或主机接口202的引脚(图中未示)以输出信号至以及接收信号从半导体装置212以及/或其它装置,例如主装置。控制器200包括处理器204以及内部存储器214。在一些实施例中,***201包括耦接于控制器200的多个半导体装置212(例如,多个存储器)。在一些实施例中,***201可实作为一同包括控制器200以及半导体装置212的装置。举例而言,控制器200可为装置201的装置控制器。在一些实施例中,装置201可为存储器装置。
在一些实施例中,主装置220通过控制器200的主机接口202以通讯耦接于控制器200。主装置220包括主控制器222,主控制器222可包括至少一个处理器以及至少一个存储器,至少一个存储器耦接于至少一个处理器以及存储编程指令,编程指令被至少一个处理器执行以施行一个或多个相应的操作。
在一些实施例中,***201可为存储装置。举例而言,***201可为嵌入式多介质卡(embedded multimedia cards,eMMC)、安全数字卡(secure digital(SD)card)、固态硬盘(solid-stage drives,SSD)或一些其它适当的存储器。在一些实施例中,***201可为智能手表(smart watch)、数字相机(digital camera)或介质播放器(media player)。在一些实施例中,***201可为客户端装置,客户端装置耦接于主装置220。举例而言,***201可为数字相机或介质播放器中的安全数字卡,介质播放器可为主装置220。
控制器200可为通用微处理器或指定应用微控制器。在一些实施例中,控制器200为用于半导体装置212的存储器控制器。以下章节基于控制器200为存储器***控制器的实施例来描述各类技术。然而,描述在以下实施例中的技术亦适用于控制器200为不同于存储器***控制器的另一类型的控制器的实施例中。
处理器204用于执行指令且处理数据。指令包括分别作为固件码及/或其它程序代码存储于内部存储器214中的固件指令及/或其它程序指令。数据报含对应于由处理器执行的固件及/或其它程序的程序数据,以及其它合适的数据。在一些实施例中,处理器204为通用微处理器或指定应用微控制器。处理器204亦可称为中央处理单元(central processingunit,CPU)。
处理器204自内部存储器214存取指令及数据。在一些实施例中,内部存储器214可为静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。举例而言,在一些实施例中,当***201为嵌入式多介质卡、安全数字卡或智能手表时,内部存储器214可为静态随机存取存储器(SRAM)。在一些实施例中,当***201为数字相机或介质播放器时,内部存储器214可为动态随机存取存储器(DRAM)。
在一些实施例中,内部存储器214可为包括于控制器200中的高速缓存。内部存储器214存储脚本,脚本对应于由处理器204执行的指令,及/或在运行时间期间由处理器204请求的数据。
控制器200将来自半导体装置212的脚本及/或数据传送至内部存储器214。在一些实施例中,半导体装置212可为非易失性存储器装置,非易失性存储器装置用于长期存储指令及/或数据,非易失性存储器装置为例如与非门闪存装置(NAND flash memory device)或其它合适的非易失性存储器装置。在半导体装置212为与非门闪存装置(NAND flashmemory device)的实施例中,***201可为闪存装置(例如快闪存储卡),且控制器200可为与非门快闪控制器(NAND flash controller)。举例而言,在一些实施例中,当***201为嵌入式多介质卡或安全数字卡时,半导体装置212可为与非门闪存(NAND flash memory)。在一些实施例中,当***201为数字相机时,半导体装置212可为安全数字卡。在一些实施例中,当***201为介质播放器时,半导体装置212可为硬盘(hard disk,HD)。
在一些实施例中,控制器200包括修正错误码电路,修正错误码电路可包括修正错误码编码器206以及修正错误码译码器208。修正错误码编码器206可用于接收要存储于半导体装置212的数据并生成一码字(codeword),例如以修正错误码编码方法对数据进行编码。修正错误码编码器206可包括里德-所罗门编码器(Reed Solomon encoder)、博斯-乔赫里-霍昆格姆编码器(Bose-Chaudhuri-Hocquenghem encoder)、低密度奇偶检查码编码器(low-density parity check,LDPC encoder)、涡轮码编码器(Turbo Code encoder)或其中的任何组合。修正错误码译码器208可用于在修正错误码方案的修正能力下译码从半导体装置212读取的数据以进行侦测和除错。在一些实施例中,修正错误码电路包括修正错误码编码器206以及修正错误码译码器208,修正错误码编码器206以及修正错误码译码器208包括在半导体装置212中。在一些实施例中,控制器200包括第一修正错误码电路,以及半导体装置212包括第二修正错误码电路。
图3依照本公开一实施例绘示一种存储器的存储器单元的不同状态下的阈值电压分布以及读取电压的实施例300的示意图。存储器可为图1A所示的半导体装置100(例如,与非门闪存(NAND flash memory))。举例而言,存储器单元可为多级单元(MLC),其可用于存储两个位数据。
存储器单元可被编程或擦除以具有四个状态ER、A、B以及C中的其中之一。在一些实施例中,ER为擦除状态(1,1),而A、B、C为编程状态(0,1)、(0,0)以及(1,0),状态ER、A、B以及C具有逐渐升高的读取电压。多层单元(MLC)与非门闪存(NAND Flash memory)可将字线中每一存储器单元的两位划分为两个页面,其为一次编程的单位。一条字线上所有存储单元的最低有效位(least significant bits,LSBs)形成上述字线的最低有效位页面,且字线上所有存储单元的最高有效位(most significant bits,MSBs)形成上述字线的最高有效位页面。
一旦被编程或擦除,存储器单元具有对应的阈值电压,阈值电压为存储器单元的特性。举例而言,存储器单元可为浮栅式晶体管,当高于或与阈值电压相同的读取电压施加在存储器单元的栅极时,存储器单元可被开启。当低于阈值电压的读取电压施加在存储器单元的栅极时,存储器单元可被关闭。读取动作并非编程或是擦除动作,亦非旨在改变存储器单元的状态。
基于单元与单元之间的差异,每个状态对应于较低的电压以及较高的电压之间的范围分布的阈值电压。具有前述范围内阈值电压的存储器单元会被视为在对应的状态内。换句话说,处于状态中的存储器单元具有在前述范围内的阈值电压。举例来说,倘若存储器单元具有位于Vl0至Vh0之间的阈值电压,存储器单元在ER状态;倘若存储器单元元具有Vl1至Vh1之间的阈值电压,存储器单元在A状态;倘若存储器单元具有Vl2至Vh2之间的阈值电压,存储器单元在B状态;以及倘若存储器单元具有Vl3至Vh3之间的阈值电压,存储器单元在C状态。曲线302、304、306、308各别表示状态ER、A、B、C下各自的阈值电压分布,且所有阈值电压分布均位于其各自的额定范围之内。
在读取操作时,读取电压可被施加在耦接于所选择的存储器单元的栅极的字线上,通过判断被选择的存储器单元为开启或关闭的状态。当大于ER的阈值电压但小于A的阈值电压的读取电压VRd1被施加时,存储器单元在ER状态时会被开启,在A、B、C状态时则会被关闭。当大于A的阈值电压但小于B的阈值电压的读取电压VRd2被施加时,存储器单元在ER或A状态时会被开启,在B或C状态时则会被关闭。当大于B的阈值电压但小于C的阈值电压的读取电压VRd3被施加时,存储器单元在ER、A或B状态时会被开启,在C状态时则会被关闭。当大于所有的ER、A、B、C的阈值电压的读取电压VRdpass被施加时,存储器单元则无论在何种状态下都会被开启。
在读取操作时,在同一位线中的其它存储器单元上施加通过电压VRdpass,因此其它存储器单元会被开启。因此,如果被选择的存储器单元在读取电压VRd下被开启,则对应位线中的存储器单元形成导电路径,并且具有可被耦接至字线的电流或电压传感器所侦测的电流或电压的变化。如果被选择的存储器单元被读取电压关闭,则对应位线中的存储器单元不会形成导电路径,并且不会具有可被耦接至字线的电流或电压传感器所侦测的电流或电压的变化。
随着时间变化,在数据保持降低过程中,存储器的单元的阈值电压会降低。数据保持降低可能由热所导致,例如,导致栅极介电层崩溃。举例而言,如图3所示,相应于状态C的额定分布308a转换为改变的分布308b,改变的分布308b的平均数低于额定分布308a的平均数值。分布变化可为基本上均匀变化分布或可包括分布失真(例如,分布型态的变化,例如分布加宽或变窄使得阈值电压的范围更宽或更窄)。数据保持降低最常出现于最高-阈值电压分布状态(在此实施例,状态C),但可替换或额外发生于其它状态,例如状态ER、A以及/或B。此外,基于重复的读取操作,读取干扰现象会发生。在读取干扰现象,存储器单元的阈值电压不正常的提高。举例而言,分布302可朝向分布304变化/伸长。读取干扰可发生于最低-阈值电压分布状态(在此实施例,相对于更高-阈值电压分布状态,状态ER对读取干扰更敏感)以及/或于其它状态。
数据保持降低以及读取干扰可导致存储器单元状态的读取不准确。在一些实施例中,相应于不同状态的分布可彼此重叠,因此给定阈值电压不再对应于单一状态。举例而言,改变的分布308b重叠于分布306(例如,改变的分布308b的最低阈值电压低于或等于Vh2)以及包括阈值电压低于VRd3。当读取电压VRd3被施加以读取出状态C的存储器单元,存储器单元可具有阈值电压低于改变的分布308b的VRd3,使得存储器单元开启以及出现于状态ER、A或B。相应地,在页面读取操作,一个或多个错误的位(相应于一个或多个存储器单元显示出数据保持降低以及/或读取干扰)可被读取出,导致数据完整性问题。
如上所述,修正错误码电路(例如控制器200的修正错误码电路)可用于侦测以及校正由存储器单元读取的数据。然而,修正错误码电路可具有校正上限,校正上限设定最高限度于可校正错误的数量(例如,每一页面)。举例而言,在纠错程序,当n位由页面或平面读取至页面缓冲器,修正错误码电路有能力侦测以及校正最高m位(m<n)。若是超过m位错误,即超过纠错上限。修正错误码电路可为关联于数据更新阈值,举例而言,可为低于m。当错误数量超过数据更新阈值,可判定对页面或平面执行数据更新操作。举例而言,控制器200以及/或半导体装置212可取得纠错程序的输出,例如错误位的数量p。控制器200以及/或半导体装置212可将p与数据更新阈值比较。若是p>数据更新阈值,控制器200以及/或半导体装置212判定执行数据更新操作。举例而言,控制器200可输出指令以及/或数据至半导体装置212以导致半导体装置212更新存储页面或平面的数据。在一些实施例中,替换或额外地,在页面-等级以及/或平面-等级修正错误码以及数据更新操作,可对存储器阵列的不同单元的等级执行修正错误码以及数据更新操作,例如区块或子区块。
然而,如上所述,纠错程序以及数据更新操作消耗有用的***资源。因此,若在执行纠错程序之前设定“检核点”,则可有效限制前述程序执行的范围,以降低***资源的消耗。一方式是根据存储器使用量数据(例如,读取/写入周期计数)以包括检核点,其不包括存储器的存储器单元的实际测量。然而,此方式可能不足够准确。举例而言,基于存储器的特定部分(例如,页面或平面)的局部过热状态,此方式可能无法计数无法预期的错误的发生。
在一些实施例中,根据由半导体装置读取的特定数据以引入检核点,例如存储于存储器的特定平面的数据。特定数据以两个或多个不同读取电压被读取两次或多次,以取得两个或多个读出数据。两个或多个读出数据彼此比较以提供比较结果,比较结果直接指示特定数据的错误状态,使得是否执行纠错的决定更加可靠。
图4A至图4B依照本公开一实施例绘示一种多个存储单元的多个读出电压的示意图。图4A绘示阈值电压分布400的读出结果,其中明显的数据存储错误(例如数据保持降低以及读取干扰)未发生。由存储器单元读取的数据的特征是分布400(例如,通过分布400呈现页面、平面、区块或子区块)使用两个不同读取电压,V1以及V2,不同读取电压V1以及V2施加于存储器单元。在此实施例,V1以及V2皆位于分布306(相应于状态B)以及分布402a(相应于状态C)之间。举例而言,没有或基本上没有存储器单元具有阈值电压V1或V2,例如,因为分布306的最高阈值电压Vh2低于V1,且分布402a的最低阈值电压Vl3大于V2。再者,没有或基本上没有存储器单元具有于V1以及V2之间的阈值电压。相应地,由两个数据读取彼此匹配或基本上彼此匹配以取得读出数据。举例而言,按位比较(bitwise comparison)位于相应于读取电压V1的第一读出数据404a以及相应于读取电压V2的第二读出数据404b之间,其结果为没有或非常少不匹配的位数值。
相较之下,在图4B的分布420,分布402b(相应于状态C)相较于分布402a产生变化。如图4A所示,分布402b并未重叠于第一读取电压V1。然而,分布402b有重叠于第二读取电压V2,意味着具有状态C的一些存储器单元若以V1读取为关闭,但以V2读取为开启。这结果导致了差异,此差异介于相应于读取电压V1的第一读出数据424a以及相应于读取电压V2的第二读出数据424b之间。根据这些差异(例如,根据多个差异),其可判断分布402b是否重叠于V1以及V2中的至少一个,相应地,判断分布402b是否相较于分布402a产生变化,其中基本上未重叠于V1以及V2。
上述两个读出数据之间的比较,代表以两个不同读取电压由存储装置的相同部分读出(例如共同页面、平面、区块或子区块),可被当作纠错程序之前的检核点。若是两个读出数据相似(例如,若是两个读出数据之间的按位差异的数量差异低于或等于阈值数值),随后,其可判定邻近于读取电压的阈值电压分布未显示显著的数据保持降低或读取干扰。相应地,其可判定资源密集型(resource-intensive)的纠错程序不需要被执行。相较之下,若是两个读出数据的差异较大(例如,若是按位差异的数量差异大于阈值数值),随后,其可基于数据保持降低、读取干扰或其它错误资源以判定分布变化以及/或失真发生,且纠错程序可被执行。比较结果可做为数据错误的一般测量,且相较于一些纠错程序提供的精确的位错误计数以及错误辨识,相应地被视为“软数据(soft data)”。然而,将比较结果的“软数据”设定为纠错程序之前的检核点,即为此处说明的提升程序效率。
图5依照本公开一实施例绘示一种数据错误分析程序500的流程示意图。程序500可被通讯耦接于半导体装置的控制器(例如,控制器200或222)、半导体装置(例如,半导体装置100,例如存储器)或控制器以及半导体装置联合一同执行。举例而言,程序500可由包括控制器以及半导体装置的***执行。举例而言,***可为包括存储器控制器以及存储器的存储器装置。一般程序500的特定实施例将在图6与图7中进行详细说明。再者,尽管程序500以两个不同读取电压以及两个或多个相应的读出数据来进行说明,程序500可包括三个或多个不同读取电压以及三个或多个相应的读出数据,以下将更详细地进行说明。
在程序500中,其用于判断半导体装置(例如,存储器)中的数据是否符合可靠度条件(502),其中可靠度条件的符合状况相应于低数据可靠度。举例而言,数据可为存储在存储器的特定单元(例如存储器的存储器阵列的页面、平面、区块或子区块)的特定数据。存储器或控制器可存储具有特定单元的使用量以及/或现在状态的特征的可靠度数据。存储器或控制器可存取可靠度数据以及使用可靠度数据以判断是否符合可靠度条件。
举例而言,在一些实施例中,可靠度数据报含存储于控制器或存储器的区块信息表。对存储器(例如,对每一平面、区块、子区块以及/或页面)的每一单元,区块信息表存储具有单元的使用量以及/或现行状态的特征的一个或多个字段。擦除计数字段记录单元被执行擦除操作的次数。擦除计数相关于单元的P/E(编程/擦除)周期。读取计数字段记录每一单元(例如,区块的每一页面以及/或所有区块)被读取的次数。写入计数字段记录每一单元被写入的次数。擦除延迟时间字段记录存储器的单元最近一次被擦除的时间点至现行时间点之间的时间区间。存储总量字段指示数据存储于存储器的单元的总量。流逝时间周期字段记录特定数据被存储至半导体装置后的流逝时间周期。具有存储器的单元的使用量以及/或现行状态的特征的可靠度数据的其它类型依旧落入本公开的范围,被用于判断是否符合可靠度条件。控制器或存储器的电路可用于分析可靠度数据以判断是否符合可靠度条件。
可靠度数据与阈值电压分布变化相互关联。举例而言,高数量读取、擦除以及/或写入可关联于由分布的正常状态至阈值电压分布的提高的变化以及/或失真,例如,通过关联于增加的数据保持降低以及/或读取干扰。在一些实施例中,可靠度数据的一个或多个数值的功能可被计算出来,以及功能的数值会被与阈值数值比较以判断是否符合可靠度条件(例如,根据功能的数值是否小于或大于阈值数值)。举例而言,在一些实施例中,若是控制器或存储器判断多个擦除计数大于擦除计数阈值、多个读取计数大于读取计数阈值或擦除延迟时间大于阈值擦除延迟时间,控制器或存储器判断符合可靠度条件(502)。若是不符合数据可靠度条件(指示出,例如数据可靠度的程度高),程序500结束(514)。若是符合数据可靠度条件,程序500继续执行。
在一些实施例中,对于存储器的单元,符合数据可靠度条件,且以多个读取电压读取的特定数据存储于存储器的单元的子集。举例而言,存储器的单元可为存储器的区块(例如,存储器的区块具有超过读取计数的阈值数量的读取计数的数量)或存储器的平面,以及特定数据可为存储存储器的特定页面的数据。控制器或存储器可由存储器的单元选择特定数据(504)。举例而言,随机页面可由存储器的单元选择,或特定页面可由循环程序中的存储器的单元选择。在循环程序的实施例中,区块的每一页面可被逐一选择。判断存储器的单元符合可靠度条件包括判断存储器的单元的一部分符合可靠度条件,例如,致使当控制器或存储器判断存储器的区块符合可靠度条件,控制器或存储器同样判断区块的页面符合可靠度条件。部分实施例不包括数据可靠度条件检查(502);此外,程序500可始于选择数据作为特定数据以进行读取(504)。
特定数据以多个不同读取电压进行读取,以及相应的读出数据可基于读取而取得(506)。举例而言,在一些实施例中,存储器以第一读取电压读取特定数据以取得第一读出数据,且存储器以第二读取电压再次读取特定数据以取得第二读出数据。第一读出数据以及第二读出数据可保持于存储器以及由存储器(例如,将在后续图6中详细说明)进行比较,或控制器可取得第一读出数据以及第二读出数据以执行比较(例如,将在后续图7中详细说明)。第一读取电压对应于图4B中的V1,以及第二读取电压对应于图4B中的V2。
在本实施例的两个读取电压可由控制器以及/或存储器预先判断或执行判断。举例而言,在一些实施例中,控制器或存储器可根据使用量数据判断一个或两个读取电压,使用量数据例如使用于步骤502的可靠度数据。举例而言,根据具有存储器的使用量的特征的使用量数据(例如,存储器或存储器的一部分的读取计数,其中存储器的一部分可为页面、区块或子区块),其可被用于判断数据保持是否降低或读取干扰是否发生。若是数据保持降低发生,位于两个最高-阈值电压分布状态(例如,图3中的状态B以及C)之间的读取电压可被选择,例如位于图4A的分布峰值402a以及306之间的电压。若是读取干扰发生,位于两个最低-阈值电压分布状态(例如,图3中的状态ER以及A)之间的读取电压可被选择,例如位于图4A的分布302以及304的峰值之间的电压。这些选择对应于最有可能分别被数据保持降低以及读取干扰影响的状态;然而,位于其它状态之间的电压亦可被替代或额外使用。控制器或存储器可识别特定状态以进行测试,此外,根据选择状态,判断第一以及第二读取电压,例如若是分布变化,电压是否会与相应于状态的分布重叠。再者,在一些实施例中,第一读取电压以及/或第二读取电压的数值可基于使用量数据,例如,适应于阈值电压分布变化。
在一些实施例中,控制器以及/或存储器配置默认第一以及/或第二读取电压(在一些实施例中,用于额外的读取的额外的读取电压),以及/或默认电压阶(defaultvoltage step)ΔV。举例而言,默认值可被配置为控制器以及/或存储器的部分工艺中,并存储在控制器以及/或存储器。举例而言,默认读取电压可为VRd1、VRd2或VRd3,例如,默认读取电压用于读取存储器单元的状态。在一些实施例中,当使用默认电压阶,第一读取电压由控制器或存储器(例如,根据使用量数据或根据被存取的特定状态)所决定,且其它读取电压与第一读取电压(对多个其它读取电压)间距一默认电压阶或多个默认电压阶。在一些实施例中,多个默认电压阶可根据使用量数据或根据被存取的特定状态以决定。举例而言,默认电压阶可为0.1V,且根据使用量数据或其它数据,控制器或存储器可判断是否V1以及V2之间的差异为0.1、0.2、0.3V,以此类推。第一读取电压、第二读取电压以及在第一读取电压及第二读取电压之间的差异ΔV的数值可于不同实施例之间有所变化。在一些实施例中,在第一读取电压以及第二读取电压(例如,图4B的V1以及V2之间)之间的电压差异ΔV范围位于0.05V以及0.2V之间。举例而言,为侦测最高-阈值电压分布的变化,第一读取电压或第二读取电压可位于4.4以及4.6V之间。
在一实施例中,控制器判断两个不同读取电压,控制器可传送指令至存储器中的控制逻辑电路(例如,控制逻辑电路102)以导致存储器产生两个读取电压,例如,由控制逻辑电路通过高压电路(例如,高压电路106)或通过高压电路,以施加于相同的字线。以第一读取电压读取的数据被页面缓冲器130a接收,且以第二读取电压读取的数据被页面缓冲器130b接收。
对于不同错误分析程序,两个读取电压可位于任何两个阈值电压分布之间。举例而言,在一些实施例中,在MLC存储器的实施例中,两个读取电压可为VRd1以及VRd1+ΔV或VRd1–ΔV;VRd2以及VRd2+ΔV或VRd2–ΔV;或VRd3以及VRd3+ΔV或VRd3–ΔV。ΔV可相同的或不同于不同的VRdn。在SLC存储器的实施例中,具有单一VRd,且电压可为,举例而言,VRd以及VRd+ΔV或VRd–ΔV。
多个读出数据被比较,且控制器以及/或存储器取得比较结果(508)。不同类型的比较可被执行以取得比较结果。在一些实施例中,以两个读出数据举例,比较为第一读出数据的每一位以及第二数据的相应位之间的按位比较。举例而言,按位XOR操作可被执行,以取得具有第一读出数据以及第二读出数据的长度的数据,其中当读出数据不匹配时,数据为“1”,其它状况下为“0”。若是第一读出数据为“1011”且第二读出数据为“1001”,按位XOR操作返回结果“0010”。按位XOR结果本身可作为比较结果,或按位XOR结果还可被执行以取得比较结果。举例而言,比较结果可为按位XOR结果的位(数量“1”)的总和,位的总和可等于第一读出数据以及第二读出数据之间的不匹配的数量,相应地,亦可为关联的数据存储错误的数量。其它比较操作亦落入本公开的范围之内。举例而言,在一些实施例中,仅有一部分的第一读出数据以及第二读出数据彼此比较,以及/或第一读出数据以及第二读出数据可整个组块(in chunk)进行比较(例如,替换或额外按位比较)。
在一些实施例中,控制器传送指令至存储器以导致存储器执行特定数据的读取,例如,如图8至图10的实施例所示。在一些实施例中,存储器本身选择特定数据以及执行读取。第一读出数据以及第二读出数据可存储于存储器并由存储器比较(例如,如图6的实施例所示),或第一读出数据以及第二读出数据可由控制器取得,存储于控制器,且由控制器比较(例如,如图7的实施例所示)。
根据比较结果,可判断(例如,通过控制器或存储器)是否执行纠错程序(510)。举例而言,若是比较结果符合阈值条件(例如,大于或低于阈值),纠错程序执行(512);否则,程序500结束。在一些实施例中,若是比较结果指示第一读出数据以及第二读出数据之间的不匹配的阈值数量,符合阈值条件(512)。在一实施例中,比较结果为按位XOR位的总和(不匹配位的数量),响应于总和大于阈值数值,纠错程序可被执行。根据比较结果的其它阈值条件依旧落入本公开的范围内。在一些实施例中,比较结果包括一个或多个数值,且一个或多个数值可提供给算法或由模块提供比较结果是否符合阈值条件的决定以作为输出。因为,在一些实施例中,纠错程序仅于比较结果符合阈值条件被执行,之前的程序组成纠错程序的检核点,通过保存或降低不必要执行的纠错程序以协助保存电力以及其它装置资源。
在一些实施例中,每一特定数据的多个比较结果被取得,相应于不同读取电压的不同对的每一比较结果被用于通过比较结果以取得读出数据。举例而言,在MLC存储器的实施例中,一对读出数据可由两个或多个不同状态(例如,VRd1以及VRd1+ΔV以取得第一读出数据对,且VRd2以及VRd2+ΔV以取得第二读出数据对)取得。比较结果可根据每一读出数据对判断,且阈值条件可根据多个比较结果以判断是否符合。举例而言,若是多个比较结果的任何一个符合第一阈值条件,所有阈值条件被判断为符合。在其它实施例中,若是读出数据的多对的不匹配的平均数量超过阈值数值,阈值条件可被判断为符合。
图11依照本公开一实施例绘示一种程序1100,程序1100根据比较结果以判断是否执行纠错程序。在程序1100中,数据(例如,以不同读取电压于两个或多个时间读取的特定数据)被取得(1102)。举例而言,数据可由控制器自存储器中取得,例如,通过控制器自存储器中读取。为达到由纠错程序中取得数据的目的,数据可以第一读取电压、第二读取电压或其它读取电压进行读取。在一些实施例中,数据已经在纠错程序1100起始时取得(例如,在前述错误分析程序,例如程序500、600或700),且数据不需在程序1100中再度取得。
控制器的修正错误码电路(例如,修正错误码电路包括修正错误码编码器206以及修正错误码译码器208)对数据执行纠错程序,以取得纠错程序的结果(1104)。举例而言,纠错程序可包括对数据的每一位判断位是否为错误位,在一些实施例中,位的正确数值为,在一些实施例中,位可被校正。此程序与两个读出数据的比较有所区别,其可被用于识别阈值电压分布的变化,但不会指示特定错误位。在一些实施例中,纠错程序本身包括校正错误位。举例而言,若是错误位的数量较少,数据可由修正错误码电路校正,而不需执行数据更新操作。若是纠错结果符合数据更新条件(1106)(举例而言,超过数据更新阈值),控制器对数据执行数据更新操作(1108)(例如,仅对数据或对数据超集(superset of data));否则,程序1100结束(1110)。举例而言,数据更新条件可根据数据内的错误位数量,以纠错程序中的判断方式执行。若是错误位的数量超过关联于修正错误码电路的数据更新阈值,数据更新条件被判断为符合。数据更新操作可包括读取数据、取得校正数据以作为纠错的结果、辨识存储器的一部分以接收校正数据(例如,区块、页面或平面)以及写入校正后的数据至存储器的一部分。
经纠错程序1100的数据可为特定数据,这些特定数据经错误分析程序500、600或700分析。在一些实施例中,经纠错程序1100的数据为特定数据的超集(superset ofparticular data)。举例而言,在一些实施例中,特定数据可为子区块的页面或存储器的区块;纠错程序(1104)可对页面执行;以及经数据更新操作执行过的数据(1108)可为子区块的数据或区块的数据。在其它实施例中,特定数据可为存储于至少一个存储器的平面的特定平面的数据子集(subset of data);纠错程序(1104)可对特定数据执行;以及经数据更新操作执行过的数据(1108)可为存储于特定平面的数据。
图6绘示特定实施例的一般程序500的程序600。程序600的步骤除有其它指示外,其可具有与程序500的步骤相应的特征。
在程序600中,当特定数据被选择(例如,响应于特定数据符合可靠度条件的决定,如图5所述的步骤502以及504),特定数据以第一读取电压被读取至第一页面缓冲器,取得第一页面缓冲器的第一读出数据(602),以及特定数据以不同的第二读取电压被读取至第二页面缓冲器,取得第二页面缓冲器的第二读出数据(604)。举例而言,读取可由半导体装置100执行,半导体装置100包括页面缓冲器电路110,其包括两个页面缓冲器130a、130b,对应于存储器阵列108的每一平面150。相应地,特定数据可为存储于存储器的至少一个平面的特定平面的数据;第一读出数据可被存储于第一页面缓冲器,第一页面缓冲器相应于至少一个平面的特定平面;以及第二读出数据可被存储于第二页面缓冲器,第二页面缓冲器相应于至少一个平面的特定平面。由于存储器包括相应于特定平面的两个页面缓冲器,第一读出数据以及第二读出数据可同时被存储于存储器。如后文所述,程序600可被延伸至三个或多个读出数据。
多个读出数据(例如,第一以及第二读出数据)被彼此比较,且比较结果由比较的结果来加以取得(606)。举例而言,存储器可使用比较逻辑电路120来执行比较程序,以由两个页面缓冲器130a、130b取得第一读出数据以及第二读出数据。比较逻辑电路用于比较读出数据以取得比较结果,例如,通过执行按位XOR操作以及加总结果位以取得在第一读出数据以及第二读出数据之间不匹配的位数量。比较逻辑电路120可包括任何合适的电路以执行比较操作,例如,硬件、特殊目的电路以及/或可编程电路。存储器可存储比较结果至比较结果缓存器122。
根据比较结果,存储器或控制器可判断是否执行纠错程序(610,512),例如,如图5的步骤510所述的内容。举例而言,在一些实施例中,存储器根据比较结果执行判断,例如,根据比较结果是否符合阈值条件。在一些实施例中,控制器由存储器取得比较结果(例如,通过存储器的引脚由比较结果缓存器122取得),且控制器判断是否执行纠错程序。
程序600不需存储器包括两个页面缓冲器,对应于每一存储器的平面。举例而言,在一些实施例中,存储器包括两个区别的缓冲器/存储元件,对应于其它存储器的单元,例如,区块或子区块,以存储由存储器的其它单元传来的第一以及第二读出数据。再者,在一些实施例中,存储器仅包括对应于每一平面的单一页面缓冲器,但同时包括一个或多个分离的其它缓冲器/存储元件,其它缓冲器/存储元件用于存储来自于平面的第二读出数据,同时第一读出数据被存储于对应于平面的单一页面缓冲器。此种配置方式可使存储器取得比较结果,即便存储器不包括对应于每一平面的两个页面缓冲器。
图8依照本公开一实施例绘示一种信号被控制器以及存储器传送或接收的时序图,其关联于程序600。控制器致使芯片致能信号802为低以选择存储器(例如,由耦接于控制器的多个存储器中择一),以及低芯片致能信号802被存储器接收。控制器输出第一指令804a至存储器以导致存储器采用第一读取电压由第一页面缓冲器读取特定数据。举例而言,第一指令804a可包括要被读取的特定页面的标识符(identifier),或特定区块或特定平面的标识符,这些页面会被循环读取。特定页面或特定区块包括于存储器的至少一个平面的特定平面,且第一页面缓冲器可相应于特定平面。在一些实施例中,第一指令804a包括/指示第一读取电压,或第一读取电压可为存储器(例如,存储于存储器的默认值)所使用的默认第一读取电压,其在第一指令804a不需被控制器特别指名。
控制器输出第二指令804b使得存储器以第二读取电压由第二页面缓冲器读取特定数据。在一些实施例中,第二页面缓冲器对应于特定平面。在一些实施例中,第二指令804b不包括特定数据的标识符,举例而言,因为特定数据已被第一指令804a所辨识。在一些实施例中,第二指令804b包括标识符。第二指令804b可包括第二读取电压,或第二读取电压可为存储器所使用的默认第二读取数值,举例而言,一般预设第二读取数值或一不同于第一读取数值的默认值。在一些实施例中,存储器可判断第二读取电压。
控制器输出第三指令804c使得存储器比较第一读出数据(第一页面缓冲器的内容)与第二读出数据(第二页面缓冲器的内容)以取得比较结果,举例而言,使用存储器的比较逻辑电路以进行比较。存储器存储比较结果至比较结果缓存器。控制器输出第四指令804d使得存储器由存储器的IO引脚输出比较结果至控制器的IO引脚(808)。取得比较结果后,控制器可执行一个或多个相应的操作,例如,根据比较结果以判断是否执行纠错程序。整体执行完程序600后,存储器的预备好/忙碌#信号806指示存储器目前是否忙碌(例如,存储器正在执行数据读取操作或比较操作)或存储器是否准备好接收指令。
图8绘示的信号仅为本公开的其中一种实施例;其它信号的组合亦可用于执行程序600。举例而言,在一些实施例中,控制器可输出单一指令使得存储器读取第一以及第二读出数据、判断比较结果以及/或输出比较结果至控制器,不需分别以不同的指令来控制每一操作。
在一些实施例中,控制器耦接于多个存储器,并用于读取以及存储相应于特定数据的多个读出数据。举例而言,每一存储器可包括两个页面缓冲器,两个页面缓冲器对应于存储器的至少一个平面的每一平面。控制器可输出指令至第一存储器,同时第二存储器执行读取操作或数据比较操作,以提供存储于多个存储器的数据更具时间效益的分析。
举例而言,图9依照本公开一实施例绘示当程序600被逐一执行于多个存储器时,信号会被输出/接收的时序图。第一存储器包括第一以及第二页面缓冲器,且第二存储器包括第三以及第四页面缓冲器。第一以及第二页面缓冲器对应于第一存储器的至少一个平面的特定平面,且第三以及第四页面缓冲器对应于第二存储器的至少一个平面的特定平面。
控制器分别输出芯片致能信号902a、902b至第一存储器或第二存储器,以指示控制器是否提供指令至第一存储器或第二存储器。指令包括传输至第一存储器的第一组指令中的指令904a以第一组不同读取电压中的第一读取电压读取第一存储器的特定数据(例如,第一存储器的特殊页面,或第一存储器的特殊平面的数据)至第一页面缓冲器,如指令804a的说明所述。当第一存储器执行此读取操作(通过第一存储器的低电平的预备好/忙碌#信号906a作为指示),控制器输出第二组指令中的指令904b至第二存储器以第二组不同读取电压中的第三读取电压读取第二存储器的特定数据(例如,第二存储器的特殊页面,或第二存储器的特殊平面的数据)至第三页面缓冲器。当第二存储器的此读取操作被执行(以第二存储器的低电平的预备好/忙碌#信号906b作为指示),第一存储器已完成关联于第一组指令中的指令904a的读取操作以及准备好接收第一组指令中的指令904c以第一组不同读取电压中的第二读取电压读取第一存储器的特定数据至第二页面缓冲器,第二读取电压不同于第一读取电压。当第一存储器的此读取操作被执行,第二存储器已完成关联于第二组指令中的指令904b的读取操作以及准备好接收第二组指令中的指令904d以第二组不同读取电压中的第四读取电压读取第二存储器的特定数据至第四页面缓冲器,第四读取电压不同于第三读取电压。第三以及第四读取电压可相同于或不同于第一以及第二读取电压。
由控制器传输第一组指令中的指令904e至第一存储器使得第一存储器比较存储于第一以及第二页面缓冲器的两个读出数据,且第一存储器取得第一比较结果。当第一比较结果被取得,由控制器输出第二组指令中的指令904f至第二存储器使得第二存储器比较存储于第三以及第四页面缓冲器的两个读出数据,且第二存储器取得第二比较结果。由控制器输出第一组指令中的指令904g至第一存储器使得第一存储器输出第一比较结果至控制器(908a)。由控制器输出第二组指令中的指令904h至第二存储器使得第二存储器输出第二比较结果至控制器(908b)。第一以及第二比较结果可由控制器连续地接收(910a,910b)。
由于传输至第一存储器的第一组指令(904a、904c、904e、904g)交错于传输至第二存储器的第二组指令(904b、904d、904f、904h),绘示图9的程序可提供高时间效益,例如,对于取得两个比较结果的所有时间,因为指令可被传输至一个存储器,同时其它存储器正在忙碌执行操作。再者,本公开的实施例的程序,例如绘示图9的程序,会使得特定数据分析逐一或一同被执行,因为一个存储器(例如,第二存储器)执行至少相关操作(例如数据读出、读出数据比较以及/或比较结果提供)在其它存储器(例如,第一存储器)已经开始执行相关操作之后,但在其它存储器完成执行相关操作之前。逐一/一同执行可提供高时间效益通过降低存储器不执行操作的休息时间。再者,相较执行存储器(例如,在控制器)的读出数据比较的程序,通过不要求读出数据由存储器输出,程序600可降低关联于数据传输的电力消耗。
在一些实施例中,改善的时间效益关联于存储器包括电路,此电路分别用于存储两个读出数据,例如,存储器包括两个页面缓冲器,对应于存储器的至少一个平面的每一平面。此配置方式,在一些实施例中,包括每一存储器的比较逻辑电路,允许存储器本身执行读出数据存储以及比较,可替换地,或额外地,通过控制器来执行,因此,逐一/一同操作可被执行,而不需被控制器的资源限制了读出数据存储或读出数据比较。
图9绘示的信号仅为实施例,且其它信号协议亦落入本公开的范围。举例而言,控制器可传送(至第一存储器以及第二存储器的每一个)单一指令使得存储器执行数据读出、读出数据比较以及输出比较结果操作,不需分别以不同的指令来控制每一操作。在此实施例中,存储器可以如上所述逐一/一同的方式执行其各自的操作。再者,虽然图9绘示以两个存储器执行逐一操作,方法以及相关的信号可用于控制三个或多个存储器的逐一操作,例如,图13所示的配置。
在一些实施例中,读出数据存储以及读出数据比较由控制器执行。举例而言,假使存储器缺少电路以同时存储两个读出数据(例如,每一平面缺少两个页面缓冲器,亦无其它比较电路)以及/或缺少电路以取得比较结果(例如,缺少比较逻辑电路120),两个读出数据可被提供至控制器,控制器存储两个读出数据以及比较两个读出数据,以取得比较结果。
图7依照本公开一实施例绘示一种程序700,控制器取得读出数据并执行读出数据比较。程序700的步骤除有其它指示外,其可具有与程序500或600的步骤相应的特征。
在程序700中,根据特定数据的选择(504),存储器以第一读取电压读取特定数据,以取得第一读出数据(702)。举例而言,控制器可输出指令至存储器使得存储器执行读取,如步骤602所示。读出数据可被暂时地存储于存储器。举例而言,特定数据可为存储器的页面的数据,且读出数据存储于页面缓冲器,例如页面缓冲器相应于包括页面的平面。第一读出数据被存储,例如,存储于控制器(704)。举例而言,第一读出数据可由页面缓冲器读取至控制器,例如由存储器的IO引脚输出,再由控制器的IO引脚接收,并存储于控制器的存储器,例如,存储在内部存储器214。第一读出数据至控制器的传输步骤(对应控制器的存储器)可响应于由控制器的相应指令以执行,或传输步骤可根据先前的指令以执行,例如,指令使得存储器以第一读取电压执行读取。
存储器以第二读取电压读取特定数据,以取得第二读出数据(706)。第二读出数据被存储(708),例如,第二读出数据由存储器传输至控制器,随后存储于控制器。举例而言,第二读出数据可被读取至相同的页面缓冲器如同第一读出数据被读取一般,因为第一读出数据已经被传输至控制器,剩下页面缓冲器可使用。控制器可随后由页面缓冲器读取第二读出数据。如同已说明过的步骤702以及704,这些操作可响应由控制器提供的个别指令以执行,或操作可响应由控制器提供的先前指令以执行。第二读出数据可被控制器接收以及存储于内部存储器214。
多个读出数据(例如,第一以及第二读出数据)被比较,且取得比较结果(710),如步骤508所述。比较可由控制器执行。举例而言,处理器204可执行指令使得处理器204由内部存储器214取得第一读出数据以及第二读出数据,并处理读出数据以取得比较结果。根据比较结果,控制器可判断是否执行纠错程序(712、512),如步骤510所述,例如根据比较结果是否符合阈值条件。
图10依照本公开一实施例绘示信号被控制器以及存储器进行输出/接收的时序图,其关联于程序700。控制器应用芯片致能信号1002以指示存储器存储特定数据。由控制器提供的指令1004a使得存储器以第一读取电压读取特定数据至存储器的缓冲器。举例而言,指令1004a可指示需读取的特定页面,以及需存储于页面缓冲器的特定数据(存储于页面的数据),页面缓冲器相应于平面所包括的页面。如同前述指令804a,指令1004a可指示特定第一读取电压,或第一读取电压可由存储器判断或事先存储于存储器,例如,作为默认第一读取电压。
由控制器提供的指令1004b为读取指令,使得控制器由缓冲器读取第一读出数据。举例而言,指令1004b可使得存储器由存储器的IO引脚输出第一读出数据(1006a)。
指令1004c使得存储器以第二读取电压读取特定数据,第二读取电压不同第一读取电压,且存储第二读出数据的结果至缓冲器。如上所述,指令1004c可指示第二读取电压,或第二读取电压可做为第二读取电压的默认值,或与第一读取电压相差默认总量,或第二读取电压可由存储器决定。指令1004d使得控制器由缓冲器读取第二读出数据,例如,通过使得存储器由存储器的IO引脚输出第二读出数据,因此控制器由存储器的IO引脚接收第二读出数据(1006b)。
如上所述的程序500、600以及700具有两个读取操作。在一些实施例中,在程序500、600或700中,存储器以及/或控制器以额外的读取电压对特定数据执行额外的读取操作以取得额外的读出数据。举例而言,存储器可以不同的第三读取电压于第三时间读取特定数据,以取得相应的第三读出数据。第三读出数据可随后被用于比较(由控制器或存储器执行)以判断纠错程序是否需被执行。
举例而言,在不同的程序600中,存储器可包括三个页面缓冲器,对应每一平面,且第三读出数据可为读取至第三页面缓冲器,第三页面缓冲器相应于特定数据的平面。存储器的比较逻辑电路可由三个页面缓冲器取得三个读出数据以及执行三个路比较操作,例如三路按位XOR操作或可根据三个读出数据产生比较结果的其它比较操作。然而,存储器不需包括每一平面的三个页面缓冲器以执行具有三个或多个读出数据的不同程序600。举例而言,存储器可取得分别存储第一以及第二页面缓冲器的第一以及第二读出数据。存储器可执行操作(例如,比较操作)于第一以及第二读出数据(由第一以及第二页面缓冲器)以取得中间结果,此外,以第三读取电压执行第三读取至第一或第二页面缓冲器,以存储第三读出数据于第一或第二页面缓冲器。随后,根据中间结果以及第三读出数据(由第一或第二页面缓冲器),例如通过比较中间结果以及第三读出数据,存储器可取得比较结果。
在其它实施例中,在不同的程序700中,控制器由存储器取得第一、第二以及第三读出数据(相应于不同读取电压)以存储第一、第二以及第三读出数据至控制器,例如控制器的内部存储器。控制器根据第一、第二以及第三读出数据执行比较操作以取得比较结果。第一、第二以及第三读出数据可由存储器连续地取得。
在一些实施例中,在程序500、600或700之后,其它特定数据可以相同的方式被选择以及分析。举例而言,控制器以及存储器可一页一页重复于存储器的平面、区块或子区块,以分析整个存储器。在一些实施例中,控制器以及存储器可分析平面、区块或子区块的一部分(例如,执行程序500、600或700于平面、区块或子区块的页面的子集),根据区块或子区块的一部分的比较结果,判断是否对平面、区块或子区块执行更多程序。举例而言,若是平面、区块或子区块的一部分的比较结果指示低数量位错误(例如,一部分的每一页面的平均数量位错误低于阈值数值),其可判断平面、区块或子区块健康,且不需进行进一步的分析。在其它实施例中,若是平面、区块或子区块的一部分的比较结果指示高数量位错误(例如,一部分的每一页面的平均数量位错误高于阈值数值),其可判断平面、区块或子区块显示数据保持降低或读取干扰,且纠错操作可被执行于剩余的平面、区块或子区块,例如,不需进一步对以两个或多个电压读取的读出数据进行比较。
本公开所描述的技术可为实施于不同类型或配置的***或装置,例如,配合图以详细说明于以下的图12至图15中。每一***可包括控制器(例如,图2的控制器200或主控制器222)以及一个或多个半导体装置(例如,半导体装置100或半导体装置212,例如存储器)。
图12依照本公开一实施例绘示一种包括控制器1202以及半导体装置1206的***1200的示意图,控制器1202一对一地通讯耦接于半导体装置1206。控制器1202以及半导体装置1206通过接口1204耦接,信号通过接口1204由控制器1202传输至半导体装置1206,反之亦然,且控制器1202以及半导体装置1206用于通过接口1204彼此通讯,例如,通过适当地配置引脚。控制器1202以及半导体装置1206用于执行包括以两个或多个读取电压读取特定数据的操作,需说明的是,上述操作已详细说明在图5至图11的实施例中。在一些实施例中,半导体装置1206可为闪存装置(例如,与非门闪存装置(NAND Flash memory device)),且接口1204可为闪存接口(例如开放式与非门闪存界面(open NAND flash interface(ONFI))或切换界面(toggle interface))。接口1204可包括总线、线路、内联线以及/或任何其它可于控制器1202以及半导体装置1206之间传输信号的元件或元件。在一些实施例中,控制器1202包括处理器1208以及内部存储器1210,其操作如同图2所述的控制器200、处理器204以及内部存储器214的操作。
图13依照本公开一实施例绘示一种包括控制器1302、多个接口1304a、1304b以及多个半导体装置1306a~1306d的***1300的示意图,控制器1302通过多个接口1304a、1304b通讯耦接于多个半导体装置1306a~1306d。控制器1302可耦接于一个、两个或多个界面1304a、1304b,且每一界面1304a、1304b可耦接于一个、两个或多个半导体装置。控制器1302可用于控制半导体装置1306a~1306d以取得两个或多个读出数据之间的比较结果,两个或多个读出数据代表以两个或多个读取电压读取的相同特定数据。举例而言,控制器1302可控制半导体装置1306a~1306d以逐一执行相关操作,如图9的实施例所述,以取得每一半导体装置1306a~1306d的比较结果。控制器1302可选择特定半导体装置1306a~1306d(例如,使用读取致能引脚)并以单一半导体装置来执行相关操作,如图8以及图10的实施例所述。图13的元件可具有相同在图12所述的相应元件的特征。
图14依照本公开一实施例绘示一种包括控制器1402、多个接口1404a、1404b以及多个半导体装置1406a、1406b的***1400的示意图,控制器1402通过分开的接口1404a、1404b以通讯耦接于多个半导体装置1406a、1406b,接口1404a、1404b一对一地与半导体装置1406a、1406b配置。控制器1402用于控制半导体装置1406a、1406b以取得于两个或多个读出数据之间的比较结果,两个或多个读出数据代表以两个或多个读取电压读取的相同特定数据。图14的元件可具有相同在图12与图13所述的相应元件的特征。
图15依照本公开一实施例绘示一种包括控制器1502、接口1504a~1504c、多任务器1516以及多个半导体装置1506a~1506d的***1500的示意图,控制器1502通过单一接口1504a通过通讯耦接于多个半导体装置1506a~1506d。接口1504a耦接控制器1502至多任务装置1516(例如离散或整合的多任务器芯片)的物理层1512a(PHY)。多任务装置1516的解多任务器1514(DEMUX),可采用软件、硬件(例如,特殊解多任务器电路(specializeddemultiplexing circuit))或其组合来加以实施,其用于通过多个接口1504a~1504c中的接口1504a开关器1502以提供共同输入/输出,多个接口1504b、1504c每一个通过个别的物理层1512b、1512c以耦接于多任务装置1516,并耦接于一个或多个半导体装置1506a~1506d。物理层1512a~1512c包括低阶互联软件以及/或硬件层,硬件层兼容于接口1504a~1504c、控制器1502以及半导体装置1506a~1506d。举例而言,当半导体装置1506a~1506d为闪存,物理层1512a~1512c可为ONFI物理层或切换(toggle)物理层。控制器1502用于控制半导体装置1506a~1506d以取得于两个或多个读出数据之间的比较结果,两个或多个读出数据代表以两个或多个读取电压读取的相同特定数据。图15的元件可具有相同在图12至图14所述的相应元件的特征。
本公开所公开的内容和实施例可应用在一个或多个计算机程序产品,举例而言,在一数据处理设备中,一个或多个计算机程序指令模块编码于计算机可读取介质中,用于执行或控制数据处理,此计算机可读取介质可为机器可读取存储装置、计算机可读取介质存储基体、存储装置或者是以上的一个或多个上述装置的组合。专有名词「数据处理设备」包括所有用于数据处理的设备、装置及机器,举例但不限于,可编程处理器、计算机、多个处理器或多个计算机。上述设备除了硬件外,还可包括为计算机程序提供执行环境的编码,例如,组成处理器固件的编码、协议迭(protocol stack)、数据库管理***、执行中的***或以上一个或多个的组合。
本公开中所公开的***包括所有用于数据处理的设备、装置以及机器,举例但不限于可编程处理器、计算机、多个处理器或多个计算机。***除硬件外,还可包括为计算机程序提供执行环境的编码,例如,组成处理器固件的编码、协议迭、数据库管理***、执行中的***或以上一个或多个的组合。
计算机编程(亦称为编程、软件、软件应用程序(software application)、脚本(script)或代码)可使用任何形式的编程语言(programming language)来编写,此编程语言包括编译(compiled)或解释语言(interpreted languages),且可使用任何形式来配置,包括作为独立编程或模块、元件、子程序、或适用于计算环境(computing environment)的其它单元。计算机编程不需要对应到文件***的文件。编程可存储于文件的一部分,其保存其它编程、数据(例如,存储器在标记语言文件(markup language document)中的一个或多个脚本)、专用于所讨论编程的单一文件或多个协调文件(coordinated file)(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机编程可配置于一个或多台计算机上的执行,多台计算机位于一个地点或分布于多个地点,并通过通讯网络进行连结。
可使用一个或多个可编程处理器以执行一个或多个计算机编程以实行本公开所描述的功能,以执行本公开所描述的程序与逻辑流程。程序和逻辑流程亦可以由专用逻辑电路(special purpose logic circuitry)来加以执行,且装置亦可以实施为专用逻辑电路,例如现场可编程逻辑门阵列(field programmable gate array,FPGA)或应用程序专用的集成电路(integrated circuit,ASIC)。
可应用于运作计算机程序的处理器包括,举例而言,通用或特殊用途的微型处理器,或一个或多个数字计算机的一个或多个处理器。一般而言,处理器会从只读存储器或随机存取存储器中的其中之一或两者接收指令和数据,计算机的必要元件包括用在运作指令的处理器和一个或多个用于存储指令和数据的存储器装置。一般而言,计算机包括或耦接一用于接收数据、传送数据至一个或多个大量存储装置,例如,磁盘或光盘,以进行数据存储,然而,本公开中的计算机并不一定需要上述装置。可应用于存储计算机程序指令和数据的计算机可读取介质包括各种形式的非易失性存储器、介质以及存储器装置,举例而言,半导体存储器装置,例如,可擦除可规划式只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电子擦除式可复写只读存储器(Electrically-Erasable ProgrammableRead-Only Memory,EEPROM)、闪存装置和磁盘。处理器与存储器可由特殊目的的逻辑电路加以辅助或合并使用。
虽然本公开已经以实施例公开如上,然其仅用于描述一些实施例中的技术特征,并非用于限定本公开的保护范围。在个别实施例中所描述的技术特征能互相结合并应用于单一实施例中,相反地,单一实施例中所描述的多个技术特征亦能应用于个别或以次组合方式的多个实施例中。进一步而言,虽然上述技术特征的初始要求或是操作方法显示其需以特定方式做结合,然而所要求结合的一个或多个技术特征可从中移除,其中要求结合可以是指次组合或是其相关的变化。相似地,图标中虽以特定顺序绘示步骤,其并非要求此步骤必需要以特定顺序来加以执行,或是所绘示的所有步骤需全部执行完毕,方能达到所述的结果。
以上仅公开可能实施的多个实施例,在不脱离本公开的范围内,当可作各种的更动、修改及增进。因此,本公开的保护范围视随附的权利要求范围为准。
Claims (20)
1.一种半导体***,包括:
一半导体装置,用于存储数据;以及
一控制器,通讯耦接于该半导体装置,
其中该半导体装置以及该控制器用于:
响应于判断存储于该半导体装置的一特定数据是否符合一可靠度条件,
通过以一第一读取电压读取该特定数据而取得一第一读出数据,以及
通过以一第二读取电压读取该特定数据而取得一第二读出数据,其中该第二读取电压不同于该第一读取电压;
比较该第一读出数据以及该第二读出数据以取得一比较结果;以及
根据该比较结果,判断是否对该特定数据执行一纠错程序。
2.根据权利要求1所述的半导体***,其中该半导体装置包括一第一页面缓冲器以及一第二页面缓冲器,以及
其中该半导体装置用于:
存储该第一读出数据于该第一页面缓冲器,
存储该第二读出数据于该第二页面缓冲器,以及
比较该第一页面缓冲器中的该第一读出数据以及该第二页面缓冲器中的该第二读出数据以取得该比较结果。
3.根据权利要求2所述的半导体***,其中该半导体装置包括:
至少一个平面,其中该至少一个平面的每一平面包括一存储器阵列;以及
一页面缓冲器电路,耦接于该至少一个平面,其中该页面缓冲器电路包括该至少一个平面的每一平面的至少二个页面缓冲器,
其中该特定数据存储于该至少一个平面的一特定平面,以及其中该第一页面缓冲器以及该第二页面缓冲器关联于该至少一个平面的该特定平面。
4.根据权利要求2所述的半导体***,其中该控制器用于:
由该半导体装置接收该比较结果,
响应于判断该比较结果是否符合一阈值条件,由该半导体装置取得该特定数据,以及
对该特定数据执行该纠错程序。
5.根据权利要求1所述的半导体***,其中该控制器用于:
以该第一读取电压从该半导体装置读取该特定数据,取得该第一读出数据,并存储该第一读出数据;
以该第二读取电压从该半导体装置读取该特定数据,取得该第二读出数据,并存储该第二读出数据;以及
比较该第一读出数据以及该第二读出数据以取得该比较结果。
6.根据权利要求5所述的半导体***,其中该控制器用于:
响应于判断该比较结果是否符合一阈值条件,从该半导体装置读取该特定数据,以及
对该特定数据执行该纠错程序。
7.根据权利要求1所述的半导体***,其中该控制器用于,响应于根据该纠错程序的一结果以判断该特定数据是否符合一数据更新条件,对该特定数据执行一数据更新操作。
8.根据权利要求7所述的半导体***,其中该控制器包括一修正错误码电路用于执行该纠错程序,以及
其中该控制器根据该纠错程序的该结果以判断该特定数据是否符合该数据更新条件包括:
判断由该修正错误码电路侦测到的该特定数据中的错误的数量是否超过该修正错误码电路的一数据更新阈值。
9.根据权利要求1所述的半导体***,其中判断存储于该半导体装置的该特定数据是否符合该可靠度条件根据以下至少一个条件:
对该特定数据执行读取的数量,
对该特定数据执行写入的数量,
对该特定数据执行擦除的数量,或
从该特定数据存储于该半导体装置起的一流逝时间周期。
10.根据权利要求1所述的半导体***,其中该第一读出数据包括一第一多个位,以及该第二读出数据包括一第二多个位,
其中比较该第一读出数据以及该第二读出数据以取得该比较结果包括执行位于该第一多个位以及该第二多个位之间的一按位比较,以及
其中该比较结果基于该第一多个位以及该第二多个位之间的未匹配的位数量。
11.根据权利要求1所述的半导体***,其中:
该第一读取电压以及该第二读取电压的数值存储为该半导体装置中的默认值;或
该控制器基于该半导体装置的一使用程度以判定该第一读取电压或该第二读取电压的其中至少一个。
12.根据权利要求1所述的半导体***,其中该半导体装置包括一与非门闪存装置。
13.根据权利要求1所述的半导体***,其中该半导体装置为一第一半导体装置,以及该半导体***还包括一第二半导体装置,以及
其中该控制器用于致使该第一半导体装置以及该第二半导体装置以各自的两个不同的读取电压去读取该第一半导体装置或该第二半导体装置各自的特定数据。
14.根据权利要求13所述的半导体***,其中该控制器用于:
传送第一组指令至该第一半导体装置致使该第一半导体装置以第一组不同读取电压读取第一特定数据以及取得一第一读出数据对,以及比较该第一读出数据对以取得一第一比较结果,
传送第二组指令至该第二半导体装置致使该第二半导体装置以第二组不同读取电压读取第二特定数据以取得一第二读出数据对,且比较该第二读出数据对以取得一第二比较结果,以及
连续地接收该第一比较结果以及该第二比较结果,
其中该第一组指令与该第二组指令至少部分地交错。
15.根据权利要求1所述的半导体***,其中判断该特定数据是否符合该可靠度条件包括:
判断该半导体装置的一存储单元是否符合该可靠度条件,其中该特定数据为存储于该存储单元中的一数据子集。
16.一种存储器装置,包括:
一第一页面缓冲器;
一第二页面缓冲器;以及
一电路,用于:
通过以一第一读取电压读取该存储器装置中的一特定数据以取得一第一读出数据,
存储该第一读出数据于该第一页面缓冲器,
通过以一第二读取电压读取该存储器装置中的该特定数据以取得一第二读出数据,其中该第二读取电压不同于该第一读取电压,
存储该第二读出数据于该第二页面缓冲器,以及
比较该第一读出数据以及该第二读出数据以取得一比较结果。
17.根据权利要求16所述的存储器装置,其中该存储器装置包括:
至少一个平面,其中该至少一个平面的每一平面包括一存储器阵列,以及
一页面缓冲器电路,耦接于该至少一个平面;
其中该页面缓冲器电路包括该至少一个平面的每一平面的至少二个页面缓冲器,
其中该特定数据存储于该至少一个平面的一特定平面,以及其中该第一页面缓冲器以及该第二页面缓冲器关联于该特定平面。
18.根据权利要求16所述的存储器装置,
其中该第一读出数据包括一第一多个位,以及该第二读出数据包括一第二多个位,
其中比较该第一读出数据以及该第二读出数据以取得该比较结果包括执行该第一多个位以及该第二多个位之间的一按位比较,以及
其中该比较结果基于该第一多个位以及该第二多个位之间的未匹配的位数量。
19.一种计算机实施方法,包括:
响应于判断存储于一半导体装置的一特定数据是否符合一可靠度条件,
通过以一第一读取电压读取该特定数据以取得一第一读出数据,以及
通过以一第二读取电压读取该特定数据以取得一第二读出数据,其中该第二读取电压不同于该第一读取电压;
比较该第一读出数据以及该第二读出数据以取得一比较结果;以及
根据该比较结果,判断是否对该特定数据执行一纠错程序。
20.根据权利要求19所述的计算机实施方法,还包括:
存储该第一读出数据于该半导体装置的一第一页面缓冲器,
存储该第二读出数据于该半导体装置的一第二页面缓冲器,以及
比较该第一页面缓冲器的该第一读出数据以及该第二页面缓冲器的该第二读出数据以取得该比较结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/082,932 US20240201875A1 (en) | 2022-12-16 | 2022-12-16 | Managing data reliability in semiconductor devices |
US18/082,932 | 2022-12-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118212964A true CN118212964A (zh) | 2024-06-18 |
Family
ID=91449521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310388807.6A Pending CN118212964A (zh) | 2022-12-16 | 2023-04-12 | 半导体***、存储器装置以及计算机实施方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240201875A1 (zh) |
CN (1) | CN118212964A (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140148132A (ko) * | 2013-06-21 | 2014-12-31 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
-
2022
- 2022-12-16 US US18/082,932 patent/US20240201875A1/en active Pending
-
2023
- 2023-04-12 CN CN202310388807.6A patent/CN118212964A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240201875A1 (en) | 2024-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10115457B2 (en) | Threshold voltage distribution determination by sensing common source line currents | |
US11662905B2 (en) | Memory system performance enhancements using measured signal and noise characteristics of memory cells | |
ITRM20070273A1 (it) | Lettura di celle di memoria non volatile a livello mutiplo. | |
US11315647B2 (en) | Defect detection during program verify in a memory sub-system | |
US11145357B2 (en) | Memory system, memory controller and method for operating memory system | |
US20220148661A1 (en) | Memories for calibrating sensing of memory cell data states | |
TWI777672B (zh) | 判斷記憶體系統讀取電壓的記憶體裝置及其方法 | |
US11557351B2 (en) | Sense circuit to sense two states of a memory cell | |
US11630726B2 (en) | Memory system and operating method thereof | |
US20240071521A1 (en) | Memory device producing metadata characterizing applied read voltage level with respect to voltage distributions | |
US20230145358A1 (en) | Copyback clear command for performing a scan and read in a memory device | |
US10956064B2 (en) | Adjusting code rates to mitigate cross-temperature effects in a non-volatile memory (NVM) | |
US20230060943A1 (en) | Memory device defect management | |
US10297338B2 (en) | Memory system | |
CN116312706A (zh) | 用于存储器装置上的读取和编程验证操作的源极偏置温度补偿 | |
US10964395B2 (en) | Memory system, memory device and memory controller | |
US11061615B2 (en) | Memory system, memory controller and operating method thereof | |
US10978161B2 (en) | Memory system, memory controller and memory device | |
CN118212964A (zh) | 半导体***、存储器装置以及计算机实施方法 | |
US20230385193A1 (en) | Memory system, memory controller and operating method thereof for determining garbage collection victim block | |
US20230289062A1 (en) | Programming selective word lines during an erase operation in a memory device | |
US11810622B2 (en) | Detecting failure of a thermal sensor in a memory device | |
US12020741B2 (en) | Managing data refresh in semiconductor devices | |
US20230060440A1 (en) | Sacrificial strings in a memory device to detect read disturb | |
US20230067457A1 (en) | Defect detection during erase operations |
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 |