CN101868830B - 容错非易失性集成电路存储器 - Google Patents
容错非易失性集成电路存储器 Download PDFInfo
- Publication number
- CN101868830B CN101868830B CN200880117047.9A CN200880117047A CN101868830B CN 101868830 B CN101868830 B CN 101868830B CN 200880117047 A CN200880117047 A CN 200880117047A CN 101868830 B CN101868830 B CN 101868830B
- Authority
- CN
- China
- Prior art keywords
- data
- integrated circuit
- sector
- circuit memory
- code
- 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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明揭示设备及方法,例如借助卷积编码将数据存储在多个非易失性集成电路存储器装置(306)(例如NAND快闪)中的设备及方法。卷积码(108/1 10)的相对高的码率消耗相对少的额外存储器空间。在一个实施例中,所述卷积码(108/1 10)散布在多个存储器装置(106)的部分上,而不是集中在特定存储器装置的一页内。在一个实施例中,使用码率m/n,且跨越n个存储器装置(106)存储卷积码。
Description
技术领域
一般来说,本发明的实施例涉及固态存储器。特定来说,本发明的一个或一个以上实施例涉及非易失性集成电路存储器电路的控制器。
背景技术
快闪存储器是一种形式的可擦除且可再编程的非易失性集成电路存储器。在快闪存储器中,存储器单元按“块”布置以便擦除。在已擦除一块之后,其便准备在需要时进行编程。NOR快闪存储器是一种类型的快闪存储器,其提供对个别字节的存取以供数据检索,但具有相对低的密度。NAND快闪存储器是一种类型的快闪存储器,其提供相对高的密度。所述高密度是部分地通过形成串联连接的单元列来实现。另外,借助NAND快闪存储器,以相对大的字节群组编程(“写入”)并存取(读取或写入)数据,例如数据页。
数据“页”通常是指通常单次写入到NAND快闪存储器阵列及/或从NAND快闪存储器阵列读取的数据量。在一个或一个以上实施例中,此页可对应于所述NAND快闪存储器阵列中的行或行的一部分。举例来说,页可包含2,112个字节,其中2,048个是正常数据字节,且64个是备用字节。备用字节通常用于错误校正码(ECC)数据、耗损均衡信息或其它额外开销数据。使用错误校正增加所存储数据的稳健性。通常,一种形式的错误校正码(ECC)(称为块码)是用以产生错误校正码数据,例如循环冗余校验(CRC)校验和、汉明(Hamming)码、里德所罗门(Reed-Solomon)错误校正等等。这些错误校正码可在读取时用以检测在所读取的数据字节中是否存在错误,且通常可在错误不超过错误校正码的能力的情况下校正所述数据字节中的错误。
快闪存储器具有许多用途。实例包含快闪存储器硬盘驱动(取代硬盘驱动)、USB快闪驱动或拇指驱动、移动电话、数字相机、数字媒体播放器、游戏程序、存储器卡、导航装置、个人数字助理、计算机等等。在限度内,错误校正码可校正数据字节中的数据中的许多错误。然而,超出这些限度,通常无法校正具有错误的数据。常规技术的一个缺点是随着时间的推移,错误变得不可校正,常常来不及采取措施保存数据。
许多将快闪存储器用于数据存储的装置还使用操作系统。所述操作系统充当硬件与其它软件之间的抽象层。举例来说,所述操作系统的文件系统及装置驱动器通常提供对存储在存储器装置上的数据的存取。在操作系统内可存在额外层。
图1图解说明包含主机100、存储器控制器116及非易失性存储器装置106的处理环境的一部分的实例。存储器装置106可以是NAND快闪存储器装置。主机100可包含呈CPU 102形式的微处理器及操作系统104。操作系统104进一步包含文件系统108及装置驱动器110。应理解,操作系统104可支持不止一个文件系统及不止一个装置驱动器以及与本论述无关的其它组件。
CPU 102执行指令,包含操作系统104的码。文件系统108的码在低级信息(例如,存储器装置106的逻辑地址)与高级信息(例如,文件名称及目录)之间提供抽象。装置驱动器110的码通常处置用于到及从存储器装置106的数据传送的低级信息。装置驱动器110可向CPU 102提供码以直接存取存储器装置106(称为处理器输入/输出)或可提供启动存储器控制器116以处置总线控制的码以使得数据被传送到存储器装置106或可从存储器装置106得到数据。使用存储器控制器116使CPU 102空出来处置其它任务。
借助处理器输入/输出(PIO),装置驱动器110可处置与写入操作及读取操作相关联的ECC信息。在许多操作系统中,存在许多装置驱动器以支持向各种不同类型的存储器装置的读取及从各种不同类型的存储器装置的写入。除借助文件系统108映射之外,许多NAND快闪存储器装置针对坏块管理及耗损管理在逻辑地址与物理地址之间利用虚拟映射(其可称为快闪转换层)。
通常与用于常规处理环境中的数据存储的常规硬盘一起使用的一种技术被称为经济磁盘冗余阵列(RAID)。在RAID系统(例如,RAID-3)中,冗余硬盘存储其它硬盘的异-OR(XOR)。举例来说,第三硬盘可含有对硬盘1及2的内容的XOR。因此,如果硬盘灾难性地发生故障,那么便可从剩余硬盘重建所述发生故障的硬盘的内容。然而,如果不止一个硬盘灾难性地发生故障,那么便无法重建数据。
然而,借助固态非易失性存储器装置(例如,NAND快闪),灾难性故障并不常见。而是,固态非易失性存储器装置更可能遭受个别位错误。
附图说明
提供本文中的这些图式及相关联说明以图解说明本发明的具体实施例,而并不打算具有限定性。
图1图解说明包含主机、控制器及非易失性集成电路存储器装置的处理环境。
图2图解说明从两个扇区产生的卷积码的存储,所述卷积码在价值上相当于散布在三个存储器装置的各页的一个扇区上的数据。
图3图解说明从两个扇区产生的卷积码的存储,所述卷积码在价值上相当于写入存储器装置的有效较大扇区中的数据。
图4示意性图解说明存储器控制器的实例。
图5示意性图解说明用于穿孔卷积码的数据流。
图6是大致图解说明用于向非易失性集成电路存储器装置写入数据的过程的实施例的流程图。
图7是大致图解说明用于从非易失性集成电路存储器装置读取数据的过程的实施例的流程图。
具体实施方式
设备及方法借助卷积编码将数据存储在多个非易失性集成电路存储器装置中。当将数据编码成卷积码时,所得卷积码在大小上大于原始数据。卷积码的相对高的码率消耗相对少的额外存储器。卷积码的码率m/n是信息符号的数目m与码符号的数目n的比率。在一个实施例中,所述卷积码散布在多个存储器装置的部分上,而不是集中在特定存储器装置的一页内。在一个实施例中,使用码率m/n,且跨越n个存储器装置地存储卷积码。在一个实施例中,卷积码通过在n个存储器装置之中交错而散布在这n个存储器装置上。
虽然本文中说明了特定实施例,但所属领域的技术人员将显而易见本发明的其它实施例,包含并不提供本文中所阐明的所有益处及特征的实施例。
在常规硬盘存储的背景中,扇区通常是指在使用常规硬盘及磁盘时可存取的最小数据量,例如512个字节(扇区的大小可变化,例如,光盘的扇区可以是2048个字节)。当向非易失性存储器写入这些扇区的数据时,所述扇区中的数据通常由错误校正码数据补充。举例来说,512个字节的正常数据因16个字节的ECC数据而可有效地增长到528个字节。ECC数据的字节数目可依据以存储容量及解码复杂性为代价的所要ECC强度而在极大范围中变化。另外,还可存储与当前论述无关的其它数据,且因此,经分配以存储扇区的存储器的实际量可变化。
关于文件存储,文件系统108(图1)将对应于一个或一个以上扇区的数据分组成通常称为群集的若干部分。从文件系统的角度来看,数据群集是可分配以供文件存储的最小数据大小。借助某些类型的存储器装置(例如,NAND快闪存储器),通常每次一“页”地向所述存储器装置写入数据或从所述存储器装置读取数据。页可对应于可存储在一个或一个以上扇区中的数据。部分页写入是可能的,即,将数据编程到少于一整个页(例如,在一些实施例中,可将向行的仅一部分的写入视为“部分”页写入)。为执行部分页写入,未正被写入的页的部分的位应保持与擦除状态相同的状态,此通常是逻辑“1”。
本发明的实施例将经卷积编码的数据散布在两个或更多个非易失性存储器装置上。图2图解说明从2个部分产生的经卷积编码的数据的存储,所述经卷积编码的数据在价值上相当于散布在3个存储器装置的各页的一个部分上的非经卷积编码的数据。在一个实施例中,部分是扇区。图2图解说明第一存储器装置(memory_0)的页202、第二存储器装置(memory_1)的页204及第三存储器装置(memory_2)的页206。在所图解说明的实施例中,这些页202、204、206中的每一者包含标记为A、B、C及D的四个部分。在所图解说明的实施例中,所述部分中的每一者保持528个字节(其中所述页中的每一者保持2112个字节)。
在所图解说明的实例中,将来自主机100(图1)的1024个字节的数据(对应于两个512-字节扇区)块编码为两个528-字节“扇区”。然后,使用2/3的码率m/n将1056个字节卷积编码以产生1584个字节的经卷积编码的数据。在一个实例中,码率m/n的分母n的值与所使用的存储器装置的数目相同。在一个实施例中,选择码率m/n以使得n等于m+1。此使得所述码率m/n相对高。对于卷积码来说,码率m/n对应于正被编码的数据位的数目m除以编码之后数据位的数目n。可通过穿孔来从经卷积编码的数据产生相对高的码率。举例来说,可通过根据穿孔模式穿孔(例如,移除)原始经卷积编码的数据的每四个位中的一者而从具有1/2的码率的经卷积编码的数据(所述“原始经卷积编码的数据”)产生具有2/3的码率的经卷积编码的数据。稍后将结合图5更详细地说明经穿孔的卷积码数据的实例。所属领域的技术人员将容易确定其它适当的码率及穿孔模式。
在一个实施例中,将对应于两个扇区的经卷积编码的数据存储在三个存储器装置106(图1)的页202、204、206中。如所图解说明,将528个字节的经卷积编码的数据存储在页202的部分A 212中,将另528个字节的经卷积编码的数据存储在页204的部分A 214中,且将剩余528个字节的经卷积编码的数据存储在页206的部分A 216中。将经编码的数据散布在多个存储器装置106上减小数据对任何一个存储器装置中的错误的易损性。
图3图解说明1584个字节的经卷积编码的数据在存储器装置的页的有效较大部分(例如,扇区)中的存储。举例来说,所述部分可在大小上增加码率m/n的倒数n/m。图3描绘来自三个存储器装置106(图1)中的每一者的数据页。替代使用(例如)528-字节部分(如在参考图2所论述的实施例的情况下),所图解说明的页302、304、306的部分中的至少一些大于528个字节。在所图解说明的实例中,2/3的码率m/n保持不变,且主机100(图1)再次写入文件系统视为两个512-字节扇区的数据,其在块编码之后各自对应于528个字节的数据,且在以2/3的码率m/n卷积编码之后各自对应于792个字节。
在图3中所图解说明的实施例中,部分大小相对于参考图2的实施例所论述的部分大小增加,且用以存储经编码数据的部分的数目保持与原始数据的“扇区”的数目相同(从文件系统的角度来看)。举例来说,替代使用三个如图2中所示的528-字节部分,将图3中的经卷积编码的数据存储在两个792-字节部分中。如所图解说明,将经卷积编码的数据存储在来自存储器装置中的一者的页302的两个部分310、312中。扇区310、312仍大于528-字节部分(例如,792个字节),以使得从主机100(图1)的角度来看的扇区数目与从所有存储器装置106(图1)的角度来看的部分数目保持相同。对应于所述扇区中的一些的数据可散布在两个页上,每一页来自存储器装置106中的不同者。举例来说,对应于文件系统视为扇区C的数据可散布在如由部分C0及C1所指示的MEMORY_0的页302及来自MEMORY_1的页304上。以图3中所图解说明的方式存储数据的一个益处是:用于存储器装置的数据总线可具有较小宽度,因为限制每次向一个存储器装置106(图1)写入。然而,如果使图2的存储器装置的配置建立有较宽的数据总线宽度以供平行数据传送,那么图2中所图解说明的配置通常便将更快。
图4示意性图解说明具有存储器控制器116(图1)的其它细节的实例。在所图解说明的实施例中,存储器控制器116经配置以与NAND快闪存储器装置106(图1)介接。存储器控制器116可由硬件或由固件/软件或由硬件与固件两者的组合实施。存储器控制器116可以是主机100的一部分(例如,由CPU 102(图1)执行的软件或固件的一部分),可以是单独芯片的一部分(例如,直接存储器存取(DMN)控制器),可以是具有多个存储器装置的模块的一部分等等。
存储器控制器116包含第一缓冲器402、第二缓冲器404、控制逻辑406、卷积码编码器408及卷积码解码器410。还可采用错误校正码模块412及空白扇区绕过模块414。为易于介接,存储器控制器116可给主机100提供存储器控制器116及存储器装置106正以常规方式存储数据的表观,以使得卷积编码及固态存储器装置对主机100透明。举例来说,在2/3的码率及使用3个存储器装置106的情况下,存储器控制器116可给主机100提供主机100正与常规硬盘驱动通信的表观。此可有助于与许多系统的兼容性。
这些系统可包含具有操作系统(例如,或DOS)的计算机系统、USB接口、存储器卡等等。可能想要存储器控制器116为主机100提供模仿硬盘驱动的接口。在一个实施例中,存储器控制器116经由存储器寻址来提供对存储器装置106的存取,而不是模仿硬盘驱动。
举例来说,当在操作操作系统的处理环境中保存文件时,用以存储数据的数据页数目可与用以在磁盘存储中保持所述数据的群集数目相关,而不是与数据本身的大小相关。因此,当由主机100所起始的写入仅覆盖存储器装置的页的一部分时,存储器控制器116可执行部分页写入。举例来说,在典型NAND快闪装置中,存储器位经“擦除”而为逻辑“1”状态。在编程期间,所选位经写入而为逻辑“0”状态(对于完整块来说,除非经由擦除操作,否则位无法被写入为逻辑“1”状态)。应将并不打算写入的页的部分(例如,存储器阵列的行的部分)保持为已擦除或具有先前编程,此保持所述部分的先前状态。
为完成此,在一个或一个以上实施例中,第一缓冲器402暂时存储用于传送到主机100或从主机100传送的数据。第一缓冲器402通常以硬件来实施。文件系统108(图1)可以群集存取用于读取或写入的数据。群集大小可变化且在一些操作系统中可由最终用户配置。存储器装置106以页提供对数据的存取。所述页大小可在不同类型的装置中变化,但通常不可由用户配置。
在所图解说明的实施例中,主机100每次读取或写入两个512-字节扇区的群集。因此,第一缓冲器402在大小上应至少为1024个字节。然而,群集大小可变化。扇区大小也可变化。举例来说,从文件系统的角度来看,包含块ECC数据及其它备用数据,一扇区的数据可对应于528个字节。ECC数据的量也可变化。另外,额外存储器装置106可依据配置而存在,还可存在用于保持计算的缓冲器,且可使用用于输入及输出的单独缓冲器。因此,第一缓冲器402的大小可变化且可大于具体任务所需要的大小。
对于与三个存储器装置106(其各自具有四个扇区的页大小)介接并与使用2/3的码率的实施例介接的存储器控制器116,存储器控制器116可给主机100提供主机100正与硬盘存储的八个扇区介接的表观。在此实例中,第一缓冲器402应保持至少八个扇区(例如,4224个字节)。所属领域的技术人员将容易确定其它实例。
第二缓冲器404临时存储用于传送到存储器装置106或从存储器装置106传送的数据。第二缓冲器404通常以硬件来实施。在所图解说明的实例中,存储器装置106中的每一者具有页,所述页具有各自为528个字节的四个部分。第二缓冲器404在大小上应至少为6336个字节以容纳去往或来自存储器装置106的数据。第二缓冲器404可根据单独缓冲器是否用于读取及写入、存储器装置106的页的大小、存储器装置106的数目等等而变化。
控制逻辑406提供对存储器控制器的一般控制,在主机100与存储器装置106之间为地址线提供接口,为主机100及/或存储器装置106提供控制信号等等。在一个实施例中,控制逻辑406还可控制卷积码编码器408、卷积码解码器410的操作、ECC模块412、空白扇区绕过模块414的块编码。控制逻辑406可由硬件、由软件或由硬件与软件两者的组合实施。
卷积码编码器408从第一缓冲器402中检索数据并对所述数据进行卷积编码。然后将经卷积编码的码存储在第二缓冲器404中。卷积码编码器408可由硬件、由软件或由硬件与软件两者的组合实施。在一个实施例中,卷积码编码器408具有可选码率m/n及/或可选穿孔模式。此提供卷积编码适合于相对宽广数目范围的存储器装置106的数据中的灵活性。举例来说,在一个实施例中,存在n个存储器装置,且选择码率以使得m等于n+1。然后将存储在第二缓冲器404中的经卷积编码的数据存储在存储器装置106中。举例来说,控制逻辑406可提供寻址及控制信号用于数据传送。当主机100请求数据读取时,从存储器装置106中检索对应的经卷积编码的数据并将其存储在第二缓冲器404中。
卷积码解码器410解码存储在第二缓冲器404中的经卷积编码的数据。将经解码的数据存储在第一缓冲器402中。在一个实施例中,卷积码解码器410是维特比解码器。卷积码解码器410还可包含插入电路,所述插入电路插入“虚设”数据或使用可用于补偿已被穿孔(移除)位的擦除指针。在一个实施例中,当卷积码解码器410遭遇到所述虚设数据或所述擦除指针时,卷积码解码器410并不依赖于所述数据来解码。
现将说明所图解说明的实施例的错误校正码(ECC)模块412及空白扇区绕过模块414。ECC模块412产生块码数据,例如,针对将存储的数据的前向错误校正(FEC)码数据。具有块码数据的原始数据此后将被称为“经块编码的数据”。ECC模块412可由硬件或软件或由两者的组合实施。举例来说,块编码是可由微处理器执行的任务。对于数据从主机100到存储器装置106的写入来说,ECC模块412读取第一缓冲器402中的数据,计算块码并将经块编码的数据存储在第一缓冲器402中。然后对所述经块编码的数据进行卷积编码并将其存储在存储器装置106中。由ECC模块412进行的块编码准许将在稍后检索数据时检测到错误并将校正错误(在错误校正码的限度内)。
在并入有快闪存储器的常规系统中,可容纳部分页写入。在典型快闪存储器(NAND或NOR)中,如果可用,那么便将数据擦除为逻辑“1”并在写入循环期间有选择地写入为逻辑“0”。页的空白部分(例如,全部是逻辑“1”的部分)的典型错误校正码数据也全部是逻辑“1”,且并不覆写页的未经编程部分的已擦除状态或所述页的其它备用数据。然而,在卷积编码之后,先前全部是逻辑“1”的空白数据将被编码为各种逻辑“1”及逻辑“0”状态,此将覆写页的未经编程部分的已擦除状态。因此,对经卷积编码的数据进行编程将覆写已擦除状态。在一个实施例中,存储器控制器116检测应被保持为未经编程的页的部分并绕过对所述部分的卷积编码。举例来说,此可借助扇区大小及对第一缓冲器402的内容的检验来确定。
在所图解说明的实施例中,空白扇区绕过模块414检测空白扇区并跳过卷积编码或解码。空白扇区绕过模块414可由硬件、由软件或由两者的组合实施。当在存储器装置106中的一者或一者以上上执行部分页写入时,应将未正被编程的页的部分保持在其已擦除(例如逻辑“1”)状态中。举例来说,对于一字节的数据,所述位的所有逻辑“1”在二进制记法中是“1111 1111”或在十六进制记法中是“FF”。因此,如果适合,空白扇区绕过模块414将逻辑“1”状态写入到第二缓冲器404以保持将来对页的剩余部分进行编程的能力,因为不管所述页的内容是被擦除在逻辑“1”处还是被编程为“0”,随后将逻辑“1”“写入”(无实际写入发生)到快闪存储器装置均将保持先前状态。在存储器写入不使用第二缓冲器404的情况下,也可以逻辑“1”来填充存储器装置的高速缓冲存储器或页寄存器。空白扇区绕过模块414还可防止对先前已编程数据的覆写。举例来说,参考图2,如果无数据将被写入到标记为B、C及D的部分,那么便可以逻辑“1”来填充第二缓冲器404以维持所述部分的先前已擦除或已编程状态。
当正从存储器装置106读取数据时,空白扇区绕过模块414可以类似方式检测存储器装置106的页的一个或一个以上空白部分的存在并绕过对页的所述部分的卷积码解码。在一个实施例中,空白扇区绕过模块414通过格式化(例如,将数据量分配到部分)且依据在第二缓冲器404的对应存储器空间中全部存在“1”来确定一部分是空白的。然后,空白扇区绕过模块414可(例如)在第一缓冲器402的对应部分中全部写入“1”。当然,还可首先全部以“1”写入缓冲器402、404,且接着在传送到存储器装置106之前(图1)视需要以经卷积编码的数据的覆写或在由主机100检索之前(图1)以经解码的卷积码数据覆写。
图5示意性地图解说明用于穿孔经卷积编码的数据的数据流,其最初具有1/2的码率以产生具有2/3的码率的经卷积编码的数据。举例来说,参考图4,所述数据流可对应于从第一缓冲器402起、穿过卷积码编码器408、第二缓冲器404、存储在第二缓冲器404中,且然后随后从存储器装置106中检索、第二缓冲器404、卷积码解码器410并到达第一缓冲器402的路径。
图解说明数据串流x0,x1,x2,x3,...经卷积编码而不穿孔以产生两个输出数据,例如,然后被穿孔为y0 0,y1 0,y2 0,y3 0,..及y0 1,y2 1,...的(位)串流y0 0,y1 0,y2 0,y3 0,...及y0 1,y1 1,y2 1,y3 1,..,其然后被存储在存储器装置106中。
对于数据读取来说,从存储器装置106中检索经穿孔的数据y0 0,y1 0,y2 0,y3 0,...及y0 1,y2 1,...。擦除指针(由划线表示)指示解码器的擦除,且借由卷积码解码器410解码具有所指示的擦除的经穿孔的数据y0 0,y1 0,y2 0,y3 0,...及y0 1,-,y2 1,-,...以解码回到原始数据串流x0,x1,x2,x3,...。即使存在擦除且即使存在一些错误,前向错误校正的冗余也应提供对原始数据串流的正确解码。可通过根据块错误校正码进行解码来提供进一步错误校正。
图6是大致图解说明用于向非易失性集成电路存储器装置写入数据的过程的实施例的流程图。举例来说,所述过程可由微处理器或控制器执行。所属领域的技术人员将了解,所图解说明的过程可按各种方式加以修改。举例来说,在另一实施例中,可对所图解说明过程的各个部分加以组合,可以替代顺序重新布置,可予以移除等等。图6中所图解说明的过程可用以按图2中所示的格式存储数据,例如,其中所存储数据散布在多个存储器装置上。在所述过程的开始,假定主机100(图1或4)已将数据加载到第一缓冲器402(图4)中,并假定所述数据已经块编码。
所述过程以对数据(例如,已经块编码的原始数据)进行卷积编码610开始。举例来说,可对数据(例如,经块编码的数据)进行卷积编码以产生具有相对低码率的经卷积编码的数据,且可如之前结合图5所图解说明,通过穿孔从低速率经卷积编码的数据产生具有相对高码率的经卷积编码的数据。
在一个实施例中,为散布经卷积编码的数据(经穿孔或未经穿孔),当其存储在第二缓冲器404中时对其进行布置620,以使得其将存储在至少两个部分中,例如,以交错方式存储在至少两个不同存储器装置106(图1或4)中的每一者中的页的一个部分中。在另一实施例中,当经卷积编码的数据从第二缓冲器404拷贝到存储器装置106的对应页缓冲器时对其进行布置620。可布置所述经卷积编码的数据以使得当存储时其被写入到第一存储器装置的页的部分、第二存储器装置的页的部分等等。在一个实施例中,装置之中的存储交替以将所存储数据散布在所述装置上。举例来说,如图2中所图解说明,经卷积编码的数据存储在三个不同存储器装置的部分212、214、216中。
所述过程然后进行以将所述经卷积编码的数据存储630在存储器装置106(图1或4)中。举例来说,可将所述数据传送到存储器装置106内的高速缓冲存储器或缓冲器,且然后可将用以存储所加载页的命令发送到存储器装置106。当执行部分页写入时,应将所述页的未正被写入的部分保持在与已擦除状态相同的状态,例如,对于典型快闪装置来说,逻辑“1”。
在一个实施例中,基于存储器装置106(图1或4)的数目来选择具有码率m/n的卷积编码。举例来说,可使用存储器装置106的数目来确定卷积码的n。在一个实施例中,将卷积码的n选择为等于存储器装置的数目。<然后,对于相同大小的扇区,对m个扇区的经块编码的数据进行卷积编码并将其存储在n个存储器装置中。当然,借助经块编码的数据的m个扇区的倍数(例如,2m个扇区),可将每存储器装置不止一个页部分用于存储经卷积编码的数据。在一个实施例中,码率的m等于有效的高码率的n+1。在一个实施例中,m对应于文件系统的群集中扇区的数目。
图7是大致图解说明用于从非易失性集成电路存储器装置读取数据的过程的实施例的流程图。所属领域的技术人员将了解,所图解说明的过程可按各种方式加以修改。举例来说,在另一实施例中,可对所图解说明过程的各个部分加以组合,可以替代顺序重新布置,可予以移除等等。图6中所图解说明的过程可用以读取如图2中所示组织的数据。在所述过程的开始,假定经卷积编码的数据已存储在多个存储器装置106(图1或4)中以供检索。
所述过程以从主机100(图1或4)接收对数据的请求710开始。举例来说,装置驱动器110(图1)可请求一个或一个以上“扇区”的数据。所述过程从两个或更多个存储器装置106(图1或4)中检索720一个或一个以上对应页的经卷积编码的数据。举例来说,然后可将所述经卷积编码的数据页存储在第二缓冲器404(图4)中。
然后,所述过程将所述经卷积编码的数据去卷积730。从第二缓冲器404或从存储器装置106读取所述经卷积编码的数据以供解码(也称为卷积)。去卷积730可包含“虚设”数据的插入或擦除指针以取代或补偿先前经穿孔的数据并可根据维特比算法执行。为去卷积,从读取第二缓冲器404的数据的正常次序或从存储器装置106重新布置所述经卷积编码的数据以恢复所述经卷积编码的数据的原始次序。举例来说,如果所述经卷积编码的数据散布在三个不同存储器装置中的每一者的一个页上,那么便通过将所述经卷积编码的数据布置回到其最初被写入的次序来重建所述数据,而不是逐页布置来自每一存储器装置的页数据。块解码可进一步用于检测及/或校正错误。
一个实施例是一种将数据存储在多个非易失性集成电路存储器装置中的方法,其中所述方法包含:对数据进行卷积编码;及存储所述经卷积编码的数据,以使得所述经卷积编码的数据交错地散布在至少两个非易失性集成电路存储器装置上。
一个实施例是一种从多个非易失性集成电路存储器装置读取数据的方法,其中所述方法包含:从至少两个非易失性集成电路存储器装置中检索经卷积编码的数据,其中所述经卷积编码的数据散布在所述至少两个非易失性集成电路存储器装置上;及将从所述存储器装置中检索的所述经卷积编码的数据去卷积,其中去卷积包括重新布置所述经卷积编码的数据以恢复所述经卷积编码的数据的原始次序。
一个实施例是一种将数据存储在多个非易失性集成电路存储器装置中的方法,其中所述方法包含:使用码率m/n将m个第一大小部分的数据卷积编码成m个第二大小部分的卷积码,其中所述第二大小部分比第一大小扇区大n/m倍,其中所述m个第一大小部分中的至少一者含有与空白数据相反的实际数据;及将所述m个第二大小部分的卷积码存储在n个非易失性集成电路存储器装置中,其中所述m个非易失性集成电路存储器装置经配置以存储m个第一大小部分,其中n至少为2。
一个实施例是一种从多个非易失性集成电路存储器装置存取数据的方法,其中所述方法包含:从主机接收对数据的请求;从所述非易失性集成电路存储器装置中的两者或两者以上中的至少一者中检索一个或一个以上相关联扇区的数据,其中所述一个或一个以上相关联扇区为第一扇区大小;及将所述一个或一个以上相关联扇区的至少一部分去卷积以产生与所请求页的至少部分相关的一个或一个以上扇区的信息,其中所述所产生信息的所述一个或一个以上扇区因经去卷积的卷积码的码率而为小于所述第一扇区大小的第二扇区大小,其中从所述非易失性集成电路存储器装置读取所述扇区的所产生信息以便逐页去卷积。
一个实施例是一种设备,其中所述设备包含:第一缓冲器;第二缓冲器;控制逻辑,其经配置以介接在主机与多个非易失性集成电路存储器装置之间并控制数据从所述第二缓冲器到所述非易失性集成电路存储器装置的存储,以使得数据交错地散布在所述非易失性集成电路存储器装置上;卷积码编码器,其经配置以对存储在所述第一缓冲器中的数据进行编码并将所述经编码的数据存储在所述第二缓冲器中以供传送到所述非易失性集成电路存储器装置;及卷积码解码器,其经配置以对从所述非易失性集成电路存储器装置中检索的存储在所述第二缓冲器中的数据进行解码并将所述经解码的数据存储在所述第一缓冲器中。
上文已说明了各种实施例。虽然参考这些具体实施例进行说明,但本说明打算具有说明性,而并不打算具有限定性。所属领域的技术人员可想到各种修改及应用。
Claims (27)
1.一种将数据存储在多个非易失性集成电路存储器装置中的方法,所述方法包括:
对数据进行卷积编码;
存储经卷积编码的数据,以使得所述经卷积编码的数据交错地散布在至少两个非易失性集成电路存储器装置上;
其中,所述卷积编码的码率m/n是至少部分地基于其上散布有数据的非易失性集成电路存储器装置的数目的,其中,所述码率m/n是信息符号的数目m与码符号的数目n的比率。
2.根据权利要求1所述的方法,其中:
卷积编码包括对与至少m个扇区的经块编码的数据相对应的数据进行卷积编码,其中m/n对应于卷积码的码率;且
存储包括将所述经卷积编码的数据存储在n个非易失性集成电路存储器装置中。
3.根据权利要求2所述的方法,其进一步包括:
从主机接收对应于m个扇区的未经编码的数据;及
对所述m个扇区的未经编码的数据进行块编码以产生所述m个扇区的经块编码的数据。
4.根据权利要求2所述的方法,其中根据文件系统,m个扇区对应于一群集中的扇区的数目。
5.根据权利要求2所述的方法,其进一步包括借助码率m/n来进行卷积编码,其中n等于m+1。
6.根据权利要求2所述的方法,其进一步包括:
确定所述m个扇区的经块编码的数据中的任一扇区中的数据是否对应于空白数据;及
如果确定所述经块编码的数据对应于空白数据,那么便绕过对所述数据的卷积编码。
7.根据权利要求6所述的方法,至少部分地基于对扇区的格式化的检查来确定所述扇区是空白的。
8.根据权利要求2所述的方法,其进一步包括至少部分地基于其上散布有数据的非易失性集成电路存储器装置的数目来选择穿孔模式。
9.一种从多个非易失性集成电路存储器装置中读取数据的方法,所述方法包括:
从至少两个非易失性集成电路存储器装置中检索经卷积编码的数据,其中所述经卷积编码的数据散布在所述至少两个非易失性集成电路存储器装置上;
将从所述存储器装置中检索的所述经卷积编码的数据去卷积,其中去卷积包括重新布置所述经卷积编码的数据以恢复所述经卷积编码的数据的原始次序;
确定所检索数据的若干部分对应于空白数据;
绕过对所述部分的去卷积。
10.根据权利要求9所述的方法,其中去卷积包括插入数据及经由维特比算法进行解码。
11.根据权利要求9所述的方法,其进一步包括在检索之前从主机接收对对应于所述所检索经卷积编码的数据的数据群集的请求。
12.根据权利要求9所述的方法,其进一步包括对所述经去卷积的数据进行块解码。
13.一种将数据存储在多个非易失性集成电路存储器装置中的方法,所述方法包括:
使用码率m/n将m个第一大小部分的数据卷积编码成m个第二大小部分的卷积码,其中所述第二大小部分比第一大小部分大n/m倍,其中所述m个第一大小部分中的至少一者含有与空白数据相反的实际数据,其中,所述码率m/n是信息符号的数目m与码符号的数目n的比率;
将所述m个第二大小部分的卷积码存储在n个非易失性集成电路存储器装置中,其中所述m个非易失性集成电路存储器装置经配置以存储m个第一大小部分,其中n至少为2;
确定所述m个第一大小部分的数据中的至少一者与空白数据相对应;及
绕过将与空白数据相对应的所述m个第一大小部分的数据中的至少一者卷积编码成所述m个非易失性集成电路存储器装置的所述m个第二大小部分的卷积码的相应部分。
14.根据权利要求13所述的方法,其进一步包括其中卷积编码进一步包括穿孔所述卷积码。
15.根据权利要求13所述的方法,其进一步包括在卷积编码之前对所述数据进行块编码。
16.一种从多个非易失性集成电路存储器装置中存取数据的方法,所述方法包括:
从主机接收对数据的请求;
从所述非易失性集成电路存储器装置中的两者或两者以上中的至少一者中检索一个或一个以上相关联扇区的数据,其中所述一个或一个以上相关联扇区具有第一扇区大小;及
将所述一个或一个以上相关联扇区的至少一部分去卷积以产生与所请求页的至少部分相关的一个或一个以上扇区的信息,其中所述所产生信息的所述一个或一个以上扇区因经去卷积的卷积码的码率而具有小于所述第一扇区大小的第二扇区大小,其中从所述非易失性集成电路存储器装置中读取所述扇区的所产生信息以便逐页去卷积。
17.根据权利要求16所述的方法,其中去卷积包括:
补偿经穿孔的数据;及
经由维特比算法进行解码。
18.根据权利要求16所述的方法,其中从所述主机接收所述请求包括从所述主机接收对数据群集的请求。
19.根据权利要求16所述的方法,其进一步包括对来自所述所产生信息的块码进行解码以产生所述所请求数据。
20.根据权利要求16所述的方法,其进一步包括:
确定所述所检索扇区中的一者或一者以上是空白的;及
绕过对所述空白扇区的去卷积,以使得所述所产生信息对应于空白数据。
21.一种将数据存储在多个非易失性集成电路存储器装置中的设备,其包括:
第一缓冲器;
第二缓冲器;
控制逻辑,其经配置以介接在主机与多个非易失性集成电路存储器装置之间并控制数据从所述第二缓冲器到所述非易失性集成电路存储器装置的存储,以使得数据交错地散布在所述非易失性集成电路存储器装置上;
卷积码编码器,其经配置以对存储在所述第一缓冲器中的数据进行编码并将所述经编码的数据存储在所述第二缓冲器中以供传送到所述非易失性集成电路存储器装置;
卷积码解码器,其经配置以对从所述非易失性集成电路存储器装置中检索的存储在所述第二缓冲器中的数据进行解码并将所述经解码的数据存储在所述第一缓冲器中;
其中所述控制逻辑进一步经配置以至少部分地基于其上散布有数据的非易失性集成电路存储器装置的数目来选择所述卷积码编码器的码率m/n。
22.根据权利要求21所述的设备,其中所述控制逻辑进一步经配置以控制到所述第一缓冲器及/或从所述第一缓冲器到所述第二缓冲器的数据传送。
23.根据权利要求21所述的设备,其进一步包括错误校正码(ECC)模块,所述错误校正码(ECC)模块经配置以对从所述主机传送的数据进行块编码并对将传送到所述主机的经块编码的数据进行解码。
24.根据权利要求21所述的设备,其进一步包括空白扇区绕过模块,所述空白扇区绕过模块经配置以响应于检测到空白数据而绕过所述卷积码编码器及/或卷积码解码器。
25.根据权利要求24所述的设备,其中所述空白扇区绕过模块进一步经配置以至少部分地基于对扇区的格式化的检查来确定所述扇区是空白的。
26.根据权利要求21所述的设备,其中所述设备体现在NAND快闪存储器控制器中。
27.根据权利要求21所述的设备,其中所述控制逻辑进一步经配置以至少部分地基于其上散布有数据的非易失性集成电路存储器装置的数目来选择所述卷积码编码器的穿孔模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/944,023 | 2007-11-21 | ||
US11/944,023 US8046542B2 (en) | 2007-11-21 | 2007-11-21 | Fault-tolerant non-volatile integrated circuit memory |
PCT/US2008/081473 WO2009067320A1 (en) | 2007-11-21 | 2008-10-28 | Fault-tolerant non-volatile integrated circuit memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101868830A CN101868830A (zh) | 2010-10-20 |
CN101868830B true CN101868830B (zh) | 2014-03-12 |
Family
ID=40643179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880117047.9A Active CN101868830B (zh) | 2007-11-21 | 2008-10-28 | 容错非易失性集成电路存储器 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8046542B2 (zh) |
EP (2) | EP2626863B1 (zh) |
JP (1) | JP5522480B2 (zh) |
KR (1) | KR101534888B1 (zh) |
CN (1) | CN101868830B (zh) |
TW (1) | TWI482018B (zh) |
WO (1) | WO2009067320A1 (zh) |
Families Citing this family (179)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7821826B2 (en) * | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) * | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
KR101473344B1 (ko) * | 2007-08-24 | 2014-12-17 | 삼성전자 주식회사 | 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US7773413B2 (en) * | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8499229B2 (en) | 2007-11-21 | 2013-07-30 | Micro Technology, Inc. | Method and apparatus for reading data from flash memory |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
WO2009072104A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) * | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
JP2009244962A (ja) * | 2008-03-28 | 2009-10-22 | Toshiba Corp | メモリシステム |
US9594679B2 (en) * | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8230158B2 (en) | 2008-08-12 | 2012-07-24 | Micron Technology, Inc. | Memory devices and methods of storing data on a memory device |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) * | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US7975111B2 (en) * | 2008-11-13 | 2011-07-05 | Macronix International Co., Ltd. | Memory and method applied in one program command for the memory |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US20100161888A1 (en) * | 2008-12-22 | 2010-06-24 | Unity Semiconductor Corporation | Data storage system with non-volatile memory using both page write and block program and block erase |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
TW201030514A (en) * | 2009-02-04 | 2010-08-16 | Mitac Int Corp | Flash memory document system and its driving method |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
KR20120052251A (ko) * | 2009-08-25 | 2012-05-23 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 에러 정정 |
US8077515B2 (en) * | 2009-08-25 | 2011-12-13 | Micron Technology, Inc. | Methods, devices, and systems for dealing with threshold voltage change in memory devices |
US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
US8266501B2 (en) | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
US20110102997A1 (en) * | 2009-11-02 | 2011-05-05 | Ocz Technology Group, Inc. | Mass storage device and method of accessing memory devices thereof |
US8626988B2 (en) * | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
KR101623730B1 (ko) | 2009-11-23 | 2016-05-25 | 삼성전자주식회사 | 인터리버 장치 |
US9753877B2 (en) | 2009-11-30 | 2017-09-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Memory read-channel with signal processing on general purpose processor |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
US8429391B2 (en) | 2010-04-16 | 2013-04-23 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8451664B2 (en) | 2010-05-12 | 2013-05-28 | Micron Technology, Inc. | Determining and using soft data in memory devices and systems |
US8386895B2 (en) | 2010-05-19 | 2013-02-26 | Micron Technology, Inc. | Enhanced multilevel memory |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8468431B2 (en) | 2010-07-01 | 2013-06-18 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US8868852B2 (en) * | 2010-07-07 | 2014-10-21 | Marvell World Trade Ltd. | Interface management control systems and methods for non-volatile semiconductor memory |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
US9135168B2 (en) | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
TWI441181B (zh) | 2010-09-09 | 2014-06-11 | Silicon Motion Inc | 用來進行資料整形之方法以及其記憶裝置及控制器 |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
US8417914B2 (en) | 2011-01-06 | 2013-04-09 | Micron Technology, Inc. | Memory address translation |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
US8799745B2 (en) * | 2011-04-12 | 2014-08-05 | Hitachi, Ltd. | Storage control apparatus and error correction method |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US8780659B2 (en) * | 2011-05-12 | 2014-07-15 | Micron Technology, Inc. | Programming memory cells |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
CN102354527A (zh) * | 2011-06-02 | 2012-02-15 | 钟浩 | 一种降低固态存储系统响应时间的方法 |
US9130596B2 (en) * | 2011-06-29 | 2015-09-08 | Seagate Technology Llc | Multiuse data channel |
US8716876B1 (en) * | 2011-11-11 | 2014-05-06 | Altera Corporation | Systems and methods for stacking a memory chip above an integrated circuit chip |
CN103123599A (zh) * | 2011-11-17 | 2013-05-29 | 慧荣科技股份有限公司 | 具系统修复数据的内嵌式内存及其系统修复方法 |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
US9047214B1 (en) | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
US9183085B1 (en) | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
US9176812B1 (en) | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
US9292212B2 (en) | 2012-06-25 | 2016-03-22 | International Business Machines Corporation | Detecting storage errors in a dispersed storage network |
US11093327B1 (en) | 2012-06-25 | 2021-08-17 | Pure Storage, Inc. | Failure abatement approach for failed storage units common to multiple vaults |
TWI594254B (zh) * | 2012-07-17 | 2017-08-01 | 慧榮科技股份有限公司 | 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置 |
US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9577673B2 (en) | 2012-11-08 | 2017-02-21 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US9021328B2 (en) | 2013-01-15 | 2015-04-28 | International Business Machines Corporation | Shared error protection for register banks |
US9201727B2 (en) | 2013-01-15 | 2015-12-01 | International Business Machines Corporation | Error protection for a data bus |
US9041428B2 (en) | 2013-01-15 | 2015-05-26 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US9043683B2 (en) | 2013-01-23 | 2015-05-26 | International Business Machines Corporation | Error protection for integrated circuits |
US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9189333B2 (en) * | 2013-10-17 | 2015-11-17 | Seagate Technology Llc | Generating soft decoding information for flash memory error correction using hard decision patterns |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
US9374108B2 (en) * | 2014-05-19 | 2016-06-21 | International Business Machines Corporation | Convolution-encoded hyper-speed channel with robust trellis error-correction |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
DE102014213071A1 (de) * | 2014-07-04 | 2016-01-07 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Verarbeitung von Daten |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
CN107239358A (zh) * | 2017-06-01 | 2017-10-10 | 捷开通讯(深圳)有限公司 | 安卓系统的启动方法、移动终端及具有存储功能的装置 |
TWI628543B (zh) * | 2017-09-07 | 2018-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102427323B1 (ko) * | 2017-11-08 | 2022-08-01 | 삼성전자주식회사 | 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 |
TWI643201B (zh) * | 2017-11-27 | 2018-12-01 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
CN110134322B (zh) * | 2018-02-02 | 2022-05-31 | 建兴储存科技(广州)有限公司 | 运用dram的储存装置及其相关数据处理方法 |
US10725857B2 (en) | 2018-02-27 | 2020-07-28 | Western Digital Technologies, Inc. | Data storage system for improving data throughput and decode capabilities |
US10747613B2 (en) * | 2018-09-07 | 2020-08-18 | Toshiba Memory Corporation | Pooled frontline ECC decoders in memory systems |
US10908996B2 (en) * | 2019-02-22 | 2021-02-02 | Intel Corporation | Distribution of a codeword across individual storage units to reduce the bit error rate |
TWI800764B (zh) * | 2020-10-30 | 2023-05-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112347010B (zh) * | 2020-11-09 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
CN1499531A (zh) * | 2002-10-28 | 2004-05-26 | 管理非易失存储器系统中的数据完整性的方法和装置 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4058851A (en) | 1976-10-18 | 1977-11-15 | Sperry Rand Corporation | Conditional bypass of error correction for dual memory access time selection |
US4736294A (en) * | 1985-01-11 | 1988-04-05 | The Royal Bank Of Canada | Data processing methods and apparatus for managing vehicle financing |
US5640193A (en) * | 1994-08-15 | 1997-06-17 | Lucent Technologies Inc. | Multimedia service access by reading marks on an object |
DE69423104T2 (de) | 1994-10-31 | 2000-07-20 | Stmicroelectronics S.R.L., Agrate Brianza | Fehlernachweis- und Korrekturverfahren in einem mehrstufigen Speicher und Speicher für dieses Verfahren |
JPH09261081A (ja) | 1996-03-22 | 1997-10-03 | Kenwood Corp | デパンクチャード回路 |
US6023781A (en) * | 1996-09-18 | 2000-02-08 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US6857099B1 (en) * | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US6279133B1 (en) | 1997-12-31 | 2001-08-21 | Kawasaki Steel Corporation | Method and apparatus for significantly improving the reliability of multilevel memory architecture |
EP1496519B1 (en) * | 1998-01-21 | 2006-08-23 | Sony Corporation | Encoding method and memory apparatus |
US6385594B1 (en) * | 1998-05-08 | 2002-05-07 | Lendingtree, Inc. | Method and computer network for co-ordinating a loan over the internet |
JP2000068862A (ja) | 1998-08-19 | 2000-03-03 | Fujitsu Ltd | 誤り訂正符号化装置 |
JP3308915B2 (ja) | 1998-11-11 | 2002-07-29 | エヌイーシーマイクロシステム株式会社 | 不良救済用メモリセル及びそれを用いた記憶装置 |
US6871303B2 (en) | 1998-12-04 | 2005-03-22 | Qualcomm Incorporated | Random-access multi-directional CDMA2000 turbo code interleaver |
US20050114587A1 (en) * | 2003-11-22 | 2005-05-26 | Super Talent Electronics Inc. | ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines |
US6628723B1 (en) * | 1999-10-15 | 2003-09-30 | Cisco Technology | Coding rate reduction for turbo codes |
US6731538B2 (en) | 2000-03-10 | 2004-05-04 | Kabushiki Kaisha Toshiba | Semiconductor memory device including page latch circuit |
US6591394B2 (en) | 2000-12-22 | 2003-07-08 | Matrix Semiconductor, Inc. | Three-dimensional memory array and method for storing data bits and ECC bits therein |
JP4017177B2 (ja) * | 2001-02-28 | 2007-12-05 | スパンション エルエルシー | メモリ装置 |
US6683817B2 (en) * | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
JP3969240B2 (ja) | 2002-08-02 | 2007-09-05 | ソニー株式会社 | 半導体記憶装置 |
US7293217B2 (en) | 2002-12-16 | 2007-11-06 | Interdigital Technology Corporation | Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes |
US6839870B2 (en) | 2003-03-21 | 2005-01-04 | Terayon Communications Systems, Inc. | Error-correcting code interleaver |
US7467264B2 (en) * | 2003-06-27 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Methods and apparatuses for determining the state of a memory element |
JP3984209B2 (ja) * | 2003-07-31 | 2007-10-03 | 株式会社東芝 | 半導体記憶装置 |
US7389465B2 (en) | 2004-01-30 | 2008-06-17 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
DK3422583T3 (da) * | 2004-08-30 | 2020-09-28 | Google Llc | System og fremgangsmåde for at tilvejebringe ikke-flygtig hukommelsesadministration i trådløse telefoner |
US7061804B2 (en) * | 2004-11-18 | 2006-06-13 | Qualcomm Incorporated | Robust and high-speed memory access with adaptive interface timing |
US7987404B2 (en) | 2004-12-28 | 2011-07-26 | International Business Machines Corporation | Information recording device, data-flow controller and data flow controlling method |
US7359279B2 (en) * | 2005-03-31 | 2008-04-15 | Sandisk 3D Llc | Integrated circuit memory array configuration including decoding compatibility with partial implementation of multiple memory layers |
JP2006309820A (ja) * | 2005-04-26 | 2006-11-09 | Sanyo Electric Co Ltd | 誤り訂正装置 |
US7644338B2 (en) * | 2005-09-13 | 2010-01-05 | Samsung Electronics Co., Ltd. | Method of detecting and correcting a prescribed set of error events based on error detecting code |
US8291295B2 (en) * | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7469368B2 (en) * | 2005-11-29 | 2008-12-23 | Broadcom Corporation | Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield |
US8687744B2 (en) * | 2006-01-18 | 2014-04-01 | Broadcom Corporation | Method and system for an improved cellular diversity receiver |
US7844879B2 (en) * | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US8055979B2 (en) * | 2006-01-20 | 2011-11-08 | Marvell World Trade Ltd. | Flash memory with coding and signal processing |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US7840875B2 (en) * | 2006-05-15 | 2010-11-23 | Sandisk Corporation | Convolutional coding methods for nonvolatile memory |
US20070266296A1 (en) * | 2006-05-15 | 2007-11-15 | Conley Kevin M | Nonvolatile Memory with Convolutional Coding |
US7904780B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
US8151163B2 (en) * | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
KR100766042B1 (ko) | 2006-12-06 | 2007-10-12 | 삼성전자주식회사 | 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 |
KR100822030B1 (ko) * | 2006-12-26 | 2008-04-15 | 삼성전자주식회사 | 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치 |
KR100845529B1 (ko) * | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
US8010735B2 (en) * | 2007-07-31 | 2011-08-30 | Broadcom Corporation | Flash memory with millimeter wave host interface and method for use therewith |
US8051358B2 (en) | 2007-07-06 | 2011-11-01 | Micron Technology, Inc. | Error recovery storage along a nand-flash string |
US8065583B2 (en) | 2007-07-06 | 2011-11-22 | Micron Technology, Inc. | Data storage with an outer block code and a stream-based inner code |
-
2007
- 2007-11-21 US US11/944,023 patent/US8046542B2/en active Active
-
2008
- 2008-10-28 CN CN200880117047.9A patent/CN101868830B/zh active Active
- 2008-10-28 EP EP13156849.5A patent/EP2626863B1/en not_active Not-in-force
- 2008-10-28 WO PCT/US2008/081473 patent/WO2009067320A1/en active Application Filing
- 2008-10-28 KR KR1020107013481A patent/KR101534888B1/ko active IP Right Grant
- 2008-10-28 EP EP08851231A patent/EP2227810B1/en not_active Not-in-force
- 2008-10-28 JP JP2010534993A patent/JP5522480B2/ja active Active
- 2008-11-11 TW TW097143567A patent/TWI482018B/zh not_active IP Right Cessation
-
2011
- 2011-06-06 US US13/154,150 patent/US8234439B2/en active Active
-
2012
- 2012-07-24 US US13/556,593 patent/US8725937B2/en active Active
-
2014
- 2014-05-12 US US14/275,599 patent/US9152546B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
CN1499531A (zh) * | 2002-10-28 | 2004-05-26 | 管理非易失存储器系统中的数据完整性的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2626863B1 (en) | 2014-09-10 |
US20090132755A1 (en) | 2009-05-21 |
US20110239093A1 (en) | 2011-09-29 |
US20120290902A1 (en) | 2012-11-15 |
EP2227810A1 (en) | 2010-09-15 |
TW200928737A (en) | 2009-07-01 |
WO2009067320A1 (en) | 2009-05-28 |
US8725937B2 (en) | 2014-05-13 |
US8046542B2 (en) | 2011-10-25 |
US8234439B2 (en) | 2012-07-31 |
EP2626863A1 (en) | 2013-08-14 |
JP2011504270A (ja) | 2011-02-03 |
EP2227810B1 (en) | 2013-03-27 |
KR101534888B1 (ko) | 2015-07-07 |
CN101868830A (zh) | 2010-10-20 |
US9152546B2 (en) | 2015-10-06 |
US20140331003A1 (en) | 2014-11-06 |
TWI482018B (zh) | 2015-04-21 |
EP2227810A4 (en) | 2012-02-29 |
KR20100106398A (ko) | 2010-10-01 |
JP5522480B2 (ja) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101868830B (zh) | 容错非易失性集成电路存储器 | |
CN102880521B (zh) | 非易失性存储器装置中管理块和存取数据页的方法及设备 | |
US8904261B2 (en) | Data management in solid state storage devices | |
CN103902403B (zh) | 经由冗余阵列的非易失性存储器编程故障恢复 | |
KR101445025B1 (ko) | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 | |
CN102023815B (zh) | 在固态存储器中实现raid | |
CN112579339B (zh) | 具有基于块可靠性的选择性交错译码的非易失性存储器 | |
CN102630318B (zh) | 并行访问多个闪存/相变存储级存储器的固态存储系统 | |
US20090172335A1 (en) | Flash devices with raid | |
KR101679530B1 (ko) | 이용 가능한 메모리 공간에 기초한 이중화 저장 장치 구성의 선택 | |
CN1902592A (zh) | 数据存储器阵列 | |
CN105009087A (zh) | 用于数据存储系统的数据可靠性方案 | |
CN1499531A (zh) | 管理非易失存储器系统中的数据完整性的方法和装置 | |
WO2009009302A2 (en) | Error recovery storage along a nand-flash string | |
CN109857584B (zh) | 于记忆装置进行访问控制的方法、记忆装置和其控制器 | |
CN112068778B (zh) | 用于保持从存储阵列中读取的数据的完整性的方法和设备 | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及系统 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
KR20190076589A (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 |
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 |