CN107710163B - 一次写入型存储器码的纠错码管理的电路、系统和方法 - Google Patents
一次写入型存储器码的纠错码管理的电路、系统和方法 Download PDFInfo
- Publication number
- CN107710163B CN107710163B CN201680035012.5A CN201680035012A CN107710163B CN 107710163 B CN107710163 B CN 107710163B CN 201680035012 A CN201680035012 A CN 201680035012A CN 107710163 B CN107710163 B CN 107710163B
- Authority
- CN
- China
- Prior art keywords
- wom
- symbol
- bits
- ecc
- word
- 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
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1072—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 multilevel memories
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Read Only Memory (AREA)
Abstract
在所描述的示例中,一种用于一次写入型存储器(WOM)码的纠错码(ECC)管理的系统包括被安排发送数据字的主机处理器,该数据字将被存储到WOM(一次写入型存储器)装置中。主机接口被安排接收(710)第一数据字用于通过WOM控制器和ECC控制器处理。WOM控制器用于响应于第一数据字的原始符号生成(720)第一WOM编码的字,而ECC控制器用于响应于第一数据字的原始符号生成(730)第一组ECC位。存储器装置接口用于根据与第一数据字相关的存储器地址,将第一WOM编码的字和第一组ECC位写入(740)WOM装置。
Description
背景技术
计算机系统包括可操作用于在存储器装置中检索、处理和存储数据的处理器。用于计算机系统的存储器装置包括不同种类的存储器装置,其中不同类型的存储器装置通常具有不同的性能和操作特性。在特定的系统中使用的存储器装置的类型通常根据计算机系统的特定应用的需求进行选择。例如,一些系统设计需要将数据写入非易失性存储器位置和从非易失性存储器位置读取数据的能力。然而,一些存储器装置解决方案(如电可擦除只读存储器)不适合某些应用,因为增加了花费并降低了性能特性。
发明内容
上述注意到的问题可以在用于一次写入型存储器(WOM)码的纠错码(ECC)管理的系统中得到解决,该系统包括例如主机处理器,其被安排发送数据字,该数据字将被存储到WOM(一次写入型存储器)装置中。主机接口被安排接收第一数据字用于通过WOM控制器和ECC控制器处理。WOM控制器用于响应于第一数据字的原始符号生成第一WOM编码的字,而ECC控制器用于响应于第一数据字的原始符号生成第一组ECC位(bit)。存储器装置接口用于根据与第一数据字相关的存储器地址,将第一WOM编码的字和第一组ECC位写入WOM装置。
附图说明
图1示出根据示例实施例的一种说明性的计算系统。
图2是根据示例实施例的一种包括ECC管理的WOM的处理系统的框图。
图3说明在一个示例存储器系统中的符号级WOM编码。
图4是根据示例实施例的一种示例两阶段/两级Reed-Solomon(里德所罗门)和WOM编码方案的编码图。
图5是根据示例实施例的一种示例两阶段BCH(Bose-Chaudhuri-Hocaquenghem,博斯-乔赫里-霍克文黑姆)编码和WOM编码方案的编码图。
图6是根据示例实施例的一种示例两阶段WOM编码和ECC编码方案的编码图。
图7是根据示例实施例的一种示例流程图。
具体实施方式
各种名称可指代组件或系统。系统可以是另一系统的子系统。如果第一装置耦合到第二装置,该连接可通过直接电连接,或通过经由其它装置和连接的间接电连接进行。
图1示出根据示例实施例的一种说明性的计算系统100。例如,计算系统100是或被纳入电子系统129,如计算机、电子控制“盒”或显示器、通信装置(包括发射器)、或被安排生成射频信号的任何其它类型的电子系统。
在一些实施例中,计算系统100包括巨型单元(megacell)或片上系统(SoC),其包括控制逻辑如CPU 112(中央处理单元)、存储装置114(如随机存储器(RAM))和电源110。例如,CPU 112可以是CISC型(复杂指令集计算机)CPU、RISC型CPU(精简指令集计算机)、MCU型(微控制器单元)或数字信号处理器(DSP)。存储装置114(其可以是存储器如处理器上(on-processor)缓存、处理器外(off-processor)缓存、RAM、闪存或磁盘存储器)存储一个或更多个软件应用130(如嵌入式应用),该一个或更多个软件应用130当由CPU 112执行时执行与计算系统100相关的任何合适的功能。
CPU 112包含存储从存储装置114频繁访问的信息的存储器和逻辑。计算系统100经常由用户使用UI(用户界面)116控制,该UI 116在执行软件应用130期间向用户提供输出并从用户接收输入。使用显示器118、指示灯、扬声器、振动等提供输出。使用音频和/或视频输入(使用例如语音或图像识别)和电气和/或机械装置(如键盘、开关、接近检测器、陀螺仪、加速度计等)接收输入。CPU 112耦合到I/O(输入-输出)端口128,其提供接口,该接口被配置以从网络设备131接收输入(和/或向其提供输出)。网络设备131可包括能够与计算系统100点对点和/或网络通信的任何设备。计算系统100也可耦合到外设和/或计算设备,包括有形、非暂时性介质(如闪存)和/或电缆或无线介质。这些和其它输入输出设备通过使用无线或电缆连接的外部设备选择性地耦合到计算系统100。例如,可通过网络设备131访问存储装置114。
CPU 112耦合到I/O(输入-输出)端口128,其提供接口,该接口被配置以从外设和/或计算设备131(包括有形(例如,“非暂时性”)介质(如闪存)和/或电缆或无线介质)接收输入(和/或向其提供输出)(如联合测试行动组(Joint Test Action Group,JTAG)接口)。这些和其它输入和输出装置通过使用无线或电缆连接的外部设备选择性地耦合到计算系统100。CPU 112、存储装置114和电源110可耦合到外部电源(未示出)或耦合到本地电源(如电池、太阳能电池、交流发电机、感应场、燃料电池、电容器等)。
计算系统100包括存储器138,其适用于相对快速的存储器访问,且通常使用固态存储器装置形成。这样的固态存储器装置包括ECC管理(电子校正码管理)的一次写入型存储器(WOM)140。WOM 140是通常被一次(或相对小的次数)写入(如在被丢弃或擦除前)的存储器。WOM编码的使用使特定系统能够将数据写入非易失性存储器和从非易失性存储器读取数据。然而,在WOM应用中ECC的使用是有问题的(如关于图3所讨论的)。
ECC管理的WOM 140写入访问典型地比ECC管理的WOM 140擦除周期(如果有的话)快,并且在一个实施例中,写入访问能够将ECC管理的WOM 140中位位置从擦除状态改变到写入状态(如“0”到“1”)。擦除状态典型地取决于选择的技术,且因此可以是“0”或“1”,而写入状态典型地与擦除状态相反。一些存储器装置在单一存储器单元中可存储多位的信息,在这种情况下写入位包括具有与擦除状态相反的状态的一位或更多位信息。
ECC管理的WOM 140使用WOM码被写入,以有效地写入WOM,使得写入WOM可被多次写入而没有擦除。ECC管理的WOM 140用于提供具有成本效益的非易失性存储器(NVM),其具有有限的重新编程能力和/或增加数量的写入/擦除周期(如与传统NVM解决方案相比)。
图2是根据示例实施例的一种包括ECC管理的WOM的处理系统的框图。一般来说,处理系统200包括MCU 204和存储器控制器210。MCU 204和存储器控制器210通常被安排在公用衬底202上。存储器控制器210通信地耦合到MCU 204,并可操作用于管理对存储器装置的存储器访问,对(至少)ECC管理的WOM 140的存储器访问以及对存储器装置(例如RAM 292、PROM(可编程只读存储器)294和可选的EEPROM(电可擦除只读存储器)296(其使用与衬底202不同的衬底可选地形成))的存储器访问。
在操作中,由存储器控制器210服务的存储器访问包括写入操作和读取操作。一般来说,写入操作的数据在如图2所述的从上到下方向传输,而读取操作的数据在如图2所示的从下到上的方向传输。相应地,主机接口220被安排以选择(如响应于提供有存储器访问命令的系统地址)存储器装置以向其写入数据或从其读取数据。
存储器控制器210包括ECC控制器如ECC管理器250。在写入操作期间,ECC管理器250可操作用于将纠错码应用到数据用于写入ECC管理的WOM 140。在读取操作期间,ECC管理器250可操作用于评估检索的数据,以及必要时,ECC控制器可操作用于响应于评估执行校正动作。例如,校正动作可操作用于使用经由WOM管理器260从ECC管理的WOM 140读取的ECC编码的数据校正检索的数据。
存储器控制器210包括WOM管理器260。在写入操作期间,WOM管理器260可操作用于使用WOM码编码数据(如由ECC管理器260使用ECC编码进行编码的数据)用于将WOM(和ECC)编码的数据写入ECC管理的WOM 140。在读取操作期间,WOM管理器260可操作用于从ECC管理的WOM 140解码WOM编码的数据。在WOM编码的数据被解码后,解码的数据被发送到ECC管理器250以根据用于对写入ECC管理的WOM 140数据进行原始编码的ECC编码对该数据进行进一步解码。
存储器控制器210包括存储器装置接口270。在写入操作期间,存储器装置接口270可操作用于将编码的数据(如通过ECC管理器260使用ECC编码和通过WOM管理器260使用WOM码进行编码的数据)写入ECC管理的WOM 140。在读取操作期间,存储器装置接口270可操作用于从ECC管理的WOM 140读取编码的数据。存储器装置接口270也可操作用于对ECC管理的WOM 140执行块初始化例程(如以对ECC管理的WOM 140进行块擦除,使得编址的存储器位置都被擦除到逻辑零状态)。通常,相比于对ECC管理的WOM 140进行正常的读取或写入周期所需的执行时间,块初始化例程需要更多时间执行。
在其它实施例中(如以下参照图6所讨论的),WOM管理器260可操作用于编码有效载荷数据作为WOM编码的数据使得ECC管理器250编码WOM编码的数据。同样,ECC管理器250可操作用于解码从存储器检索的ECC-编码的数据使得WOM管理器260解码WOM编码的数据以检索原始编码的有效载荷数据。
WOM编码可通过使用n位(如大于或等于2的任何整数位)符号实现,该n位符号被写入WOM存储器有限次数。例如,下面的表1说明了针对2位符号的WOM编码,在特定的存储器位置中其可被两次写入WOM(如,在需要存储器擦除之前)。
表1
2位符号 | 3位WOM码(第一次写入) | 3位WOM码(第二次写入) |
00 | 000 | 111 |
01 | 100 | 011 |
10 | 010 | 101 |
11 | 001 | 110 |
表1的每一行说明了一个2位符号(使得mWOM=2,其中mWOM是每个符号的位数),其被WOM编码为3位字段。如上所述,mWOM的值可以是大于或等于2的任何整数。当WOM编码的数据第一次被写入WOM存储器时,1位(例如最多)被设置在编码的数据中。当WOM编码的数据第二次被写入WOM存储器时,WOM存储器只在新数据与以前存储的数据不同时正常更新。
例如,如果在第一次写入后WOM存储器是“000”且第二次写入的新数据是“00”,则在第二次写入后WOM存储器仍是“000”。如果WOM存储器第二次被写入(例如用从第一次写入期间写入的值改变的值),至少(3位中的)2位被设置在编码的数据中。因此,WOM管理器260能够通过读取在WOM位置中存储的数据(并且无需例如依赖每个存储器位置的单独计数器),确定到该位置(用于存储WOM编码的符号)的写入次数。
图3说明了在一个示例存储器系统中的符号级WOM编码。一般而言,存储器系统300包括符号空间(space)302和WOM码编码的存储器304。符号空间302包括具有值(如“00”)的2位符号310。
在操作312中,根据表1编码符号310以生成编码的符号320。应当理解本文描述的原理和技术可用于n位符号且不限于2位符号。WOM码编码的存储器304包括用于存储编码的符号320的3位值(“000”)320(例如,为了简单说明,使用默认的擦除位值“0”用于WOM码编码的存储器304)。WOM码编码的存储器304易于遭受位错误,其可导致数据丢失。
在操作322中,存储器位置320的最低有效位中发生错误。不管在编码的数据中纠错码的使用(或不使用),在编码的数据中单一或多个位错误是可能的:纠错码的强度确定在编码的数据中的错误出现在解码的数据中的程度。因此,3位值320被错误地改变成3位值(“001”)330,其代表(如,在WOM码编码的存储器304中的)1位错误。
在操作332中,3位值(“001”)330被读取并根据表1被解码,使得2位符号340(代表解码的3位值330)具有值“11”。在示例中,值“1”代表符号中的2位错误,尽管仅1位错误发生在WOM码编码的存储器304中。在一些示例情况中,在WOM编码的符号中的1位错误可能导致在WOM符号的所有位中的错误。
例如,本公开包括两阶段级联编码方案,其针对存储在WOM编码的存储器装置中的数据的符号级保护,提供低处理延迟和/或减少的布局需求。如下面参考图4和图5讨论的,两阶段级联编码方案包括:第一阶段,其中使用电子校正码(ECC)编码有效载荷数据以产生ECC保护的有效载荷数据;和第二阶段,其中使用WOM编码对ECC保护的有效载荷数据编码。
图4是根据本公开的实施例的一种示例两阶段Reed-Solomon和WOM编码方案的编码图。一般描述地,数据流图400包括字410、ECC编码的字420和WOM编码的字430(具有ECC编码)。ECC编码的字420的ECC编码480被保存在WOM编码的字430的WOM编码490中。
字410包括“k”个符号,其中,每个符号被存储在符号字段(如符号字段412和414)中。每个这样的符号字段是“n”位(例如2位)长。当n=2时,k=2(例如4/2=2)。相应地,字410包括2个符号,其中,每个符号被分别存储在符号字段412和414中。例如,字410包括4位的数据,其代表两个符号的有效载荷数据将被编码(例如根据k=2)。在各种实施例中,符号字段包括一位或更多位的若干组,并且每一组代表一个符号被编码。相应地,字410包括符号字段412(用于编码第一符号)和符号字段414(用于编码第二符号),其中每个符号字段将在编码操作402中被编码。如图所示,符号字段412包括值“10”并且符号字段414包括值“11”。
编码操作402是第一阶段操作,其可操作用于使用基于符号的纠错码方案(如Reed-Solomon码)编码字410的(例如,未编码的)符号字段。在Reed-Solomon编码方案中,奇偶校验符号被用于检测和可选地校正在编码的字中的错误(其中,可被校正错误的数量取决于使用多少奇偶校验符号)。用在每个RS码中的奇偶校验符号的数量由2*T给出(其总共有2*mRS*T位),其中mRS是要被编码的每个符号的位宽度,以及T是在编码的符号中可校正的错误的数量。为了保证每个WOM码的位在相同RS符号中,mRS被选作为mWOM的整数倍。
在本文描述的示例中,为方便说明,选取mRS=mWOM,其中说明的纠错码方案能校正检索的WOM编码的字中的单个位错误(如其中单-错误纠正-能力ECC被封装在WOM编码内)。其他实施例是可能的,其中被封装的纠错码能校正多个位错误(如其中每个WOM存储的字能够校正在WOM存储的字中的两个或更多个错误)。
例如,当具有T=1可校正错误的RS码被用于编码k=2个符号时,编码操作402生成k=2个单独的RS码420。ECC编码的字420包括用于第一RS码的符号字段422(例如,符号字段422是符号字段412的直接拷贝)和用于第二RS码的符号字段426(例如,符号字段426是符号字段414的直接拷贝)。奇偶校验位(如校验位)字段424具有根据上述2*mRS*T=4确定的长度。相应地,奇偶校验位字段424是4位长的一组位并用于保护符号字段422。同样地,奇偶校验位字段428是4位长并用于保护符号字段426。如所示,符号字段422包括值“10”,奇偶校验位字段424包括值“1010”(该值是符号字段422的一个示例RS编码),符号字段426包括值“11”,且奇偶校验位字段428包括值“1011”(该值是符号字段426的一个示例RS编码)。
编码操作404是第二阶段操作的WOM编码操作(如以上关于图3所讨论的),并可操作用于将第一阶段操作402的输出(例如,其为ECC编码的字)编码为WOM编码的字。例如,编码操作404将ECC编码的字420编码为WOM编码的字430(例如,其保留了原始ECC编码的字420的信息)。WOM编码的字430包括WOM字段432、434、436和438,其中WOM字段432是用于符号字段422的WOM码,WOM字段434是用于符号字段424的WOM码,WOM字段436是用于符号字段426的WOM码,以及WOM字段438是用于符号字段428的WOM码。如图所示,WOM字段432包括值“010”,WOM字段434包括值“010001”,WOM字段436包括值“100”,且WOM字段438包括值“000100”。
如以上关于图3所述,每个WOM编码的字包括用于每个2位待编码的符号的3位(例如,NWOM=3宽度)编码方案。如以上所讨论的,WOM编码允许(如存储在WOM存储器中的)WOM编码的字被多次重写,使得能够降低(如果不是全部一起避免的话)相对慢(和有限生命周期)的块初始化例程的执行。块初始化例程包括例程(如,块擦除操作(将全“0”写入非易失性存储器块)或块预置操作(将全“1”写入非易失性存储器的块))。块操作的类型通常根据所用存储器单元的技术确定。
解码操作406是WOM解码操作(如以上关于图3所讨论的),并可操作用于将ECC编码的字的WOM编码的字解码为(例如,理想地)原始的ECC编码的字。例如,操作406是“反转”“第二阶段”操作404的编码的“第二阶段”操作。解码操作406将WOM编码的字430解码,以(例如,理想地)检索编码在WOM编码的字430中的ECC编码的字420。奇偶校验字段424和428分别用于使符号字段422和426有效(如恢复)。
解码操作408是ECC解码操作,其可操作用于将ECC编码的数据解码为有效的数据。例如,操作408是“第一阶段”操作,其“反转”“第一阶段”操作402的编码。在操作408中,奇偶校验字段424和428分别被用于使符号字段422和426有效(如恢复)。在1位错误的事件中,ECC编码(如通过ECC的类型和使用的校正位的数量确定)的强度足以校正错误,使得字410的数据是可恢复的。因此,在从存储器检索到存储的WOM编码的字后,WOM编码的字段中的位错误(如,单一位错误)是可校正的。作为对比,在WOM编码的字(如以上关于图3所述)中的示例1位错误能导致符号中的2位错误。
图5是根据示例实施例的一种示例两阶段BCH编码和WOM编码方案的编码图。一般而言,数据流图500包括字510、ECC编码的字520和WOM编码的字530(具有ECC编码)。ECC编码的字520的ECC编码580被保存在WOM编码的字530的WOM编码590中。
字510包括“k”个符号,其中每个符号被存储在符号字段(如符号字段512和514)中。因此,字510包括2个符号,其中每个符号分别被存储在符号字段512和514中。符号字段将在编码操作502中被编码。作为说明,符号字段512包括值“10”并且符号字段514包括值“11”。
编码操作502是第一阶段操作,其可操作用于使用非二进制循环纠错码方案(例如BCH码)编码字510(例如,未编码)的符号字段。在BCH编码方案中,奇偶校验符号被用于检测和可选地校正在编码的字中的错误。因为在WOM编码的字中的每个位错误能导致解码后多达mWOM位错误,每个BCH码能充分地校正T=mWOM位错误。因此,使用的奇偶校验符号的数量通过mWOM(其包括mBCH*mWOM位)给出,其中mBCH是将进行BCH编码的每个符号的位宽度,以及mWOM等于符号字段522的宽度(其为2位宽)。当mBCH=2个符号及mWOM=2个可校正的错误被用在编码操作时,4个奇偶校验位被用于保护每个符号。
编码操作502生成ECC编码的字520。ECC编码的字520包括用于第一BCH码的符号字段522(例如,其为符号字段512的直接拷贝)和用于第二BCH码的符号字段524(例如,其为符号字段514的直接拷贝)。奇偶校验位字段526具有根据mBCH*mWOM确定的长度,其中mBCH=2且mWOM=2。因此,奇偶校验字段526是4位长并用于保护(和例如,校正)符号字段522的符号。同样地,奇偶校验字段528是4位长并被用于保护符号字段524的符号。作为说明,符号字段522包括值“10”,奇偶校验字段526包括值“0110”(其为符号字段522的BCH编码),符号字段524包括值“11”,且奇偶校验字段528包括值“0010”(其为符号字段524的BCH编码)。
编码操作504是第二阶段操作WOM编码操作(例如,以上关于图3所讨论的)且可操作用于将第一阶段操作502的输出(例如,其为ECC编码的字)编码为WOM编码的字。例如,编码操作504将ECC编码的字520编码为WOM编码的字530(例如,其保留原始ECC编码的字520的信息)。WOM编码的字530包括WOM字段532、536、534和538,其中,WOM字段532是符号字段522的WOM码,WOM字段536是符号字段526的WOM码,WOM字段534是符号字段524的WOM码,以及WOM字段538是符号字段528的WOM码。作为说明,WOM字段532包括值“010”,WOM字段536包括值“100010”,WOM字段534包括值“100”,且WOM字段538包括值“000010”。
如以上关于图3所述,每个WOM编码的字包括用于每个2位待编码的符号的3位(例如,NWOM=3宽度)编码方案。奇偶校验字段526和528的宽度均是4位,使得6位字段(如WOM字段536和538)被用于存储奇偶校验字段526和528的WOM编码的值中的每个。
解码操作506是WOM解码操作(如以上关于图3所讨论的)并可操作用于将ECC编码的字的WOM编码的字解码为(例如,理想地)原始ECC编码的字。例如,解码操作506解码WOM编码的字530以(例如,理想地)检索在WOM编码的字530中编码的ECC编码的字520。
解码操作508是ECC解码操作,其可操作用于将ECC编码的数据解码为有效的数据。例如,奇偶校验字段526和528分别用于使符号字段522和524有效(如恢复)。在1位错误的事件中,ECC编码(如通过ECC的类型和使用的校正位的数量确定)的强度足以校正错误,使得字510的数据是可恢复的。
图6是根据本公开的实施例的一种示例两阶段WOM编码和ECC编码方案的编码图。一般描述地,数据流图600包括字610、WOM编码的字620和ECC编码的字630(具有ECC编码)。WOM编码的字620的WOM编码690保存在ECC编码的字630的ECC编码680内。
字610包括“k”个WOM符号,其中每个符号被存储在符号字段(如符号字段612和614)中。相应地,字610包括2个符号,其中,每个符号分别被存储在符号字段612和614中。因此,字610包括符号字段612(用于编码第一符号)和符号字段614(用于编码第二符号),其中每个符号字段在编码操作602中将被编码。作为说明,符号字段612包括值“10”且符号字段614包括值“11”。
编码操作602是第一阶段操作,其可操作用于使用WOM编码操作(如以上关于图3所讨论的)编码字610(例如,未编码)的符号字段并可操作用于输出编码的符号作为WOM编码的字。如以上关于图3所述,每个WOM编码的字包括用于每个2位待编码的符号的3位(NWOM=3宽度)编码方案(各个实施例包括其它比率,如用于每个n=2宽度符号的4位NWOM编码)。
例如,编码操作602将字610编码为WOM编码的字620(例如,其保留字610的信息)。WOM编码的字620包括WOM字段622和624,其中WOM字段622是用于符号字段612的WOM码,以及WOM字段624是用于符号字段614的WOM码。作为说明,WOM字段622包括值“010”且WOM字段624包括值“100”。
编码操作604是第二阶段操作,其可操作用于使用线性纠错码方案(如Hamming(汉明)码或SECDED(单错误校正,双错误检测)码)编码字620的WOM编码的字段。示例编码操作604根据扩展的Hamming码操作。对于6个WOM编码的数据位,指示(16,11)扩展的Hamming码且因此5个奇偶校验位被用于每个写入操作。鉴于WOM码的2次写入能力,2组5位奇偶校验位被提供,其中不同组的5个奇偶校验位用于每个写入操作。
编码操作604生成ECC编码的字630。ECC编码的字630包括WOM字段632(例如,其是WOM字段622的直接拷贝)和WOM字段634(例如,其是WOM字段624的直接拷贝)。奇偶校验字段636是5位长且被用于在被写入WOM装置的特定位置的第一写入操作中保护(和例如,校正)WOM字段632和634的符号。同样地,奇偶校验字段638是5位长并被用于针对第二写入保护WOM字段632和634的符号。如所说明的,WOM字段632包括值“010”以及WOM字段634包括值“100”。对于到特定存储器位置的第一写入操作,奇偶校验字段636包括值“XXXXX”(其为WOM字段632和634的第一组内容的第一SECDED编码)。对于到WOM装置的特定位置的第二写入操作,奇偶校验字段638会包括(例如,目前就该情况而言)未确定的值“YYYYY”,其为符号字段632和634的(例如,任意地)新值的第二SECDED编码。例如,奇偶校验字段636和638使用编码(如“无格式的(plain)”二进制)被写入,该编码不同于用于编码WOM字段632和634的WOM编码。
解码操作606是ECC解码操作,其可操作用于将ECC编码的数据解码为有效的数据。例如奇偶校验字段636被用于在第一写入操作后使WOM字段632和634有效(例如恢复),而奇偶校验字段638被用于在第二写入操作后使WOM字段632和634有效(例如恢复)。因此,根据WOM字段632和634的检索的内容的逻辑分析(例如以上关于表1所讨论的)做出使用哪个奇偶校验字段的选择,例如以便确定特定的存储器位置被写入一次还是两次。在1位错误事件中,在WOM字段632或奇偶校验字段636中,ECC编码的强度足以校正错误使得WOM字段632的正确数据是可恢复的。
解码操作608是WOM解码操作(如以上关于图3所讨论的)并可操作用于解码ECC编码的字的WOM编码的字以检索(例如,理想地)原始ECC编码的字。例如,解码操作608解码WOM编码的字620以(例如,理想地)检索在编码操作602中在WOM编码的字620内编码的原始数据。
图7是根据示例实施例的一种示例流程图。流程开始于端点702,其中流程进入操作710。在操作710中,接收用于存储在WOM装置中的数据字。例如,第一数据字包括被编码为至少2位的至少一个原始符号,并且与将被写入和从其读取的存储器地址相关。流程进入步骤720。
在操作720中,编码的第一阶段被应用到接收的数据字。编码的第一阶段是编码操作,其为ECC编码和WOM编码中的被选择的一个。流程进入步骤730。
在操作730中,编码的第二阶段被应用到接收的数据字。编码的第二阶段是编码操作,其为与ECC编码和WOM编码中的被选择的一个不同的另一操作。例如,当第一阶段操作是WOM编码操作时,第二阶段是ECC编码操作。当第一阶段操作是ECC编码操作时,第二阶段操作是WOM编码操作。流程进入步骤740。
在操作740中,两次编码的字(例如,其在阶段1和阶段2被编码,使得阶段1编码通过阶段2编码封装)被储存在WOM装置中。通常,WOM装置被块初始化(其中每个WOM位被设置或清零到同样的逻辑状态)并通过将位从块初始化状态改变到编程状态(其与块初始化状态相反)而被写入。如以上所讨论的,通过WOM编码的使用,特定的WOM存储器位置能被至少一次重写。流程进入步骤750。
在操作750中,检索、解码在WOM中存储的字,并且评估被解码的字。例如,当从WOM装置读取的WOM解码的符号和ECC位指示错误时,ECC控制器可操作用于响应于评估,执行校正动作(如校正位错误,生成系统中断,或用空闲存储位置取代WOM装置的缺陷位置)。流程进入端点799,此处流程结束。
在所描述的实施例中,修改是可能的,并且在权利要求的范围内,其它实施例是可能的。
Claims (19)
1.一种电路,其包含:
主机接口,其接收第一数据字,所述第一数据字包括具有至少两个位的至少一个原始符号;
纠错码控制器即ECC控制器,其对所述第一数据字的所述原始符号进行编码并且输出第一组ECC位,所述第一组ECC位对应于所述第一数据字的所述原始符号;
一次写入型存储器控制器即WOM控制器,其对所述第一数据字的所述原始符号和所述第一组ECC位进行编码并且输出第一WOM编码的字,其中所述第一WOM编码的字包括对应于所述第一数据字的所述原始符号的第一WOM码和对应于所述第一组ECC位的第二WOM码,其中所述第一WOM码包括至少三个位,其中所述至少三个位中的至少两个具有相同的逻辑值;以及
存储器装置接口,其将所述第一WOM编码的字写入WOM装置的第一地址。
2.根据权利要求1所述的电路,其中所述存储器装置接口通过改变所述WOM装置的编址字的选择位的块初始化状态,将所述第一WOM编码的字写入所述第一地址,其中,使用所述第一地址将所述编址字编址。
3.根据权利要求2所述的电路,其中所述块初始化状态是块擦除状态。
4.根据权利要求1所述的电路,其中所述主机接口接收第二数据字,所述第二数据字包括具有至少两个位的至少一个原始符号;
其中所述ECC控制器对所述第二数据字的所述原始符号进行编码并且输出第二组ECC位,所述第二组ECC位对应于所述第二数据字的所述原始符号;
其中所述WOM控制器对所述第二数据字的所述原始符号和所述第二组ECC位进行编码并且输出第二WOM编码的字,所述第二WOM编码的字包括对应于所述第二数据字的所述原始符号的第三WOM码和对应于所述第二组ECC位的第四WOM码,所述第三WOM码具有和所述第一WOM码相同数量的位;
其中所述存储器装置接口将所述第二WOM编码的字写入所述WOM装置的所述第一地址;并且
其中,当所述第二数据字的所述原始符号不同于所述第一数据字的所述原始符号时,所述第三WOM码等于其中至少两个位取反的所述第一WOM码,并且将所述第二WOM编码的字写入所述WOM装置的所述第一地址包括用所述第三WOM码重写所述第一WOM码。
5.根据权利要求4所述的电路,其中,当所述第二数据字的所述原始符号和所述第一数据字的所述原始符号相同时,所述第三WOM码和所述第一WOM码相同。
6.根据权利要求4所述的电路,其中,响应于所述主机接口接收针对所述第二数据字的读取请求,所述存储器装置接口从所述WOM装置的所述第一地址读取所述第二WOM编码的字;
其中所述WOM控制器对所述第二WOM编码的字进行解码并且输出第一WOM解码的字,所述第一WOM解码的字包括解码的符号和ECC位的解码组,所述解码的符号对应于所述第三WOM码的解码,所述ECC位的解码组对应于所述第四WOM码的解码;并且
其中所述ECC控制器评估所述解码的符号和所述ECC位的解码组以确定所述解码的符号是否匹配所述第二数据字的所述原始符号,并且当所述解码的符号不匹配所述第二数据字的所述原始符号时,采取校正动作以基于所述ECC位的解码组来校正所述解码的符号。
7.根据权利要求1所述的电路,其中所述ECC控制器根据Reed-Soloman编码方案即RS编码方案对所述第一数据字的所述原始符号进行编码。
8.根据权利要求1所述的电路,其中所述ECC控制器根据Bose-Chaudhuri-Hocquenghem编码方案即BCH编码方案对所述第一数据字的所述原始符号进行编码。
9.根据权利要求1所述的电路,其中所述WOM控制器使用重写一次写入的WOM存储的数据的WOM编码方案;
其中所述ECC控制器使用校正所述WOM存储的数据中的至少一个位错误的ECC编码方案;并且
其中所述WOM存储的数据的位的总数量比所述原始符号的位数量加上所述第一组ECC位的位数量多不超过50%的位;并且
其中所述WOM控制器针对被编码的每两个位输出三个位。
10.一种系统,其包含:
主机处理器,其发送第一数据字并且随后发送第二数据字,所述第一数据字包括具有至少两个位的第一符号,并且所述第二数据字包括具有至少两个位的第二符号,所述第一符号和所述第二符号具有相同数量的位;
一次写入型存储器装置即WOM装置,其通信耦合至所述主机处理器;
主机接口,其接收由所述主机处理器发送的数据字;
纠错码控制器即ECC控制器,其对接收的数据字中的符号进行编码并且输出对应于所述接收的数据字中的符号的ECC位;
WOM控制器,其对所述接收的数据字的所述符号和其对应的ECC位进行编码,并且输出对应的WOM编码的字;以及
存储器装置接口,其将所述WOM编码的字写入所述WOM装置;
其中,当所述主机接口接收所述第一数据字时:
所述ECC控制器对所述第一符号进行编码并且输出对应于所述第一符号的第一组ECC位,所述WOM控制器对所述第一符号和所述第一组ECC位进行编码并且输出第一WOM编码的字,所述第一WOM编码的字包括第一WOM码和第二WOM码,所述第一WOM码对应于所述第一符号并且包括至少三个位,所述第二WOM码对应于所述第一组ECC位,并且所述存储器装置接口将所述第一WOM编码的字写入所述WOM装置的第一地址;
其中,当所述主机接口随后接收所述第二数据字时:
所述ECC控制器对所述第二符号进行编码并且输出对应于所述第二符号的第二组ECC位,所述WOM控制器对所述第二符号和所述第二组ECC位进行编码并且输出第二WOM编码的字,所述第二WOM编码的字包括第三WOM码和第四WOM码,所述第三WOM码对应于所述第二符号并且具有与所述第一WOM码相同数量的位,所述第四WOM码对应于所述第二组ECC位,并且所述存储器装置接口将所述第二WOM编码的字写入所述WOM装置的第一地址;并且
其中当所述第二符号不同于所述第一符号时:
所述第三WOM码具有不同于所述第一WOM码的对应位的至少两个位并且将所述第二WOM编码的字写入所述WOM装置的所述第一地址包括用所述第三WOM码重写所述第一WOM码。
11.根据权利要求10所述的系统,其中,当所述第二符号和所述第一符号相同时,所述第三WOM码和所述第一WOM码相同。
12.根据权利要求10所述的系统,其中,响应于所述主机接口接收针对所述第二数据字的读取请求,所述存储器装置接口从所述WOM装置的所述第一地址读取所述第二WOM编码的字,所述WOM控制器对所述第二WOM编码的字进行解码并且输出第一WOM解码的字,所述第一WOM解码的字包括解码的符号和ECC位的解码组,所述解码的符号对应于所述第三WOM码的解码,所述ECC位的解码组对应于所述第四WOM码的解码;并且所述ECC控制器评估所述解码的符号和所述ECC位的解码组以确定所述解码的符号是否匹配所述第二符号,并且当所述解码的符号不匹配所述第二符号时,采取校正动作以基于所述ECC位的解码组来校正所述解码的符号。
13.一种方法,其包含:
接收第一数据字,所述第一数据字包括具有至少两个位的第一符号;
使用纠错码编码即ECC编码对所述第一符号进行编码并且产生对应于所述第一符号的第一组ECC位;
使用一次写入型存储器编码即WOM编码对所述第一符号和所述第一组ECC位进行编码并且输出第一WOM编码的字,所述第一WOM编码的字包括对应于所述第一符号的第一WOM码和对应于所述第一组ECC位的第二WOM码,其中所述第一WOM码包括至少三个位,其中所述至少三个位中的至少两个具有相同的逻辑值;以及
将所述第一WOM编码的字写入WOM装置的第一地址。
14.根据权利要求13所述的方法,其中将所述第一WOM编码的字写入所述第一地址包括改变对应于所述第一地址的所述WOM装置的选择位的块初始化状态。
15.根据权利要求14所述的方法,其中所述块初始化状态是块擦除状态。
16.根据权利要求13所述的方法,其包含:
接收第二数据字,所述第二数据字包括具有至少两个位的第二符号;
使用纠错码编码即ECC编码对所述第二符号进行编码并且产生对应于所述第二符号的第二组ECC位;
使用一次写入型存储器编码即WOM编码对所述第二符号和所述第二组ECC位进行编码并且输出第二WOM编码的字,所述第二WOM编码的字包括对应于所述第二符号的第三WOM码和对应于所述第二组ECC位的第四WOM码,其中所述第三WOM码具有与所述第一WOM码相同数量的位;以及
将所述第二WOM编码的字写入所述WOM装置的所述第一地址;
其中,当所述第二符号不同于所述第一符号时,所述第三WOM码具有不同于第一WOM码的对应位的至少两个位,并且将所述第二WOM编码的字写入所述WOM装置的所述第一地址包括用所述第三WOM码重写所述第一WOM码。
17.根据权利要求16所述的方法,其中,所述第二符号和所述第一符号相同,所述第三WOM码和所述第一WOM码相同。
18.根据权利要求13所述的方法,其中所述ECC编码根据Reed-Soloman编码方案即RS编码方案。
19.根据权利要求13所述的方法,其中所述ECC编码根据Bose-Chaudhuri-Hocquenghem编码方案即BCH编码方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110583253.6A CN113223601A (zh) | 2015-05-04 | 2016-05-04 | 一次写入型存储器码的纠错码管理的电路、系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/703,714 | 2015-05-04 | ||
US14/703,714 US9772899B2 (en) | 2015-05-04 | 2015-05-04 | Error correction code management of write-once memory codes |
PCT/US2016/030822 WO2016179309A1 (en) | 2015-05-04 | 2016-05-04 | Error correction code management of write-once memory codes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110583253.6A Division CN113223601A (zh) | 2015-05-04 | 2016-05-04 | 一次写入型存储器码的纠错码管理的电路、系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107710163A CN107710163A (zh) | 2018-02-16 |
CN107710163B true CN107710163B (zh) | 2021-06-18 |
Family
ID=57217974
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680035012.5A Active CN107710163B (zh) | 2015-05-04 | 2016-05-04 | 一次写入型存储器码的纠错码管理的电路、系统和方法 |
CN202110583253.6A Pending CN113223601A (zh) | 2015-05-04 | 2016-05-04 | 一次写入型存储器码的纠错码管理的电路、系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110583253.6A Pending CN113223601A (zh) | 2015-05-04 | 2016-05-04 | 一次写入型存储器码的纠错码管理的电路、系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9772899B2 (zh) |
JP (1) | JP6975047B2 (zh) |
CN (2) | CN107710163B (zh) |
WO (1) | WO2016179309A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9772899B2 (en) * | 2015-05-04 | 2017-09-26 | Texas Instruments Incorporated | Error correction code management of write-once memory codes |
DE102015113414B4 (de) * | 2015-08-14 | 2023-02-23 | Infineon Technologies Ag | Fehlerkorrektur unter Verwendung von WOM-Codes |
KR102645140B1 (ko) * | 2018-12-06 | 2024-03-07 | 삼성전자주식회사 | Fpga를 포함하는 메모리 시스템 및 이의 동작 방법 |
EP4060670A1 (en) * | 2021-03-18 | 2022-09-21 | Murata Manufacturing Co., Ltd. | Multiple time programmable memory using one time programmable memory and error correction codes |
TWI838137B (zh) * | 2023-02-23 | 2024-04-01 | 大陸商集創北方(珠海)科技有限公司 | 具寫入保護功能的燒寫控制電路、電子晶片以及資訊處理裝置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1141092A (zh) * | 1994-01-11 | 1997-01-22 | 先进Risc机器有限公司 | 数据存储器和处理器总线 |
CN1188964A (zh) * | 1997-01-15 | 1998-07-29 | 三星电子株式会社 | 具有纠错存储器的系统解码器及对其控制的方法 |
CN1491486A (zh) * | 2001-02-16 | 2004-04-21 | 汤姆森许可贸易公司 | 用于解码纠错码的方法和设备 |
CN1538298A (zh) * | 2003-04-17 | 2004-10-20 | 国际商业机器公司 | 计算机系统中的纠错方法和装置 |
CN1983424A (zh) * | 2005-12-12 | 2007-06-20 | 联发科技股份有限公司 | 错误校正装置及校正方法 |
CN101253485A (zh) * | 2005-08-30 | 2008-08-27 | 罗伯特·博世有限公司 | 存储装置及其运行方法 |
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN102339648A (zh) * | 2010-07-23 | 2012-02-01 | 北京兆易创新科技有限公司 | 一种检错/纠错校验模块的检测方法及装置 |
CN103137215A (zh) * | 2011-11-23 | 2013-06-05 | 马维尔国际贸易有限公司 | 向存储器提供低延时错误纠正码能力 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751769B2 (en) * | 2000-06-06 | 2004-06-15 | International Business Machines Corporation | (146,130) error correction code utilizing address information |
WO2002050840A2 (en) * | 2000-12-20 | 2002-06-27 | Koninklijke Philips Electronics N.V. | Data processing device with a write once memory (wom) |
US6901549B2 (en) * | 2001-12-14 | 2005-05-31 | Matrix Semiconductor, Inc. | Method for altering a word stored in a write-once memory device |
US8245094B2 (en) * | 2007-11-20 | 2012-08-14 | California Institute of Technology Texas A & M | Rank modulation for flash memories |
US8341501B2 (en) * | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
WO2012020278A1 (en) * | 2010-08-13 | 2012-02-16 | Sandisk Il Ltd. | Data coding using divisions of memory cell states |
US8780620B2 (en) * | 2010-09-20 | 2014-07-15 | The Texas A&M University | Information representation and coding for nonvolatile memories |
US8645789B2 (en) * | 2011-12-22 | 2014-02-04 | Sandisk Technologies Inc. | Multi-phase ECC encoding using algebraic codes |
WO2013134735A1 (en) * | 2012-03-08 | 2013-09-12 | California Institute Of Technology | Rank-modulation rewriting codes for flash memories |
US9230652B2 (en) * | 2012-03-08 | 2016-01-05 | California Institute Of Technology | Flash memories using minimum push up, multi-cell and multi-permutation schemes for data storage |
US8914570B2 (en) * | 2012-05-04 | 2014-12-16 | International Business Machines Corporation | Selective write-once-memory encoding in a flash based disk cache memory |
WO2014051611A1 (en) | 2012-09-28 | 2014-04-03 | Duke University | Systems for and methods of extending lifetime of non-volatile memory |
US9946475B2 (en) * | 2013-01-24 | 2018-04-17 | California Institute Of Technology | Joint rewriting and error correction in write-once memories |
KR102068519B1 (ko) * | 2013-07-01 | 2020-01-21 | 삼성전자주식회사 | 저장 장치, 그것의 쓰기 방법 및 읽기 방법 |
WO2016123590A1 (en) * | 2015-01-30 | 2016-08-04 | California Institute Of Technology | Rewriting flash memories by message passing |
US9772899B2 (en) * | 2015-05-04 | 2017-09-26 | Texas Instruments Incorporated | Error correction code management of write-once memory codes |
-
2015
- 2015-05-04 US US14/703,714 patent/US9772899B2/en active Active
-
2016
- 2016-05-04 CN CN201680035012.5A patent/CN107710163B/zh active Active
- 2016-05-04 CN CN202110583253.6A patent/CN113223601A/zh active Pending
- 2016-05-04 WO PCT/US2016/030822 patent/WO2016179309A1/en active Application Filing
- 2016-05-04 JP JP2017557908A patent/JP6975047B2/ja active Active
-
2017
- 2017-08-16 US US15/678,315 patent/US10191801B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1141092A (zh) * | 1994-01-11 | 1997-01-22 | 先进Risc机器有限公司 | 数据存储器和处理器总线 |
CN1188964A (zh) * | 1997-01-15 | 1998-07-29 | 三星电子株式会社 | 具有纠错存储器的系统解码器及对其控制的方法 |
CN1491486A (zh) * | 2001-02-16 | 2004-04-21 | 汤姆森许可贸易公司 | 用于解码纠错码的方法和设备 |
CN1538298A (zh) * | 2003-04-17 | 2004-10-20 | 国际商业机器公司 | 计算机系统中的纠错方法和装置 |
CN101253485A (zh) * | 2005-08-30 | 2008-08-27 | 罗伯特·博世有限公司 | 存储装置及其运行方法 |
CN1983424A (zh) * | 2005-12-12 | 2007-06-20 | 联发科技股份有限公司 | 错误校正装置及校正方法 |
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN102339648A (zh) * | 2010-07-23 | 2012-02-01 | 北京兆易创新科技有限公司 | 一种检错/纠错校验模块的检测方法及装置 |
CN103137215A (zh) * | 2011-11-23 | 2013-06-05 | 马维尔国际贸易有限公司 | 向存储器提供低延时错误纠正码能力 |
Also Published As
Publication number | Publication date |
---|---|
US20160328289A1 (en) | 2016-11-10 |
JP2018520410A (ja) | 2018-07-26 |
US9772899B2 (en) | 2017-09-26 |
WO2016179309A1 (en) | 2016-11-10 |
US20180011757A1 (en) | 2018-01-11 |
CN113223601A (zh) | 2021-08-06 |
US10191801B2 (en) | 2019-01-29 |
CN107710163A (zh) | 2018-02-16 |
JP6975047B2 (ja) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9673840B2 (en) | Turbo product codes for NAND flash | |
US8769374B2 (en) | Multi-write endurance and error control coding of non-volatile memories | |
KR100845529B1 (ko) | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 | |
CN107710163B (zh) | 一次写入型存储器码的纠错码管理的电路、系统和方法 | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
CN106201763B (zh) | 双模式纠错码/可写入一次存储器编解码器 | |
US8732553B2 (en) | Memory system and control method thereof | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US11003529B2 (en) | Encoding method and memory storage apparatus using the same | |
KR20220045343A (ko) | 데이터 처리 시스템 내 데이터 전송에서 발생한 에러를 정정하는 장치 및 방법 | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US10649841B2 (en) | Supporting multiple page lengths with unique error correction coding via galois field dimension folding | |
CN110716824B (zh) | 编码方法及使用所述编码方法的存储器存储装置 | |
US9954556B2 (en) | Scheme to avoid miscorrection for turbo product codes | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
JP2021033530A (ja) | メモリシステム | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111406282B (zh) | 一种用于存储设备的存储器控制电路 | |
KR102696725B1 (ko) | Nand 플래시용 터보 프로덕트 코드 | |
JP2007179480A (ja) | メモリコントローラおよびフラッシュメモリシステム |
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 |