WO2022185091A1 - Methods and systems for reducing ecc power consumption - Google Patents
Methods and systems for reducing ecc power consumption Download PDFInfo
- Publication number
- WO2022185091A1 WO2022185091A1 PCT/IB2021/020011 IB2021020011W WO2022185091A1 WO 2022185091 A1 WO2022185091 A1 WO 2022185091A1 IB 2021020011 W IB2021020011 W IB 2021020011W WO 2022185091 A1 WO2022185091 A1 WO 2022185091A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ecc
- correction capability
- errors
- syndrome
- memory
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present disclosure relates generally to the management and operation of an array of memory cells, and more particularly to methods and systems for improving the performances of memories having Error Correction Code (ECC) protection in order to reduce ECC power consumption.
- ECC Error Correction Code
- Memory devices are used in many electronic systems such as mobile phones, personal digital assistants, laptop computers, digital cameras and the like.
- Various types of memories are used in memory devices, including random access memory (RAM), read only memory (ROM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), flash memory, phase change memory (PCM), and others.
- RAM random access memory
- ROM read only memory
- DRAM dynamic RAM
- SDRAM synchronous dynamic RAM
- FeRAM ferroelectric RAM
- MRAM magnetic RAM
- RRAM resistive RAM
- flash memory phase change memory
- PCM phase change memory
- Memory devices may be volatile or non-volatile. Nonvolatile memories retain their contents when power is switched off, making them good choices in memory devices for storing information that is to be retrieved after a system power-cycle. In particular, non-volatile memory cells may maintain their stored logic state for extended periods of time even in the absence of an external power source.
- the information is stored by programming different states of a memory device.
- binary devices have two states, often denoted by a logic “1” or a logic “0.” In other systems, more than two states may be stored.
- a component of the memory device may read, or sense, the stored state.
- a component of the memory device may write, or program, the logic state.
- Improving memory devices may include increasing memory cell density, increasing read/ write speed, increasing reliability, increasing data retention, reducing manufacturing costs, scaling smaller than traditional devices, as well as reducing power consumption.
- ECC Error Correction Code
- Figure 1 is a schematic block diagram of a system comprising a memory device that may be operated according to the present disclosure
- Figure 2 is an example of user data pattern encoded according to embodiments of the present disclosure
- Figure 3 shows an example of a codeword subjected to techniques according to the present disclosure
- Figure 4 is a schematic block diagram of an operating circuit for managing Error Correction Code (ECC) operation in a memory device according to an embodiment of the present disclosure
- Figure 5A is an example of a selection of ECC correction capabilities and related circuit portions according to an embodiment to the present disclosure
- Figure 5B is a table listing an estimated power consumption of an ECC engine according to the embodiment of Figure 5A;
- Figure 6A is an example of a selection of ECC correction capabilities and related circuit portions according to another embodiment to the present disclosure;
- Figure 6B is a table listing an estimated power consumption of an ECC engine according to the embodiment of Figure 6A.
- Figure 7 is a flow diagram of steps of a method according to an embodiment of the present disclosure.
- Nonvolatile memories retain their contents when power is switched off, making them good choices for storing information that is to be retrieved after a system power-cycle.
- a Flash memory is a type of nonvolatile memory that retains stored data and is characterized by a very fast access time. Moreover, it can be erased in blocks instead of one byte at a time.
- Each erasable block of memory comprises a plurality of nonvolatile memory cells arranged in a matrix of rows and columns. Each cell is coupled to an access line and/or a data line. The cells are programmed and erased by manipulating the voltages on the access and data lines. Access circuitry can differentiate between different logic states of a memory cell.
- the access circuitry applies a voltage pulse with a particular magnitude and polarity to access lines, which results in an electrical response that dedicated sense circuitry can detect.
- Detecting electrical responses can include, for example, detecting one or more of a voltage drop (e.g., a threshold voltage) across terminals of a given memory cell of the array, current through the given memory cell, and a threshold event of the given memory cell.
- a voltage drop e.g., a threshold voltage
- Coupled can refer to elements that are physically, electrically, and / or communicatively connected either directly or indirectly, and may be used interchangeably with the term “connected” herein.
- Physical coupling can include direct contact.
- Electrical coupling includes an interface or interconnection that allows electrical flow and/or signaling between components.
- Communicative coupling includes connections, including wired and wireless connections, that enable components to exchange data.
- Figure 1 is a schematic high-level block diagram of a system 1000 comprising a memory device 100 according to an exemplary embodiment of the present disclosure, this memory device 100 being arranged, programmed and configured to perform the ECC techniques disclosed below and having dedicated ECC circuit portions.
- the memory device 100 can be a solid-state drive (SSD), for instance, and can include a memory section 101, a controller 102, and a host interface 103.
- the memory section 101 is not limited to a particular architecture and can include different types of memories.
- the controller 102 may be coupled to the host interface 103 and to the memory section 101 via a plurality of channels and can be used to transfer data between the memory section 101 and a host 110.
- the host interface 103 can be in the form of a standardized interface.
- the host interface 103 can be a serial advanced technology attachment (SATA), peripheral component interconnect express (PCIe), or a universal serial bus (USB), among other connectors and interfaces.
- SATA serial advanced technology attachment
- PCIe peripheral component interconnect express
- USB universal serial bus
- the host interface 103 can provide an interface for passing control, address, data, and other signals between the memory device 100 and the host 110.
- the controller 102 can include an embedded firmware and is adapted to internally manage and control the operation of the memory section 101.
- the controller 102 can communicate with the memory section 101 to control data read, write, and erase operations, among other operations.
- the controller 102 can include a number of components in the form of hardware and/or firmware (e.g., one or more integrated circuits) and/or software for controlling access to the memory section 101 and/or for facilitating data transfer between the host 110 and said memory section 101.
- the memory controller 102 thus represents control logic of the device, for example acting in response to command by the host 110 (which may generally be an external managing system of the non-volatile memory). As will be disclosed in the following, in one embodiment, the memory controller 102 can also be implemented in the host 110, in particular as part of a host processor 110’, even if the present disclosure is not limited by a particular architecture.
- the memory controller 102 may receive user data through input/ output IO.
- Multiple signal lines couple the memory controller 102 with the memory section 101.
- signal lines may include clock, command/ address and write data (DQ), read DQ, and zero or more other signal lines.
- the memory controller 102 may thus be operatively coupled to the memory section 101 via suitable buses.
- the memory device 100 can also comprise other components (not shown) such as processor units coupled to the controller 102, antennas, further connection means with the host device 110, and the like. In any case, the present disclosure is not limited by a specific configuration of the memory device 100.
- the controller 102 can also include its own memory section (not shown) operatively coupled with other units thereof. In any case, the present disclosure is not limited by a particular configuration of the controller 102.
- the memory device 100 may be a portable device configured to be coupled to the host device 110. However, in other embodiments not shown in the drawings, the memory device 100 can also be embedded within one or more host devices.
- the host 110 may be for example a personal computer, a tablet, a smartphone, a server or the like.
- the host 110 can include a system motherboard and/or backplane and can include a number of memory access devices (e.g., a number of processors).
- the controller 102 includes an Error Correction Code (ECC) unit 104, also referred to as ECC engine, which is structured and configured to operate according to techniques as described in the following.
- ECC Error Correction Code
- the ECC unit 104 can include error correction circuits and logics to detect and correct a number of bit errors, according to embodiments of the present disclosure.
- the ECC unit 104 is not limited to circuitry (e.g., hardware) implementations.
- the ECC unit 104 can be implemented in firmware, and/or software.
- the ECC unit 104 can be embodied by discrete components such as an application specific integrated circuit (ASIC) or by components that reflect functionally provided by circuitry within the controller 102 that does not necessarily have a discrete physical form separate from other portions of the controller 102. Although illustrated as components within the controller 102, the ECC unit 104 can be external to the controller 102 or can have a number of components located within the controller 102 and a number of components located external to the controller 102, wherein the present disclosure is not limited by a specific hardware architecture.
- the ECC unit 104 can include separate encoding and decoding components, in a number of embodiments.
- the memory device 100 thus comprises an operating unit (or operating circuit), indicated as 104, which is an ECC engine (which in turn may be coupled to the controller 102).
- the error detection/ correction circuitry of the ECC unit 104 can include hardware logic to implement an ECC to detect errors occurring in data read from memory section 101.
- error detection/ correction circuitry also corrects errors (up to a certain error rate based on the implemented ECC code).
- the memory section 101 of the memory device 100 can be a flash memory including an array of memory cells, for example a NAND memory, NOR memory, AND memory, and the like. Additionally or alternatively, memory section 101 may comprise bit alterable memory cells; for example, Phase Change Memory (PCM), Ferroelectric Memory (FeRAM), Magnetic Memory (MRAM), chalcogenide-based Self Selecting Memory (SSM), etc. Any kind of memory may be employed in embodiments of the present disclosure. For example, the disclosure applies to either or both non volatile and volatile memories.
- PCM Phase Change Memory
- FeRAM Ferroelectric Memory
- MRAM Magnetic Memory
- SSM chalcogenide-based Self Selecting Memory
- the memory section 101 may comprise an array of memory cells 101’.
- Non-volatile memories may comprise a plurality of blocks, each block being indicated herein with the reference number 101” and comprising a defined number of pages. For the sake of simplicity, only four blocks 101” are shown in the example of figure 1.
- the memory section 101 represents the memory resource for the memory device 100.
- the array of memory cells 101’ is managed as rows of data, accessed via wordline (rows) and bitline (individual bits within a row) control.
- the array of memory cells 101’ can be organized as separate channels, ranks, and banks of memory, in general in a plurality of portions, as previously disclosed. Channels are independent control paths to storage locations within memory section. Ranks refer to common locations across multiple memory devices (e.g., same row addresses within different devices). Banks refer to arrays of memory locations within a memory device. In one embodiment, banks of memory are divided into sub-banks with at least a portion of shared circuitry (e.g., drivers, signal lines, control logic) for the sub banks.
- shared circuitry e.g., drivers, signal lines, control logic
- channels, ranks, banks, or other organizations of the memory locations, and combinations of the organizations can overlap physical resources.
- the same physical memory locations can be accessed over a specific channel as a specific bank, which can also belong to a rank.
- the organization of memory resources will be understood in an inclusive, rather than exclusive, manner.
- the array of memory cells 100’ may be subdivided into a plurality portions, such as a page, a single block, a group of blocks, or even all blocks (i.e., all the cells), the invention not being limited thereto.
- the memory cells can thus be grouped, for instance, into a number of blocks including a number of physical pages.
- a number of blocks can be included in a plane of memory cells and an array can include a number of planes.
- Embodiments are not limited to a particular type of memory array or array architecture and the techniques of the present disclosure may be applied to several memory technologies (e.g., planar, cross-point, 3D, etc.).
- Memory section 101 may also comprise a further circuit 105 operatively coupled to the array of memory cells 101’.
- the circuit 105 includes access circuitry and sense circuitry to detect electrical responses of the one or more memory cells to an applied read voltage.
- the sense circuitry includes sense amplifiers.
- Figure 1 illustrates the circuit 105 as being embedded in the memory section 101; however, other embodiments can include access circuitry and/or sense circuitry that is separate from the memory section 101.
- access circuitry and sense circuitry can be included in a memory controller such as the memory controller 102.
- the memory device 100 in particular the array of memory cells 101’ of the memory section 101, may comprise a non-volatile region 107 apt to store operating information, for example for the management of the memory array according to embodiments disclosed in the following.
- the memory device 100 may also comprise a sensing unit 108 comprising one or more sensors operatively coupled to the memory section 101 and optionally to the controller 102.
- the sensing unit 108 may be configured to detect a status (e.g., the temperature) of the array of memory cells 101’ or of a portion thereof.
- the particular architecture of the memory device 100 may vary according to the needs and/or circumstances without limiting the scope of the present disclosure.
- the host 110 and the memory device 100 may form the system 1000.
- the host device 110 is a computing device in accordance with any embodiment described herein, and can be a laptop computer, a desktop computer, a server, a gaming or entertainment control system, a scanner, copier, printer, routing or switching device, embedded computing device, or other electronic device such as a smartphone.
- the host 110 may generally be a system managing the memory section 101, which may be embedded in said system or generally managed by said system.
- the memory device 100 may thus be managed by an external controller, i.e., the controller embedded in the processor 110’ of the host 110, as previously disclosed, so that the ECC unit may also be included in said external controller. In this case, the controller of the memory device may not be present and the memory device 100 (which may be embedded in the host 110) communicates the required information to the external controller.
- the system 1000 includes an interface 1010 coupled to the processor 110’, which can represent a higher speed interface or a high throughput interface for system components that needs higher bandwidth connections, and / or graphics interface components.
- Graphics interface interfaces to graphics components for providing a visual display to a user of system 1000.
- graphics interface generates a display based on data stored in the memory device or based on operations executed by processor or both.
- the system may also comprise network interface 1020 communicatively coupled to the host or to memory device for example for connecting with other systems, and/or a battery coupled to provide power to said system.
- the ECC unit 104 may be configured to perform an ECC operation (detection and/or correction of errors) with a certain error correction capability on a codeword stored in the memory section 101, wherein the codeword includes a certain number of parity bits, as it will be disclosed in the following.
- the ECC correction capability may vary on the fly for a given memory portion depending on the number of errors.
- Figure 2 illustrates an exemplary user data pattern diagram 201.
- the user data pattern diagram 201 includes user data 210a and encoded user data 215a.
- Encoding process 220a which is performed in the programming phase of the array of memory cells, may convert the user data 210a (Ul, ..., Um) into the encoded user data 215a (El, ..., En).
- the encoded user data 215a may be stored in a set of memory cells, which may be, for example, memory cells of the memory section 101 of figure 1.
- Each box of the encoded user data 215a may correspond to a memory cell that may exhibit a logic state of 1 or a logic state of 0.
- a number of parity bits may be added to the user data (or payload) 210a.
- a number of bits in the encoded user data 215a may be greater than the number of bits in the user data 210a (e.g., n is larger than m if some bits, e.g., parity bits, are added).
- Process 225 may convert the encoded user data 215a back to the user data 210a after the encoded user data 215a have been accurately read.
- the plurality of encoded bits to be read represents a codeword (CW).
- the codeword may be programmed to include various information to be used during the reading phase.
- ECC-related information In order to keep a smooth and simple description, in the following reference will be made to ECC-related information only. It is understood that the additional bits may also include not strictly ECC-related information, though. Examples may include encryption bits, scrambling bits, bits for balanced or quasi-balanced codes (e.g., to achieve a predefined percentage, or within a percentage range, of bits in a given logic state, such as 50% of Is or Os), and/or other purpose additional bits.
- the Bit Error Rate (BER) associated with the data stored in the array or in a portion thereof is not constant.
- ECC3 may require more power than ECC2 or ECC1 circuitry in the same conditions (wherein ECC3 may be an error correction code with correction capability of 3 bits, ECC2 may be an error correction code with correction capability of 2 bits, and ECC1 may an error correction code with correction capability of 1 bit, in some examples).
- an ECC circuit is capable to calculate the number of errors in a codeword and to adapt on the fly (e.g., based on the error number calculation) its correction power to the number of detected errors.
- the ECC circuit can be implemented in independent circuit portions or blocks, each block having a different correction power, wherein ECC correction power to be applied is not selected a priori.
- the present disclosure provides a technique to precisely define the ECC correction capability (or ECC protection level) to be applied to the cells of a memory array according to the number of errors detected.
- a codeword is generated (e.g., as in process 220a) by manipulating the user data bits and adding a number of parity bits, the number of added parity bits being a fixed number corresponding to a defined maximum ECC correction capability.
- an ECC syndrome is then produced from the encoded set of user and parity data, for instance by means of the ECC unit 104 of figure 1.
- the ECC syndrome changes depending on the presence and location of errors. When errors are detected, the ECC unit 104 is able to correct said errors up to and according to the implemented correction capability. In some cases, the presence of an uncorrectable error (e.g., in excess of the maximum correction capability and the location of which is unknown) may be reported.
- the codeword is accessed and decoded according to a selected ECC scheme.
- An ECC engine (implemented in hardware, for example) with a given maximum correction capability may operate at different correction capabilities each requiring a corresponding circuitry and power consumption.
- Figure 3 shows an example of a codeword 300 comprising a first codeword portion 301 corresponding to the payload (thus including encoded user data), and a second codeword portion 302 corresponding to the parity data. It is noted that such a distinction may be somehow arbitrary; as a matter of fact, an encoding process (such as process 220a in Figure 2) may combine and mix the user data and the parity data so that the codeword as a whole should be considered.
- the parity data include parity bits stored in parity cells denoted as Pi, P3 and P5.
- a number of bits to calculate syndrome Si (corresponding to ECC1), syndrome S3 (corresponding to ECC2) and syndrome S5 (corresponding to ECC3) is stored - syndrome calculation and use will be described in further detail below.
- a single block of the codeword portion 302 does not necessary correspond to a single cell and may also corresponds to a group of cells, e.g., it generally represents the number of bits to calculate the syndrome for a corresponding ECC correction capability.
- Fig. 3 e.g., ECC1, ECC2 and ECC3
- any number may be conceived.
- embodiments with higher (e.g., N>3) error correction capability are possible.
- user data are stored in a plurality of memory cells of the memory array, as well as parity data associated with the user data are stored in a number of parity cells, wherein the parity data (whose number is predetermined, in some embodiment) allow the selection of a plurality of Error Correction Code (ECC) correction capabilities up to maximum ECC correction capability (corresponding to the total number of stored parity data).
- ECC Error Correction Code
- the ECC engine when considered in its entirety, has a defined maximum error correction capability, e.g., protection level; however, it may advantageously also be operated to an inferior error correction capability corresponding to the number of calculated errors on a case-by-case operation, by activating only dedicated circuit portions, in some examples. This leads to an on-the-fly ECC power optimization, creating a decoder that is configured to enable only the mandatory logic.
- the present disclosure provides calculating an ECC syndrome from the stored user data and parity data and checking if the syndrome is different from zero. Then, based on the calculated ECC syndrome, if errors are detected, a number of errors in the data is determined, and finally an ECC correction capability of the plurality of ECC correction capabilities is selected based on said determined number of errors.
- FIG 4 is a schematic block diagram of an operating circuit 401 for managing Error Correction Code (ECC) operation in a memory device 400 according to an embodiment of the present disclosure.
- a memory device 400 (which may correspond to memory device 100 of Figure 1) comprises an operating circuit 401 for managing the operation of an array of memory cells 400’, which may correspond to array 101’ of figure 1.
- the operating circuit 401 may be part of a controller of the device, such as controller 102 of Figure 1, or may be external to the controller, or can have a number of components located within the controller and a number of components located external to the controller, wherein the present disclosure is not limited by a specific hardware architecture.
- the operating circuit 401 (which may correspond to ECC unit 104 of figure 1, in some examples) can include error correction circuitry and logics to detect and correct a number of bit errors (up to a certain error rate based on the implemented ECC code), according to embodiments of the present disclosure.
- the operating circuit 401 can be embodied by discrete components such as an application specific integrated circuit or by components that reflect functionally provided by circuitry within the controller that does not necessarily have a discrete physical form separate from other portions of the controller. Therefore, in the present disclosure, the term “operating circuit” is used in a general and nonlimiting way.
- the operating circuit 401 can include separate encoding and decoding components, in a number of embodiments. More in particular, as shown in Figure 4, the operating circuit 401 comprises an encoding unit 402 configured to generate a codeword according to encoding schemes.
- the codeword may comprise payload data stored in a plurality of memory cells and parity data associated with the payload data stored in parity cells, as shown with reference to the codeword 300 of figure 3.
- the operating circuit 401 further comprises a decoding unit 403 configured to perform an ECC operation (such as bit error detection and/or correction) on the stored codeword based on a selected ECC correction capability, e.g., based on an actual number of errors to be corrected. Therefore, the operating circuit 401 is able to generate a codeword comprising payload data and parity data via the encoding unit 402 and to process said codeword via the decoding unit 403.
- the encoding unit 402 and the decoding unit 403 may be operatively connected to each other and to the array 400’.
- the decoding unit 403 may comprise a syndrome generating unit 410 configured to generate an ECC syndrome from the parity data stored in the input codeword.
- the decoding unit 403 may comprise an error unit 420 which is activated when errors are detected and is configured to account for the number of errors contained in the codeword.
- the decoding unit 403 may further comprise a syndrome decoding unit 430 configured to process the syndrome and to perform a corresponding ECC operation on the stored data.
- the memory device 400 comprises a plurality of circuit portions, each circuit portion being configured to perform a specific ECC operation on the stored data and being selectively activable by the operating circuit according to the required correction, e.g., based on the detected number of errors.
- the selection of an ECC protection level or correction capability involves selectively activating a circuit portion of the plurality of circuit portions.
- the circuit portions form the syndrome decoding unit 430.
- circuit portions is used in a general and nonlimiting way and may be embodied in several ways.
- the circuit portions may be activable alone or in groups, in some examples.
- the operating circuit is configured to selectively disable circuit portions relating to unselected ECC correction capabilities.
- the present disclosure provides techniques to optimize the ECC operation in order to reduce power consumption .
- a plurality of circuit portions 530’-530”’ comprises a single specific circuit portion for each single specific selectable ECC correction capability or protection level.
- different and separate circuit portions for each different selectable ECC correction capability are therefore used in the decoding unit.
- An output of the selectively activated circuit portion may be selectively enabled based on the determined number of errors, for example, by a selector element - such as a multiplexer - in decoding unit 403 (not shown).
- the selector may simultaneously disable respective outputs of circuit portions in the plurality of circuit portions that have not been selected/ activated.
- a codeword CW is stored in an array 500’ (which may correspond to array 400’ of figure 4).
- an error may occur, this error being denoted as “e” in figure 5A.
- the codeword CW is then fed as an input to decoding unit 503 (which may correspond to decoding unit 403 of figure 4).
- decoding unit 503 which may correspond to decoding unit 403 of figure 4.
- a syndrome is generated by syndrome generating unit 510 (which may correspond to syndrome generating unit 410 of figure 4), and then, if an error is detected, the error number is calculated by error unit 520 (which may correspond to the error unit 420 of figure 4).
- the error unit 520 is activated by a logic unit 540 configured to enable said error unit 520 in case errors are detected (e.g., when at least one value of the ECC syndrome is different from zero).
- Syndrome decoding unit 530 (which may correspond to the syndrome decoding unit 430 of figure 4) is then apt to receive and process the codeword CW and to execute an ECC operation according to the techniques of the present disclosure, so that a corrected codeword is output.
- the syndrome decoding unit 530 comprises a specific circuit portion for each single specific selectable ECC correction capability (e.g., one circuit portion for ECC1, denoted as 530’, one circuit portion for ECC2, denoted as 530”, and one circuit portion for ECC3, denoted as 530”’). Therefore, in this embodiment, ECC hardware specialized for a single ECC correction capability is provided, and only the ECC block specialized for correcting the determined error number is enabled. In other words, in the embodiment of figure 5A, the operating circuit (in particular the syndrome decoding unit 530) is configured to selectively activate one of said specific circuit portions based on the determined number of bit errors for each single specific selectable ECC correction capability.
- the decoding unit 503 comprises selector element 550 coupled to each ECC circuit portion 530’ (active for ECC1), 530” (active for ECC2) and 530”’ (active for ECC3). Based on the determined number of errors, selector element 550, is configured to selectively enable the output of the only one circuit portion 530’, 530” or 530”’ that has been activated to correct the detected error(s) or allow output of uncorrected data in case of no detected error. In other words, using selector 550, it is possible to selectively enable an output of the selectively activated circuit portion of the plurality of circuit portions based on the determined number of errors. The selector may simultaneously disable respective outputs of circuit portions in the plurality of circuit portions that have not been activated. Selector element 550 may be a multiplexer, in some examples.
- the operating circuit is configured to selectively disable circuit portions whose correction capability does not match the determined number of errors.
- circuit portions having correction capability not corresponding to the determined number of errors e.g., a higher ECC correction capability may be disabled, so as to reduce power consumption.
- Figure 5B is a table listing an estimated power consumption of an ECC engine according to the embodiment of Figure 5A. This consumption is then compared with consumption of standard technologies in which the highest correction power is always used, e.g., independently of the number of detected errors.
- first column 500a lists the ECC components involved, i.e., the error unit 520 and circuit portions with different correction powers, 530’, 530” and 530”’. The case in which no errors are detected is also listed. Syndrome generating unit 510 is operating in all cases, e.g., independently of if and how many errors are detected, so it is not reported in Figure 5B.
- Second column 500b lists the power consumption of the different types of block scaled to the power consumption of circuit portion 530”’ that has the maximum power consumption, identified as “100”.
- the circuit portion 530 if present, when activated typically consumes half of the circuit portion 530”’ and thus its power consumption is evaluated as “50”; the circuit portion 530’, if present, when activated typically consumes a quarter of the circuit portion 530”’ and thus its power consumption is evaluated as “25”; if no errors are detected in the codeword, no circuit portion is activated, and the power consumption is evaluated as “0”.
- the error unit 520 (when it is operated) typically consumes about 5% of the consumption of circuit portion 530”’ and the power consumption is evaluated as “5”.
- the third column 500c lists the probability to use the components listed in the first column 500a in the case of a state-of-the-art ECC implementation, i.e., when only the circuit portion 530”’ with the highest correction power is implemented and used. Supposing that the probability to have one error is 1%, that the probability to have two errors is 0.01%, that the probability to have three errors is 0.0001% and that the probability to have more than three errors can be neglected, in 1.0101% of cases one or more errors are present and, correspondingly, the error unit 520 and the circuit portion 530”’ are used (the other circuit portions, namely 530’ and 530”, are not present in this case).
- the fourth column 500d lists the weighted power consumption when only the circuit portion 530’” with the highest correction power is implemented and used for the correction of all the errors of the codeword, i.e., the row-by-row product of the second 500b and third 500c columns.
- the last row is the sum of the weighted power consumptions in the rows above, e.g., it reports the estimated average power consumption according to the state-of-the-art solutions.
- the fifth column 500e lists the probability to use each component listed in the first column 500a in the case of optimized ECC implementation when the activation of a circuit portion is selected on the basis of the number of calculated errors, according to the embodiment of figure 5A. Supposing that the probability to have one error is 1%, according to the present disclosure in the 1% of the cases the circuit portion 530’ is activated. Supposing that the probability to have two errors is 0.01%, according to the present disclosure in the 0.01% of the cases the circuit portion 530” is activated. Supposing that the probability to have three errors is 0.0001%, according to the present disclosure in the 0.0001% of the cases the circuit portion 530”’ is activated.
- the probability to have zero errors is 98.9899%, and in all these cases none of circuit portions 530’, 530” and 530” is used.
- the error unit 520 is used whenever at least one error is present, e.g., in 1.0101% of the cases.
- the sixth column 500f lists the weighted power consumption according to the present disclosure.
- the row-by-row product of the second 500b and fifth 500e columns is reported and the last row is the sum of the weighted power consumptions in the rows above, e.g., it reports the estimated average power consumption according to the disclosure.
- the operating circuit may comprise a circuit portion configured to handle more than one ECC correction capability or protection level; more specifically, in this embodiment, at least one circuit portion is selectively activable for managing at least two ECC correction capabilities.
- ECC correction capability e.g., ECC2 for correcting two errors
- a related circuit portion is activated, this circuit portion being configured to handle a plurality of ECC correction capabilities comprising the selected ECC protection level (ECC2, in this example) and at least one higher ECC correction capability (ECC3, for example).
- ECC2 ECC protection level
- ECC3 ECC correction capability
- the operating circuit is configured to selectively activate a circuit portion for applying a first ECC correction capability and at least one higher ECC correction capability, said ECC correction capabilities corresponding to respective determined error numbers.
- a codeword CW is stored in an array 600’ (which may correspond to array 400’ of figure 4).
- an error may occur, this error being denoted as “e” in figure 6A.
- the codeword CW is then fed as an input to decoding unit 603 (which may correspond to decoding unit 403 of figure 4).
- decoding unit 603 which may correspond to decoding unit 403 of figure 4.
- a syndrome is generated by syndrome generating unit 610 (which may correspond to syndrome generating unit 410 of figure 4), and then, if an error is detected, the error number is determined by error unit 620 (which may correspond to the error unit 420 of figure 4).
- Syndrome decoding unit 630 (which may correspond to the syndrome decoding unit 430 of figure 4) is then apt to receive and process the codeword CW and to apply an ECC operation according to the techniques of the present disclosure, so that a corrected codeword is output. If the calculated syndrome of the codeword is zero, there are not errors in the corresponding codeword, which is transmitted as output without further processing.
- the error unit 620 is activated by a logic unit 640 configured to enable said error unit 620 in case errors are detected (e.g., when the ECC syndrome is different from allO, that is different form zero).
- the syndrome decoding unit 630 comprises a circuit portion 630’ for managing ECC1, and a circuit portion 630”’ for managing both ECC2 and ECC3. Therefore, in this embodiment, the circuit portion 630’ of the syndrome decoder is apt to handle 1 error case and the circuit portion 630”’ is apt to handle 2 or 3 errors case, so that only one ECC1 block is added on top of the ECC3 block.
- an ECC correction capability selection comprises selectively activating a circuit portion (such as circuit portion 630”’) for managing at least two ECC correction capabilities, said circuit portion being selectively activable for applying a first ECC correction capability (ECC2 in this example) and at least one higher ECC correction capability (ECC3 in this example) .
- the decoding unit 603 comprises selector element 650 coupled to each ECC circuit portion 630’ (active for ECC1) and 630”’ (active for ECC2 and ECC3). Based on the determined number of errors, selector element 650, is configured to selectively enable the output of the only one circuit portion 630’ or 630”’ that has been activated to correct the detected error or errors, or allow output of uncorrected data in case of no detected error. In other words, using selector 650, it is possible to selectively enable an output of the selectively activated circuit portion of the plurality of circuit portions based on the determined number of errors. The selector may simultaneously disable respective outputs of circuit portions in the plurality of circuit portions that have not been activated. Selector element 650 may be a multiplexer, in some examples.
- Figure 6B is a table listing an estimated power consumption of an ECC engine according to the embodiment of Figure 6A. This table is similar to the table of Figure 5B so that, for the sake of simplicity, the related description is not repeated.
- Columns 600a-600f of Figure 6B correspond to columns 500a- 500f, of Figure 5B and the only difference is that the circuit portion 530” for managing ECC2 only is not implemented in the embodiment of Figure 6A, so the corresponding row is omitted and the probability of using circuit portion 630’” includes both the two- and the three-error occurrences (e.g., in the 0.0101% of the cases).
- the estimated average power consumption (reported in last row of column 600f) is not substantially increased as compared to table of Figure 5B, so that this embodiment can guarantee a proper balance between the circuit complexity and power consumption reduction.
- the techniques of the present disclosure therefore allow a great flexibility in ECC circuitry design.
- the general idea is to wake up or activate only the desired circuit portion of the decoder based on the detected number of errors (if any). Clearly, if no errors are detected, no circuit portion is enabled.
- the proper syndrome decoder is automatically enabled based on the number of errors, obtaining an ECC optimization. For example, the ECC operation is optimized and power consumption is reduced when a lower ECC protection is used, since only the necessary ECC circuitry is enabled and said circuitry generally requires less power. Unused ECC circuitry may then be disabled. For example, if the lowest ECC correction capability (e.g., ECC1) is needed, blocks 530” and 530’” of figure 5A, as well as block 630”’ of figure 6A may be disabled.
- ECC correction capability e.g., ECC1
- circuit portions may also share common portions, for instance in order to reduce the occupied area in the device.
- the use of a circuit portion for a higher ECC correction capability or protection level may involve the activation of at least part of a circuitry related to lower ECC correction capabilities.
- specific circuitry relating to a specific single ECC correction capability may be disabled when another single ECC protection level is selected. Therefore, generally, the use of a circuit portion for a higher ECC correction capability may or may not involve the activation of part of circuitry related to lower ECC correction capabilities, while unnecessary circuitry may be switched off. Therefore, the circuit portions are logically separate, even if may share common circuitry, in some embodiments.
- the circuit portions may be selectively and independently activable as disclosed above by means of a selector element which comprises multiple inputs, e.g., one input from each circuit portion, and configured for enabling or activating only the output of the desired portion, according to the selected ECC correction capability.
- the operating circuit comprises at least one selector element, such as selector element 550 of Figure 5A or selector element 650 of Figure 6B, which is configured to selectively enable the output of one circuit portion or sub-circuit portion based on the determined number of errors.
- the selector element may be a multiplexer with proper inputs/ outputs.
- the selector element may be downstream the operative circuit portions and the selection of the desired circuit portions is made by said final selector element.
- the illustrated configuration is only one of many possible configurations and the present disclosure is not limited by the exemplary embodiments shown in the drawings.
- the memory cells of the array may be grouped into a plurality of portions, each portion being assigned and operated according to a specific ECC correction capability based on a desired protection level.
- a “portion” of the array is therefore a group of memory cells being assigned the same maximum ECC correction capability “on-the-fly”, according to the techniques of the present disclosure.
- each respective portion of the plurality of portions may be operated at respective maximum ECC correction capability (ECC1, ECC2, ECC3, or higher).
- ECC1, ECC2, ECC3, or higher ECC correction capability
- the array may be split into portions in which the maximum ECC correction capability is coherent but could be different from the maximum ECC correction capability of another portion.
- the maximum ECC correction capability may be dynamically modified during operation.
- a memory portion may correspond to an internal subdivision like a bank group, a bank, a section or whatever other suitable internal subdivision of the memory. Moreover, the memory portion may also correspond to a specification/ host subdivision like a buffer, a page, i.e., a subdivision at high level. In an embodiment, the whole memory array may be coherent in term of ECC correction capability. During different access operations, such as a read operations, a different number of errors may be determined and the accessed portion is operated according to the corresponding respective correction capability that it actually necessary, based on the actual number of errors detected therein.
- a page may be operated at an ECC2 maximum correction capability (with only P and P3 parity bits being stored) while another page may be operated at an ECC3 maximum correction capability (with P , P3 and P5 parity bits being stored).
- the actually needed ECC correction capability is selected and only the corresponding circuit portion is selectively activated (such as, with reference to Figure 5A, only circuit portion 530’ in case of a single error having been determined - note that circuit portion 530”’ is always disabled when the maximum correction capability of the page is ECC2, because in this case the number of parity data bits is insufficient to support an ECC3 correction).
- the maximum ECC correction capability may be dynamically modified during operation.
- a subsequent lower (or higher) maximum ECC correction capability may be implemented (e.g., different from an antecedent maximum ECC correction capability).
- an antecedent ECC3 -protected codeword (or memory portion) may be turned into a subsequent ECC2 -protected codeword by storing only P and P3 parity bits (therefore making available spare bits for possible extra payload storage) rather than P , P3 and P5 parity bits in antecedent ECC3-protected codeword.
- a portion may correspond to one of a codeword, a bank, a bank group, a section of the array, the entire array, or even a buffer, a page, and the present disclosure is not limited by the way the cells are grouped.
- the subdivision of the array into several portions is better suited to real memory devices.
- user data and parity data may be stored according to a respective maximum ECC correction capability.
- An ECC syndrome from the stored user data and parity data may be calculated at a read access in the memory portion, for example, and, based on the syndrome, a number of errors in the data may be determined.
- an ECC correction capability of the plurality of ECC correction capabilities may be selected. For example, an ECC correction capability lower than the respective maximum ECC correction capability may be selected because no or fewer errors than correctable have been determined.
- selecting the ECC correction capability comprises selectively activating a circuit portion of a plurality of circuit portions which are configured to perform an ECC operation on the stored data (and deactivating other circuit portions that are not necessary, to reduce power consumption) .
- Figure 7 a is flow diagram representing steps of a method 700 for operating an array of memory cells according to the present disclosure.
- the processes described can be performed by hardware logic and circuitry.
- the following processes are described as being performed by encoding 402 and/or decoding 403, 503, 603 units as described in Figures 4-6 and/or access circuitry, sense circuitry and ECC circuitry, as disclosed herein.
- other embodiments can include different circuitry configurations suitable for performing the processes.
- the method of the present disclosure is a method for improving the operation of memory cells having ECC protection.
- Access circuitry writes data to a plurality of memory cells. For example, access circuitry writes logic Os and logic Is to a plurality of memory cells such as the memory cells in the memory section 101 of Figure 1.
- access circuitry can write logic 0 by applying programming pulses with a negative polarity and logic 1 by applying programming pulses with a positive polarity. The opposite convention can also be adopted. Different programming pulses may be applied to memory cells, depending on the technology.
- access circuitry After writing data to the plurality of memory cells, access circuitry can read the plurality of memory cells and ECC circuitry can verify the presence of errors and correct them.
- step 710 user data are stored in a plurality of memory cells of a memory array, e.g., are stored in a codeword. Operations associated with step 710 may be executed by an encoding unit 402, for example.
- parity data associated with the user data are stored in a determined number of parity cells of the memory array (e.g., in the codeword), the parity data corresponding to a plurality of selectable ECC correction capabilities from a minimum ECC correction capability to a maximum ECC correction capability. Operations associated with step 720 may be executed by an encoding unit 402, for example.
- an ECC syndrome is calculated starting from the stored user data and parity data. Operations associated with step 730 may be executed by syndrome generating unit 510 or 610, for example. Then, at step 740, the presence of errors is detected based on the ECC syndrome. Operations associated with step 740 may be executed by logic unit 540, for example. [0103] If errors are detected, the number of said errors is determined at step 750, otherwise, if no errors are detected, no ECC is selected and the data in the codeword is transmitted without applying and ECC operation, as in step 760. Operations associated with step 750 may be executed by error unit 420, 520 or 620, for example.
- step 770 when the codeword contains one or more errors, based on the number of errors, an ECC correction capability of the plurality of ECC correction capabilities is selected and a corresponding ECC operation is then performed on the codeword.
- Operations associated with step 770 may be executed by syndrome decoding unit 430, 530 or 630 and respective circuit portions therein, for example.
- the corrected data is transferred in output.
- Selector element 550 and 650 may selectively enable the output of the selectively activated circuit portion based on the determined number of errors.
- An ECC engine may operate at a different correction capability (e.g., different level of protection from errors), and each of the protection levels requires the activation of a corresponding circuit portion.
- the ECC operation may be then performed using the selected ECC correction capability.
- the present disclosure provides an on-the-fly selectable ECC correction capability based on the number of bit errors to obtain ECC power optimization.
- the ECC engine is adapted to wake up blocks (herein indicated as circuit portions) thereof based on the determined number of errors. Therefore, only the strictly necessary circuitry is enabled in the ECC engine. More specifically, the ECC engine is configured to enable the lowest power consumption circuit portion able to implement the proper ECC operation. Generally, the probability to have a higher number of errors in a codeword decreases by orders of magnitude and most codewords are error-free or contain only one error.
- a method for operating an array of memory cells comprises the steps of storing user data in a plurality of memory cells of the memory array, storing parity data associated with the user data in a determined number of parity cells of the memory array, the parity data corresponding to a plurality of selectable Error Correction Code (ECC) correction capabilities from a minimum ECC correction capability to a maximum ECC correction capability, calculating an ECC syndrome from the stored user data and parity data, based on the ECC syndrome, determining a number of errors in the data, and based on the determined number of errors, selecting an ECC correction capability of the plurality of ECC correction capabilities.
- ECC Error Correction Code
- the present disclosure also relates to a memory device comprising an array including a plurality of memory cells, and a controller configured to store user data in a plurality of memory cells of the memory array and to store parity data associated with the user data in a determined number of parity cells of the memory array, the parity data corresponding to a plurality of selectable Error Correction Code (ECC) correction capabilities from a minimum ECC correction capability to a maximum ECC correction capability, the memory device further comprising an operating circuit configured to calculate an ECC syndrome from the stored user data and parity data, based on the ECC syndrome, determine a number of errors in the data, and based on the determined number of errors, select an ECC correction capability of the plurality of ECC correction capabilities.
- ECC Error Correction Code
- a memory device comprises an array including a plurality of memory cell, and an encoding unit configured to store user data in a plurality of memory cells of the memory array, and store parity data associated with the user data in a determined number of parity cells of the memory array, the parity data corresponding to a plurality of selectable Error Correction Code (ECC) correction capabilities from a minimum ECC correction capability to a maximum ECC correction capability.
- ECC Error Correction Code
- the memory device also includes a decoding unit comprising a syndrome calculating unit configured to calculate an ECC syndrome from the stored user data and parity data, an error unit configured to determine a number of errors in the data based on the ECC syndrome, a plurality of circuit portions configured to perform a respective ECC operation on the stored data, and a selector element configured to enable a circuit portion of said plurality of circuit portions based on the determined number of errors, so as to select an ECC correction capability of the plurality of ECC correction capabilities on the basis of the determined errors.
- the plurality of circuit portions comprises a specific circuit portion for each single specific selectable ECC correction capability, and said operating circuit is configured to selectively activate one of said single specific circuit portions for each single specific selectable ECC correction capability.
- the plurality of circuit portions may comprise a circuit portion which is selectively activable for managing at least two ECC correction capabilities, the operating circuit being configured to selectively activate said circuit portion for applying a first ECC correction capability and at least one higher ECC correction capability, said ECC correction capabilities corresponding to respective determined error numbers.
- at least two circuit portions share common circuitry.
- a related system comprising a host device, a memory device comprising an array of memory cells, and a controller configured to store user data in a plurality of memory cells of the memory array, store parity data associated with the user data in a determined number of parity cells of the memory array, the parity data corresponding to a plurality of selectable Error Correction Code (ECC) correction capabilities from a minimum ECC correction capability to a maximum ECC correction capability, calculate an ECC syndrome from the stored user data and parity data, based on the ECC syndrome, determine a number of errors in the data, based on the determined number of errors, select an ECC correction capability of the plurality of ECC correction capabilities.
- ECC Error Correction Code
- the system may comprise any of a display communicatively coupled to the memory device or to the host, a network interface communicatively coupled to the memory device or to the host, and a battery coupled to provide power to said system.
- the controller may be integrated in the memory device or may be integrated in the host device, e.g., as part of a processor thereof, as disclosed above. All the features above can be applied to the memory device of this system.
- Coupled may include electrically coupled, directly coupled, and/or directly connected with no intervening elements (e.g., by direct physical contact) or indirectly coupled and / or connected with intervening elements.
- the term coupled may further include two or more elements that co operate or interact with each other (e.g., as in a cause-and-effect relationship).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2021/020011 WO2022185091A1 (en) | 2021-03-02 | 2021-03-02 | Methods and systems for reducing ecc power consumption |
| US17/802,034 US12525311B2 (en) | 2021-03-02 | 2021-03-02 | Methods and systems for reducing ECC power consumption |
| CN202180094768.8A CN116940986A (en) | 2021-03-02 | 2021-03-02 | Method and system for reducing ECC power consumption |
| TW111107520A TW202244934A (en) | 2021-03-02 | 2022-03-02 | Methods and systems for reducing ecc power consumption |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2021/020011 WO2022185091A1 (en) | 2021-03-02 | 2021-03-02 | Methods and systems for reducing ecc power consumption |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022185091A1 true WO2022185091A1 (en) | 2022-09-09 |
Family
ID=83154773
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2021/020011 Ceased WO2022185091A1 (en) | 2021-03-02 | 2021-03-02 | Methods and systems for reducing ecc power consumption |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12525311B2 (en) |
| CN (1) | CN116940986A (en) |
| TW (1) | TW202244934A (en) |
| WO (1) | WO2022185091A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12039176B2 (en) | 2022-09-26 | 2024-07-16 | Micron Technology, Inc. | Providing multiple error correction code protection levels in memory |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150370636A1 (en) * | 2014-06-18 | 2015-12-24 | Guillem Sole | Consecutive bit error detection and correction |
| US20160162352A1 (en) * | 2014-12-04 | 2016-06-09 | HGST Netherlands B.V. | Systems and methods for adaptive error corrective code mechanisms |
| US20190035474A1 (en) * | 2017-07-25 | 2019-01-31 | Hyperstone Gmbh | Method and Apparatus for Enhancing the Reliability of a Non-Volatile Memory |
| US20200301776A1 (en) * | 2018-01-25 | 2020-09-24 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices |
| US20200313694A1 (en) * | 2019-03-28 | 2020-10-01 | Intel Corporation | Detection of adjacent two bit errors in a codeword |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3665396A (en) | 1968-10-11 | 1972-05-23 | Codex Corp | Sequential decoding |
| US20140068378A1 (en) * | 2012-08-31 | 2014-03-06 | Kabushiki Kaisha Toshiba | Semiconductor storage device and memory controller |
| KR102204391B1 (en) * | 2014-08-18 | 2021-01-18 | 삼성전자주식회사 | Memory device having sharable ECC (Error Correction Code) cell array |
| WO2016143168A1 (en) * | 2015-03-10 | 2016-09-15 | Kabushiki Kaisha Toshiba | Memory device and memory system |
| US9792176B2 (en) * | 2015-11-13 | 2017-10-17 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data in memory system |
| US10388394B2 (en) | 2017-07-25 | 2019-08-20 | Apple Inc. | Syndrome weight based evaluation of memory cells performance using multiple sense operations |
| US11016843B2 (en) * | 2018-12-06 | 2021-05-25 | Micron Technology, Inc. | Direct-input redundancy scheme with adaptive syndrome decoder |
| KR102761233B1 (en) * | 2020-01-08 | 2025-02-04 | 에스케이하이닉스 주식회사 | Electronic device and operating method thereof |
-
2021
- 2021-03-02 WO PCT/IB2021/020011 patent/WO2022185091A1/en not_active Ceased
- 2021-03-02 US US17/802,034 patent/US12525311B2/en active Active
- 2021-03-02 CN CN202180094768.8A patent/CN116940986A/en active Pending
-
2022
- 2022-03-02 TW TW111107520A patent/TW202244934A/en unknown
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150370636A1 (en) * | 2014-06-18 | 2015-12-24 | Guillem Sole | Consecutive bit error detection and correction |
| US20160162352A1 (en) * | 2014-12-04 | 2016-06-09 | HGST Netherlands B.V. | Systems and methods for adaptive error corrective code mechanisms |
| US20190035474A1 (en) * | 2017-07-25 | 2019-01-31 | Hyperstone Gmbh | Method and Apparatus for Enhancing the Reliability of a Non-Volatile Memory |
| US20200301776A1 (en) * | 2018-01-25 | 2020-09-24 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices |
| US20200313694A1 (en) * | 2019-03-28 | 2020-10-01 | Intel Corporation | Detection of adjacent two bit errors in a codeword |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12039176B2 (en) | 2022-09-26 | 2024-07-16 | Micron Technology, Inc. | Providing multiple error correction code protection levels in memory |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240221857A1 (en) | 2024-07-04 |
| CN116940986A (en) | 2023-10-24 |
| US12525311B2 (en) | 2026-01-13 |
| TW202244934A (en) | 2022-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| USRE50519E1 (en) | Cross-point memory device and method for converting and storing write data and associated parity to achieve uniform bit error rates | |
| US12579034B2 (en) | Methods and systems for managing memory with dynamic ECC protection | |
| JP5346354B2 (en) | Nonvolatile semiconductor memory device | |
| US20250226046A1 (en) | Methods and systems for improving ecc operation of memories | |
| US20250061023A1 (en) | Ecc configuration in memories | |
| US20250253007A1 (en) | Memory device having an improved ecc architecture | |
| US20240370186A1 (en) | Providing multiple error correction code protection levels in memory | |
| US20240096433A1 (en) | Weighted wear leveling for improving uniformity | |
| US12525311B2 (en) | Methods and systems for reducing ECC power consumption | |
| KR102406267B1 (en) | Non-volatile memory module and electronic device having the same | |
| CN114446379A (en) | Ranking memory devices based on performance metrics for various timing margin parameter settings | |
| KR102407437B1 (en) | Memory system and electronic device including non-volatile memory module | |
| US20260052519A1 (en) | Ecc power consumption optimization in memories | |
| CN114333943A (en) | Writing operation method and system of resistive random access memory | |
| US20260066020A1 (en) | Selective media scanning for a virtual block | |
| EP3783611B1 (en) | Storage device that performs state shaping of data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 17802034 Country of ref document: US |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21928917 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202180094768.8 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21928917 Country of ref document: EP Kind code of ref document: A1 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 17802034 Country of ref document: US |