WO2014146574A1 - 存储器数据存取方法以及存储器 - Google Patents
存储器数据存取方法以及存储器 Download PDFInfo
- Publication number
- WO2014146574A1 WO2014146574A1 PCT/CN2014/073667 CN2014073667W WO2014146574A1 WO 2014146574 A1 WO2014146574 A1 WO 2014146574A1 CN 2014073667 W CN2014073667 W CN 2014073667W WO 2014146574 A1 WO2014146574 A1 WO 2014146574A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bit
- data
- bits
- representation
- characterizing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1009—Data masking during input/output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- 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
- G06F11/1052—Bypassing or disabling error detection or correction
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Definitions
- the present invention relates to a memory data access method and a memory. Background technique
- ECC Error Correction Code
- 8-bit data requires 4 bits of parity
- 64-bit data requires 7 bits of supervision.
- the appropriate algorithm can be chosen by the length of the data and the number of bits that need to be detected and corrected.
- the prefetch data length is 32-bit, 64-bit, and 128-bit when performing typical streaminandout data reading.
- a reasonable compromise solution can use 7-bit or 8-bit supervisory bits for 64-bit data (according to different ECC algorithms), as shown in Figure 1 and Figure 2.
- the present invention provides an error correction method for a memory, which mainly solves the problem that the existing ECC encoding process may not be able to smoothly generate a supervised bit or generate a supervised bit due to the existence of data masking.
- the problem of area mainly solves the problem that the existing ECC encoding process may not be able to smoothly generate a supervised bit or generate a supervised bit due to the existence of data masking.
- a memory error correction method includes the following steps: 1) reading in the external data, generating a supervised bit according to the set rule, generating a representation bit, and storing the external data, the representation bit, and the supervised bit in the memory; wherein the supervised bit is used for detecting and correcting the data reading,
- the representation bit is used to indicate whether there is data masking; if there is data masking, it indicates that the supervised bit is invalid, and if there is no data mask, it indicates that the supervised bit is valid;
- the supervised bit is 7 bits
- the characterizing bit is 1 bit
- the table bit is the 65th bit in the 65-bit data string.
- the error data when the error data is a representation bit or a supervised bit, no error correction is required; when the error data is not a representation bit or a supervised bit, Then, according to the representation bit, it is judged whether there is data masking. If there is no data mask, the external data is corrected by the supervised bit, and if there is data masking, no error correction is performed;
- a memory data access method comprising the steps of:
- the representation bit it is judged whether there is data mask. If the representation bit indicates that there is data mask, the data is not detected and corrected. If the representation bit indicates that there is no data mask, the supervised bit is used to detect and correct the data.
- the generated representation bits are stored as separate parts.
- the generated representation bits are generated A characterization supervision bit is stored, which is stored along with the characterization bit.
- the characterizing bit is used to detect and correct the characterizing bit.
- the algorithm for generating the supervised bits is the same as the algorithm for generating the supervised bits.
- the characterizing bits are stored as data bits or as supervisory bits.
- the characterizing bit indicates that there is no data masking, the characterizing bit is removed from the data bit or the supervisory bit prior to correcting the data detection.
- a memory comprising: a memory unit; a supervisory bit generating unit; a characterizing bit generating unit; a writing unit; a reading unit; and a correcting unit;
- the supervisory bit generating unit generates a supervisory bit for the data to be stored, and the supervisory bit is stored to the storage unit;
- the characterizing bit generating unit generates a characterizing bit for the data to be stored, the characterizing bit indicating the data to be stored Whether there is a data mask in the storage unit and stored in the storage unit;
- the write unit writes the data to be stored into the storage unit,
- the reading unit reads the stored data, the representation bit and the supervised bit from the storage unit; if the representation bit indicates that there is a data mask, the correcting unit does not detect and correct the read data, if the representation The bit indicates that there is no data mask, and the correcting unit performs detection and correction on the read data.
- the characterizing bits are stored as separate parts in the memory unit.
- the characterizing bit generating unit generates a characterizing bit supervision bit for the characterizing bit, the characterizing bit supervising bit being stored in the memory unit together with the characterizing bit.
- the method further includes a characterizing bit correcting unit that uses the characterizing bit supervised bit pair to characterize the bit after reading the characterizing bit from the memory cell and characterizing the bit supervisory bit Perform detection and correction.
- the algorithm for generating the supervised bits is the same as the algorithm for generating the supervised bit supervised bits.
- the characterizing bits are stored as data bits in the memory unit or as supervisory bits in the memory unit.
- the correcting unit will characterize the bit from the data before detecting the correction of the data. Removed from the bit or supervisory bit.
- the supervisory bit is generated using a Hamming code.
- the memory is a dynamic random access memory.
- the memory access method provided by the present invention can reduce the likelihood of memory errors in the presence of data masking.
- the present invention is applicable to a variety of memories in which data masking exists, such as DRAM, SRAM, Fl a sh, and the like.
- Figure 1 is a flow chart of external ECC external data writing
- Figure 3 is a flow chart of writing external data of ECC with data masking
- FIG. 4 is a schematic diagram of a method in accordance with one embodiment of the present invention.
- FIG. 5 is a schematic illustration of a memory in accordance with one embodiment of the present invention. detailed description
- the ECC encoding (encod ing) circuit uses this 64-bit external data to generate a 7-bit or 8-bit supervised bit through a certain rule (B of Fig. 1, as an illustration, which shows an 8-bit supervised bit in Fig. 1).
- the above rules refer to the specific ECC algorithm, that is, the ECC encoding circuit is based on the actual The ECC algorithm is used to generate the supervised bits, and the supervised bits are used to detect and correct the data; again, the new 64-bit data and 7/8-bit supervised bits are written to the storage array and completely replace the previously stored information (Figure 1 C).
- the supervisory bit will decipher the data to determine if there is a mistake through a certain rule. If there is a mistake, which is wrong and correct (cor rec ti on ) the wrong data (B of Figure 2), here
- the rules correspond to the rules used in the encoding in Figure 1.
- the idea of this method is to detect if a DM has occurred, and if so, it indicates that the supervisory bit is invalid and does not decode and correct.
- the detection of whether the DM occurs is based on the representation bit, and the representation bit indicates whether there is a data mask in the data.
- the following embodiment takes the Hamming code as an example.
- the most commonly used ECC code is a code capable of two-bit detection and one-bit correction for the purpose of error rate and cost correction. Therefore, with the Hamming code in the embodiment of the present invention, the correction method of the present invention can correct a one-bit error.
- this does not mean that other ECC codes that can correct two or more errors are excluded, that is, the present invention is equally applicable to cases where two or more data errors occur. That is, other algorithms, such as parity, etc., can be employed to generate the supervisory bits.
- 64-bit data requires 7 supervised bits to implement the function of detecting and correcting one bit of erroneous data.
- the representation bit can be used as a data bit in a 65-bit data string that will characterize whether a DM has occurred, as shown in FIG.
- this representation bit can also be used as the 8th bit in the supervisory bit (every 8 bits in the DRAM constitutes a basic unit).
- This representation bit is not subject to the codec and correction of the ECC. It is necessary to use this data to determine whether decoding and correction are needed before decoding and correction. Of course, this judgment and decoding can be performed simultaneously to improve efficiency. For example, if equal to "0" means no DM, equal to "1" means there is DM:
- the number of bits of the representation bit is one bit. However, it should be understood that the number of bits of the representation bit is not limited to one bit. It should also be understood that the data length in the present invention is not limited to the 64 bits shown in Figure 4, and the number of bits of the supervisory bits depends on the length of the data and the algorithm used to generate the supervisory bits.
- the characterizing bits can be stored as data bits or as supervisory bits.
- the representation bit is stored as a data bit, or as a supervised bit, if the representation bit indicates that there is no data mask, the representation bit is removed from the data bit or the supervised bit before the data is corrected; if the representation bit indicates the presence Data masking, when the characterizing bit is stored as a data bit, the characterizing bit is removed from the data bit, but the data is not detected and corrected, and then the data is directly output.
- the characterizing bit is stored as a supervised bit, no data is processed, and the data is not processed. Direct output.
- the generated representation bits can be stored as separate parts, i.e. independent of data and supervisory bits, stored as a separate part.
- a representation bit supervisory bit can be generated for the representation bit, the representation bit supervised bit being used to detect and correct the representation bit.
- the representation bit supervision bit is stored along with the representation bit. In this regard, after reading the signature bit and characterizing the bit supervision bit, the representation bit is used to detect and correct the representation bit, and then it is determined whether there is data mask based on the detected bit that has been detected and corrected.
- the algorithm for generating the supervised bits is the same as the algorithm for generating the supervised bit supervised bits.
- Figure 5 shows a schematic diagram of a memory 10 in accordance with one embodiment of the present invention.
- the memory 10 includes a writing unit 100, a storage unit 101, and a supervisory bit.
- the supervisory bit generating unit 102 generates a supervisory bit for the data to be stored, the supervisory bit is stored to the storage unit 101, and the supervisory bit is used for detecting and correcting the data.
- the characterizing bit generation unit 103 generates a characterizing bit for the data to be stored, the characterizing bit indicating whether or not there is a data mask in the data to be stored, and the characterizing bit is stored to the storage unit 101.
- the data is stored to the storage unit 101 by the writing unit 100.
- the reading unit 104 reads the stored data, the characterizing bits, and the supervised bits from the storage unit 101. If the characterizing bit indicates that there is data masking, the correcting unit 105 does not detect and correct the read data, and the data is directly output from the memory 10; if the characterizing bit indicates that there is no data mask, the correcting unit 105 detects the read data. Corrected, then the detected and corrected data is output from the memory 10.
- the characterizing bits can be stored as separate parts in the storage unit 101, i.e. independent of the data and supervisory bits, stored as a separate part.
- the representation bit generation unit 103 may generate a representation bit supervision bit for the representation bit, the representation bit supervision bit being used for detecting and correcting the representation bit.
- the characterizing bit supervision bit is stored in the storage unit 101 together with the characterizing bit.
- the memory 10 can also include a characterizing bit correction unit 106.
- the reading unit 104 reads the data, the supervision bit, the representation bit, and the representation bit supervision bit from the storage unit 101, the representation bit and the representation bit supervision bit are sent to the characterizing bit correction unit 106, and the data and the supervisory bit are sent to the correction unit. 105.
- the characterizing bit correcting unit 106 detects and corrects the characterizing bit using the characterizing bit supervisory bit, and then the characterizing bit correcting unit 106 sends the detected and corrected characterizing bit to the correcting unit 105 for the correcting unit 105 to determine whether data exists by the characterizing bit. shield.
- the algorithm that generates the supervised bits is the same as the algorithm that produces the supervised bit supervised bits.
- the characterizing bits can also be stored as data bits in the storage unit 101 or stored as supervised bits in the storage unit 101.
- the reading unit 104 reads out the stored data, the characterizing bit, and the supervisory bit from the storage unit 101, the data, the characterizing bit, and the supervisory bit are sent to the correcting unit 105. If the characterizing bit indicates that there is no data mask, the correcting unit 105 removes the characterizing bit from the data bit or the supervisory bit before correcting the data, and then corrects and corrects the data, and the corrected data is output from the memory.
- the positive unit 105 removes the characterizing bits from the data bits, but does not detect and correct the data, and then the data is directly output from the memory 10; when the characterizing bits are stored as supervisory bits, the correcting unit 105 does not perform any processing on the data, and the data is directly from the memory 10. Output.
- a Hamming code is used to generate a supervisory bit for the data to be stored.
- the memory is a dynamic random access memory.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
提供一种存储器数据存取方法,包括以下步骤:1)为待存储的数据产生监督位;产生表征位,该表征位表示待存储的数据中是否存在数据屏蔽;存储数据、表征位和监督位;2)读取数据、表征位和监督位;根据表征位判断是否存在数据屏蔽,若表征位表示存在数据屏蔽,则不对数据进行检测纠正,若表征位表示不存在数据屏蔽,则使用监督位对数据进行检测纠正。本发明还提供一种存储器。此外,本发明还提供一种存储器的纠错方法。
Description
存储器数据存取方法以及存储器 技术领域
本发明涉及一种存储器数据存取方法以及一种存储器。 背景技术
ECC (Error Correction Code 糾错码) 被用来检测和糾正出错的数 据。 资料显示有^ ί艮多种算法可支持 ECC, 例如最常用的汉明码(Hamming Code) , 8位 (bit )数据需要 4位监督位(parity bit), 64位数据需 要 7位监督位。 可通过数据长度以及所需要检测和糾正的位数选取合适 的算法。
例如, 对于不同的 DDR结构 (DDR1/2/3) , 在进行典型的流输入输 出 ( streaminandout )数据读取时, 预取数据长度有 32位、 64位以及 128位等。一种合理的折中解决办法可以对 64位数据使用 7位或者 8位 的监督位 (根据不同的 ECC算法) , 如图 1和图 2所示。
但对于 DRAM 来说要实现检测和糾正的功能并不是那么简单, 这是 因为数据屏蔽 DM (Data Mask) 的存在。 也就是说, 在把数据从外部写 入存储单元的时候, 某一个或者多个字节 (byte) 可能会被屏蔽掉, 使 之不会改写存储单元里已经存储的数据。 这就使得 ECC的编码过程不能 顺利进行去产生监督位, 如图 3所示。 为了解决这个问题, 最简单的方 法是把 64位数据分成 8组, 每组 8位数据 (一个字节) , 这刚好是 DM 的屏蔽长度, 这样就不会受到 DM的影响。 但是由于每 8位数据需要 4 位的监督位, 那就会导致整个存储阵列的面积需要增加 50%, 使得 DRAM 的成本极大增加, 所以需要解决 DM带来的问题。 发明内容
根据本发明的第一方面, 本发明提供一种存储器的糾错方法, 主要 解决了现有 ECC编码过程中由于数据屏蔽的存在, 导致不能顺利进行编 码产生监督位或产生监督位需增加存储阵列面积的问题。
本发明的技术解决方案如下:
一种存储器的糾错方法, 包括以下步骤:
1 )读入外部数据, 根据设定的规则产生监督位, 同时产生表征位, 将外部数据、 表征位、 监督位存入存储器; 其中, 监督位用于实现数据 读入的检测和糾错, 表征位用于表征是否存在数据屏蔽; 若存在数据屏 蔽, 表明监督位无效, 若不存在数据屏蔽, 表明监督位有效;
2 )读出存储器内的外部数据、 表征位、 监督位; 若表征位表征存在 数据屏蔽, 表明监督位无效且数据读出时不进行解码和糾错, 若表征位 表征不存在数据屏蔽, 表明监督位有效且数据读出时用监督位进行解码 和糾错。
根据本发明第一方面的一个优选实施方案,上述外部数据为 64位汉 明码时, 监督位为 7位, 表征位为 1位, 表证位作为 65位数据串中的 第 65位。
根据本发明第一方面的一个优选实施方案, 上述步骤 2中如果仅存 在 1位数据错误时, 当错误数据为表征位或监督位时, 无需糾错; 当错 误数据不是表征位或监督位, 则根据表征位判断是否存在数据屏蔽, 若 不存在数据屏蔽, 用监督位对外部数据进行糾错, 若存在数据屏蔽时, 不糾错;
根据本发明第一方面的一个优选实施方案, 上述步骤 2中如果存在 两位及以上数据错误时, 不糾错。
根据本发明的第二方面, 提供一种存储器数据存取方法, 其特征在 于, 包括以下步骤:
1 ) 为待存储的数据产生监督位;
产生表征位, 该表征位表示待存储的数据中是否存在数据屏蔽; 存储数据、 表征位和监督位;
2 )读取数据、 表征位和监督位;
根据表征位判断是否存在数据屏蔽, 若表征位表示存在数据屏蔽, 则不对数据进行检测糾正, 若表征位表示不存在数据屏蔽, 则使用监督 位对数据进行检测糾正。
根据本发明第二方面的一个优选实施方案, 产生的表征位作为独立 部分被存储。
根据本发明第二方面的一个优选实施方案, 为所产生的表征位产生
表征位监督位, 该表征位监督位与表征位一起被存储。
根据本发明第二方面的一个优选实施方案, 在读取表征位和表征位 监督位之后, 使用表征位监督位对表征位进行检测糾正。
根据本发明第二方面的一个优选实施方案, 产生监督位的算法与产 生表征位监督位的算法相同。
根据本发明第二方面的一个优选实施方案, 所述表征位作为数据位 被存储, 或作为监督位被存储。
根据本发明第二方面的一个优选实施方案, 若表征位表示不存在数 据屏蔽, 则在对数据检测糾正前将表征位从数据位或监督位中去除。
根据本发明的第三方面, 提供一种存储器, 该存储器包括: 存储单 元; 监督位产生单元; 表征位产生单元; 写入单元; 读取单元; 以及糾 正单元;
其中所述监督位产生单元为待存储的数据产生监督位, 该监督位被 存储至所述存储单元; 所述表征位产生单元为待存储的数据产生表征 位, 该表征位表示待存储的数据中是否存在数据屏蔽, 并被存储至所述 存储单元; 所述写入单元将待存储的数据写入存储单元,
且其中所述读取单元从所述存储单元读取所存储的数据、 表征位和 监督位; 若表征位表示存在数据屏蔽, 则所述糾正单元不对所读取的数 据进行检测糾正, 若表征位表示不存在数据屏蔽, 则所述糾正单元对所 读取的数据进行检测糾正。
根据本发明第三方面的一个优选实施方案, 所述表征位作为独立部 分存储在所述存储单元中。
根据本发明第三方面的一个优选实施方案, 所述表征位产生单元为 所述表征位产生表征位监督位, 该表征位监督位与表征位一起存储在所 述存储单元中。
根据本发明第三方面的一个优选实施方案,还包括表征位糾正单元, 在从所述存储单元中读出表征位以及表征位监督位之后, 该表征位糾正 单元使用表征位监督位对表征位进行检测糾正。
根据本发明第三方面的一个优选实施方案, 产生监督位的算法与产 生表征位监督位的算法相同。
根据本发明第三方面的一个优选实施方案, 所述表征位作为数据位 被存储在所述存储单元中, 或作为监督位被存储在所述存储单元中。
根据本发明第三方面的一个优选实施方案, 根据本发明第三方面的 一个优选实施方案, 若表征位表示不存在数据屏蔽, 则所述糾正单元在 对数据进行检测糾正前将表征位从数据位或监督位中去除。
根据本发明第三方面的一个优选实施方案,采用汉明码产生监督位。 根据本发明第三方面的一个优选实施方案, 该存储器是动态随机存 取存储器。 本发明的优点在于:
通过采用表征位来判断是否存在数据屏蔽, 本发明提供的存储器存 取方法可降低在存在数据屏蔽时存储器出错的可能性。
此外,本发明适用于存在数据屏蔽的多种存储器,例如 DRAM、 SRAM, F l a sh等。 附图说明
参照附图, 将更好地理解本发明。 应理解, 附图仅出于示例目的来 绘制, 不应视为是对本发明的限制。
图 1为现有 ECC外部数据写入流程图;
图 2为现有 ECC外部数据读出流程图;
图 3为现有带数据屏蔽的 ECC外部数据写入流程图;
图 4为根据本发明一个实施方案的方法原理图。
图 5是根据本发明一个实施方案的存储器的示意图。 具体实施方式
结合图 1 , 现有 ECC编码可按照下面的步骤进行:
首先, 64位从外部来的数据被直接写入(图 1的 A ) ;
其次, ECC编码(encod ing )电路用此 64位外部数据通过一定的规 则产生 7位或者 8位的监督位(图 1的 B , 作为例示, 图 1中示出的是 8 位监督位) , 上述规则指的是具体的 ECC算法, 即 ECC编码电路根据实
际采用的 ECC算法而产生监督位, 监督位用于对数据进行检测糾正; 再次, 新的 64位数据和 7/8位监督位被写入存储阵列并完全代替 之前存储的信息 (图 1的 C ) 。
结合图 2 , 现有 ECC的解码和糾正按照下面的步骤进行:
首先, 64位数据和 7/8位监督位从存储阵列读出 (图 2的 C , 作为 例示, 图 2中示出的是 8位监督位) 。
其次, 监督位将通过一定的规则去解码(decod ing )判断数据是否 有错, 如果有错是哪位有错并去糾正 (cor rec t i on )错误的数据 (图 2 的 B ) , 这里的规则与图 1中编码时使用的规则对应。
再次, 解码后的数据被读出 (图 2的 A ) 。
结合图 3 , 现有带 DM的 ECC编码按照下面的步骤进行, 但目前在有 DM的情况下, ECC的编码不能正常工作:
首先, 外部 64位数据中有 56位需要从外面而来 (图 3的 A ) , 其 余 8位被 DM, 不写入存储阵列。
其次, 监督位仍由外部的 64位数据产生 (图 3的 B ) 。
再次, 在存储阵列中, 64位中的 56位被写入的外部数据代替, 64 位中其余的 8位仍保留原有信息。 此时的监督位相对这 64位数据来说 是一个完全错误的监督位 (图 3的 C ) 。
因此, 需要一种在读取数据时能够判断是否存在数据屏蔽的方法。 以下结合图 4及实施例对本发明进行详述:
该方法的思想是检测是否有 DM发生, 如果发生, 表明监督位无效 并且不去进行解码和糾正。 其中检测是否发生 DM是依据表征位进行的, 表征位表示数据中是否存在数据屏蔽。
下面的实施例以汉明码为例。 但应理解, 对于存储器, 出于出错率 和糾正成本的考虑, 最常使用的 ECC码是能够进行两位检测、 一位糾正 的码。 因此, 对于本发明中的实施方案中的汉明码, 本发明的糾正方法 可以糾正一位错误。 但这并不意味着排除了其他可以糾正两位或两位以 上错误的 ECC码, 即, 本发明同样适用于有两位或两位以上数据出错的 情况。 也就是说, 可以采用其他算法, 例如奇偶校验等, 来产生监督位。
对于汉明码, 64位数据需要 7位监督位去实现检测和糾正一位错误 数据的功能。 因此, 可以将表征位作为 65位数据串中的一个数据位, 其将会表征是否有 DM发生, 如图 4中所示。 但应理解, 该表征位也可 作为监督位中的第 8位(DRAM中每 8位构成一个基本单元)。 这位表征 位不受 ECC的编解码和糾正, 在解码和糾正前需要通过此数据判断是否 需要进行解码和糾正, 当然这判断和解码可同时进行以提高效率。例如, 如果用等于 " 0" 表示没有 DM, 等于 " 1 " 表示有 DM:
若表征位为 " 0" , 对数据进行解码和糾正。
若表征位为 " 1 " , 不对数据进行解码和糾正。
在图 4的实施例中, 表征位的位数为 1位。 但应理解, 表征位的位 数不限于 1位。 还应理解, 本发明中的数据长度也不限于图 4中示出的 64位, 监督位的位数依赖于数据长度以及产生监督位所采用的算法。
如上文所述, 作为根据本发明的方法的一个优选实施方案, 表征位 可以作为数据位被存储, 或作为监督位被存储。 当表征位作为数据位被 存储, 或作为监督位被存储时, 若表征位表示不存在数据屏蔽, 则在对 数据进行检测糾正前将表征位从数据位或监督位去除; 若表征位表示存 在数据屏蔽,则当表征位作为数据位存储时,将表征位从数据位中去除, 但不对数据进行检测糾正, 然后数据直接输出, 当表征位作为监督位存 储时, 不对数据进行任何处理, 数据直接输出。
此外, 根据本发明的方法的另一个优选实施方案, 产生的表征位可 以作为独立部分被存储, 即独立于数据和监督位, 作为一个单独部分被 存储。 当表征位作为独立部分被存储时, 优选地, 为提高表征位的可靠 性, 可以为该表征位产生表征位监督位, 该表征位监督位用于对表征位 进行检测糾正。 该表征位监督位与表征位一起被存储。 对此, 在读取表 征位以及表征位监督位之后, 使用表征位监督位对表征位进行检测糾 正, 之后根据已经检测和糾正的表征位判断是否存在数据屏蔽。
优选地, 产生监督位的算法与产生表征位监督位的算法相同 图 5示出了根据本发明一个实施方案的存储器 10的示意图。如图 5 中所示出的, 该存储器 10包括了写入单元 100、 存储单元 101、 监督位
产生单元 102、 表征位产生单元 103、 读取单元 104和糾正单元 105。 监督位产生单元 102为待存储的数据产生监督位, 监督位被存储至 存储单元 101 , 监督位用于对数据进行检测糾正。 表征位产生单元 103 为待存储的数据产生表征位, 该表征位表示待存储的数据中是否存在数 据屏蔽, 且该表征位被存储至存储单元 101。 数据通过写入单元 100被 存储至存储单元 101。
读取单元 104从存储单元 101读取所存储的数据、表征位和监督位。 若表征位表示存在数据屏蔽, 则糾正单元 105不对所读取的数据进行检 测糾正, 数据直接从存储器 10输出; 若表征位表示不存在数据屏蔽, 则糾正单元 105对所读取的数据进行检测糾正, 然后经检测和糾正的数 据从存储器 10输出。
根据本发明的一个优选实施方案, 表征位可以作为独立部分存储在 存储单元 101 , 即独立于数据和监督位, 作为一个单独部分被存储。 对 此, 优选地, 表征位产生单元 103可以为表征位产生表征位监督位, 该 表征位监督位用于对表征位进行检测糾正。 该表征位监督位与表征位作 为一起存储在存储单元 101中。
该存储器 10还可包括表征位糾正单元 106。在读取单元 104从存储 单元 101读取数据、 监督位、 表征位以及表征位监督位之后, 表征位以 及表征位监督位被送入表征位糾正单元 106 , 数据和监督位被送入糾正 单元 105。 表征位糾正单元 106使用表征位监督位对表征位进行检测糾 正, 然后表征位糾正单元 106将经检测和糾正的表征位送入糾正单元 105 , 以供糾正单元 105来通过表征位判断是否存在数据屏蔽。
优选地, 产生监督位的算法与产生表征位监督位的算法相同。
根据本发明的另一个优选实施方案, 表征位还可作为数据位被存储 在存储单元 101中, 或作为监督位被存储在存储单元 101中。 此时, 在 读取单元 104从存储单元 101读出所存储的数据、表征位和监督位之后, 数据、 表征位和监督位被送入糾正单元 105。 若表征位表示不存在数据 屏蔽, 则糾正单元 105在对数据进行检测糾正前将表征位从数据位或监 督位去除, 然后再对数据进行检测糾正, 经检测糾正后的数据从存储器 输出。 若表征位表示存在数据屏蔽, 当表征位作为数据位存储时, 则糾
正单元 105将表征位从数据位中去除, 但不对数据进行检测糾正, 然后 数据直接从存储器 10输出; 当表征位作为监督位存储时, 糾正单元 105 不对数据进行任何处理, 数据直接从存储器 10输出。
根据本发明的一个实施方案, 采用汉明码为待存储的数据产生监督 位。
根据本发明的一个实施方案, 该存储器是动态随机存取存储器。 上面例示了本发明的一些实施方式, 但应意识到, 本发明的实施方 式不限于此。 在不脱离本发明的精神和范围的前提下, 可以对本发明进 行多种改型。
Claims
1. 一种存储器数据存取方法, 其特征在于, 包括以下步骤:
1 ) 为待存储的数据产生监督位;
产生表征位, 该表征位表示待存储的数据中是否存在数据屏蔽; 存储数据、 表征位和监督位;
2 )读取数据、 表征位和监督位;
根据表征位判断是否存在数据屏蔽, 若表征位表示存在数据屏蔽, 则不对数据进行检测糾正, 若表征位表示不存在数据屏蔽, 则使用监 督位对数据进行检测糾正。
2. 根据权利要求 1所述的方法, 其特征在于, 产生的表征位作为 独立部分被存储。
3. 根据权利要求 2所述的方法, 其特征在于, 为所产生的表征位 产生表征位监督位, 该表征位监督位与表征位一起被存储。
4. 根据权利要求 3所述的方法, 其特征在于, 在读取表征位和表 征位监督位之后, 使用表征位监督位对表征位进行检测糾正。
5. 根据权利要求 3所述的方法, 其特征在于, 产生监督位的算法 与产生表征位监督位的算法相同。
6. 根据权利要求 1所述的方法, 其特征在于, 所述表征位作为数 据位被存储, 或作为监督位被存储。
7. 根据权利要求 6所述的方法, 其特征在于, 若表征位表示不存 在数据屏蔽, 则在对数据检测糾正前将表征位从数据位或监督位中去 除。
8.根据权利要求 1-7任一项所述的方法, 其特征在于, 采用汉明 码产生监督位。
9. 一种存储器, 该存储器包括:
存储单元;
监督位产生单元;
表征位产生单元;
写入单元;
读取单元; 以及
糾正单元;
其中所述监督位产生单元为待存储的数据产生监督位, 该监督位 被存储至所述存储单元; 所述表征位产生单元为待存储的数据产生表 征位, 该表征位表示待存储的数据中是否存在数据屏蔽, 并被存储至 所述存储单元; 所述写入单元将待存储的数据写入存储单元,
且其中所述读取单元从所述存储单元读取所存储的数据、 表征位 和监督位; 若表征位表示存在数据屏蔽, 则所述糾正单元不对所读取 的数据进行检测糾正, 若表征位表示不存在数据屏蔽, 则所述糾正单 元对所读取的数据进行检测糾正。
10. 根据权利要求 9所述的存储器, 其特征在于, 所述表征位作 为独立部分存储在所述存储单元中。
11. 根据权利要求 10所述的存储器, 其特征在于, 所述表征位产 生单元为所述表征位产生表征位监督位, 该表征位监督位与表征位一 起存储在所述存储单元中。
12. 根据权利要求 11所述的存储器, 其特征在于, 还包括表征位 糾正单元, 在从所述存储单元中读出表征位以及表征位监督位之后, 该表征位糾正单元使用表征位监督位对表征位进行检测糾正。
13. 根据权利要求 11所述的存储器, 其特征在于, 产生监督位的 算法与产生表征位监督位的算法相同。
14. 根据权利要求 9所述的存储器, 其特征在于, 所述表征位作 为数据位被存储在所述存储单元中, 或作为监督位被存储在所述存储 单元中。
15. 根据权利要求 14所述的存储器, 其特征在于, 若表征位表示 不存在数据屏蔽, 则所述糾正单元在对数据进行检测糾正前将表征位 从数据位或监督位中去除。
16.根据权利要求 1-15任一项所述的存储器, 其特征在于, 采用 汉明码产生监督位。
17. 根据权利要求 1-16任一项所述的存储器, 其特征在于, 该存 储器是动态随机存取存储器。
18.—种存储器的糾错方法, 其特征在于, 包括以下步骤:
1 )读入外部数据,根据设定的规则产生监督位, 同时产生表征位, 将外部数据、 表征位、 监督位存入存储器; 其中, 监督位用于实现数 据读入的检测和糾错, 表征位用于表征是否存在数据屏蔽; 若存在数 据屏蔽, 表明监督位无效, 若不存在数据屏蔽, 表明监督位有效;
2 )读出存储器内的外部数据、 表征位、 监督位; 若表征位表征存 在数据屏蔽, 表明监督位无效且数据读出时不进行解码和糾错, 若表 征位表征不存在数据屏蔽, 表明监督位有效且数据读出时用监督位进 行解码和糾错。
19.根据权利要求 18所述的存储器的糾错方法, 其特征在于: 所 述外部数据为 64位汉明码时, 监督位为 7位, 表征位为 1位, 表证位 作为 65位数据串中的第 65位。
20.根据权利要求 18或 19所述的存储器的糾错方法,其特征在于: 所述步骤 2中如果仅存在 1位数据错误时, 当错误数据为表征位或监 督位时, 无需糾错; 当错误数据不是表征位或监督位, 则根据表征位 判断是否存在数据屏蔽, 若不存在数据屏蔽, 用监督位对外部数据进 行糾错, 若存在数据屏蔽时, 不糾错;
21.根据权利要求 20所述的存储器的糾错方法, 其特征在于: 所 述步骤 2中如果存在两位及以上数据错误时, 不糾错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/778,042 US20160124803A1 (en) | 2013-03-19 | 2014-03-19 | Storage Device Data Access Method and Storage Device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310088811.7 | 2013-03-19 | ||
CN201310088811.7A CN103187104B (zh) | 2013-03-19 | 2013-03-19 | Dram存储器的纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014146574A1 true WO2014146574A1 (zh) | 2014-09-25 |
Family
ID=48678232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/073667 WO2014146574A1 (zh) | 2013-03-19 | 2014-03-19 | 存储器数据存取方法以及存储器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160124803A1 (zh) |
CN (1) | CN103187104B (zh) |
WO (1) | WO2014146574A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025948A (zh) * | 2017-05-17 | 2017-08-08 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103187104B (zh) * | 2013-03-19 | 2016-11-23 | 西安紫光国芯半导体有限公司 | Dram存储器的纠错方法 |
CN103531246B (zh) * | 2013-10-31 | 2016-10-05 | 西安紫光国芯半导体有限公司 | 快速以读代写的存储器纠错方法 |
CN103594120B (zh) * | 2013-10-31 | 2018-08-21 | 西安紫光国芯半导体有限公司 | 以读代写的存储器纠错方法 |
DE102013226407A1 (de) * | 2013-12-18 | 2015-06-18 | Continental Teves Ag & Co. Ohg | Verfahren und Vorrichtung zur Erkennung von fehlerhaften Daten in wenigstens einem Speicherelement |
US9588841B2 (en) * | 2014-09-26 | 2017-03-07 | Intel Corporation | Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units |
US20160378591A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Adaptive error correction in memory devices |
CN108511027A (zh) * | 2015-12-18 | 2018-09-07 | 中国科学院计算技术研究所 | 一种用于自动校正访问存储装置数据的装置及方法 |
CN107039087B (zh) * | 2017-05-17 | 2024-07-02 | 西安紫光国芯半导体股份有限公司 | 用于dram的ecc编码方法以及dram |
US11269720B2 (en) | 2019-08-11 | 2022-03-08 | Winbond Electronics Corp. | Memory storage apparatus and data access method |
CN110492889B (zh) * | 2019-08-16 | 2023-05-30 | 西安紫光国芯半导体有限公司 | 检测纠正两位错误的编码解码方法、编码解码器及处理器 |
CN115412103B (zh) * | 2022-11-01 | 2023-03-31 | 浙江力积存储科技有限公司 | 一种针对数据屏蔽的纠错方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924820A (zh) * | 2005-08-30 | 2007-03-07 | 奇梦达股份公司 | 用于将数据传送到数据存储器中的数据存储器系统和方法 |
CN101176159A (zh) * | 2005-05-17 | 2008-05-07 | 国际商业机器公司 | 在dram存储器中处理写屏蔽的方法 |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN103187104A (zh) * | 2013-03-19 | 2013-07-03 | 西安华芯半导体有限公司 | 存储器的纠错方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170474A (en) * | 1986-08-27 | 1992-12-08 | Hitachi, Ltd. | Method of searching a queue in response to a search instruction |
JPS6355636A (ja) * | 1986-08-27 | 1988-03-10 | Hitachi Ltd | デ−タ処理システム |
US5475766A (en) * | 1991-09-05 | 1995-12-12 | Kabushiki Kaisha Toshiba | Pattern inspection apparatus with corner rounding of reference pattern data |
US6122189A (en) * | 1998-10-02 | 2000-09-19 | Rambus Inc. | Data packet with embedded mask |
JP2009139632A (ja) * | 2007-12-06 | 2009-06-25 | Elpida Memory Inc | マスクパターン補正方法及び露光用マスク |
CN101216751B (zh) * | 2008-01-21 | 2010-07-14 | 戴葵 | 基于分布存储结构的具有数据处理能力的动态随机存储器装置 |
US8196009B2 (en) * | 2008-06-18 | 2012-06-05 | Intel Corporation | Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code |
US9530515B2 (en) * | 2013-03-13 | 2016-12-27 | Sandisk Technologies Llc | Determining read voltages for reading memory |
-
2013
- 2013-03-19 CN CN201310088811.7A patent/CN103187104B/zh active Active
-
2014
- 2014-03-19 WO PCT/CN2014/073667 patent/WO2014146574A1/zh active Application Filing
- 2014-03-19 US US14/778,042 patent/US20160124803A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101176159A (zh) * | 2005-05-17 | 2008-05-07 | 国际商业机器公司 | 在dram存储器中处理写屏蔽的方法 |
CN1924820A (zh) * | 2005-08-30 | 2007-03-07 | 奇梦达股份公司 | 用于将数据传送到数据存储器中的数据存储器系统和方法 |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN103187104A (zh) * | 2013-03-19 | 2013-07-03 | 西安华芯半导体有限公司 | 存储器的纠错方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025948A (zh) * | 2017-05-17 | 2017-08-08 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
CN107025948B (zh) * | 2017-05-17 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103187104B (zh) | 2016-11-23 |
US20160124803A1 (en) | 2016-05-05 |
CN103187104A (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014146574A1 (zh) | 存储器数据存取方法以及存储器 | |
US11734106B2 (en) | Memory repair method and apparatus based on error code tracking | |
US8812935B2 (en) | Using a data ECC to detect address corruption | |
TWI509624B (zh) | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 | |
US20060120166A1 (en) | Data processing apparatus and method for flash memory | |
US9239753B2 (en) | DRAM address protection | |
US9208027B2 (en) | Address error detection | |
TWI446160B (zh) | 快閃記憶體控制器及資料讀取方法 | |
KR20180089104A (ko) | 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법 | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
JP4790790B2 (ja) | 誤り検出訂正回路及び半導体メモリ | |
TWI566096B (zh) | 資料儲存系統與其相關方法 | |
JP2009295252A (ja) | 半導体記憶装置及びそのエラー訂正方法 | |
WO2015165202A1 (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
KR100577988B1 (ko) | 오류 검출 능력이 강화된 플래시 메모리 및 다비트 오류검출 방법 | |
JP2003059290A5 (zh) | ||
US9417957B2 (en) | Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device | |
JP6332134B2 (ja) | メモリ診断回路 | |
US11611358B2 (en) | Systems and methods for detecting or preventing false detection of three error bits by SEC | |
JP2005011386A (ja) | 誤り訂正装置 | |
US11809272B2 (en) | Error correction code offload for a serially-attached memory device | |
JP2007257628A (ja) | 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット | |
TWI703572B (zh) | 記憶體儲存裝置及其記憶體測試方法 | |
TWI708256B (zh) | 記憶體裝置、記憶體控制器及其資料存取方法 | |
JP2011154551A (ja) | 誤り検出訂正装置及び方法並びにメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14770808 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14778042 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14770808 Country of ref document: EP Kind code of ref document: A1 |