CN110175088B - 存取快闪存储器中储存单元的方法以及使用该方法的装置 - Google Patents
存取快闪存储器中储存单元的方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN110175088B CN110175088B CN201910530853.9A CN201910530853A CN110175088B CN 110175088 B CN110175088 B CN 110175088B CN 201910530853 A CN201910530853 A CN 201910530853A CN 110175088 B CN110175088 B CN 110175088B
- Authority
- CN
- China
- Prior art keywords
- data
- error correction
- storage unit
- storage units
- word line
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G11C2029/0411—Online error correction
Abstract
本发明的提出一种数据写入的方法,由一控制器所执行,包含:接收来自外部的多个数据;将上述数据储存至一动态随机存取存储器;以及当储存在上述动态随机存取存储器的上述数据的长度满足一预定长度时,以一交错方式将储存在上述动态随机存取存储器的上述数据平行地写入至多个通道中的多个储存单元。
Description
本申请是2014年7月8日申请的,申请号为201410322436.2,发明名称为“存取快闪存储器中储存单元的方法以及使用该方法的装置”的中国发明专利申请的分案申请
技术领域
本发明关连于一种快闪存储器装置,特别是一种存取快闪存储器中储存单元的方法以及使用该方法的装置。
背景技术
快闪存储器(flash memory)中的记忆单元(memory cells)可能于多次的存取后失效。此外,也可能于生产过程中,会因为粉尘或是光罩问题,使得储存单元中的一整列(column)的数据都无法正确存取。因此,本发明提出一种存取快闪记忆单元的方法以及使用该方法的装置,用以保护快闪存储器中储存的数据。
发明内容
本发明提出一种数据写入的方法,由一控制器所执行,包含:接收来自外部的多个数据;将上述数据储存至一动态随机存取存储器;以及当储存在上述动态随机存取存储器的上述数据的长度满足一预定长度时,以一交错方式将储存在上述动态随机存取存储器的上述数据平行地写入至多个通道中的多个储存单元。
在本发明的一实施例中,该数据写入的方法更包括:依据上述数据产生多个水平错误修正码,上述数据与上述水平错误修正码为一对一对应。
在本发明的一实施例中,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元更包括以上述交错方式将上述数据以及上述水平错误修正码平行地写入至上述通道中的上述储存单元。
在本发明的一实施例中,该数据写入的方法更包括:依据上述数据产生多个垂直错误修正码,上述数据与上述垂直错误修正码为多对一对应。
在本发明的一实施例中,该数据写入的方法更包括:在上述数据写入至上述储存单元之后,以一交错方式将上述垂直错误修正码平行地写入至上述通道中的上述储存单元。
在本发明的一实施例中,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元的一字线。
在本发明的一实施例中,上述字线可储存一个页面的值。
在本发明的另一实施例中,上述字线可储存多个页面的值。
在本发明的一实施例中,上述通道中的其中之一上述储存单元由一芯片致能控制信号所控制。
在本发明还提出了一种数据储存装置,包含:多个储存单元和一控制器。多个储存单元分别置于多个通道中。控制器用以接收来自外部的多个数据,并将上述数据储存至一动态随机存取存储器,当储存在上述动态随机存取存储器的上述数据的长度满足一预定长度时,以一交错方式将储存在上述动态随机存取存储器的上述数据平行地写入至上述通道中的上述储存单元。
在本发明的一实施例中,该数据储存装置更包括:依据上述数据产生多个水平错误修正码,上述数据与上述水平错误修正码为一对一对应。
在本发明的一实施例中,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元更包括以上述交错方式将上述数据以及上述水平错误修正码平行地写入至上述通道中的上述储存单元。
在本发明的一实施例中,该数据储存装置更包括:依据上述数据产生多个垂直错误修正码,上述数据与上述垂直错误修正码为多对一对应。
在本发明的一实施例中,该数据储存装置更包括:在上述数据写入至上述储存单元之后,以一交错方式将上述垂直错误修正码平行地写入至上述通道中的上述储存单元。
在本发明的一实施例中,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元的一字线。
在本发明的一实施例中,上述字线可储存一个页面的值。
在本发明的另一实施例中,上述字线可储存多个页面的值。
在本发明的一实施例中,上述通道中的其中之一上述储存单元由一芯片致能控制信号所控制。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是依据本发明实施例的快闪存储器中的储存单元示意图。
图2是依据本发明实施例的快闪存储器的系统架构示意图。
图3是依据本发明实施例的快闪存储器的存取接口示意图。
图4是依据本发明实施例的逻辑数据储存示意图。
图5A是依据本发明实施例应用于每一区段的数据储存示意图。
图5B是依据本发明实施例的二维错误修正码示意图。
图6是依据本发明实施例的用以执行写入作业的系统方块图。
图7A及7B是依据本发明实施例的执行于处理单元中的数据写入方法流程图。
图8是依据本发明实施例的执行于储存单元存取接口中的数据写入方法流程图。
图9是依据本发明实施例的用以执行读取作业的系统方块图。
图10是依据本发明实施例的执行于区段解码单元中的数据读取方法流程图。
图11是依据本发明实施例的执行于处理单元中的数据读取方法流程图。
图12是依据本发明实施例的用以执行写入作业的系统方块图。
图13是依据本发明实施例的一个储存单元中的三层式单元区块的示意图。
图14是依据本发明实施例的执行于处理单元中的写入方法流程图。
图15是依据本发明实施例的执行于处理单元中的写入方法流程图。
图16A是依据本发明实施例的众多单层式单元的临界电压分布示意图。
图16B是依据本发明实施例的众多多层式单元的临界电压分布示意图。
图16C是依据本发明实施例的众多三层式单元的临界电压分布示意图。
图17A至17C是显示依据本发明实施例的经三次写入操作后的一个字线上的众多单层式单元的临界电压分布示意图。
图18A是依据本发明实施例的使用RS(48,45)垂直错误修正码的独立磁盘冗余阵列群组的数据摆放示意图。
图18B是依据本发明实施例的使用RS(96,93)垂直错误修正码的独立磁盘冗余阵列群组的数据摆放示意图。
图19A至19B是依据本发明实施例的数据写入时序图。
图20A至20D是依据本发明实施例的执行于处理单元中的写入数据方法流程图。
图21是依据本发明实施例的字线写入顺序示意图。
【符号说明】
10 储存单元;
110 存储器单元阵列;
120 行解码单元;
130 列编码单元;
140 地址单元;
150 数据缓存器;
20 快闪存储器的系统架构;
200 控制器;
210 控制单元;
230 储存单元存取接口;
250 处理单元存取接口;
300 快闪储存装置;
10[0][0]~10[j][i] 储存单元;
310[0][0]~310[j][i] 电子信号;
230[0]~230[j] 储存单元存取接口;
410[0][0][0]~410[j][i][k] 区段数据;
510 讯息;
530 水平错误修正码;
510[0][0][0]~510[j][i][0] 讯息;
530[0][0][0]~530[j][i][0] 水平错误修正码;
610 处理单元;
620 动态随机存取存储器;
621、623 直接存储器访问控制器;
630 磁盘阵列编码单元;
640 多路复用器;
650 缓存器;
660 仲裁单元;
S711~S751 方法步骤;
S811~S831 方法步骤;
910 处理单元;
930 磁盘阵列解码单元;
950 缓存器;
960 区段解码单元;
S1010~S1070 方法步骤;
S1110~S1170 方法步骤;
1210 处理单元;
1220、1230 直接存储器访问控制器;
1240 动态随机存取存储器;
1250 缓存器;
1300 三层式单元区块;
PG0~PG191 页面;
WL0~WL63 字线:
S1410~S1470 方法步骤;
S1510~S1550 方法步骤;
LSB 最低比特;
CSB 中间比特;
MSB 最高比特;
10[0][0]~10[3][3] 储存单元;
CH0~CH3 通道;
CE0~CE3 连接至特定通道的储存单元;
S2011~S2087 方法步骤;
2100 字线写入顺序查找表。
具体实施方式
本发明实施例提出一种存取快闪存储器中储存单元的方法以及使用该方法的装置,用以编码即将储存至储存单元的数据,以及解码从储存单元中读取的数据。图1是依据本发明实施例的快闪存储器中的储存单元示意图。储存单元10包含由MxN个存储器单元(memory cells)组成的阵列(array)110,而每一个存储器单元储存至少一个比特(bit)的信息。快闪存储器可以是NOR型快闪存储器(NOR flash memory)、NAND型快闪存储器,或其他种类的快闪存储器。为了正确存取信息,行解码单元120用以选择存储器单元阵列110中指定的行,而列编码单元130用以选择指定行中一定数量的比特组的数据作为输出。地址单元140提供行信息给行解码器120,其中定义了选择存储器单元阵列110中的那些行。相似地,列解码器130则根据地址单元140提供的列信息,选择存储器单元阵列110的指定行中一定数量的列进行读取或写入操作。行可称为字线(wordline),列可称为位线(bitline)。数据缓存器(data buffer)150可处存从存储器单元阵列110读取出的数据,或欲写入存储器单元阵列110中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-level cells,MLCs)或三层式单元(triple-level cells,TLCs)。
一个单层式单元中可表示两个状态,其中之一为于浮栅(floating gate)中拥有零电荷(zero charge)以及抹除后尚未写入的状态(通常定义为”1”的状态),而另一则为于浮栅中拥有一些数量的负电荷(negative charge)的状态(通常定义为”0”的状态)。拥有负电荷的栅会让此单元中的晶体管的临界电压(threshold voltage)增加,亦即是当施加此电压至晶体管的控制栅(control gate)时可造成晶体管导通。一种可行的读取储存比特方式为检查此单元中的临界电压。如果此临界电压处于较高的状态,则比特值为”0”。如果此临界电压处于较低的状态,则比特值为”1”。图16A是依据本发明实施例的众多单层式单元的临界电压分布示意图。因为快闪存储器中的存储器单元间的特性及操作结果并不会完全一致(例如,因为杂质浓度的微小变异或硅结构上的缺陷),虽然使用相同的写入作业至所有的存储器单元,却不能让所有的存储器单元拥有完全一致的临界电压。因此,临界电压的分布如图16A所示。状态”1”的单层式单元通常拥有负临界电压,使得大部分的单元拥有接近于左峰的中心电压,而少部分的单元则拥有较高或较低于左峰中心电压的临界电压。相似地,状态”0”的单层式单元通常拥有正临界电压,使得大部分的单元拥有接近于右峰的中心电压,而少部分的单元拥有较高或较低于右峰中心电压的临界电压。
虽然多层式单元从字面上表示为拥有多于二个电压位准的状态,也就是,每个单元可表示多于一个比特的信息,但目前大多的多层式单元只表示二个比特的信息,从而提供如下所示的范例。单一个多层式单元使用四个不同状态中的一者来储存二个比特的信息,其中的一个比特称为最低比特(Least Significant Bit,LSB),另一个比特则称为最高比特(Most Significant Bit,MSB)。由于一个存储器单元的状态使用临界电压来表示,多层式单元的临界电压会有四个不同的有效区间。图16B是依据本发明实施例的众多多层式单元的临界电压分布示意图。预期的分布拥有四个峰,每一者相应于一个状态。相似地,单一个三层式单元使用八个不同状态中的一者来储存三个比特的信息,其中的一个比特称为最低比特,另一个比特称为中间比特(Center Significant Bit,CSB),而最后一个比特称为最高比特。三层式单元的临界电压会有八个不同的有效区间。图16C是依据本发明实施例的众多三层式单元的临界电压分布示意图。预期的分布拥有八个峰,每一者相应于一个状态。需注意的是,本发明也可应用在每个存储器单元支援超过三个比特的快闪存储器装置中。
图2是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器的系统架构20中包含控制器200,用以写入数据到储存单元10中的指定地址,以及从储存单元10中的指定地址读取数据。详细来说,控制单元210通过储存单元存取接口230写入数据到储存单元10中的指定地址,以及从储存单元10中的指定地址读取数据。系统架构20使用数个电子信号来协调控制器200与储存单元10间的数据与命令传递,包含数据线(data line)、时钟信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(addresslatch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(writeenable,WE)等控制信号。储存单元存取接口230可采用双倍数据率(double data rate,DDR)通讯协定与储存单元10沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他接口。控制单元210另可使用处理单元存取接口250通过指定通讯协定与其他电子装置进行沟通,例如,通用串行总线(universalserial bus,USB)、先进技术附着(advanced technology attachment,ATA)、串行先进技术附着(serial advanced technology attachment,SATA)、快速周边元件互联(peripheralcomponent interconnect express,PCI-E)或其他接口。
一个快闪储存装置(flash storage)可包含多个储存单元10,每一个储存单元实施于一个管芯(die)上,具有各自独立的接口与储存单元存取接口230沟通。于存取大量数据时,这些存取储存单元的操作(例如,读取或写入操作)可以被流水线化(pipelined),提升存取效率。图3是依据本发明实施例的快闪存储器的存取接口示意图。快闪储存装置300可包含j+1个通道(channel),每一个通道包含i+1个储存单元。换句话说,i+1个储存单元分享同一个通道。例如,当快闪储存装置300包含8个通道(j=7)且每一个通道包含8个储存单元(i=7)时,快闪储存装置300一共拥有64个储存单元10[0..j][0..i]。快闪存储器的控制单元可使用快闪储存装置300所提供的电子信号310[0..j][0..i]中的一者,将数据储存至指定的储存单元,以及/或从指定的储存单元读取数据。每个储存单元拥有独立的芯片致能(CE)控制信号。换句话说,当欲对指定储存单元存取接口(又可称为通道)所连接的指定储存单元进行数据存取时,需要致能相应的芯片致能控制信号。熟习此技艺人士可在快闪储存装置300中使用任意数目的通道,而每一通道可包含任意数目的储存单元,本发明并不因此而受限。
为了确保储存讯息(message)的正确性,可加上储存二维的错误修正码(two-dimensional error correction code,ECC)来保护。图4是依据本发明实施例的逻辑数据储存示意图。(j+1)x(i+1)个储存单元中可包含用以储存错误修正码的l个(例如,l=1、2或3个)储存单元,其中所储存的码又可称为垂直错误修正码(vertical ECC)。每一个垂直错误修正码根据其他(j+1)x(i+1)-l个储存单元中相应地址的值产生。垂直错误修正码可以是单同比特修正码(single parity correction,SPC)、RS码(Reed-Solomon code)或其他可提供修正错误功能的码。例如,当i=7,j=7且l=1时,储存单元10[7][7]可储存SPC(64,63)的错误修正码。当i=7,j=7且l=2时,储存单元10[7][6]及10[7][7]可储存RS(64,62)的错误修正码。当i=7,j=7且l=3时,储存单元10[7][5]、10[7][6]及10[7][7]可储存RS(64,61)的错误修正码。垂直错误修正码用来提供储存单元层次的保护,也就是,当其中的一个储存单元失效时,使用垂直错误修正码以及其他储存单元中所储存正确的值可回复储存于失效的储存单元中的所有的值。其他不储存垂直错误修正码的储存单元中,除了储存讯息外,更储存水平错误修正码(horizontal ECC)。每一个储存单元中的每条字线可储存k+1(例如k=31)个区段(sector)的数据。以上所述的k+1个区段又可统称为一个页面(page)。例如,针对指定一条字线,储存单元10[0][0]可储存区段410[0][0][0]至区段410[0][0][k]的数据,储存单元10[0][i]可储存区段410[0][i][0]至区段410[0][i][k]的数据,储存单元10[j][i]可储存区段410[j][i][0]至区段410[j][i][k]的数据。区段410[0][0][0]至区段410[0][0][k]、区段410[0][i][0]至区段410[0][i][k]或410[j][i][0]至区段410[j][i][k]又可称为一个芯片致能区段(CE sector)。图5A是依据本发明实施例应用于每一区段的数据储存示意图。区段410[0..j][0..i][0..k]中的任一者可包含讯息510与水平错误修正码530。讯息长度是固定的,例如1K字节(bytes)。水平错误修正码530根据讯息510中的值产生。水平错误修正码可以是单同比特修正码、RS码或其他可提供修正错误功能的码。水平错误修正码提供区段层次的保护,也就是,当讯息中有可容许数量个值发生错误时,使用水平错误修正码以及同一区段中所储存其他正确的讯息值可还原这些错误的值。图5B是依据本发明实施例的二维错误修正码示意图。其中,每一个区段中包含了讯息及水平错误修正码,例如,区段410[0][0][0]中包含了讯息510[0][0][0]以及用来修正讯息中的错误的水平错误修正码530[0][0][0]。假设l=1,也就是仅使用一个储存单元来储存垂直错误修正码。区块510[j][i][0]储存用以修正讯息510[0][0][0]至讯息510[j-1][i][0]中的错误比特的垂直修正码,而区块530[j][i][0]储存用以修正水平错误修正码530[0][0][0]至水平错误修正码530[j-1][i][0]中的错误比特的垂直错误修正码。当一个区块中的错误比特太多或者是储存单元发生硬件错误而造成水平错误修正码无法还原此区块中的讯息时,则可使用垂直错误修正码加上其他区块中正确的讯息来尝试还原此区块中的讯息。以上所述区块加上用来保护区块中的值的垂直错误修正码可称为一个独立磁盘冗余阵列群组(Redundant Array of Independent Disk,RAID group)。
图6是依据本发明实施例的用以执行写入作业的系统方块图。处理单元610可使用多种方式实施,例如以专用硬体电路或通用硬体(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。从其他电子装置所接收的欲写入至指定储存单元的讯息,会由处理单元存取接口250通过直接存储器访问(DMA,Direct Memory Access)控制器623储存至动态随机存取存储器620。储存单元10[0][0]至10[j][i]中的任一者可包含多个单层式单元。多路复用器640可预设为耦接动态随机存取存储器620以及缓存器650。当处理单元610检测到动态随机存取存储器(DRAM-Dynamic Random Access Memory)620已储存一定长度的讯息时,例如,32K比特组,指示直接存储器访问控制器621将动态随机存取存储器620中储存的讯息经由多路复用器640储存至缓存器650,并同时储存至磁盘阵列编码单元630中的缓存器(未显示)。磁盘阵列编码单元630可使用已知的错误修正码编码方法依据目前的储存结果以及新接收到的讯息来产生垂直错误修正码,例如SPC(64,63)、RS(64,62)、RS(64,61)的错误修正码。处理单元610可包含两个计数器(counter),一为讯息计数器用以数算已经输出的讯息次数,另一为错误修正码计数器用以数算已经输出的垂直错误修正码次数。当处理单元610中的讯息计数器数算到已输出的讯息次数到达一个阈值时,控制多路复用器640用以将磁盘阵列编码单元630耦接上缓存器650,并且指示磁盘阵列编码单元630将编码完成的垂直错误修正码以一或多个批次输出至缓存器650。当处理单元610中的错误修正码计数器数算到已输出的次数到达一个阈值时,控制多路复用器640用以将动态随机存取存储器620耦接上缓存器650,用以继续后续的讯息储存作业。例如,当使用RS(64,61)的错误修正码时,处理单元610会在讯息计数器数算已输出讯息的次数达到61次时,控制多路复用器640用以将磁盘阵列编码单元630耦接上缓存器650,并将讯息计数器重设为0;接着,处理单元610会在错误修正码计数器数算已输出错误修正码的次数达到3次时,控制多路复用器640用以将动态随机存取存储器620耦接上缓存器650,并将错误修正码计数器重设为0。于每次控制动态随机存取存储器620或磁盘阵列编码单元630的数据输出后,处理单元610控制仲裁单元660读取缓存器650中的区段或垂直错误修正码的值并通过适当的储存单元存取接口(例如,储存单元存取接口230[0]至230[j]中的一者)写入读取的値至相应的储存单元(例如,储存单元10[0][0]至10[j][i]中的一者)。仲裁单元660可拉起(activate)适当的储存单元存取接口中相应储存单元的芯片致能信号,并且通过储存单元存取接口中的数据线将读取的值及写入地址传给相应的储存单元。每一个储存单元存取接口(例如,储存单元存取接口230[0]至230[j])另包含水平错误修正码电路,用以分批次地读取缓存器650中的数据(可能为讯息或垂直错误修正码),并据以产生水平错误修正码。详细而言,当储存单元存取接口每次从缓存器650读取指定长度的讯息后,例如1K字节,依据读取的讯息510产生水平错误修正码530。储存单元存取接口接着将讯息510以及产生的水平错误修正码530写入至指定的储存单元中的指定地址。
图7A及7B是依据本发明实施例的执行于处理单元中的数据写入方法流程图。于一个独立磁盘冗余阵列群组的写入作业中,处理单元610首先将讯息计数器以及错误修正码计数器设为0(步骤S711),以及控制多路复用器640以耦接动态随机存取存储器620至缓存器650(步骤S713)。接着,反复执行一个包含步骤S721至S731的循环直到一个独立磁盘冗余阵列群组中的讯息都写入到指定的储存单元中,例如,储存单元10[0][0]至10[j][i-l]。详细而言,处理单元610于检测到动态随机存取存储器620已储存指定长度的新讯息后,例如,32K字节(步骤S721),指示直接存储器访问控制器621将动态随机存取存储器620中储存的讯息经由多路复用器640储存至缓存器650,并同时储存至磁盘阵列编码单元630中的缓存器(未显示)(步骤S723)。接着,处理单元610控制仲裁单元660读取缓存器650中的值并通过适当的储存单元存取接口(例如,储存单元存取接口230[0]至230[j]中的一者)写入读取的値至相应的储存单元(例如,储存单元10[0][0]至10[j][i]中的一者)(步骤S725)。处理单元610将讯息计数器加一后(步骤S727),判断讯息计数器的值是否超过阈值,例如,(j+1)x(i+1)-l-1(步骤S731)。若是,则继续执行步骤S733至S751,用以写入独立磁盘冗余阵列群组中的垂直错误修正码;否则,回到步骤S721,用以写入独立磁盘冗余阵列群组中未完成的讯息。
为写入独立磁盘冗余阵列群组中的垂直错误修正码,处理单元610控制多路复用器640以耦接磁盘阵列编码单元630至缓存器650(步骤S733)。接着,反复执行一个包含步骤S741至S751的循环直到独立磁盘冗余阵列群组中的垂直错误修正码都写入到指定的储存单元中,例如,储存单元10[j][i-l+1]至10[j][i]。详而言之,处理单元610指示磁盘阵列编码单元630将指定长度(例如,32K比特组)的垂直错误修正码经由多路复用器640输出至缓存器650(步骤S741)。接着,处理单元610控制仲裁单元660读取缓存器650中的值并通过适当的储存单元存取接口(例如,储存单元存取接口230[j])写入读取的値至相应的储存单元中的指定地址(例如,储存单元10[j][i-l+1]至10[j][i]中的一者)(步骤S743)。处理单元610将错误修正码计数器加一后(步骤S745),判断错误修正码计数器的值是否超过阈值,例如,l-1(步骤S751)。若是,则回到步骤S711继续下一个独立磁盘冗余阵列群组的写入作业;否则,回到步骤S741,用以写入独立磁盘冗余阵列群组中未完成的垂直错误修正码。
图8是依据本发明实施例的执行于储存单元存取接口中的数据写入方法流程图。此方法可应用于储存单元存取接口230[0]至230[j]中的一者。当储存单元存取接口由仲裁单元660接收到将特定长度的讯息(例如,32K比特组的讯息)写入储存单元的指示后(步骤S811),反复执行一个包含步骤S821至S831的数据写入循环直到完成所有的写入作业。详细来说,针对每一回合的写入作业,储存单元存取接口从仲裁单元660取得指定长度的讯息(例如,1K比特组的讯息)(步骤S821),依据取得的讯息产生水平错误修正码(步骤S823),以及将讯息及产生的水平错误修正码写入指定储存单元中的指定字线的下一个区段的地址(步骤S825)。于此须注意的是,于步骤S825中,若为第一回合的写入作业,则将读取的讯息及产生的水平错误修正码写入指定字线的第一个区段的地址。接着,储存单元存取接口判断是否完成所有的写入作业(步骤S831)。若是,则结束整个流程;否则,回到步骤S821用以进行下一回合的写入作业。图19A是依据本发明实施例的数据写入时序图。储存单元存取接口230[0]至230[3]分别以通道CH0至CH3表示,而连接至每个储存单元存取接口的储存单元分别以CE0至CE3表示。图19A是写入一个页面PG0的数据(包含讯息及水平错误修正码,或者是垂直错误修正码)至所有储存单元10[0][0]至10[3][3]中的第一个字线WL0的例子。仲裁单元660通过通道CH0至CH3依序将页面PG0的数据传送到每个通道所连接的第一个储存单元CE0中的缓存器(未显示),接着,发送写入命令给所有连接的储存单元CE0,用以开始实际的写入作业。当储存单元CE0中的任一者接收到写入命令后,随即进入忙碌状态(busystate)来将缓存器中的页面PG0的数据写入到字线WL0中的单层式单元。当所有储存单元CE0开始实际的数据写入作业时,通道CH0至CH3处于可用状态,使得仲裁单元660可利用通道CH0至CH3依序将页面PG0的数据传送到每个通道所连接的第二个储存单元CE1中的缓存器(未显示)。熟习此技艺人士可观察到由于使用以上的独立磁盘冗余阵列群组的数据摆放方式,使得通道CH0至CH3具有较少的闲置时间,并得以有效利用来传送数据至储存单元。
图9是依据本发明实施例的用以执行读取作业的系统方块图。处理单元910可使用多种方式实施,例如以专用硬体电路或通用硬体(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序码或软体时,提供之后所描述的功能。储存单元10[0][0]至10[j][i]中的任一者可包含多个单层式单元。储存单元存取接口(230[0]至230[j]中的一者)读取相应的储存单元中一个区段的值后,会将读取的内容传到区段解码单元960。区段解码单元960首先利用其中的水平错误修正码检查其中的讯息是否有错误,若是,则尝试使用其中的水平错误修正码进行修正。当讯息内容正确或已经修正成功后,区段解码单元960舍弃水平错误修正码,将讯息内容储存至缓存器950中,使得其他电子装置可经由处理单元存取接口250读取解码后的讯息。当区段解码单元960使用其中的水平错误修正码还没办法修正讯息中的错误时,会发讯息通知处理单元910,讯息中包含发生错误但无法复原的区段地址等信息。接着,处理单元910会启动垂直修正程序。于垂直修正程序中,处理单元910先取得此区段地址所属的独立磁盘冗余阵列群组的信息,并找出可用来复原此错误区段地址中的讯息的所有其他区段地址(包含储存垂直错误修正码的区段地址)。例如,请参考图5B,假设区段410[0][0][0]中的讯息510[0][0][0]包含了即使使用水平错误修正码530[0][0][0]还无法修正的错误时,其他可用来尝试进行修正的区段为410[0][1][0]至410[j][i][0]。接着,处理单元910指示区段解码单元960垂直修正程序已启动,决定相应于无法修正的区段的其他区段,并且指示储存单元存取接口230[0]至230[j]读取指定的其他区段的值。当垂直修正程序启动时,区段解码单元960会通过储存单元存取接口230[0]至230[j]依序获得指定区段的值,并在解码完成后传送给磁盘阵列解码单元930。磁盘阵列解码单元930可使用所有所需区段的数据(包含原始讯息以及垂直错误修正码)来复原先前无法修正的错误,并将复原的结果传送至缓存器950,使得其他电子装置可经由处理单元存取接口250读取修正后的讯息。须注意的是,图9的处理单元910与图6的处理单元610可为同一个处理单元,本发明并不因此受限。
图10是依据本发明实施例的执行于区段解码单元中的数据读取方法流程图。区段解码单元960从储存单元存取接口230[0]至230[j]中的一者获得一个区段的值后(步骤S1010),使用其中的水平错误修正码检查其中的讯息是否正确(步骤S1020)。若正确(步骤S1020中"是”的路径),则将原始的讯息储存于缓存器950中(步骤S1070);否则(步骤S1020中"否”的路径),尝试使用其中的水平错误修正码修正讯息中存在的错误(步骤S1030)。接着,区段解码单元960决定是否修正成功(步骤S1040)。若成功(步骤S1040中"是”的路径),则将修正后的讯息储存于缓存器950中(步骤S1070);否则(步骤S1040中"否”的路径),发讯息给处理单元910用以通知此区段的错误无法使用水平错误修正码回复(步骤S1050)。
图11是依据本发明实施例的执行于处理单元中的数据读取方法流程图。处理单元910从区段解码单元接收指定区段无法使用水平错误修正码回复的通知后(步骤S1110),决定属于相同独立磁盘冗余阵列群组中的其他区段地址(步骤S1120)。例如,请参考图5B,当区段410[0][0][0]无法使用其中的水平错误修正码510[0][0][0]回复时,处理单元910决定属于相同独立磁盘冗余阵列群组中的其他区段为410[0][1][0]至410[j][i][0]。指示区段解码单元960及磁盘阵列解码单元930垂直修正程序已经启动(步骤S1130)。当区段解码单元960接收到指示后,会将由储存单元存取接口230[0]至230[j]中的一者所读取的指定的值解码完成,并且输出至磁盘阵列解码单元930,而非储存于缓存器950中。接着,处理单元910反复地执行一个区段内容读取的循环,用以指示储存单元存取接口230[0]至230[j]读取上述指定区段的内容。于循环中,处理单元910指示指定的储存单元存取接口读取下一个区段的内容(步骤S1140)。受指示的储存单元存取接口会将读取的结果传送至区段解码单元960。区段解码单元960解码出其中的讯息后,传送至磁盘阵列解码单元930,而磁盘阵列解码单元930则根据先前的解码结果以及新接收到的讯息产生一个新的解码结果。当处理单元910从受指示的储存单元存取接口或区段解码单元960接收到读取完成的通知后(步骤S1150),决定是否完成属于相同独立磁盘冗余阵列群组中所有其他区段的讯息读取作业(步骤S1160)。若是(步骤S1160中"是”的路径),则结束循环;否则(步骤S1160中"否”的路径),指示指定的储存单元存取接口继续读取下一个区段的内容(步骤S1140)。当循环结束时,处理单元910指示区段解码单元960及磁盘阵列解码单元930垂直修正程序已经结束(步骤S1170)。当区段解码单元960接收到垂直修正程序已经结束的指示后,会将之后完成解码的值储存于缓存器950中,而非输出至磁盘阵列解码单元930。另一方面,当磁盘阵列解码单元930接收到指示后,将目前的解码结果储存于缓存器950,作为指定区段的回复结果。
图12是依据本发明实施例的用以执行写入作业的系统方块图。处理单元1210可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。储存单元10[0][0]至10[j][i]中的任一者可包含多个记忆单元,而每一个记忆单元可以三层式单元实施。处理单元1210可控制储存单元存取接口230用以将储存于缓存器1250中的值写入至储存单元10[0][0]至10[j][i]中的一者。针对每一个储存单元,处理单元1210可逐字线(wordline)写入值,其中,一个字线上可储存多页(pages)的值。虽然以下以一个字线包含三页的值为例,但熟习此技艺人士也可修改为于一个字线上写入更多或更少页的值,本发明并不以此受限。一页可包含8K、16K、32K或64K字节(Bytes)的讯息。由于三层式单元会被邻近字线的写入操作影响而使得原先储存的电荷泄漏,或吸入更多的电荷,造成临界电压改变,所以,需要重复数次的写入操作以避免因以上问题造成单元中代表的储存值发生变化。以下说明的技术方案也可称为粗略至细致(F&F,foggy andfind)的写入方法。图17A至17C是显示依据本发明实施例的经三次写入操作后的一个字线上的众多单层式单元的临界电压分布示意图。经过第一次写入操作后,临界电压分布如图17A中的实线所示。从图17A中可观察出经过第一次粗略的写入作业后,临界电压分布无法产生具区别性的八个状态。而接着,当邻近的字线进行写入操作时,将影响此字线上的三层式单元原先储存的电荷,让临界电压分布变得更糟。影响后的临界电压分布如图17A中的虚线所示。为了让三层式单元中实际储存的电荷数目更接近理想值,进行第二次写入操作,而第二次写入操作后的临界电压分布如图17B中的实线所示。从图17B中可观察出经过第二次的写入作业后,临界电压分布可以产出稍具区别性的八个状态。但是,当受到邻近字线的后续写入操作影响时,此临界电压分布中的八个状态间又产生些许重叠。影响后的临界电压分布如图17B中的虚线所示。为了再次调整受到影响的结果,此字线会再进行第三次的写入作业,让临界电压分布中的八个状态间可拥有较宽的间隔。经过第三次写入作业后的临界电压分布请参考图17C。参考回图12,于此架构中,假设缓存器1250的容量可储存三个页面的值,因此需要动态随机存取存储器1240先暂存通过处理单元存取接口250从其他电子装置传来的九个页面的值。处理单元1210可指示直接存储器访问控制器(direct memoryaccess,DMA controller)1220将处理单元存取接口250上的值储存至动态随机存取存储器1240中的指定地址,而新接收的一个页面的值会覆写掉其中最早储存的页面的值。需注意的是,被覆写掉的页面的值已经经过三次写入后稳定地被储存于指定的储存单元中。动态随机存取存储器1240可整合至包含元件230[0..j]、250、1210、1230及1250的系统级芯片中(system on chip,SOC),或者是实施于独立的芯片。于实际的写入作业中,处理单元1210可指示直接存储器访问控制器1230从动态随机存取存储器1240读取三个页面的值并储存至缓存器1250中,接着通过储存单元存取接口230[0]至230[j]中的一者,将缓存器1250中的值写入指定储存单元中的指定字线上的三层式单元。图13是依据本发明实施例的一个储存单元中的三层式单元区块(TLC block)的示意图。三层式单元区块1300可包含总数为192个页面的值,页面标号为PG0至PG191。每个字线上可储存三个页面的值,字线标号为WL0至WL63。请参考图16C,每个字线上的所有三层式单元中指示的最低比特,集合起来成为一个页面的值。类似地,所有三层式单元中指示的中间比特以及最高比特,分别集合起来成为另二个页面的值。为了让储存的值能够稳定,处理单元1210除了要将动态随机存取存储器1240中最近接收到的三个页面的值写入三层式单元区块1300以外,还需要使用两个批次从动态随机存取存储器1240读取之前曾经写入过的六个页面的值至缓存器250,并使用指定的储存单元存取接口写入到指定储存单元中的指定字线上的三层式单元。例如,写入页面PG6至PG8至字线WL2上的三层式单元后,处理单元1210更指示直接存储器访问控制器1230从动态随机存取存储器1240读取页面PG0至PG2的值并储存至缓存器250中,并使用储存单元存取接口230将缓存器250中的值写入字线WL0上的记忆单元,接着,指示直接存储器访问控制器1230从动态随机存取存储器1240读取页面PG3至PG5的值并储存至缓存器250中,并使用储存单元存取接口230将缓存器250中的值写入字线WL1上的记忆单元。图21是依据本发明实施例的字线写入顺序示意图。此针对单一储存单元的写入顺序可记录于查找表(lookup table)2100中,用以让处理单元1210据以决定每次欲写入的字线或页面。查找表中包含三栏,分别记录每一个字线WL0至WL63于第一次、第二次及第三次写入间的顺序。由于三层式单元中的值需要重复写入数次后才会稳定,因此当处理单元1210通过处理单元存取接口250接收到其他电子装置发出的数据读取命令时,需要先判断储存单元中储存的值是否已经稳定。若是,则通过指定的储存单元存取接口230[0]至230[j]中的一者读取指定储存单元中的指定地址的值,并回复给请求的电子装置;若否,则从动态随机存取存储器1240中读取欲储存至指定储存单元中的指定地址的值,并回复给请求的电子装置。于此须注意的是,关于动态随机存取存储器1240所暂存的值将储存于何储存单元中的何地址的信息可储存于动态随机存取存储器1240或暂存器(register,未显示)中,并且处理单元1210可通过此信息来判断其他电子装置欲读取的值是否已稳定地储存于指定的储存单元中。详而言之,如果动态随机存取存储器1240或暂存器中储存的信息中指出动态随机存取存储器1240所暂存一部份的值将储存于读取地址,则代表欲读取的值尚未稳定地储存于储存单元中。
图14是依据本发明实施例的执行于处理单元中的写入方法流程图。当处理单元1210通过处理单元存取接口250接收到其他电子装置发出的写入命令及写入地址后(步骤S1410),指示直接存储器访问控制器1220将欲写入的值由处理单元存取接口250搬至动态随机存取存储器1240(步骤S1420)。判断是否已经接收完指定数目的页面的值(步骤S1430),例如,第n至n+2页的值,若是,进行实际的写入作业(步骤S1440至步骤S1470);否则,继续通过处理单元存取接口250接收尚未传送完的值(步骤S1410至步骤S1420)。于实际的写入作业中,处理单元1210指示直接存储器访问控制器1230将最近暂存于动态随机存取存储器1240中指定数目的页面的值储存至缓存器1250(步骤S1440),指示储存单元存取接口230将缓存器1250中的值写入指定储存单元中的指定字线上的三层式单元(步骤S1450)。接着,为了让先前已写入的值避免受到这次写入作业的影响,处理单元1210更使用二个的批次来指示直接存储器访问控制器1230将暂存于动态随机存取存储器1240中最近已写入至储存单元的六个页面的值再次储存至缓存器1250。详而言之,处理单元1210指示直接存储器访问控制器1230将暂存于动态随机存取存储器1240中的前第三至第一页的值储存至缓存器1250,例如,第n-3至n-1页的值,并指示指定的储存单元存取接口将缓存器1250中的值再次写入指定储存单元中的指定字线上的三层式单元(步骤S1460),以及,处理单元1210指示直接存储器访问控制器1230将暂存于动态随机存取存储器1240中的前第六至第四页的值储存至缓存器1250,例如,第n-3至n-1页的值,并指示指定的储存单元存取接口将缓存器1250中的值再次写入指定储存单元中的指定字线上的三层式单元(步骤S1470)。
图15是依据本发明实施例的执行于处理单元中的写入方法流程图。当处理单元1210通过处理单元存取接口250接收到其他电子装置发出的读取命令及读取地址后(步骤S1510),判断欲读取地址的值是否尚未稳定地储存于储存单元中(步骤S1520)。若是,指示直接存储器访问控制器1220从动态随机存取存储器1240读取请求的值并通过处理单元存取接口250回复给请求的电子装置(步骤S1530);否则,通过储存单元存取接口从储存单元读出指定地址的值(步骤S1540),并且将读出的值通过处理单元存取接口250回复给请求的电子装置(步骤S1550)。
为了保护三层式单元中所储存的数据(包含讯息及水平错误修正码),可更储存垂直错误修正码而形成二维错误修正码的保护。为了提升写入数据的效率,本发明实施例提出一种新的讯息以及错误修正码的摆放方式。图18A是依据本发明实施例的使用RS(48,45)垂直错误修正码的独立磁盘冗余阵列群组的数据摆放示意图。假设i=3,j=3且每条字线可储存三个页面的讯息及水平错误修正码,或三个页面的垂直错误修正码。总共16个储存单元10[0][0]至10[3][3]中的第一条字线WL0中所储存48个页面,可以形成一个独立磁盘冗余阵列群组。其中,于储存单元10[3][3]中的第一条字线WL0(阴影部分)中储存3个页面的垂直错误修正码。图18B是依据本发明实施例的使用RS(96,93)垂直错误修正码的独立磁盘冗余阵列群组的数据摆放示意图。总共16个储存单元10[0][0]至10[3][3]中的第一及第二条字线WL0及WL1中所储存96个页面,可以形成一个独立磁盘冗余阵列群组。其中,于储存单元10[3][3]中的第二条字线WL1(阴影部分)中储存三个页面的垂直错误修正码。由于一个独立磁盘冗余阵列群组中的各页面数据被分开摆放在不同的实体储存单元中,可避免当其中的一个储存单元发生不可回复的硬体错误时所造成数据不可回复的情形。此外,以上所述的摆放方式也可提升数据写入的效率。请参考图6。处理单元610可指示仲裁单元660以事先定义的顺序将数据写入每个储存单元中的第一条字线。图19B是依据本发明实施例的数据写入时序图。储存单元存取接口230[0]至230[3]分别以通道CH0至CH3表示,而连接至每个储存单元存取接口的储存单元分别以CE0至CE3表示。图19B是写入三个页面PG0、PG1及PG2的数据(包含讯息及水平错误修正码,或者是垂直错误修正码)至所有储存单元10[0][0]至10[3][3]中的第一个字线WL0的例子。仲裁单元660通过通道CH0至CH3依序将三个页面PG0、PG1及PG2的数据传送到每个通道所连接的第一个储存单元CE0中的缓存器(未显示),接着,发送写入命令给所有连接的储存单元CE0,用以开始实际的写入作业。当储存单元CE0中的任一者接收到写入命令后,随即进入忙碌状态(busy state)来将缓存器中三个页面PG0、PG1及PG2的数据写入到字线WL0中的三层式单元。当所有储存单元CE0开始实际的数据写入作业时,通道CH0至CH3处于可用状态,使得仲裁单元660可利用通道CH0至CH3依序将三个页面PG0、PG1及PG2的数据传送到每个通道所连接的第二个储存单元CE1中的缓存器(未显示)。熟习此技艺人士可观察到由于使用以上的独立磁盘冗余阵列群组的数据摆放方式,使得通道CH0至CH3具有较少的闲置时间,并得以有效利用来传送数据至储存单元。
图6所示架构中的储存单元10[0][0]至10[j][i]也可以修改为包含多个三层式单元。图20A至20D是依据本发明实施例的执行于处理单元中的写入数据方法流程图。于一个独立磁盘冗余阵列群组的写入作业中,处理单元610首先将讯息计数器以及错误修正码计数器设为0(步骤S2011),以及控制多路复用器640以耦接动态随机存取存储器620至缓存器650(步骤S2013)。接着,反复执行一个包含步骤S2021至S2087的循环直到一个独立磁盘冗余阵列群组中的讯息都写入到指定的储存单元中,例如,图18A所示的储存单元10[0][0]至10[3][3]的字线WL0,或者,图18B所示的储存单元10[0][0]至10[3][3]的字线WL0及WL1。
步骤S2021至步骤S2031为写入数据至所有储存单元中的特定字线的准备步骤。处理单元610使用变量q来决定此次写入所使用的储存单元存取接口为哪一个,以及使用变量p来决定写入至此储存单元存取接口中的第几个储存单元。为了让储存于三层式单元中的值能够稳定,可以参考如图14所描述的字线写入方法,让每个字线都能够反复且交错地写入三次。于每一个字线的第一个储存单元写入作业中,设变量p=0及q=0(步骤S2021)。针对储存单元10[q][p],处理单元610决定欲写入的字线或页面,例如,字线WL0或页面PG0至PG2(步骤S2023)。处理单元610可参考如图21所示的写入顺序以决定欲写入的字线或页面。接着,选择性地将讯息计数器维持为0或MAXixMAXjxn,以及将错误修正码计数器设为0,其中常数MAXj代表储存单元存取接口的总数,常数MAXi代表连结于每一个储存单元存取接口的储存单元总数,变量n则代表已经完成的字线总数(步骤S2025)。以图18B所示的使用RS(96,93)错误修正码的独立磁盘冗余阵列群组的数据摆放为例,当这次写入作业关联于字线WL0时,则将讯息计数器维持为0。当这次写入作业关联于字线WL1时,则将讯息计数器设为4x4x1=16。
步骤S2031至S2035则用来写入讯息及水平错误修正码至指定的储存单元10[q][p]。处理单元610指示直接存储器访问控制器621将动态随机存取存储器620中储存的三个页面讯息经由多路复用器640储存至缓存器650,并同时储存至磁盘阵列编码单元630中的缓存器(未显示)(步骤S2031)。接着,处理单元610控制仲裁单元660读取缓存器650中的值并指示储存单元存取接口230[q]写入至储存单元10[q][p](步骤S2033)。接着,处理单元610将讯息计数器加三(步骤S2035)。针对所有储存单元的写入时序可参考图19的说明。
步骤S2041、S2081至S2087用以决定下一次写入作业是针对哪一个储存单元存取接口及储存单元。当处理单元610判断讯息计数器的值小于阈值后(步骤S2041中”否”的路径),将变量q加一(步骤S2081)。以图18B所示的使用RS(96,93)错误修正码的独立磁盘冗余阵列群组的数据摆放为例,讯息计数器的值小过阈值(如93)则代表一个独立磁盘冗余阵列群组中的讯息尚未全部写完。接着,判断变量q是否大于或等于常数MAXj(步骤S2083),若否,则此流程继续进行至步骤S2031;若是,则将变量p加一并将变量q设为0(步骤S2085),并接着判断变量p是否大于或等于常数MAXi(步骤S2087)。当变量p大于或等于常数MAXi时(步骤S2087中”是”的路径),代表所有的储存单元中的指定字线已经写入完成,流程继续进行至步骤S2021,用以继续下一个字线的写入作业。否则(步骤S2087中”否”的路径),流程继续进行至步骤S2031。
由于垂直错误修正码也要被写入三次才会稳定,本发明实施例提出一种程序,用以暂存第一次产生的垂直错误修正码于动态随机存取存储器620中,并且于后续重新写入时直接从动态随机存取存储器620中取得已经产生的垂直错误修正码,而不需要重新计算。以图18B所示的使用RS(96,93)错误修正码的独立磁盘冗余阵列群组的数据摆放为例,另一种实施方式,当磁盘阵列编码单元630要产生相应于储存单元10[3][3]的字线WL1的垂直错误修正码时,可从动态随机存取存储器620重新载入欲储存于16个储存单元中的字线WL0及WL1中的值来产生垂直错误修正码,然而,这将耗费大量的时间。步骤S2051至S2079用以写入垂直错误修正码至指定的储存单元10[q][p]。当处理单元610判断讯息计数器的值大于或等于阈值后(步骤S2041中”是”的路径),将变量p加一(步骤S2051)。接着,判断此独立磁盘冗余阵列群组的垂直错误修正码是否已产生过(步骤S2053),是则让储存单元存取接口230[q]取得动态随机存取存储器620中暂存的先前计算结果,并写入至储存单元10[q][p](步骤S2061至S2068);否则,让储存单元存取接口230[q]取得磁盘阵列编码单元630的编码结果,并写入至储存单元10[q][p](步骤S2071至S2079)。
如步骤S2071至S2079所示的循环会反复执行直到所有由磁盘阵列编码单元630所产生的垂直错误修正码都写入至指定的储存单元中。详细而言,处理单元610控制多路复用器640用以耦接磁盘阵列编码单元630与缓存器650(步骤S2071),并指示磁盘阵列编码单元630将三页的垂直错误修正码经由多路复用器640输出至缓存器650,并且指示直接存储器访问控制器621将磁盘阵列编码单元630中的缓存器(未显示)的计算结果储存至动态随机存取存储器620中(步骤S2073)。接着,处理单元610控制仲裁单元660以读取缓存器650中的值并指示储存单元存取接口230[q]写入至储存单元10[q][p]中的指定字线(步骤S2075)。处理单元610将错误修正码计数器加三后(步骤S2076),判断错误修正码计数器的值是否大于或等于阈值,例如,常数l(步骤S2077)。若是,则继续进行步骤S2069;否则,将变量p加一后(步骤S2079),回到步骤S2073,用以写入独立磁盘冗余阵列群组中未完成的垂直错误修正码。
如步骤S2061至S2068所示的循环会反复执行直到所有于动态随机存取存储器620所暂存的垂直错误修正码都写入至指定的储存单元中。详细而言,处理单元610指示直接存储器访问控制器621将动态随机存取存储器620中暂存的三页垂直错误修正码经由多路复用器640储存至缓存器650(步骤S2061)。接着,处理单元610控制仲裁单元660以指示储存单元存取接口230[q]读取缓存器650中的值并写入至储存单元10[q][p]中的指定字线(步骤S2063)。处理单元610将错误修正码计数器加三后(步骤S2065),判断错误修正码计数器的值是否大于或等于阈值,例如,l(步骤S2067)。若是,则继续进行步骤S2069;否则,将变量p加一后(步骤S2068),回到步骤S2061,用以写入独立磁盘冗余阵列群组中未完成的垂直错误修正码。最后,处理器单元610判断是否完成所有的写入作业(步骤S2069),是则结束整个数据写入处理;否则控制多路复用器640用以耦接动态随机存取存储器620与缓存器650后(步骤S2080),回到步骤S2021,用以继续进行下一个独立磁盘冗余阵列群组的数据写入作业。步骤S2033、S2063与S2075的技术细节可参考图8的说明。
虽然图1至3、图6、图9及图12中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图7A至7B、图8、图10至11、图14至15以及图20A至20D的流程图采用指定的顺序来执行,但是在不违法发明精神的情况下,熟习此技艺人士可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟习此技艺人士亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟习此技艺人士显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (14)
1.一种数据写入的方法,由一控制器所执行,包含:
接收来自外部的多个数据;
将上述数据储存至一动态随机存取存储器;
当储存在上述动态随机存取存储器的上述数据的长度满足一预定长度时,以一交错方式将储存在上述动态随机存取存储器的上述数据平行地写入至多个通道中的多个储存单元;
依据上述数据产生多个水平错误修正码,其中,上述数据与上述水平错误修正码为一对一对应;以及
依据上述数据产生多个垂直错误修正码,其中,上述数据与上述垂直错误修正码为多对一对应。
2.如权利要求1所述的方法,其特征在于,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元更包括以上述交错方式将上述数据以及上述水平错误修正码平行地写入至上述通道中的上述储存单元。
3.如权利要求1所述的方法,更包括:
在上述数据写入至上述储存单元之后,以一交错方式将上述垂直错误修正码平行地写入至上述通道中的上述储存单元。
4.如权利要求1所述的方法,其特征在于,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元的一字线。
5.如权利要求4所述的方法,其特征在于,上述字线可储存一个页面的值。
6.如权利要求4所述的方法,其特征在于,上述字线可储存多个页面的值。
7.如权利要求1所述的方法,其特征在于,上述通道中的其中之一上述储存单元由一芯片致能控制信号所控制。
8.一种数据储存装置,包含:
多个储存单元,分别置于多个通道中;
一控制器,用以接收来自外部的多个数据,并将上述数据储存至一动态随机存取存储器,其中,当储存在上述动态随机存取存储器的上述数据的长度满足一预定长度时,以一交错方式将储存在上述动态随机存取存储器的上述数据平行地写入至上述通道中的上述储存单元;依据上述数据产生多个水平错误修正码,其中,上述数据与上述水平错误修正码为一对一对应;依据上述数据产生多个垂直错误修正码,其中,上述数据与上述垂直错误修正码为多对一对应。
9.如权利要求8所述的数据储存装置,其特征在于,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元更包括以上述交错方式将上述数据以及上述水平错误修正码平行地写入至上述通道中的上述储存单元。
10.如权利要求8所述的数据储存装置,更包括:
在上述数据写入至上述储存单元之后,以一交错方式将上述垂直错误修正码平行地写入至上述通道中的上述储存单元。
11.如权利要求8所述的数据储存装置,其特征在于,以上述交错方式将上述数据平行地写入至上述通道中的上述储存单元的一字线。
12.如权利要求11所述的数据储存装置,其特征在于,上述字线可储存一个页面的值。
13.如权利要求11所述的数据储存装置,其特征在于,上述字线可储存多个页面的值。
14.如权利要求8所述的数据储存装置,其特征在于,上述通道中的其中之一上述储存单元由一芯片致能控制信号所控制。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361869561P | 2013-08-23 | 2013-08-23 | |
US61/869,561 | 2013-08-23 | ||
TW102148611A TWI553656B (zh) | 2013-08-23 | 2013-12-27 | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 |
TW102148611 | 2013-12-27 | ||
CN201410322436.2A CN104425018B (zh) | 2013-08-23 | 2014-07-08 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410322436.2A Division CN104425018B (zh) | 2013-08-23 | 2014-07-08 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175088A CN110175088A (zh) | 2019-08-27 |
CN110175088B true CN110175088B (zh) | 2022-11-11 |
Family
ID=52481498
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410322436.2A Active CN104425018B (zh) | 2013-08-23 | 2014-07-08 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN201910530853.9A Active CN110175088B (zh) | 2013-08-23 | 2014-07-08 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410322436.2A Active CN104425018B (zh) | 2013-08-23 | 2014-07-08 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9977714B2 (zh) |
KR (1) | KR101641905B1 (zh) |
CN (2) | CN104425018B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
CN104425018B (zh) | 2013-08-23 | 2019-07-23 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
TWI588833B (zh) * | 2015-11-27 | 2017-06-21 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
CN107193751B (zh) * | 2017-05-19 | 2020-12-08 | 浪潮集团有限公司 | 一种Nandflash阵列的文件信息存储方法 |
US11314583B2 (en) | 2020-08-18 | 2022-04-26 | Micron Technology, Inc. | Memory data correction using multiple error control operations |
CN112634979B (zh) * | 2021-01-18 | 2021-07-23 | 深圳市安信达存储技术有限公司 | 一种批量测试usb电子盘的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223322B1 (en) * | 1998-01-28 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for enhancing data rate in processing ECC product-coded data arrays in DVD storage subsystems and the like |
GB2426085A (en) * | 2005-05-10 | 2006-11-15 | Hewlett Packard Development Co | Horizontal and vertical error correction coding |
CN101656104A (zh) * | 2008-08-22 | 2010-02-24 | 群联电子股份有限公司 | 快闪存储器储存系统及其数据写入方法 |
CN102346652A (zh) * | 2010-07-21 | 2012-02-08 | 慧荣科技股份有限公司 | 快闪存储装置与快闪存储装置管理方法 |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06282449A (ja) * | 1993-03-29 | 1994-10-07 | Nec Corp | メモリコントローラ |
JP3264465B2 (ja) | 1993-06-30 | 2002-03-11 | 株式会社日立製作所 | 記憶システム |
DE69630060T2 (de) | 1995-07-14 | 2004-07-08 | Sony Corp. | Verfahren zur Übertragung von digitalen Daten und Aufzeichnungsmedium |
JP3430193B2 (ja) | 1997-01-20 | 2003-07-28 | 株式会社日立製作所 | ディジタル信号再生装置及びディジタル信号再生方法 |
US5991911A (en) | 1997-11-14 | 1999-11-23 | Cirrus Logic, Inc. | Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device |
US8266367B2 (en) * | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
US6622222B2 (en) | 2001-04-26 | 2003-09-16 | International Business Machines Corporation | Sequencing data on a shared data bus via a memory buffer to prevent data overlap during multiple memory read operations |
JP4049297B2 (ja) | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
KR100856399B1 (ko) | 2002-01-23 | 2008-09-04 | 삼성전자주식회사 | 디코딩 방법 및 그 장치 |
US6871257B2 (en) * | 2002-02-22 | 2005-03-22 | Sandisk Corporation | Pipelined parallel programming operation in a non-volatile memory system |
DE10216999A1 (de) | 2002-04-16 | 2003-11-06 | Thomson Brandt Gmbh | ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf |
KR20030000017A (ko) | 2002-11-29 | 2003-01-03 | (주) 라모스테크놀러지 | 플래시 메모리 제어 장치 및 플래시 메모리 제어 방법 |
US7136986B2 (en) | 2002-11-29 | 2006-11-14 | Ramos Technology Co., Ltd. | Apparatus and method for controlling flash memories |
US7020757B2 (en) | 2003-03-27 | 2006-03-28 | Hewlett-Packard Development Company, L.P. | Providing an arrangement of memory devices to enable high-speed data access |
KR100606812B1 (ko) | 2004-03-08 | 2006-08-01 | 엘지전자 주식회사 | 비디오 디코딩 시스템 |
JP4410188B2 (ja) | 2004-11-12 | 2010-02-03 | 株式会社東芝 | 半導体記憶装置のデータ書き込み方法 |
US7212436B2 (en) | 2005-02-28 | 2007-05-01 | Micron Technology, Inc. | Multiple level programming in a non-volatile memory device |
US7451380B2 (en) * | 2005-03-03 | 2008-11-11 | International Business Machines Corporation | Method for implementing enhanced vertical ECC storage in a dynamic random access memory |
JP2007286813A (ja) | 2006-04-14 | 2007-11-01 | Sony Corp | メモリ制御装置、メモリ制御方法 |
US7617368B2 (en) | 2006-06-14 | 2009-11-10 | Nvidia Corporation | Memory interface with independent arbitration of precharge, activate, and read/write |
US8046629B1 (en) | 2006-07-24 | 2011-10-25 | Marvell World Trade Ltd. | File server for redundant array of independent disks (RAID) system |
KR20080017982A (ko) * | 2006-08-23 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 프로그램 방법 |
US7904783B2 (en) * | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US9495241B2 (en) * | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US7567471B2 (en) * | 2006-12-21 | 2009-07-28 | Intel Corporation | High speed fanned out system architecture and input/output circuits for non-volatile memory |
KR100866625B1 (ko) * | 2007-02-26 | 2008-11-03 | 삼성전자주식회사 | Mmc 또는 sd 프로토콜을 사용하는 다수의 메모리장치들을 인터페이스하는 방법 및 시스템 |
JP2008287404A (ja) | 2007-05-16 | 2008-11-27 | Hitachi Ltd | 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法 |
JP5045242B2 (ja) * | 2007-05-30 | 2012-10-10 | 富士通セミコンダクター株式会社 | 半導体メモリ、半導体メモリの動作方法およびシステム |
US8041990B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
TW200921384A (en) | 2007-11-15 | 2009-05-16 | Genesys Logic Inc | NOR interface flash memory device and access method thereof |
JP2009187139A (ja) | 2008-02-04 | 2009-08-20 | Hitachi Ltd | ストレージシステム |
US8275945B2 (en) | 2008-02-05 | 2012-09-25 | Spansion Llc | Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer |
JP2009217640A (ja) | 2008-03-11 | 2009-09-24 | Ricoh Co Ltd | データ転送制御装置 |
CN101286947B (zh) | 2008-05-30 | 2010-12-01 | 杭州华三通信技术有限公司 | 数据输出控制方法和装置 |
US20100082854A1 (en) | 2008-09-27 | 2010-04-01 | Lars Rossen | Real-Time/Batch Interface Arbiter |
CN101930799B (zh) | 2009-06-23 | 2013-05-29 | 北京兆易创新科技股份有限公司 | 具有检错/纠错电路的非挥发存储器及其读写数据的方法 |
US8839255B2 (en) | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
US8176360B2 (en) | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | Method and apparatus for addressing actual or predicted failures in a FLASH-based storage system |
US8918534B2 (en) | 2009-09-29 | 2014-12-23 | Cleversafe, Inc. | Writing data slices to ready and non-ready distributed storage units in a distributed storage network |
US8176220B2 (en) | 2009-10-01 | 2012-05-08 | Oracle America, Inc. | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors |
US9092340B2 (en) | 2009-12-18 | 2015-07-28 | Sandisk Technologies Inc. | Method and system for achieving die parallelism through block interleaving |
US8208337B2 (en) | 2009-12-21 | 2012-06-26 | Macronix International Co., Ltd. | Operation method and leakage controller for a memory and a memory applying the same |
US8355280B2 (en) | 2010-03-09 | 2013-01-15 | Samsung Electronics Co., Ltd. | Data storage system having multi-bit memory device and operating method thereof |
TWI436363B (zh) | 2010-05-11 | 2014-05-01 | Silicon Motion Inc | 資料儲存裝置以及快閃記憶體之資料寫入方法 |
US8503233B2 (en) | 2010-07-07 | 2013-08-06 | Skymedi Corporation | Method of twice programming a non-volatile flash memory with a sequence |
KR101732030B1 (ko) | 2010-12-22 | 2017-05-04 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US8644104B2 (en) * | 2011-01-14 | 2014-02-04 | Rambus Inc. | Memory system components that support error detection and correction |
KR20120110672A (ko) | 2011-03-30 | 2012-10-10 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 낸드 플래시 메모리의 관리 데이터 기록 장치 및 방법 |
CN102779548A (zh) | 2011-05-09 | 2012-11-14 | 深圳市晶凯电子技术有限公司 | 用闪存介质作为存储体进行分级管理的固态存储装置及其构建方法 |
TWI459389B (zh) | 2011-06-09 | 2014-11-01 | Winbond Electronics Corp | 半導體記憶體裝置、記憶體裝置讀取程式以及方法 |
KR101785007B1 (ko) | 2011-06-14 | 2017-11-07 | 삼성전자주식회사 | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온-칩 버퍼 프로그램 방법 |
KR20130010343A (ko) | 2011-07-18 | 2013-01-28 | 삼성전자주식회사 | 플래시 메모리 장치 |
US8856616B1 (en) * | 2011-07-29 | 2014-10-07 | Proton Digital Systems, Inc. | Two dimensional encoding for non-volatile memory blocks |
JP5524279B2 (ja) | 2011-09-13 | 2014-06-18 | 株式会社東芝 | 情報処理装置および情報処理方法 |
JP2013089082A (ja) | 2011-10-19 | 2013-05-13 | Toshiba Corp | メモリコントローラ、半導体記憶システムおよびメモリ制御方法 |
TWI430092B (zh) | 2011-10-27 | 2014-03-11 | Silicon Motion Inc | 三階儲存單元的快閃記憶體裝置及其控制方法 |
US9053809B2 (en) | 2011-11-09 | 2015-06-09 | Apple Inc. | Data protection from write failures in nonvolatile memory |
JP5768022B2 (ja) * | 2012-03-19 | 2015-08-26 | 株式会社東芝 | メモリコントローラ、記憶装置、誤り訂正装置および誤り訂正方法 |
JP5597224B2 (ja) * | 2012-05-11 | 2014-10-01 | 株式会社東芝 | 情報記憶装置およびメモリ異常処理方法 |
US8996960B1 (en) | 2012-06-26 | 2015-03-31 | Inphi Corporation | Vertical error correction code for DRAM memory |
KR102147359B1 (ko) | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
CN104641419A (zh) | 2012-07-13 | 2015-05-20 | 三星电子株式会社 | 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质 |
US8464095B1 (en) | 2012-11-15 | 2013-06-11 | DSSD, Inc. | Method and system for multi-dimensional raid reconstruction and defect avoidance |
US9141299B2 (en) | 2013-03-14 | 2015-09-22 | Intel Corporation | Method for reducing power consumption in solid-state storage device |
TWI588843B (zh) | 2013-08-23 | 2017-06-21 | 慧榮科技股份有限公司 | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 |
CN104425018B (zh) | 2013-08-23 | 2019-07-23 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
KR102065665B1 (ko) | 2013-10-17 | 2020-01-13 | 삼성전자 주식회사 | 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 |
US9093158B2 (en) | 2013-12-06 | 2015-07-28 | Sandisk Technologies Inc. | Write scheme for charge trapping memory |
-
2014
- 2014-07-08 CN CN201410322436.2A patent/CN104425018B/zh active Active
- 2014-07-08 CN CN201910530853.9A patent/CN110175088B/zh active Active
- 2014-07-15 US US14/331,575 patent/US9977714B2/en active Active
- 2014-08-22 KR KR1020140109942A patent/KR101641905B1/ko active IP Right Grant
-
2018
- 2018-04-09 US US15/948,586 patent/US10552262B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223322B1 (en) * | 1998-01-28 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for enhancing data rate in processing ECC product-coded data arrays in DVD storage subsystems and the like |
GB2426085A (en) * | 2005-05-10 | 2006-11-15 | Hewlett Packard Development Co | Horizontal and vertical error correction coding |
CN101656104A (zh) * | 2008-08-22 | 2010-02-24 | 群联电子股份有限公司 | 快闪存储器储存系统及其数据写入方法 |
CN102346652A (zh) * | 2010-07-21 | 2012-02-08 | 慧荣科技股份有限公司 | 快闪存储装置与快闪存储装置管理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20150022724A (ko) | 2015-03-04 |
CN104425018A (zh) | 2015-03-18 |
US20150058662A1 (en) | 2015-02-26 |
CN104425018B (zh) | 2019-07-23 |
KR101641905B1 (ko) | 2016-07-22 |
CN110175088A (zh) | 2019-08-27 |
US9977714B2 (en) | 2018-05-22 |
US20180239670A1 (en) | 2018-08-23 |
US10552262B2 (en) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108447516B (zh) | 存取快闪存储器中存储单元的方法以及使用该方法的装置 | |
CN107632904B (zh) | 存取快闪存储器中储存单元的方法以及使用该方法的装置 | |
KR101606389B1 (ko) | 플래시 메모리의 저장 유닛에 액세스하기 위한 방법 및 그 방법을 사용하는 장치 | |
TWI515749B (zh) | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 | |
KR101606192B1 (ko) | 플래시 메모리의 저장 유닛에 액세스하기 위한 방법 및 그 방법을 사용하는 장치 | |
CN110175088B (zh) | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |