CN105988936A - 非挥发性储存装置与控制器 - Google Patents
非挥发性储存装置与控制器 Download PDFInfo
- Publication number
- CN105988936A CN105988936A CN201510065062.5A CN201510065062A CN105988936A CN 105988936 A CN105988936 A CN 105988936A CN 201510065062 A CN201510065062 A CN 201510065062A CN 105988936 A CN105988936 A CN 105988936A
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- page
- application entity
- abnormality
- 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
- 238000003860 storage Methods 0.000 claims abstract description 64
- 230000015654 memory Effects 0.000 claims abstract description 51
- 230000002159 abnormal effect Effects 0.000 claims abstract description 9
- 230000008439 repair process Effects 0.000 claims abstract description 6
- 230000005856 abnormality Effects 0.000 claims description 20
- 238000012937 correction Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims 3
- 210000003205 muscle Anatomy 0.000 claims 2
- 238000000034 method Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 abstract description 7
- 230000005611 electricity Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000009434 installation Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005138 cryopreservation Methods 0.000 description 1
- 238000013500 data storage 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
- 238000006073 displacement reaction Methods 0.000 description 1
- 102000057593 human F8 Human genes 0.000 description 1
- 230000007420 reactivation 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
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Abstract
本发明提供一种非挥发性储存装置与控制器,在闪存存储器等非挥发性储存装置遇到异常状态后的修复操作中,对于不稳定的数据页,为了避免错误的蔓延,直接将有效的数据页复制到另外的实体区块,不要再使用原先的实体区块。另外,在寻找哪个是有效数据页的时候,只读取部分的数据根据统计值来判断是否为有效数据页以加速判断的流程。
Description
技术领域
本发明是关于非挥发性存储器的储存装置与控制器,且特别是关于具有异常状况后修复功能的非挥发性存储器的储存装置与控制器。
背景技术
快闪存储器等非挥发性存储器近年来快速发展,并且出现在各式各样的电子装置。目前看来,接下来不管是容量或是技术的发展,还会继续加强。一旦越来越多的数据被放在这类的非挥发性存储器,为了确保储存数据的正确性与安全性,如果发生异常现象,例如突然断电等,提供有效而且可靠的修复机制也就越来越重要。
发明内容
本发明提供一种非挥发性储存装置,包括一非挥发性存储器,划分成多个实体区块,每一实体区块划分成多个实体页;一连接界面,供连接至一主机;以及一控制器,其中该控制器通过该连接界面接收来自该主机的一系列写入命令,这些写入命令的地址分别对应到相应的逻辑区块中的相应的逻辑页;该控制器从该多个实体区块选择一个实体区块作为一操作实体区块,并将不同逻辑区块的不同逻辑页写入到该操作实体区块中;以及当该控制器在一异常状态后进行一修复操作时,即使该操作实体区块还有空间可写入数据,选择另一个实体区块作为该操作实体区块,以进行后续的数据写入操作。
一种控制器,用于一非挥发性储存装置,该非挥发性储存装置包含一非挥发性存储器与一连接界面,该非挥发性储存器划分成多个实体区块,每一实体区块划分成多个实体页,该连接界面连接一主机,其中该控制器通过该连接界面接收来自该主机的一系列写入命令,这些写入命令的地址分别对应到相应的逻辑区块中的相应的逻辑页;该控制器从该多个实体区块选择一个实体区块作为一操作实体区块,不同逻辑区块的不同逻辑页写入到该操作实体区块中;以及当该控制器在一异常状态后进行一修复操作时,即使该操作实体区块还有空间可写入数据,选择另一个实体区块作为该操作实体区块,以进行后续的数据写入操作。
附图说明
图1举例说明根据本发明第一实施例的使用方式。
图2举例说明根据发明第一实施例的一种实作示意图。
图3举例说明实体区块与页之间的关联。
图4举例说明逻辑区块被分成三种区域。
图5举例说明逻辑区块跟实体区块之间的对应关系。
图6举例说明逻辑区块和实体区块之间的关联。
图7例示一个NAND结构快闪存储器的存储元件的一个区块。
图8是一个三层式储存单元(TLC)的快闪存储器储存单元存放电量跟操作电压的示意图。
图9例示如果对储存单元施加操作电压VT_1所可能发生的情形。
图10例示在一次的读取操作时,依序使用7个不同的电压对储存单元进行读取操作。
图11例示用来找CSB的方法。
图12例示用来找MSB的方法。
图13例示异常模式前后的操作实体区块的对应关系。
图14例示控制器找寻有效写入数据页的方法。
【符号说明】
10:电脑; 12:随身盘;
20:主机; 22:数据储存装置;
24:存储器模块; 41:系统区块群组;
43:数据区块群组; 45:备用区块群组;
102:USB传输接口; 201:管理模块;
203:第一传输接口; 221:微控制器;
223:存储器管理模块; 225:重组编码模块;
227:第二传输接口; 229:缓冲存储器;
231:第一模块接口; 241:第二模块接口;
243:控制电路; 245:存储器区块阵列;
130~132P、PB 1~PB 9: 实体区块;
P 1~P 12:页; LB 0~LB 3:逻辑区块;
1321、1322、P_1~P_N: 数据页;
1301、1302: 操作实体区块;
VG_0~VG_N:电压; M_1~M_K:存储单元;
VT_1~VT_7、VT_1’~VT_7’: 操作电压;
VL S B、VC S B 1、VC S B2、VMS B 1~VMS B4: 电压;
L0~L7: 区间;
1401、1403、1405、1407、1409、1411、1413: 步骤。
具体实施方式
本发明的实施例是一种非挥发性储存装置跟其中的控制器,例如一种闪存外接碟或一种闪存外接硬盘。这个非挥发性储存装置可通过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 SignificantBit)与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个比特对应的比特序(bitsequence),可配合LDPC的解码电路跟方法,用来计算校验码以及用来找出正确的比特数据,也就是利用所取得的软信息(soft information)搭配LDPC与BCH等方法,用来进行错误校验。
图11例示用来找CSB的方法。由于CSB代表第二个比特,在图11中可看到如果储存单元的电量是落在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与1302。实体区块1301是异常模式前从多数个实体区块中选择出来,作为操作实体区块。所谓操作实体区块的意思就是,当控制器要对闪存等非挥发性存储器进行写入的时候,并非针对每一笔写入数据都存取不同的实体区块。甚至,即使一连串的写入操作都是属于不同的逻辑区块,控制器仍然将这些数据写到同一个操作实体区块。
举例来说,在实体区块1301中,当P001~P005对应到第一个逻辑区块的五个逻辑数据页(未图示),P006~P007可以对应到第二个逻辑区块的两个逻辑数据页(未图示)。这样的对应关系可以通过控制器维护一个对照表来达成。
在从异常模式恢复后,控制器对于数据跟相关表格进行检查,并且试图修复能够修复的数据。在这些修复的操作中,其中一项就是选择一个新的操作实体区块1302,而不再继续使用先前的操作实体区块1301。
此外,由于上述在多层闪存存储器中,可能有多个存储单元彼此之间属于同一个硬件元件,或是彼此之间有物理电性关联的硬件元件。为了避免异常模式(例如无预期的断电)造成对硬件元件的不稳定操作,进而扩散这些错误到之后的操作,控制器将之前的操作实体区块1301最后写入的一个或多个实体页P010、P011、P012的内容复制到新的操作实体区块1302。此外,由于这些实体页已经搬移到新的实体区块,控制器也会调整对应表,以完成这些实体页与逻辑页之间正确的对照关系。
接着,请参考图14,其说明控制器在修复操作的时候为了找出到底操作实体区块哪些数据页是有效数据页的一种实施做法。首先,控制器取消重组编码、错误更正编码(步骤1401),接着控制器一个数据页接着一个数据页分别读取一定的数据,例如1K比特的数据(步骤1403)。接着,控制器统计这些读取的数据中有多少个数值为“1”的比特(步骤1405)。如果数值为“1”的比特个数小于或等于五个(步骤1407),控制器判断这个数据页是空白页(步骤1409)。否则,控制器判断这个数据页存有有效数据(步骤1411)。在判断完有效数据页是哪些后,控制器更新对应的表格(步骤1413),这样之后如果要写入新的数据,控制器就知道这个操作实体区块是否有足够的空间,以及如果有足够的空间,应该从哪个数据页开始进行写入的操作。
综上所陈,本发明无论就目的、手段及功效,在在均显示其迥异于已知技术的特征,恳请贵审查员明察,早日赐准专利,俾嘉惠社会,实感德便。惟应注意的是,上述诸多实施例仅是为了便于说明而举例而已,本发明所主张的权利范围自应以权利要求书所述为准,而非仅限于上述实施例。
Claims (20)
1.一种非挥发性储存装置,包含:
一非挥发性存储器,划分成多个实体区块,每一实体区块划分成多个实体页;
一连接界面,供连接至一主机;以及
一控制器,其中
该控制器通过该连接界面接收来自该主机的一系列写入命令,这些写入命令的地址分别对应到相应的逻辑区块中的相应的逻辑页;
该控制器从该多个实体区块选择一个实体区块作为一操作实体区块,并将不同逻辑区块的不同逻辑页写入到该操作实体区块中;以及
当该控制器在一异常状态后进行一修复操作时,即使该操作实体区块还有空间可写入数据,选择另一个实体区块作为该操作实体区块,以进行后续的数据写入操作。
2.如权利要求1所述的非挥发性储存装置,其特征在于,在该异常状态后进行该修复操作时,该控制器将该异常状态前最后写入到该操作实体区块的至少一实体页复制到新选择的该操作实体区块。
3.如权利要求1所述的非挥发性储存装置,其特征在于,该异常状态后进行该修复操作时,该控制器找出该异常状态前对于该操作实体区块最后写入的有效实体页。
4.如权利要求3所述的非挥发性储存装置,其特征在于,该异常状态后进行该修复操作时,该控制器读取该操作实体区块的多个实体页,针对每个读物的实体页读取一预定数目的数据,并且通过判断该数据的数值统计值来判断哪些是被有效写入的实体页。
5.如权利要求4所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行重试,但在该异常状态后进行该修复操作时,关闭该重试机制读取该预定数目的数据来判断哪些是被有效写入的实体页。
6.如权利要求4所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,会启动错误更正机制来辨识及更正错误,但在该异常状态后进行该修复操作时,关闭该错误更正机制读取该预定数目的数据来判断哪些是被有效写入的实体页。
7.如权利要求4所述的非挥发性储存装置,其特征在于,该控制器在正常读取该操作实体区块时,会启动重组解码机制来还原数据,但在该异常状态后进行该修复操作时,关闭该重组解码机制以读取该预定数目的数据来判断哪些是被有效写入的实体页。
8.如权利要求1所述的非挥发储存装置,其特征在于,该控制通过一表格记录该操作实体区块的这些实体页对应到哪些逻辑区块的逻辑页,在该异常状态后进行该修复操作时,该控制器更新该表格。
9.如权利要求1所述的非挥发储存装置,其特征在于,该非挥发性存储器为一闪存存储器。
10.如权利要求1所述的非挥发储存装置,其特征在于,该非挥发性存储器为一闪存硬盘。
11.一种控制器,用于一非挥发性储存装置,该非挥发性储存装置包含一非挥发性存储器与一连接界面,该非挥发性储存器划分成多个实体区块,每一实体区块划分成多个实体页,该连接界面连接一主机,其中该控制器通过该连接界面接收来自该主机的一系列写入命令,这些写入命令的地址分别对应到相应的逻辑区块中的相应的逻辑页;该控制器从该多个实体区块选择一个实体区块作为一操作实体区块,不同逻辑区块的不同逻辑页写入到该操作实体区块中;以及当该控制器在一异常状态后进行一修复操作时,即使该操作实体区块还有空间可写入数据,选择另一个实体区块作为该操作实体区块,以进行后续的数据写入操作。
12.如权利要求11所述的控制器,其特征在于,在该异常状态后进行该修复操作时,该控制器将该异常状态前最后写入到该操作实体区块的至少一实体页复制到新选择的该操作实体区块。
13.如权利要求11所述的控制器,其特征在于,该异常状态后进行该修复操作时,该控制器找出该异常状态前对于该操作实体区块最后写入的有效实体页。
14.如权利要求11所述的控制器,其特征在于,该异常状态后进行该修复操作时,该控制器读取该操作实体区块的多个实体页,针对每个读物的实体页读取一预定数目的数据,并且通过判断该数据的数值统计值来判断哪些是被有效写入的实体页。
15.如权利要求14所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,如果无法读取数据,会启动不同电位来进行重试,但在该异常状态后进行该修复操作时,关闭该重试机制读取该预定数目的数据来判断哪些是被有效写入的实体页。
16.如权利要求14所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,会启动错误更正机制来辨识及更正错误,但在该异常状态后进行该修复操作时,关闭该错误更正机制读取该预定数目的数据来判断哪些是被有效写入的实体页。
17.如权利要求14所述的控制器,其特征在于,该控制器在正常读取该操作实体区块时,会启动重组解码机制来还原数据,但在该异常状态后进行该修复操作时,关闭该重组解码机制以读取该预定数目的数据来判断哪些是被有效写入的实体页。
18.如权利要求11所述的控制器,其特征在于,该控制通过一表格记录该操作实体区块的这些实体页对应到哪些逻辑区块的逻辑页,在该异常状态后进行该修复操作时,该控制器更新该表格。
19.如权利要求11所述的控制器,其特征在于,该非挥发性存储器为一闪存存储器。
20.如权利要求11所述的控制器,其特征在于,该非挥发性存储器为一闪存硬盘。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135326A TWI539282B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器 |
TW103135326 | 2014-10-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105988936A true CN105988936A (zh) | 2016-10-05 |
CN105988936B CN105988936B (zh) | 2019-04-12 |
Family
ID=55655468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510065062.5A Active CN105988936B (zh) | 2014-10-13 | 2015-02-09 | 非挥发性储存装置与控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9430159B2 (zh) |
CN (1) | CN105988936B (zh) |
TW (1) | TWI539282B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106847342A (zh) * | 2016-03-28 | 2017-06-13 | 威盛电子股份有限公司 | 非易失性存储器装置及其空页检测方法 |
CN110308872A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市金泰克半导体有限公司 | 一种固态硬盘数据处理方法、装置、固态硬盘及存储介质 |
CN111949196A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种数据重建方法、装置及存储设备 |
CN112925670A (zh) * | 2021-03-17 | 2021-06-08 | 江西昌河汽车有限责任公司 | 一种基于ecc机制的flash异常自修复处理系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200057866A (ko) * | 2018-11-16 | 2020-05-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567256A (zh) * | 2003-06-20 | 2005-01-19 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
US20130145076A1 (en) * | 2011-12-05 | 2013-06-06 | Industrial Technology Research Institute | System and method for memory storage |
CN103164345A (zh) * | 2011-12-08 | 2013-06-19 | 建兴电子科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003233993A (ja) | 2002-02-08 | 2003-08-22 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書き換え方法 |
KR100684887B1 (ko) | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及系统 |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及系统 |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
TWI393146B (zh) | 2008-10-15 | 2013-04-11 | Genesys Logic Inc | 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法 |
JP4439578B1 (ja) * | 2008-12-24 | 2010-03-24 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法 |
TWI417884B (zh) | 2009-04-23 | 2013-12-01 | Phison Electronics Corp | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
TWI435328B (zh) | 2009-07-20 | 2014-04-21 | Silicon Motion Inc | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
US8392648B2 (en) * | 2009-07-22 | 2013-03-05 | Hitachi, Ltd. | Storage system having a plurality of flash packages |
US8255620B2 (en) * | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN101727402B (zh) * | 2009-10-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
US8572311B1 (en) * | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
WO2012168962A1 (en) * | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
WO2013038442A1 (en) * | 2011-09-13 | 2013-03-21 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
US9110824B2 (en) | 2012-06-08 | 2015-08-18 | Silicon Motion Inc. | Method, controller, and memory device for correcting data bit(s) of at least one cell of flash memory |
TWI514405B (zh) | 2012-06-08 | 2015-12-21 | Silicon Motion Inc | 修正快閃記憶體之至少一儲存單元之資料位元的方法、控制器及記憶體裝置 |
US9405621B2 (en) * | 2012-12-28 | 2016-08-02 | Super Talent Technology, Corp. | Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance |
US20150339058A1 (en) * | 2013-03-26 | 2015-11-26 | Hitachi, Ltd. | Storage system and control method |
US10013322B2 (en) * | 2013-06-03 | 2018-07-03 | Hitachi, Ltd. | Storage apparatus and storage apparatus control method |
WO2015052833A1 (ja) * | 2013-10-11 | 2015-04-16 | 株式会社日立製作所 | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 |
TWI537816B (zh) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器進行的控制方法 |
-
2014
- 2014-10-13 TW TW103135326A patent/TWI539282B/zh active
-
2015
- 2015-02-05 US US14/614,442 patent/US9430159B2/en active Active
- 2015-02-09 CN CN201510065062.5A patent/CN105988936B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567256A (zh) * | 2003-06-20 | 2005-01-19 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
US20130145076A1 (en) * | 2011-12-05 | 2013-06-06 | Industrial Technology Research Institute | System and method for memory storage |
CN103164345A (zh) * | 2011-12-08 | 2013-06-19 | 建兴电子科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106847342A (zh) * | 2016-03-28 | 2017-06-13 | 威盛电子股份有限公司 | 非易失性存储器装置及其空页检测方法 |
CN110308872A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市金泰克半导体有限公司 | 一种固态硬盘数据处理方法、装置、固态硬盘及存储介质 |
CN111949196A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种数据重建方法、装置及存储设备 |
CN112925670A (zh) * | 2021-03-17 | 2021-06-08 | 江西昌河汽车有限责任公司 | 一种基于ecc机制的flash异常自修复处理系统 |
CN112925670B (zh) * | 2021-03-17 | 2023-07-21 | 江西昌河汽车有限责任公司 | 一种基于ecc机制的flash异常自修复处理系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201614504A (en) | 2016-04-16 |
TWI539282B (zh) | 2016-06-21 |
CN105988936B (zh) | 2019-04-12 |
US9430159B2 (en) | 2016-08-30 |
US20160103622A1 (en) | 2016-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105988718B (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI486767B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
KR100704628B1 (ko) | 다수의 스트링을 사용하여 상태 정보를 저장하는 방법 및비휘발성 저장 장치 | |
CN106155582B (zh) | 非挥发性储存装置与控制器 | |
US9213629B2 (en) | Block management method, memory controller and memory stoarge apparatus | |
CN105005450B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN105988936B (zh) | 非挥发性储存装置与控制器 | |
US20190332331A1 (en) | Memory management method and storage controller | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
TWI606339B (zh) | 資料儲存裝置及其資料維護方法 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN104850514A (zh) | 存取闪存的方法及相关的控制器与记忆装置 | |
CN114968096A (zh) | 一种存储器的控制方法、存储器与存储系统 | |
CN110442299B (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN115185468A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN104008020A (zh) | 用于追踪死扇区以自动搜索和誊写的鲁棒扇区id方案 | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN109273037A (zh) | 数据读取方法以及存储控制器 | |
Li et al. | Midas Touch: Invalid-Data Assisted Reliability and Performance Boost for 3d High-Density Flash | |
CN106326131B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN102623052B (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 |