CN106155582B - 非挥发性储存装置与控制器 - Google Patents
非挥发性储存装置与控制器 Download PDFInfo
- Publication number
- CN106155582B CN106155582B CN201510204826.4A CN201510204826A CN106155582B CN 106155582 B CN106155582 B CN 106155582B CN 201510204826 A CN201510204826 A CN 201510204826A CN 106155582 B CN106155582 B CN 106155582B
- Authority
- CN
- China
- Prior art keywords
- controller
- application entity
- data
- abnormality
- physical page
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 claims abstract description 82
- 230000015654 memory Effects 0.000 claims abstract description 60
- 239000002356 single layer Substances 0.000 claims abstract description 8
- 230000007246 mechanism Effects 0.000 claims description 28
- 230000005856 abnormality Effects 0.000 claims description 19
- 238000012937 correction Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 abstract description 6
- 239000010410 layer Substances 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 4
- 230000005611 electricity Effects 0.000 description 14
- 238000000034 method Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 230000006798 recombination Effects 0.000 description 13
- 238000005215 recombination Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000280 densification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 102000057593 human F8 Human genes 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229940047431 recombinate Drugs 0.000 description 1
- 230000008263 repair mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/5642—Sensing or reading circuits; Data output 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/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及非挥发性储存装置与控制器。对于单层闪存存储器与多层闪存存储器,在异常状态结束后可根据其稳定性采取不同的操作。具体来说,对于多层闪存存储器在异常状态结束后,对于先前的实体区块,可以整个不再继续写入,而采用新的实体区块继续进行操作。相对的,对于单层闪存存储器,在异常状态结束后,控制器需要对于先前实体区块的最后实体页进行对应的处理。
Description
技术领域
本发明是关于非挥发性存储器的储存装置与控制器,且特别是关于具有异常状况后修复功能的非挥发性存储器的储存装置与控制器。
背景技术
快闪存储器等非挥发性存储器近年来快速发展,并且出现在各式各样的电子装置。目前看来,接下来不管是容量或是技术的发展,还会继续加强。一旦越来越多的数据被放在这类的非挥发性存储器,为了确保储存数据的正确性与安全性,如果发生异常现象,例如突然断电等,提供有效而且可靠的修复机制也就越来越重要。
发明内容
本发明提供一种非挥发性储存装置,包括一非挥发性存储器,划分成多个实体区块,每一实体区块划分成多个实体页;一连接界面,供连接至一主机;以及一控制器,其中该控制器选定一个实体区块作为一操作实体区块,当收到该主机的一写入命令,将对应该写入命令的数据写入该操作实体区块;当该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行一重试机制,但在一异常状态后进行一修复操作时,关闭该重试机制,透过一预设电位读取该操作实体区块上次最后写入的一实体页,并且检查该实体页的错误验证码,如果该错误验证码显示有错误发生,启动该重试机制用不同电位再尝试重新读取该实体页,并且重新程序化该实体页。
本发明提供一种控制器,用于一非挥发性储存装置,该非挥发性储存装置包含一非挥发性存储器与一连接界面,该非挥发性储存器划分成多个实体区块,每一实体区块划分成多个实体页,该连接界面连接一主机,其中该控制器选定一个实体区块作为一操作实体区块,当收到该主机的一写入命令,将对应该写入命令的数据写入该操作实体区块;当该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行一重试机制,但在一异常状态后进行一修复操作时,关闭该重试机制,透过一预设电位读取该操作实体区块上次最后写入的一实体页,并且检查该实体页的错误验证码,如果该错误验证码显示有错误发生,启动该重试机制用不同电位再尝试重新读取该实体页,并且重新程序化该实体页。
附图说明
图1举例说明根据本发明第一实施例的使用方式。
图2举例说明根据发明第一实施例的一种实作示意图。
图3举例说明实体区块与页之间的关联。
图4举例说明逻辑区块被分成三种区域。
图5举例说明逻辑区块跟实体区块之间的对应关系。
图6举例说明逻辑区块和实体区块之间的关联。
图7例示一个NAND结构快闪存储器的存储元件的一个区块。
图8是一个三层式储存单元(TLC)的快闪存储器储存单元存放电量跟操作电压的示意图。
图9例示如果对储存单元施加操作电压VT_1所可能发生的情形。
图10例示在一次的读取操作时,依序使用7个不同的电压对储存单元进行读取操作。
图11例示用来找CSB的方法。
图12例示用来找MSB的方法。
图13例示一种修复操作的实施例。
符号说明
10:电脑; 12:随身碟;
20:主机; 22:数据储存装置;
24:存储器模块; 41:系统区块群组;
43:数据区块群组; 45:备用区块群组;
102:USB传输介面; 201:管理模块;
203:第一传输介面; 221:微控制器;
223:存储器管理模块; 225:重组编码模块;
227:第二传输介面; 229:缓冲存储器;
231:第一模块介面; 241:第二模块介面;
243:控制电路; 245:存储器区块阵列;
130~132P、PB0~PB9:实体区块;
P1~P12:页;
LB0~LB3:逻辑区块;
1321、1322、P_1~P_N:数据页;
VG_0~VG_N:电压;
M_1~M_K:存储单元;
VT_1~VT_7、VT_1’~VT_7’:操作电压;
VLSB、VCSB1、VCSB2、VMSB1~VMSB4:电压;
L0~L7:区间;
1301、1303、1305、1307、1309、1311、1313:步骤。
具体实施方式
本发明的实施例是一种非挥发性储存装置跟其中的控制器,例如一种闪存外接碟或一种闪存外接硬盘。这个非挥发性储存装置可透过USB、SATA等连接界面连接到一主机,作为该主机的存储装置。在非挥发性储存装置包含一个或多个非挥发性存储器,也可包括一个或多个随机读取存储器或传统磁性硬碟。主机透过连接界面将存取命令,例如读取或写入命令传到这个非挥发性储存装置。控制器根据这些读取或写入命令,对于存储器进行操作。
为了加快闪存存储器的整体存取速度或是减少耗损,可以透过设置一些随机读取存储器作为快取或是缓存。换言之,有些数据并不是直接写入到闪存存储器,而是暂时先写入到随机读取存储器。另一种可能的做法是,将速度比较快的单层(SLC)闪存存储器作为第一阶的快取,另外配置比较便宜的多层(MLC)闪存存储器实际存放大量数据。
在本发明的一个实施例中,对于单层闪存存储器与多层闪存存储器,在异常状态结束后可根据其稳定性采取不同的操作。具体来说,对于多层闪存存储器在异常状态结束后,对于先前的实体区块,可以整个不再继续写入,而采用新的实体区块继续进行操作。
相对的,对于单层闪存存储器,在异常状态结束后,控制器需要对于先前实体区块的最后实体页进行对应的处理。
以下将先介绍这些实施例所可适用的架构,之后透过图示解释这些实施例的概念。
请参照图1,其举例示范根据本发明第一实施例的使用示意图。
电脑10具有USB传输介面102,并且电脑10透过USB传输介面102对随身碟12进行数据存取的操作。这个例子只是作为说明,并非用于限制本发明的范围。举例来说,电脑10可替换成各种电子装置,例如手机、平板电脑、电视、相机等各类需要数据储存装置的电子设备。随身碟12可替换成连接在电脑10外部的其他类别外接储存装置,也可替换成固定安装在电脑内部的内部储存装置。USB传输介面102可替换成各种数据传输介面,例如IEEE1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面、PCI介面等。
以随身碟、外接硬碟或是内接磁盘或是快闪盘为例,当这些数据储存装置经由传输介面被连接到电脑等电子装置时,电脑等电子装置会对这些数据储存装置进行数据读取,以判断这些数据储存装置是否已经格式化。如果尚未格式化,电脑等电子装置通常会询问使用者是否对数据储存装置进行格式化操作。当使用者决定对数据储存装置进行格式化,电脑等电子装置可发出命令给数据储存装置,由数据储存装置自行按照命令进行格式化。另一种做法是,电脑等电子装置会提供格式化所需的细节控制指令,例如在数据储存装置中建立档案对照表、预设数值填写等等。
请参照图2,其举例示范图1对应的装置内部架构的一种实作方式。
主机20具有管理模块201与第一传输介面203。主机20透过管理模块201的硬件或软体或软体硬件的组合,经由第一传输介面203存取数据储存装置22。这里提到的主机20可以对应到图1的电脑10。其中管理模块201的范例包括在主机上执行,负责档案与数据储存的操作系统、对应的驱动程序以及相关的控制电路的组合。
数据储存装置22则具有第二传输介面227、微控制器221、缓冲存储器229、存储器管理模块223、重组编码模块225以及第一模块介面231。数据储存装置22还具有存储器模块24,而存储器模块24则具有第二模块介面241、控制电路243与存储器区块阵列245。
在这个范例中,第二传输介面227与主机20的第一传输介面203对应,提供例如机械、电子跟相关的信号传输处理。缓冲存储器227作为数据储存装置22在读出跟写入数据时,作为信号传输过程的缓冲或是建构快取架构使用。整个数据储存装置22的运作则主要由微控制器221执行预定的指令码,在适当的时候产生适当的控制信号来控制各个元件的操作。存储器管理模块223与重组编码模块225可透过电路硬件来实作,或透过电路配合给微控制器221执行的指令码进行运作,也可全部透过对应的指令码实作,由微控制器221执行。
第一模块介面231用来跟存储器模块24进行沟通。存储器模块24内的第二模块介面241跟第一模块介面231对应,控制电路243根据微控制器221的指令对存储器区块阵列245进行存取。存储器区块阵列245可包括多个个快闪存储器实体区块。
存储器管理模块223包括处理逻辑跟对照表格,用来将存储器区块阵列245的实体区块跟逻辑区块进行比对纪录。此外,数据储存装置22也可以包括错误更正模块(未图示)等。
其中,重组编码模块225负责对写入存储器模块24的原始数据进行重组编码,产生对应的重组编码数据,以及对于从存储器模块24读出的重组编码数据进行反重组编码,以还原回原始数据的数值。这包括对于特定位置的位元进行位置交换、反相部分位置的位元、对于奇数地址跟偶数地址的数据用不同的方式进行反重组编码等等。
重组编码的目的可以包括数据的稳定性。举例来说,在快闪存储器中,假如相邻单元存放的数值相同,例如都是0或都是1,有可能会因为电子特性,影响到储存数据存放的稳定性。换言之,透过进行重组编码,是相邻单元存放的数字可以尽量是0与1交错,就能增加数据存放的稳定性。因此,具有重组编码功能,就能使用成本更低的快闪存储器,而仍能维持一定的储存品质。
重组编码也可以基于各种其他的目的,例如避免存在数据储存装置的数据被未经授权者读取等等。重组编码也可以使用任何目前已经知道或日后开发的各种编码方式,只要能够将原始数据进行编码、解码后再还原回原始数据,都算是重组编码的范围。
请参照图3,其举例说明在快闪存储器中,实体区块与页之间的关系。
在图3中,总共有四个实体区块PB1、PB2、PB3跟PB4。每个实体区块里头进一步区隔成多个个页,P1、P2、P3到P12。在这个范例中,一个实体区块对应到12个页,当然,在实际的设计中,一个实体区块包括的页数目可以作各种不同的调整。在不同的应用环境中,有可能对于实体区块、页给予不同的名称,或甚至对于实体区块跟页进行分组。这些都是熟悉此项技术领域的人所熟悉的,所以在此不再赘述。
对于快闪存储器来说,例如NAND快闪存储器或是NOR快闪存储器,对于没有使用过的快闪存储器要进行数据写入动作前,实体区块必须先进行抹除动作。抹除动作以实体区块作为基本单位,而写入则可以页作为基本单位。经过抹除过的实体区块接着就能对想写入的页进行数据写入。然而,如果某个页已经被进行写入操作,要再进行写入操作的话,就必须先对包括这个页的实体区块进行抹除的处理。
由于实体区块的范围大于页的范围,所以,如果要进行上述曾经写入过的页再进行写入时,就必须先进行数据的搬移。换言之,对于逻辑上同样地址的数据,可能在数据写入跟重新写入的过程,从一个实体区块被搬移到另一个实体区块。
接着,请参照图4,其示范一种将实体区块进行分类的做法。
所有的实体区块被区分成三类,系统区块群组41、数据区块群组43跟备用区块群组45。系统区块群组41包括用来存放逻辑区块跟实体区块的对照表、微控制器的指令码、各种指标等系统数据。除了系统区块群组41,数据区块群组43则指那些用来实际存放数据的实体区块。备用区块群组45则用来存放用来作数据搬移与备用的实体区块。
如上所述,当进行对曾经写过的页要再进行写入时,需要先进行抹除操作才能进行。换言之,这个页所处的实体区块的其他页的数据也要一起先复制到别的实体区块,这个实体区块就从备用区块群组45中挑选。等数据复制到这个备用区块群组45的实体区块后,这个实体区块被分类到数据区块群组43,而原先的实体区块则经过抹除操作被分类到备用区块群组45。
换言之,不但对应到逻辑地址的实体区块可能一直在改变,甚至哪个实体区块对应到哪个区域也在改变。因此系统必须纪录逻辑区块与实体区块之间的对应关系。
请参照图5,其例示逻辑区块与实体区块的对应关系。在这个例子中,逻辑区块LB0对应到实体区块PB5,逻辑区块LB1对应到实体区块PB0,逻辑区块LB2对应到实体区块PB6,而逻辑区块LB3则对应到实体区块PB9。
数据储存装置可以透过对照表或其他方式来储存这些对应关系。
图6举例示范用一个对照表来纪录逻辑区块跟实体区块之间的对应关系。在图6的例子中,逻辑区块435对应到实体区块221,逻辑区块212对应到实体区块779,逻辑区块112对应到实体区块832,并且逻辑区块554对应到实体区块21。
请参考图7,其例示一个NAND结构快闪存储器的存储元件的一个区块(block)。在这个区块中具有一定数目的数据页(page),亦即P_0、P_1、P_2到P_N。每一个数据页则具有M_0、M_1、M_2到M_K个存储单元(cell)。透过对每数据页设定适当的电压VG_0、VG_1、VG_2到VG_N,可读取存于每个储存单元的浮动闸(Floating Gate)的电位,进而得到每个储存单元所存放的数据。
对于单层式储存单元(SLC)快闪存储器来说,每个储存单元只存放一个位元的数据,也就是0或1。此时,理论上,只要给每数据页适当的一个设定电压VG_0、VG_1、VG_2到VG_N,就可以检测出到底储存单元存放的电量,而得出对应的数据值。
相对的,假如是多层式储存单元(MLC)快闪存储器,针对一次的读取动作就需要施加多个不同的设定电压,以判断到底储存单元里头存放的电量到底是多少,而换算出实际存放的数据内容。
图8是一个三层式储存单元(TLC)的快闪存储器储存单元存放电量跟操作电压的示意图。在这个示意图中可看到,一个储存单元根据储存的电量落在L0、L1、L2...L7区间,而代表存放的位元数据分别为111,011,001,...110。
对于这样的储存单元,理论上,在施加VT_1的操作电压时,检测电路可以判断到底储存单元存放的电量是属于L0这一边,也就是数据111,或是L1,L2,L3,L4,L5,L6,L7那一边,也就是数据为111,011,001,101,100,000或110。
透过有次序的施加多个不同的电压组合,理论上就可以判断出所有三个位元的数据,也就是最大位元MSB(Most Significant Bit)、CSB(Central Significant Bit)与LSB(Least Significant Bit)的数据内容。
但是,如上所述,随着半导体制程持续朝密集化以及微小化的方向发展,以及快闪存储器为了降低成本或是使用时间越来越长,相关的电路以及存储器储存单元的稳定性的问题越来越大。
图9例示一种可能的状况,也就是如果对储存单元施加操作电压VT_1,有可能因为位元状态间出现部分重迭或甚至位移,导致解读出的数据发生不正确的情形。在这样的情况下,就需要透过各种不同错误校验方法,或是动态调整操作电压来解决数据判断不准确的问题。
图10例示在一次的读取操作时,依序使用7个不同的电压对储存单元进行读取操作,检测储存单元内浮动闸的电量,以判读储存单元存放的数据的LSB数值到底是0还是1。
从图10可以清楚看到,如果储存单元储存的电量分布落在VLSB的左侧L0,L1,L2,L3,代表LSB的内容是0。相反的,如果是落在VLSB的右侧L4,L5,L6,L7,则代表LSB的内容是1。
由于在状态间有重迭的问题,因此,可依序施加不同的电压VLSB,VLSB+D,VLSB-D,VLSB+2D,VLSB-2D,VLSB+3D,VLSB-3D。藉此,假如储存单元的电量分布刚好落在例如VLSB+D与VLSB之间,就可以从检测的结果得到一定的情报。
每次施加一个电压可以得到一个位元结果,因此7次电压就可以得到7个位元。这7个位元总共有八种可能的组合。由这7个位元对应的位元序(bit sequence),可配合LDPC的解码电路跟方法,用来计算校验码以及用来找出正确的位元数据,也就是利用所取得的软资讯(soft information)搭配LDPC与BCH等方法,用来进行错误校验。
图11例示用来找CSB的方法。由于CSB代表第二个位元,在图5中可看到如果储存单元的电量是落在L2,L3,L4,L5则代表储存单元储存的CSB是0。另一方面,如果储存单元的电量落在L0,L1,L6,L7区间,则代表储存单元储存的CSB是1。在这样的配置下,可以理解的是需要使用VCSB1与VCSB2两个操作电压来过滤出到底储存单元的电量是落在哪个区间。
相似于上述的说明,VCSB1与VCSB2也可以施加多个步进调整量,依序多次用不同的电压进行读取的动作。每次读取的结果产生位元序,可搭配LDPC与BCH等方法,用来进行错误校验。
图12例示用来找MSB的方法。由于MSB代表最高的位元,在图6中可看到如果储存单元的电量是落在L0,L3,L4,L7区间,则代表储存单元存放的MSB位元为1。相对的,假如储存单元的电量是落在L1,L2,L5,L6区间,则代表储存单元存放的MSB位元为0。
相似于上述的说明,VMSB1,VMSB2,VMSB3,VMSB4也可以施加多个步进调整量,依序多次用不同的电压进行读取的动作。每次读取的结果产生位元序,可搭配LDPC与BCH等方法,用来进行错误校验。
在上述的各种架构说明后,以下配合图示进一步说明本发明实施例在异常状态后,进行修复操作时,如何找到先前有效写入的数据页,并进行适当的操作,以加强数据的稳定性。当然,这样的配置方法不限于一定要在异常状态后才可以执行。例如预定的数据检查或修复工作也可以使用。
请参考图13,其例示根据本发明实施例的一种做法,可快速找出先前最后一个有效写入的数据页位置。
首先,取消重读机制、错误验证机制与重组编码机制(步骤1301)。接着,参考能获得的表格,用预设电位读取可能是最后一个数据页的内容(步骤1303)。由于曾经经过异常状态,例如不正常的电源关闭,所以表格记载的最后一个数据页的信息未必正确。在读取数据后,进行验证码或更正码(Error Correction Code)的操作(步骤1305)。如果检查结果没问题的话,在下个数据页写入空白数据(步骤1313)。
如果经过检查发现有问题,则开启重读机制,用不同的电位再尝试读取数据(步骤1307)。重读后,再度检查验证码(步骤1309)。假如能通过的话,将正确数据再写入该数据页(步骤1311)。最后,在下个数据页写入空白数据(步骤1313)。
这样的机制适合用于混杂单层(SLC)闪存存储器与多层(MLC)闪存存储器架构的非挥发性储存装置。对于多层闪存存储器会设置比较复杂的修复操作。相对的,对于稳定性较高的单层闪存存储器可以用上述的方法快速完成修复的操作工作。
综上所述,本发明无论就目的、手段及功效,在在均显示其迥异于已有技术的特征。但应注意的是,上述诸多实施例仅为了便于说明而举例而已,本发明所主张的权利范围自应以权利要求书所述为准,而非仅限于上述实施例。
Claims (20)
1.一种非挥发性储存装置,包含:
一非挥发性存储器,划分成多个实体区块,每一实体区块划分成多个实体页;
一连接界面,供连接至一主机;以及
一控制器,其中
该控制器选定一个实体区块作为一操作实体区块,当收到该主机的一写入命令,将对应该写入命令的数据写入该操作实体区块;
当该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行一重试机制,但在一异常状态后进行一修复操作时,关闭该重试机制,透过一预设电位读取该操作实体区块上次最后写入的一实体页,并且检查该实体页的错误验证码,如果该错误验证码显示有错误发生,启动该重试机制用不同电位再尝试重新读取该实体页,并且重新程序化该实体页。
2.如权利要求1所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行该重试机制,但在该异常状态后进行该修复操作时,关闭该重试机制来找出该操作实体区块上次最后写入的该实体页。
3.如权利要求1所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,会启动错误更正机制来辨识及更正错误,但在该异常状态后进行该修复操作时,关闭该错误更正机制来找出该操作实体区块上次最后写入的该实体页。
4.如权利要求1所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,会启动乱数解码机制来还原数据,但在该异常状态后进行该修复操作时,关闭该乱数解码机制来找出该操作实体区块上次最后写入的该实体页。
5.如权利要求1所述的非挥发性储存装置,其特征在于,该控制器透过一表格记录该操作实体区块的该些实体页对应到哪些逻辑区块的逻辑页,在该异常状态后进行该修复操作时,该控制器更新该表格。
6.如权利要求1所述的非挥发性储存装置,其特征在于,该控制器将空白数据写入到该操作实体区块上次最后写入的该实体页。
7.如权利要求1所述的非挥发性储存装置,其特征在于,还包含一多层非挥发性存储器,该非挥发性存储器为一单层非挥发性存储器。
8.如权利要求7所述的非挥发性储存装置,其特征在于,在该异常状态执行该修复操作时,该控制器对于该多层非挥发性存储器与该单层非挥发性存储器使用不同的修复操作。
9.如权利要求1所述的非挥发性储存装置,其特征在于,该非挥发性存储器为一闪存存储器。
10.如权利要求1所述的非挥发性储存装置,其特征在于,该非挥发性存储器为一闪存硬碟。
11.一种控制器,用于一非挥发性储存装置,该非挥发性储存装置包含一非挥发性存储器与一连接界面,该非挥发性存储器划分成多个实体区块,每一实体区块划分成多个实体页,该连接界面连接一主机,其中
该控制器选定一个实体区块作为一操作实体区块,当收到该主机的一写入命令,将对应该写入命令的数据写入该操作实体区块;
当该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行一重试机制,但在一异常状态后进行一修复操作时,关闭该重试机制,透过一预设电位读取该操作实体区块上次最后写入的一实体页,并且检查该实体页的错误验证码,如果该错误验证码显示有错误发生,启动该重试机制用不同电位再尝试重新读取该实体页,并且重新程序化该实体页。
12.如权利要求11所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行该重试机制,但在该异常状态后进行该修复操作时,关闭该重试机制来找出该操作实体区块上次最后写入的该实体页。
13.如权利要求11所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,会启动错误更正机制来辨识及更正错误,但在该异常状态后进行该修复操作时,关闭该错误更正机制来找出该操作实体区块上次最后写入的该实体页。
14.如权利要求11所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,会启动乱数解码机制来还原数据,但在该异常状态后进行该修复操作时,关闭该乱数解码机制来找出该操作实体区块上次最后写入的该实体页。
15.如权利要求11所述的控制器,其特征在于,该控制器透过一表格记录该操作实体区块的该些实体页对应到哪些逻辑区块的逻辑页,在该异常状态后进行该修复操作时,该控制器更新该表格。
16.如权利要求11所述的控制器,其特征在于,该控制器将空白数据写入到该操作实体区块上次最后写入的该实体页。
17.如权利要求11所述的控制器,其特征在于,还包含一多电位非挥发性存储器,该非挥发性存储器为一单一电位非挥发性存储器。
18.如权利要求17所述的控制器,其特征在于,在该异常状态执行该修复操作时,该控制器对于该多电位非挥发性存储器与该单一电位非挥发性存储器使用不同的修复操作。
19.如权利要求11所述的控制器,其特征在于,该非挥发性存储器为一闪存存储器。
20.如权利要求11所述的控制器,其特征在于,该非挥发性存储器为一闪存硬碟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135329A TWI562158B (en) | 2014-10-13 | 2014-10-13 | Non-volatile memory device and controller |
TW103135329 | 2014-10-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155582A CN106155582A (zh) | 2016-11-23 |
CN106155582B true CN106155582B (zh) | 2019-07-05 |
Family
ID=55655521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510204826.4A Active CN106155582B (zh) | 2014-10-13 | 2015-04-27 | 非挥发性储存装置与控制器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9690661B2 (zh) |
CN (1) | CN106155582B (zh) |
TW (1) | TWI562158B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102593178B1 (ko) * | 2016-08-19 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
CN107797821B (zh) * | 2016-09-05 | 2021-10-08 | 上海宝存信息科技有限公司 | 重试读取方法以及使用该方法的装置 |
TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
KR102565913B1 (ko) * | 2018-06-12 | 2023-08-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 |
TWI727327B (zh) * | 2019-05-29 | 2021-05-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN110489276B (zh) * | 2019-07-25 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 基于业务页面的验证服务的容灾方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529522A (zh) * | 2005-10-25 | 2009-09-09 | 晟碟以色列有限公司 | 从闪速存储器中的错误恢复的方法 |
CN102376368A (zh) * | 2010-07-07 | 2012-03-14 | 马维尔国际贸易有限公司 | 对快闪存储器系统中递进读取的最优参考电压的确定 |
US8503238B1 (en) * | 2010-07-21 | 2013-08-06 | Sk Hynix Memory Solutions Inc. | Error recovery for flash memory |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
CN101727402B (zh) * | 2009-10-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
US8539311B2 (en) * | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
KR101890767B1 (ko) * | 2011-07-01 | 2018-09-28 | 시게이트 테크놀로지 인터내셔날 | 주소 사상 정보 관리 방법 이를 적용한 저장 장치 |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
JP2013122793A (ja) * | 2011-12-09 | 2013-06-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9208022B2 (en) * | 2012-03-29 | 2015-12-08 | Intel Corporation | Techniques for adaptive moving read references for memory cell read error recovery |
DE102012022728A1 (de) | 2012-11-21 | 2014-05-22 | Unify Gmbh & Co. Kg | Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens |
TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
US20140359202A1 (en) * | 2013-05-31 | 2014-12-04 | Western Digital Technologies, Inc. | Reading voltage calculation in solid-state storage devices |
US9329931B2 (en) * | 2013-07-24 | 2016-05-03 | Seagate Technology Llc | Solid state drive emergency pre-boot application providing expanded data recovery function |
US9209835B2 (en) * | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
US9397703B2 (en) * | 2013-12-04 | 2016-07-19 | Seagate Technology Llc | Adaptive read error recovery for memory devices |
US9378810B2 (en) * | 2014-02-11 | 2016-06-28 | Seagate Technology Llc | Systems and methods for last written page handling in a memory device |
KR102238592B1 (ko) * | 2014-08-08 | 2021-04-09 | 삼성전자주식회사 | 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법 |
-
2014
- 2014-10-13 TW TW103135329A patent/TWI562158B/zh active
-
2015
- 2015-02-05 US US14/614,447 patent/US9690661B2/en active Active
- 2015-04-27 CN CN201510204826.4A patent/CN106155582B/zh active Active
-
2017
- 2017-05-19 US US15/599,768 patent/US10268546B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529522A (zh) * | 2005-10-25 | 2009-09-09 | 晟碟以色列有限公司 | 从闪速存储器中的错误恢复的方法 |
CN102376368A (zh) * | 2010-07-07 | 2012-03-14 | 马维尔国际贸易有限公司 | 对快闪存储器系统中递进读取的最优参考电压的确定 |
US8503238B1 (en) * | 2010-07-21 | 2013-08-06 | Sk Hynix Memory Solutions Inc. | Error recovery for flash memory |
Also Published As
Publication number | Publication date |
---|---|
US20170255523A1 (en) | 2017-09-07 |
US10268546B2 (en) | 2019-04-23 |
CN106155582A (zh) | 2016-11-23 |
US9690661B2 (en) | 2017-06-27 |
TW201614671A (en) | 2016-04-16 |
US20160103730A1 (en) | 2016-04-14 |
TWI562158B (en) | 2016-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105988718B (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
CN106155582B (zh) | 非挥发性储存装置与控制器 | |
CN105786411B (zh) | 非易失性存储器装置的操作方法 | |
CN109542675A (zh) | 存储器系统及其操作方法 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
KR20130041341A (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
KR20140020364A (ko) | 메모리 장치를 위한 삽입된 매핑 정보 | |
CN107608628A (zh) | 闪存控制器 | |
CN101681300A (zh) | 存储器系统 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
CN107799150A (zh) | 3d nand闪存的错误缓解 | |
CN105988936B (zh) | 非挥发性储存装置与控制器 | |
TW201800947A (zh) | 資料儲存裝置及其資料維護方法 | |
CN109815160A (zh) | 最后写入页搜索 | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN110175132A (zh) | 存储装置及其操作方法 | |
TWI506438B (zh) | 資料儲存裝置及其管理方法 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US20140040534A1 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103870214A (zh) | 多层存储块兼具单层存储块性能的方法 | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
CN109840165A (zh) | 存储器系统及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |