US8386885B1 - Using ECC memory to store configuration information - Google Patents
Using ECC memory to store configuration information Download PDFInfo
- Publication number
- US8386885B1 US8386885B1 US12/869,649 US86964910A US8386885B1 US 8386885 B1 US8386885 B1 US 8386885B1 US 86964910 A US86964910 A US 86964910A US 8386885 B1 US8386885 B1 US 8386885B1
- Authority
- US
- United States
- Prior art keywords
- memory
- error detection
- volatile memory
- memory portion
- processing device
- 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.)
- Expired - Fee Related, expires
Links
- 238000001514 detection method Methods 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 241000218691 Cupressaceae Species 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- 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
Definitions
- This disclosure relates to a processing device and, more particularly, to a memory usage in a programmable processing device.
- a programmable processing device can be programmed to handle dozens of data acquisition channels and analog or digital inputs and sub-systems.
- a programmable processing device typically includes a program memory and a flash memory and may include configurable sub-systems.
- a user needs to program or configure the programmable processing device before its use.
- the data chosen by the user to configure or functionally prepare the programmable processing device is called configuration data, which is typically stored in the program memory of the programmable processing device. As a result, the available program memory space to the user is reduced due to the storage of the configuration data.
- the flash memory of the programmable processing device is typically used to store program instructions.
- An error detection scheme is generally required for some safety-related programs so that the programmable processing device may take appropriate actions when program memory bit failures have occurred.
- the size of the flash memory is increased to store both the program instructions and error detection hits associated with the program instructions.
- FIG. 1 illustrates a block diagram of one embodiment of a programmable processing device.
- FIG. 2A and FIG. 2B illustrate one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- FIG. 3 illustrates one embodiment of a memory system in a programmable processing device when an error detection scheme is implemented.
- FIG. 4 is a flowchart illustrating one embodiment of a method of storing configuration data in a non-volatile memory in a programmable processing device.
- FIG. 5A illustrates one embodiment of a memory system in a programmable processing device when an error detection scheme is implemented.
- FIG. 5B illustrates one embodiment of a memory system a programmable processing device when no error detection scheme is implemented.
- FIG. 5C illustrates one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- FIG. 5D illustrates one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- Embodiments of a method and an apparatus are described for a programmable processing device having a non-volatile memory.
- each memory word in the non-volatile memory is divided into a first memory portion and a second memory portion.
- the first memory portion of the memory word in the non-volatile memory is used to store program instructions or data and the second memory portion of the memory word in the non-volatile memory is used to store either the configuration data or the error detection bits if an error detection scheme is to be implemented for the program instructions or data stored in the first memory portion of the memory word in the non-volatile memory of the programmable processing device.
- the configuration data is stored in the first memory portion of another memory word in the non-volatile memory of the programmable processing device.
- the non-volatile memory is a flash memory device.
- FIG. 1 illustrates a block diagram of one embodiment of a programmable processing device 100 .
- the programmable processing device 100 includes a digital processing device 110 , a memory system 120 , and a programmable logic system 130 .
- the digital processing devices described herein may include one or more general-purpose processing devices such as a microprocessor or central processing unit, a microcontroller, or the like.
- the digital processing device may include one or more special-purpose processing devices such as a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or the like.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- the digital processing device may be a network processor having multiple processors including a core unit and multiple microengines.
- the digital processing device may include any combination of general-purpose processing devices and special-purpose processing devices.
- the programmable logic system 130 is a programmable digital logic system, which provides unique digital configurability and may be configured to correspond to the specific digital functions desired by a user.
- the programmable logic system 130 is a programmable analog logic system, which provides unique analog configurability and may be configured to correspond to the specific analog functions desired by a user.
- a user can use a configuration software program to configure or program the programmable logic system 130 with chosen configuration data so that the programmable processing device 100 can deliver the user desired functionality.
- a user can also use the configuration software program choose whether an error detection scheme is to be implemented for the program data to be stored in the non-volatile memory device in the memory system 120 .
- the memory system 120 includes an address decoder 160 , and a non-volatile memory 140 .
- the address decoder 160 is used to address the non volatile memory 140 based on the address inputs received.
- the non-volatile memory 140 is a flash memory device configured to store program instructions or data for the programmable processing device 100 .
- the non-volatile memory 140 is 64 bits wide and no error detection scheme is implemented for the program instructions or data stored in the non-volatile memory 140 .
- the non-volatile memory 140 is 72 bits wide and an error detection scheme is implemented for the program instructions or data stored in the non-volatile memory 140 .
- the non-volatile memory 140 may have more than 72 bits, such as 128 or 136 bits, or less than 64 bits, as would be appreciated by one of ordinary skill in the art.
- each memory word stored in the non-volatile memory 140 includes a first memory portion and a second memory portion.
- the first memory portion of the memory word in the non-volatile memory 140 is configured to store program instructions or data and the second memory portion of the memory word in the non-volatile memory 140 is configured to store the device data of the programmable processing device 100 , when no error detection scheme is implemented for the program instructions or data stored in the first memory portion of the non-volatile memory 140 .
- the device data stored in the second memory portion of the memory word in the non-volatile memory 140 may include program memory instructions, which may be moved to the first memory portion or other executable memory for execution.
- the device data of the programmable processing device 100 is configuration data chosen by a user during the initialization phase of the programmable processing device 100 via the use of the configuration software program.
- the device data of the programmable processing device 100 is program data or instructions of the programmable processing device 100 .
- the increased memory portion in the non-volatile memory 140 may be used to store the configuration data (that would have been stored in the first memory portion of the non-volatile memory 140 ) of the programmable processing device 100 when no error detection scheme is implemented, which would free up the memory space in the first memory portion of the non-volatile memory 140 .
- the increased memory portion of the non-volatile memory 140 is not used to store the error detection bits calculated based on an error detection scheme
- the increased memory portion is used to store the device data of the programmable processing device 100 .
- the device data is the configuration data of the programmable processing device 100 .
- the first memory portion of the memory word in the non-volatile memory 140 is configured to store program instructions or data
- the second memory portion of the memory word in the non-volatile memory 140 is configured to store the error detection bits configured to detect or correct the program instruction or data memory bit errors, based on an error detection scheme implemented for the program instruction or data stored in the first memory portion of the memory word in the non-volatile memory 140 .
- the address decoder 160 of the memory system 120 is so designed as to allow the first memory portion and the second memory portion of the memory word in the non-volatile memory 140 to be addressed individually.
- the second memory portion of the memory word is concatenated with the first memory portion of the memory word and written to the non-volatile memory 140 as a single word.
- the first memory portion and the second memory portion of each memory word in the first non-volatile memory 140 can be read out individually.
- the digital processing device 110 is configured to determine whether an error detection scheme is to be implemented for the program instructions or data to be stored in the first non-volatile memory 140 , upon receiving the user input during the initialization phase of the programmable processing device 100 . In one embodiment, when the digital processing device has determined to implement an error detection scheme for the program instructions or data to be stored in the first memory portion of the memory word in the non-volatile memory 140 , the digital processing device 110 includes a primary processor configured to periodically calculate the error detection bits for each program instructions or data to be stored in the first memory portion of the memory word in the non-volatile memory 140 and store the program instructions or data and the calculated error detection hits in the first memory portion and the second memory portion of the memory word in the non-volatile memory 140 , respectively.
- the primary processor of the digital processing device 110 checks the error detection hits when executing the program instructions or data stored in the first memory portion of the memory word in the non-volatile memory 140 .
- the digital processing device 110 further includes a satellite processor configured to calculate the error detection bits before the primary processor of the digital processing device 110 checks the error detection bits for memory errors when executing the program instruction or data associated with the error detection bits.
- the digital processing device 110 if, upon receiving the user input during the initialization phase of the programmable processing device 100 , the digital processing device 110 has determined not to implement an error detection scheme for the program instructions or data to be stored in the first memory portion of the memory word in the non-volatile memory 140 , the digital processing device 110 will store the configuration data of the programmable processing device 100 in the second memory portion of the memory word in the non-volatile memory 140 . The first memory portion of the memory word in the non-volatile memory 140 is still used to store the program instructions and data.
- the error detection scheme is error correcting code (ECC), based on which ECC bits are calculated and stored in the memory along with the program instructions or data being checked.
- ECC bits are stored in the second memory portion of the memory word in the non-volatile memory 140 and the program instructions or data are stored in the first memory portion of the memory word in the non-volatile memory 140 .
- the second memory portion of the memory word in the non-volatile memory 140 used to store the ECC bits are called ECC memory.
- the program instructions or data stored in the first memory portion of the memory word in the non-volatile memory 140 are read, the corresponding ECC bits stored in the second memory portion of the memory word in the non-volatile memory 140 are read in parallel.
- the digital processing device 110 will calculate and check the ECC bits read for program instruction or data for program memory bit errors. If a memory bit error has been detected for the program instructions or data associated with the ECC bits checked, a corresponding error flag is set by the digital processing device 110 . In other embodiment, other known error detection scheme may be used.
- the second memory portion of the memory word in the non-volatile memory 140 may also be used to store program instructions or data. At the power-up time, the contents stored in the second memory portion of the memory word in the non-volatile memory 140 may be transferred to and executed from another memory device (not shown) in the memory system 120 .
- the digital processing device 110 further includes an instruction fetch logic (not shown) configured to operate with different word widths of the non-volatile memory 140 , based on whether an error detection scheme is implemented for the program instructions or data stored in the non-volatile memory 140 .
- the non-volatile memory 140 has a word width of 64 bits with no error detection scheme is implemented.
- the non-volatile memory 140 has a word width of 72 bits with an error detection scheme is implemented for the program instructions or data stored in the non-volatile memory 140 .
- FIG. 2A and FIG. 2B illustrate one embodiment of a memory system 200 in a programmable processing device when no error detection scheme is implemented.
- the memory system 200 includes an address decoder 230 , a non-volatile memory 240 , and a memory map 250 .
- the address decoder 230 After receiving the address inputs, the address decoder 230 generates an address output that is used to address the memory word 260 stored in the non-volatile memory 240 .
- each memory word of the non-volatile memory 240 includes a first memory portion 210 and a second memory portion 220 , where the first memory portion 210 has M bits and the second memory portion 220 has N bits.
- the first memory portion 210 of the non-volatile memory 240 has 64 bits and the second memory portion 220 of the non-volatile memory 240 has 8 bits.
- the first memory portion 210 is used to store the program instruction or data bits.
- the second memory portion 220 of the non-volatile memory 240 is used to store the configuration data (or configuration bits) of the programmable processing device.
- the address decoder 230 is so designed as to allow the first memory portion 210 and the second memory portion 220 of the memory word 260 to be addressed individually.
- the M bits of the program instruction or data of the memory word 260 stored in the non-volatile memory 240 may be read out to a location at the memory map 250 addressable with a normal address.
- the N bits of configuration data of the memory word 260 may be read out to a location at the memory map 250 addressable with a special address.
- the normal address is located in a normal address space and the special address is located in a special address space, where the normal address space and the special address space are separated.
- the digital processing device of the programmable processing device can fetch M bits wide program instructions using a normal address from the normal address space and fetch the N bits wide configuration data using a special address from the special address space.
- the separation of the memory address spaces makes it possible for the digital processing device to access the stored program instructions sequentially.
- the program instructions or data and the configuration data of the memory word 260 are read in parallel.
- the memory map 250 includes memory devices. In other embodiment, the memory map 250 includes registers. Alternatively, the memory map may include other resources or devices, as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure.
- FIG. 3 illustrates one embodiment of a memory system 300 in a programmable processing device when an error detection scheme is implemented.
- the memory system 300 includes an address decoder 330 and a non-volatile memory 340 .
- the address decoder 330 After receiving the address inputs from the programmable processing device, the address decoder 330 outputs an address that is used to address the memory word 360 in the non-volatile memory 340 .
- Each memory word in the non-volatile memory 340 has M+N bits, where the M bits are used to store a program instruction or data and the N bits are used to store the error detection bits.
- each memory word in the non-volatile memory 340 includes a first memory portion and a second memory portion, where the first memory portion 310 of the memory word 360 is configured to store program instruction or data and the second memory portion 320 of the memory word 360 is configured to store the error detection bits, which are calculated based on the chosen error detection scheme used to detect or correct the memory bits errors for the program instruction or data stored in the first memory portion 310 of the memory word 360 .
- the non-volatile memory 340 is a flash memory device.
- the first memory portion 310 of the memory word 360 has M bits and the second memory portion 320 of the memory word 360 has N bits.
- the memory word 360 has 72 bits, where the first memory portion 310 of the memory word 360 has 64 bits and the second memory portion 320 of the memory word 360 has 8 bits.
- the error detection scheme is ECC and the error detection bits are ECC bits.
- ECC can correct all single-bit errors and detect all double-bit errors in the program instructions or data.
- the program instruction or data bits and the ECC bits stored in the memory word 360 are read in parallel.
- the bit ratio between the first memory portion 310 and the second memory portion 320 of the memory word 360 is 8:1 when the ECC is implemented for the program instructions or data stored in the first memory portion 310 of the memory word 360 in the non-volatile memory 340 .
- other ratio between the first memory portion 310 and the second memory portion 320 of the memory word 360 may be implemented depending upon the chosen error detection scheme and the width of the memory word 360 , as would be appreciated by one of ordinary skill in the art.
- FIG. 4 is a flowchart 400 illustrating one embodiment of a method of storing configuration data in a non-volatile memory in a programmable processing device.
- the programmable processing device is initialized during the initialization phase by a configuration software program.
- the data chosen by a user to configure the programmable processing device via running the configuration software program is called the configuration data.
- the programmable processing device receives a user input during the initialization phrase while running the configuration software regarding whether an error detection scheme is to be implemented for the program data and the configuration data.
- the programmable processing device comprises a pre-programmed non-volatile memory array that is programmed by the Cypress PSoC® Creator before any user programming is implemented for the programmable processing device.
- the pre-programmed non-volatile memory array allows certain user choices, including the selection of the error detection scheme, to be made by a user before running any user programs.
- the default choice for the error detection scheme is ECC.
- other error detection schemes can be implemented for the programmable processing device, as would be appreciated by one of ordinary skill in the art.
- the digital processing device of the programmable processing device determines whether an error detection scheme is to be implemented based on the received user input.
- the digital processing device of the programmable processing device determines that an error detection scheme is to be implemented for the program data and the configuration data
- the digital processing device of the programmable processing device calculates the error detection hits according to the chosen error detection scheme for the program data and the configuration data.
- the error detection scheme is ECC and the error detection bits are ECC bits.
- the program data and the error detection bits associated with the program data are respectively stored in the first section of the first memory portion and a first section of the second memory portion of the non-volatile memory. In one embodiment, the first memory portion and the second memory portion of the non-volatile memory of the programmable processing device can be addressed individually.
- the first memory portion and the second memory portion of the non-volatile memory are a data memory portion and a reserved memory portion, respectively.
- An address decoder coupled to the non-volatile memory and a processing device is configured to address the data memory portion and the reserved memory portion of the non-volatile memory individually.
- the processing device is configured to store device data to the reserved memory portion and to store the program data to a first section of the data memory portion of the non-volatile memory.
- the processing device is further configured to store the overflow of the device data to a second section of the data memory portion of the non-volatile memory.
- the configuration data is stored in a second section of the first memory portion of the non-volatile memory of the programmable processing device and the error detection hits associated with the configuration data is stored in the second section of the second memory portion of the non-volatile memory.
- the program data may be stored in the first section of the first memory portion of the non-volatile memory.
- the configuration data is stored either in the second memory portion of the non-volatile memory or in the second section of the first memory portion of the non-volatile memory.
- the remaining configuration data, or the overflow of the configuration data may be stored in the second section of the first memory portion of the non-volatile memory.
- the configuration data is stored in the second section of the first memory portion of the non-volatile memory, and the second memory portion of the non-volatile memory is unused.
- FIG. 5A illustrates one embodiment of a memory system in a programmable processing device when the ECC is implemented.
- the non-volatile memory 501 has 64K bytes of 64 bits wide first memory portion and 8K bytes of 8 bits wide second memory portion.
- the first section of the first memory portion of the non-volatile memory 501 may be used to store the program data.
- the program data is stored contiguously in the first section of the first memory portion of the non-volatile memory 501 .
- the second section of the first memory portion of the non-volatile memory 501 is used to store the configuration data.
- the ECC bits are generated by a processing device for every 64-bit word, including the configuration data, stored in the first memory portion of the non-volatile memory 501 .
- the generated ECC bits are stored in the second memory portion of the non-volatile memory 501 .
- the shaded area indicates the unused memory portions.
- FIG. 5B illustrates one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- the non-volatile memory 502 has 64K bytes of 64 bits wide first memory portion and 8K bytes of 8 bits wide second memory portion.
- the first memory portion in the non-volatile memory 502 is used to store the program data
- the second memory portion in the non-volatile memory 502 is used to store the configuration data.
- the shaded area indicates the unused memory portions.
- FIG. 5C illustrates one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- the non-volatile memory 503 has 64K bytes of 64 bits wide first memory portion and 8K bytes of 8 bits wide second memory portion.
- the first section of the first memory portion of the non-volatile memory 503 is used to store the program data.
- the entire second memory portion of the non-volatile memory 503 is used to store the first portion of the configuration data and the second section of the first memory portion of the non-volatile memory 503 is used to store the second portion, i.e., the overflow, of the configuration data.
- the configuration memory is 13K bytes that exceeds the 8K bytes of the second memory portion
- the remaining 5K of the 13K configuration data will be stored in the second section of the first memory portion of the non-volatile memory 503 .
- the shaded area indicates the unused memory portions.
- FIG. 5D illustrates one embodiment of a memory system in a programmable processing device when no error detection scheme is implemented.
- the non-volatile memory 504 has 64K bytes of 64 bits wide first memory portion and 8K bytes of 8 bits wide second memory portion.
- the first section of the first memory portion in the non-volatile memory 504 is used to store program data and the second section of the first memory portion in the non-volatile memory 504 is used to store configuration data.
- the entire second memory portion of the non-volatile memory 504 is not used.
- Embodiments, described herein include various operations. These operations may be performed by hardware components, software, firmware, or a combination thereof. Any of the signals provided over various buses described herein may be time multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit components or blocks may be shown as buses or as single signal lines. Each of the buses may alliteratively be one or more single signal lines and each of the single signal lines may alternatively be buses.
- Certain embodiments may be implemented as a computer program product that may include instructions stored on a computer-readable storage medium. These instructions may be used to program a general-purpose or special-purpose processor to perform the described operations.
- the computer-readable storage medium may include, but is not limited to, magnetic storage medium; optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read-only memory (ROM); random-access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory, or another type of medium suitable for storing electronic instructions.
- computer-readable storage medium should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
- the term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/869,649 US8386885B1 (en) | 2009-08-26 | 2010-08-26 | Using ECC memory to store configuration information |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23726609P | 2009-08-26 | 2009-08-26 | |
US12/869,649 US8386885B1 (en) | 2009-08-26 | 2010-08-26 | Using ECC memory to store configuration information |
Publications (1)
Publication Number | Publication Date |
---|---|
US8386885B1 true US8386885B1 (en) | 2013-02-26 |
Family
ID=47721361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/869,649 Expired - Fee Related US8386885B1 (en) | 2009-08-26 | 2010-08-26 | Using ECC memory to store configuration information |
Country Status (1)
Country | Link |
---|---|
US (1) | US8386885B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068384A1 (en) * | 2012-09-04 | 2014-03-06 | Samsung Electronics Co., Ltd. | Flash memory system having abnormal wordline detector and abnormal wordline detection method |
EP3355196A1 (en) * | 2017-01-27 | 2018-08-01 | Menta | Fpga and method of operation |
US10606511B2 (en) | 2015-11-19 | 2020-03-31 | Samsung Electronics Co., Ltd. | Nonvolatile memory modules and electronic devices having the same |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961660A (en) | 1997-03-03 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for optimizing ECC memory performance |
US7117421B1 (en) * | 2002-05-31 | 2006-10-03 | Nvidia Corporation | Transparent error correction code memory system and method |
US7143329B1 (en) | 2001-02-28 | 2006-11-28 | Xilinx, Inc. | FPGA configuration memory with built-in error correction mechanism |
US7269679B1 (en) | 2005-06-14 | 2007-09-11 | Advanced Micro Devices, Inc. | PCI-X error correcting code (ECC) pin sharing configuration |
US20080065937A1 (en) | 2006-09-13 | 2008-03-13 | Stmicroelectronics S.R.I. | Nand flash memory device with ecc protected reserved area for non-volatile storage of redundancy data |
US20080209282A1 (en) * | 2003-11-11 | 2008-08-28 | Samsung Electronics Co., Ltd. | Method of managing a flash memory and the flash memory |
US7428689B2 (en) | 2005-08-30 | 2008-09-23 | Infineon Technologies Ag | Data memory system and method for transferring data into a data memory |
US20090031194A1 (en) | 2007-07-27 | 2009-01-29 | Actel Corporation | Error-detecting and correcting fpga architecture |
US7487428B2 (en) | 2006-07-24 | 2009-02-03 | Kingston Technology Corp. | Fully-buffered memory-module with error-correction code (ECC) controller in serializing advanced-memory buffer (AMB) that is transparent to motherboard memory controller |
US20090049364A1 (en) * | 2007-08-16 | 2009-02-19 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and method providing fast program and read operations |
US20090070651A1 (en) | 2007-09-06 | 2009-03-12 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ecc settings based on monitored conditions |
US20090164704A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | High performance flash channel interface |
US20100293440A1 (en) * | 2009-05-18 | 2010-11-18 | Jonathan Thatcher | Apparatus, system, and method to increase data integrity in a redundant storage system |
US7870472B2 (en) | 2007-01-31 | 2011-01-11 | Sandisk 3D Llc | Methods and apparatus for employing redundant arrays to configure non-volatile memory |
US8239732B2 (en) * | 2007-10-30 | 2012-08-07 | Spansion Llc | Error correction coding in flash memory devices |
-
2010
- 2010-08-26 US US12/869,649 patent/US8386885B1/en not_active Expired - Fee Related
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961660A (en) | 1997-03-03 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for optimizing ECC memory performance |
US7143329B1 (en) | 2001-02-28 | 2006-11-28 | Xilinx, Inc. | FPGA configuration memory with built-in error correction mechanism |
US7117421B1 (en) * | 2002-05-31 | 2006-10-03 | Nvidia Corporation | Transparent error correction code memory system and method |
US20080209282A1 (en) * | 2003-11-11 | 2008-08-28 | Samsung Electronics Co., Ltd. | Method of managing a flash memory and the flash memory |
US7269679B1 (en) | 2005-06-14 | 2007-09-11 | Advanced Micro Devices, Inc. | PCI-X error correcting code (ECC) pin sharing configuration |
US7428689B2 (en) | 2005-08-30 | 2008-09-23 | Infineon Technologies Ag | Data memory system and method for transferring data into a data memory |
US7487428B2 (en) | 2006-07-24 | 2009-02-03 | Kingston Technology Corp. | Fully-buffered memory-module with error-correction code (ECC) controller in serializing advanced-memory buffer (AMB) that is transparent to motherboard memory controller |
US20080065937A1 (en) | 2006-09-13 | 2008-03-13 | Stmicroelectronics S.R.I. | Nand flash memory device with ecc protected reserved area for non-volatile storage of redundancy data |
US7870472B2 (en) | 2007-01-31 | 2011-01-11 | Sandisk 3D Llc | Methods and apparatus for employing redundant arrays to configure non-volatile memory |
US20090031194A1 (en) | 2007-07-27 | 2009-01-29 | Actel Corporation | Error-detecting and correcting fpga architecture |
US20090049364A1 (en) * | 2007-08-16 | 2009-02-19 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and method providing fast program and read operations |
US20090070651A1 (en) | 2007-09-06 | 2009-03-12 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ecc settings based on monitored conditions |
US8239732B2 (en) * | 2007-10-30 | 2012-08-07 | Spansion Llc | Error correction coding in flash memory devices |
US20090164704A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | High performance flash channel interface |
US20100293440A1 (en) * | 2009-05-18 | 2010-11-18 | Jonathan Thatcher | Apparatus, system, and method to increase data integrity in a redundant storage system |
Non-Patent Citations (2)
Title |
---|
Qin et al., "SafeMem: Exploiting ECC-Memory for Detecting Memory Leaks and Memory Corruption During Production Runs," IEEE Proceedings of the 11th Int'l Symposium on High-Performance Computer Architecture (HPCA-11 2005) 1530-0897/05, 2005; 12 pages. |
Sun et al., "Run-Time Data-Dependent Defect Tolerance for Hybrid CMOS/Nanodevice Digital Memories," IEEE vol. 7 Issue 2, Mar. 2008, pp. 217-222; 6 pages. |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068384A1 (en) * | 2012-09-04 | 2014-03-06 | Samsung Electronics Co., Ltd. | Flash memory system having abnormal wordline detector and abnormal wordline detection method |
US10528420B2 (en) * | 2012-09-04 | 2020-01-07 | Samsung Electronics Co., Ltd. | Flash memory system having abnormal wordline detector and abnormal wordline detection method |
US10606511B2 (en) | 2015-11-19 | 2020-03-31 | Samsung Electronics Co., Ltd. | Nonvolatile memory modules and electronic devices having the same |
EP3355196A1 (en) * | 2017-01-27 | 2018-08-01 | Menta | Fpga and method of operation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694855B1 (en) | Error correction code technique for improving read stress endurance | |
US9619324B2 (en) | Error correction in non—volatile memory | |
EP1839394B1 (en) | Error protection for groups of data words | |
US20130139008A1 (en) | Methods and apparatus for ecc memory error injection | |
US8266495B2 (en) | Systems and methods for performing concatenated error correction | |
US8910018B2 (en) | Memory with dynamic error detection and correction | |
US8560925B2 (en) | System and method for handling bad bit errors | |
JP5529751B2 (en) | Error correction in memory arrays | |
US20090006899A1 (en) | Error correcting code with chip kill capability and power saving enhancement | |
KR20100015775A (en) | Configurable split storage of error detecting and correcting codes | |
KR20160024966A (en) | Circuits, apparatuses, and methods for correcting data errors | |
US9535785B2 (en) | ECC method for flash memory | |
EP1870807A2 (en) | Software and methods to detect and correct data structure | |
US20150301760A1 (en) | Correction of block errors for a system having non-volatile memory | |
US9513993B2 (en) | Stale data detection in marked channel for scrub | |
US9734008B2 (en) | Error vector readout from a memory device | |
US8386885B1 (en) | Using ECC memory to store configuration information | |
JP6080180B2 (en) | Marker programming in non-volatile memory | |
US9542268B2 (en) | Dynamic data density ECC | |
US20110320919A1 (en) | High performance cache directory error correction code | |
US8028221B2 (en) | Error correction and error detection method for reading of stored information data and a storage control unit for the same | |
JP6054753B2 (en) | Semiconductor device and data access method | |
CN109710445B (en) | Memory correction method and electronic equipment | |
US20160232050A1 (en) | System and method for error detection of executed program code employing compressed instruction signatures | |
CN107977282B (en) | Method and device for reading data page by SPI-Nand |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KHAN, ATA;REEL/FRAME:024895/0870 Effective date: 20100826 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK Free format text: SECURITY INTEREST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:035240/0429 Effective date: 20150312 |
|
AS | Assignment |
Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA Free format text: PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:039708/0001 Effective date: 20160811 Owner name: SPANSION LLC, CALIFORNIA Free format text: PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:039708/0001 Effective date: 20160811 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: MONTEREY RESEARCH, LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYPRESS SEMICONDUCTOR CORPORATION;REEL/FRAME:040911/0238 Effective date: 20160811 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:058002/0470 Effective date: 20150312 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |