JP2010086120A - Error correction method and error detection method for memory, and controller using the same - Google Patents

Error correction method and error detection method for memory, and controller using the same

Info

Publication number
JP2010086120A
JP2010086120A JP2008252146A JP2008252146A JP2010086120A JP 2010086120 A JP2010086120 A JP 2010086120A JP 2008252146 A JP2008252146 A JP 2008252146A JP 2008252146 A JP2008252146 A JP 2008252146A JP 2010086120 A JP2010086120 A JP 2010086120A
Authority
JP
Japan
Prior art keywords
memory
data
error detection
error
error correction
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.)
Granted
Application number
JP2008252146A
Other languages
Japanese (ja)
Other versions
JP5174603B2 (en
Inventor
Makoto Fujita
良 藤田
Teruaki Sakata
輝昭 酒田
Masahiro Shiraishi
雅裕 白石
Takamasa Nishimura
卓真 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008252146A priority Critical patent/JP5174603B2/en
Publication of JP2010086120A publication Critical patent/JP2010086120A/en
Application granted granted Critical
Publication of JP5174603B2 publication Critical patent/JP5174603B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an error correction and detection method of a memory for solving the problem that any address and data to be written in a memory are not correctly stored in the memory. <P>SOLUTION: A controller 2 includes: a processor 4; a memory controller; and a memory device, and configured to, when the processor performs write access to arbitrary data to an address, generate an error detection code CRC to be determined from the address and the arbitrary data and an error correction code ECC to be determined from the error detection code CRC and the arbitrary data, and to write the error detection code CRC and the error correction code ECC as well as the arbitrary data in the memory device, and to, when the processor performs read access to the arbitrary address, read the error correction code ECC and the error detection code CRC and the data written in the memory device, and to correct the errors of the error detection code CRC and the read data read based on the read error correction code ECC, and to detect whether there exists any error in the corrected error detection code CRC and read data. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、高速で大容量のメモリ素子を用いたシステムにおいて、システムの故障や停止が重大な結果を招く可能性のあるミッションクリティカルなシステムで用いるメモリの誤り訂正方法,誤り検出方法及びそれを用いたコントローラに関する。   The present invention relates to an error correction method and error detection method for a memory used in a mission critical system in which a failure or stop of the system may cause a serious result in a system using a high-speed and large-capacity memory device. It relates to the controller used.

高速化,大容量化が進メモリ素子は、計算機システムに多く用いられ、さまざまな分野で利用されている。その中には、数秒のシステム停止が大損害につながるものや、その故障が重大な事故につながる可能性のあるいわゆるミッションクリティカルなシステムに使われる場合がある。そのようなミッションクリティカルなシステムでは、できるだけシステムを停止させないように可用性を高めることと、異常を即座に検出し、その異常を他に波及させないようにする安全性,信頼性が重要である。前者の可用性を高める方式としては、多数決を行う多重系システムや、誤り訂正符号を用い、誤りを常に訂正するシステムが知られている。後者の安全性,信頼性を高める方式としては、2重化したシステムの出力を常に照合する方式や、誤り検出符号を用いて誤りを検出し、誤ったデータの出力を抑止するシステムが知られている。   High-speed and large-capacity memory devices are often used in computer systems and are used in various fields. Some of them are used for what is called mission-critical systems where a system outage of a few seconds can lead to major damage or a failure that can lead to a serious accident. In such a mission-critical system, it is important to increase availability so that the system is not stopped as much as possible, and to detect safety and reliability so that the abnormality is detected immediately and the abnormality is not propagated to others. As a method for increasing the former availability, there are known a multiplex system that performs majority voting and a system that always corrects errors using an error correction code. As the latter method of improving safety and reliability, there are known a method of always collating the output of a duplicated system and a system for detecting an error using an error detection code and suppressing the output of erroneous data. ing.

この中でメモリシステムの可用性と信頼性の高性能化の方法について見てみると、高可用化手法としてはECC(Error Correction Code)が有名で、記憶データに数ビットのチェックビットを追加することで1ビットのエラー訂正と、2ビットのエラー検出を行うことができる。高信頼化手法としては、通信などの分野で大量のデータ列に対して誤りがないことを検出する方式として用いられる、誤り検出符号CRC(Cyclic Redundancy Check)が有名である。データ列にチェックビットを追加することで、数ビットのエラーがないことを判定することが出来る。よく知られているパリティチェックもCRCの一種である。   Looking at how to improve the availability and reliability of memory systems, ECC (Error Correction Code) is famous as a high availability method, and adding several check bits to stored data Thus, 1-bit error correction and 2-bit error detection can be performed. As a high reliability method, an error detection code CRC (Cyclic Redundancy Check), which is used as a method for detecting that there is no error in a large amount of data strings in the field of communication or the like, is famous. By adding a check bit to the data string, it can be determined that there is no error of several bits. The well-known parity check is also a kind of CRC.

他に、ROM(Read Only Memory)などの性能的にクリティカルでない用途では、同じ内容のデータをROMの別の領域、あるいは別のチップに複数格納し、内容を照合して使用するような誤り検出方法も用いられる。   In addition, for non-performance critical applications such as ROM (Read Only Memory), error detection is performed such that the same contents of data are stored in different areas of the ROM or in different chips and the contents are collated. A method is also used.

他に、CD(Compact Disc)やハードディスクなどで用いられているブロック符号化法を用いれば、連続した複数ビットのエラーを訂正,検出することが可能である。   In addition, if a block encoding method used in a CD (Compact Disc), a hard disk, or the like is used, it is possible to correct and detect errors of a plurality of consecutive bits.

例えば、〔特許文献1〕に示されたディスクシステムに用いるキャッシュメモリでは、データの完全性(間違いが無いこと)を保証するために、CRCを付加したデータ列をECCで誤り訂正を行うメモリに格納する構成が示されている。このようにすることで高い信頼性を保ちつつ、メモリ素子の1ビット故障にも耐える可用性を高めている。   For example, in the cache memory used in the disk system disclosed in [Patent Document 1], in order to guarantee the completeness of the data (there is no error), the data string to which CRC is added is used as a memory that performs error correction by ECC. The configuration to store is shown. By doing so, the availability to withstand a 1-bit failure of the memory element is enhanced while maintaining high reliability.

また、〔特許文献2〕に示されたデータ処理回路では、マトリックス状のパリティを用いた誤り訂正機能と、データ列に対するCRCを用いて同様に高信頼性と高可用性を向上させる構成が示されている。   In addition, the data processing circuit disclosed in [Patent Document 2] shows a configuration in which high reliability and high availability are similarly improved by using an error correction function using matrix parity and CRC for a data string. ing.

特開2002−23966号公報JP 2002-23966 A 特開2000−59235号公報JP 2000-59235 A

計算機システムのメモリ装置を構築する最も一般的な信頼性と可用性を向上させる方式は、誤り訂正符号ECCを用い、1ビットの誤りを訂正し、2ビットの誤りを訂正する方式である。1個のメモリセルの故障率は非常に小さく、それが2個である確率はその二乗であるから、ほとんどないと考えてよい。2個のメモリセルの故障は検出することが可能であり、3個以上はその確率は更に低いと考えられる。前述の〔特許文献1〕と〔特許文献2〕に記載されたシステムでは、さらに、データ列としての完全性(間違いがないこと)を確保するためにCRCをデータ列に付加し、メモリに格納する時はECCの誤り訂正機能の付いたメモリを用いている。   The most common method of improving the reliability and availability for constructing a memory device of a computer system is a method of correcting a 1-bit error and correcting a 2-bit error using an error correction code ECC. Since the failure rate of one memory cell is very small and the probability that it is two is its square, it can be considered that there is almost no failure. Failure of two memory cells can be detected, and the probability of three or more is considered to be even lower. In the systems described in [Patent Document 1] and [Patent Document 2], a CRC is added to the data string and stored in the memory in order to ensure the completeness (no error) as the data string. When doing so, a memory with an ECC error correction function is used.

さて、このように従来のメモリシステムにおいては高信頼,高可用性の向上が重要な課題であるが、一般的な要求として高速化も重要な課題の一つである。近年のメモリデバイスではクロックに同期したデータ転送はもちろん、クロックの立ち上がり、立ち下がりの両エッジを用いたものなど高速化が著しく進んできている。その転送時間は1ns(10の9乗分の1秒)を下回るところまできており、アナログレベルのボードシミュレーションを行わないと正しく動作しないレベルになっている。さらに、メモリデバイスの製造プロセスの微細化に伴い与える信号電圧は1V(ボルト)程度まで下がってきており、非常に少ないマージンの中で動作しなければならなくなってきている。高信頼化手法の一つに、緩和された条件で動作させるディレーティングといったものがあるが、最近のメモリデバイスはPLL(フェーズロックループ)を用いているため、高い周波数でしか動作しないようにできており、容易には適用できなくなってきた。   As described above, in the conventional memory system, improvement of high reliability and high availability is an important issue, but as a general requirement, speeding up is also an important issue. In recent memory devices, not only data transfer synchronized with the clock, but also the use of both rising and falling edges of the clock, the speed has been remarkably advanced. The transfer time is less than 1 ns (one second of the ninth power of 10), and it is at a level that does not operate correctly unless analog level board simulation is performed. Further, the signal voltage applied with the miniaturization of the manufacturing process of the memory device has decreased to about 1 V (volt), and it has become necessary to operate within a very small margin. One of the high reliability methods is derating that operates under relaxed conditions. However, recent memory devices use a PLL (phase-locked loop), so they can only operate at high frequencies. It has become difficult to apply.

このような高速化,低電圧化が進むメモリデバイスを前提に高信頼で、高可用性のあるシステムを構築しようとするとき、これまでメモリデバイス内部のメモリセルの故障のみを故障仮定としていただけでは不十分で、メモリとメモリを制御するメモリコントローラ間の接続信号までの故障を故障仮定する必要が出てくる。即ち、メモリデバイスの信号であるアドレス線,データ線,アドレスストローブ線,クロック線,データストローブ線,リードライト制御線の何れが一時的に、または永久的に、断線、あるいは短絡しても、即時にデータを訂正するか、誤りであることを検出することが必要となる。   When trying to build a highly reliable and highly available system on the premise of such memory devices that are becoming faster and lower in voltage, it has not been possible to assume that only the failure of the memory cells inside the memory device has been assumed to be a failure. It is sufficient, and it is necessary to assume a failure up to the connection signal between the memory and the memory controller that controls the memory. That is, even if any of the address lines, data lines, address strobe lines, clock lines, data strobe lines, and read / write control lines, which are memory device signals, is temporarily or permanently disconnected or short-circuited, It is necessary to correct the data or detect that it is an error.

この中で特にデータ線とデータストローブ線はクロックの立ち上がりと立ち下がりの両エッジを用いるため、他に比べ半分の動作時間で厳しいタイミングとなっている。そのデータストローブ線は数本のデータ線(通常4本か8本)ごとに用意され、データストローブグループを構築している。即ち、このデータストローブ信号がうまく伝送されなければ、例えば、一度に8ビットのデータが書き込まれなかったり、変なデータが書き込まれたりすることになる。このようなケースを含めて正しく誤りを訂正するか、検出できることが課題となってきた。そして、これを実現する回路は高速な転送性能に耐えられるだけの簡易なものでなければならない。   Among them, the data line and the data strobe line use both rising and falling edges of the clock, and therefore, the timing is severe with half the operation time compared to the other. The data strobe lines are prepared for every several data lines (usually 4 or 8 lines) to construct a data strobe group. That is, if this data strobe signal is not transmitted successfully, for example, 8-bit data may not be written at once, or strange data may be written. It has been a challenge to correct or detect errors including such cases. A circuit for realizing this must be simple enough to withstand high-speed transfer performance.

本発明はメモリに書き込むアドレスとデータが正しくメモリに格納されていない問題を解決するメモリの誤り訂正,誤り検出方法、及びそれを用いた制御装置を提供することにある。   An object of the present invention is to provide a memory error correction, error detection method, and control device using the same, which solve the problem that addresses and data to be written in the memory are not correctly stored in the memory.

上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えたコントローラにおいて、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正し、訂正された誤り検出符号CRCと読み出したデータに誤りがありかどうかを検出することを特徴とするものである。   To achieve the above object, according to the present invention, in a controller including a processor, a memory control device, and a memory device, when the processor performs write access to arbitrary data at an arbitrary address, the memory control device Generates an error detection code CRC determined from the address and the arbitrary data, and an error correction code ECC determined from the error detection code CRC and the arbitrary data, and error detection is performed together with the arbitrary data. When the code CRC and the error correction code ECC are written in the memory device and the processor performs read access to an arbitrary address, the memory control device reads the error correction code ECC written in the memory device and the error detection The code CRC and data are read, and the read error is based on the read error correction code ECC. It corrects the error of the output code CRC and the read data, the read data and the corrected error detection code CRC is characterized in detecting whether there is an error.

更に、本発明のコントローラは、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。   Furthermore, the controller of the present invention is characterized in that the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.

更に、本発明のコントローラは、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。   In the controller of the present invention, the memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is greater than the number of grouped signal lines. It is characterized by many.

また、上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを検出するメモリ誤り検出方法において、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを検出することを特徴とするものである。   According to another aspect of the present invention, there is provided a memory error detection method including a processor, a memory control device, and a memory device, wherein the processor detects an error in a memory, and the processor performs arbitrary processing for an arbitrary address. When the memory controller performs write access, the memory control unit uses the error detection code CRC determined from the address and the arbitrary data, and the error correction code ECC determined from the error detection code CRC and the arbitrary data. Generating and writing an error detection code CRC and an error correction code ECC along with the arbitrary data to the memory device, and when the processor performs read access to an arbitrary address, the memory control device The written error correction code ECC, error detection code CRC and data are read and the read error correction code is read. Is characterized in that detecting an error in data read error detection code CRC and the read the basis of the code ECC.

更に、本発明のメモリ誤り検出方法において、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。   Furthermore, the memory error detection method of the present invention is characterized in that the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.

更に、本発明のメモリ誤り検出方法において、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。   Furthermore, in the memory error detection method of the present invention, the memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is determined by the grouped signal. More than the number of lines.

また、上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを訂正するメモリ誤り訂正方法において、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正することを特徴とするものである。   In order to achieve the above object, according to the present invention, there is provided a memory error correction method that includes a processor, a memory control device, and a memory device, and corrects a memory error. When the memory controller performs write access, the memory control unit uses the error detection code CRC determined from the address and the arbitrary data, and the error correction code ECC determined from the error detection code CRC and the arbitrary data. Generating and writing an error detection code CRC and an error correction code ECC along with the arbitrary data to the memory device, and when the processor performs read access to an arbitrary address, the memory control device The written error correction code ECC, error detection code CRC and data are read and the read error correction code is read. It is characterized in that to correct errors in data read error detection code CRC and the read the basis of the code ECC.

更に、本発明のメモリ誤り訂正方法において、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。   Furthermore, the memory error correction method of the present invention is characterized in that the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.

更に、本発明のメモリ誤り訂正方法において、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。   Furthermore, in the memory error correction method of the present invention, the memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is determined by the grouped signal. More than the number of lines.

ここで、エラーを完全に検出できるようにするためCRCのビット数はデータストローブグループを構成するビット数以上にすることが望ましい。   Here, it is desirable that the number of CRC bits be greater than or equal to the number of bits constituting the data strobe group so that errors can be completely detected.

本発明は、上記メモリに書き込むデータと伴に、そのアドレスとデータから生成した誤り検出符号CRCをメモリに書き込むことで、アドレス線,データ線,アドレスストローブ線,データストローブ線,リードライト制御線などの異常を、即ち前記メモリに書き込むアドレスとデータが正しくメモリに格納されていないこと、あるいは、正しく読み出せなかったことを判定できる。特に、CRCのビット数をデータストローブグループを構成するビット数以上にすることで、アドレスストローブ信号の異常を確実に検出することが可能となる。   The present invention writes the address and the error detection code CRC generated from the data together with the data to be written into the memory, so that an address line, a data line, an address strobe line, a data strobe line, a read / write control line, etc. That is, it can be determined that the address and data to be written to the memory are not correctly stored in the memory, or that the data cannot be read correctly. In particular, it is possible to reliably detect an abnormality in the address strobe signal by setting the number of CRC bits to be equal to or greater than the number of bits constituting the data strobe group.

更に、この書き込むデータとCRCに対してECCを付加したことで1ビットのメモリセルエラー、1本のデータ線の異常を訂正することができるため、可用性を向上することが出来る。   Furthermore, by adding an ECC to the data to be written and the CRC, a 1-bit memory cell error and an abnormality in one data line can be corrected, so that the availability can be improved.

また、このメモリ制御装置を、CRC,ECCといった簡単な回路を用いて構築できるので高速なメモリデバイスを用いることが可能となる。   Further, since this memory control device can be constructed using simple circuits such as CRC and ECC, a high-speed memory device can be used.

本発明の実施形態を以下図面を用いて説明する。   Embodiments of the present invention will be described below with reference to the drawings.

以下、本発明を実施するための最良の一実施形態を図1から図7を用いて説明する。   The best mode for carrying out the present invention will be described below with reference to FIGS.

図1は、本発明におけるメモリシステムを用いた高信頼コントローラ6の構成を示している。高信頼コントローラ6はメモリ1,メモリコントローラ2,プロセッサ4から構成され、メモリコントローラ2とメモリ1とは信号線群3で接続している。また、メモリコントローラ2とプロセッサ4は信号線群5で接続している。   FIG. 1 shows a configuration of a high-reliability controller 6 using a memory system according to the present invention. The high-reliability controller 6 includes a memory 1, a memory controller 2, and a processor 4, and the memory controller 2 and the memory 1 are connected by a signal line group 3. The memory controller 2 and the processor 4 are connected by a signal line group 5.

プロセッサ4はプロセッサ4内部にあるプログラム(記載せず)あるいは、それにより生成するメモリ1上のプログラムに従って動作する。一般には高信頼コントローラ6の外部からのセンサなどデータを入力し、プログラムに基づいて演算処理し、結果をアクチュエータなどに出力してシステムを制御する。このとき、プロセッサ4は、信号線群5を用い必要に応じてメモリコントローラ2に対してデータのライト,リードを行う。一般的なプロセッサでは、図1に示すように、クロック(CLK),アドレス及びデータ(AD),転送開始(BS),リードライト制御(RW),レディ(RDY),エラー(ERR)などの信号線が用いられる。   The processor 4 operates in accordance with a program (not shown) in the processor 4 or a program on the memory 1 generated thereby. In general, data such as a sensor from the outside of the high-reliability controller 6 is input, arithmetic processing is performed based on a program, and the result is output to an actuator or the like to control the system. At this time, the processor 4 uses the signal line group 5 to write / read data to / from the memory controller 2 as necessary. In a general processor, as shown in FIG. 1, signals such as clock (CLK), address and data (AD), transfer start (BS), read / write control (RW), ready (RDY), error (ERR), etc. A line is used.

メモリコントローラ2は、プロセッサ4からのメモリアクセス要求に対して実際のメモリ1にアクセスする装置であり、信号線群5のアクセス要求内容をメモリ1の信号線群3に変換する処理を行う。メモリ1は具体的にはクロック同期式のダイナミックメモリを複数個使用しており、信号線群3にはクロック(CLK),アドレス(A),ローアドレスストローブ(RAS),カラムアドレスストローブ(CAS),ライトリード制御(WE),データマスク(DM),データストローブ(DQS),データ(DQ)などがある。これらは、一般的なダブルデータレート式の同期式ダイナミックメモリの信号線群であるが、特に、データマスク,データストローブはデータをバイト単位に制御できるようになっている。即ち、データが48ビットの場合、データマスクとデータストローブはそれぞれ6本の信号で構成される。   The memory controller 2 is a device that accesses the actual memory 1 in response to a memory access request from the processor 4, and performs processing for converting the access request contents of the signal line group 5 into the signal line group 3 of the memory 1. Specifically, the memory 1 uses a plurality of clock synchronous dynamic memories. The signal line group 3 includes a clock (CLK), an address (A), a row address strobe (RAS), and a column address strobe (CAS). , Write read control (WE), data mask (DM), data strobe (DQS), data (DQ), and the like. These are signal lines of a general double data rate type synchronous dynamic memory. In particular, the data mask and the data strobe can control data in units of bytes. That is, when the data is 48 bits, the data mask and the data strobe are each composed of six signals.

次にメモリ1は、一般的なダブルデータレート式の同期式ダイナミックメモリで構築できるメモリであるが、ここではN個のデータがアドレスAの指定でアクセスできるように構成する。メモリ1には、NeビットのECCとNcビットのCRC、Ndビットのアクセスデータを格納する。アクセスデータは、プロセッサ4やメモリコントローラ2のアクセス単位、あるいはその倍数が望ましく、ここでは4バイト(32ビット)を想定している。その場合、Ndは32となる。Ncはアドレスとデータから生成するCRCのビット数であるが、適用する誤り検出能力でそのビット数を決めることになる。ここでは、アドレスとデータを合わせて64ビット以下に対してハミング距離が出来るだけ大きくする設定をすればよい。また、一般的に知られているように、NcビットのCRCを用いればNcビットまでのバーストエラー、即ち連続したエラーを検出する能力が保証される。ここでは、データストローブ,データマスクでデータがバーストエラーになる可能性があるため、Ncを8以上とする。NeはECCのビット数であり、ECCを一般的な1ビット誤り訂正、2ビット誤り検出を出来るものとすると、Neは7とすることができる(Nd+Ncは40+αで、エラービットを特定するシンドロームに0〜63を指定できる6ビットと2ビットエラー検出のためにパリティ1ビットを追加)。一般に、メモリデバイスは8ビットの倍数で出来ており、メモリ1のデータ幅を8ビットの倍数にするには、Ndを32、Neを7とすると、Ncは大きいほど誤り検出能力が高いので9とする。   Next, the memory 1 is a memory that can be constructed by a general double data rate type synchronous dynamic memory. Here, the N data is configured to be accessible by designating the address A. The memory 1 stores Ne-bit ECC, Nc-bit CRC, and Nd-bit access data. The access data is preferably an access unit of the processor 4 or the memory controller 2 or a multiple of the access data. Here, 4 bytes (32 bits) are assumed. In that case, Nd is 32. Nc is the number of CRC bits generated from the address and data, and the number of bits is determined by the error detection capability to be applied. Here, it is only necessary to set the Hamming distance as large as possible for 64 bits or less in total of the address and data. As is generally known, the use of CRC of Nc bits guarantees the ability to detect burst errors up to Nc bits, that is, consecutive errors. In this case, Nc is set to 8 or more because there is a possibility that data becomes a burst error due to the data strobe and data mask. Ne is the number of ECC bits. If ECC can be used for general 1-bit error correction and 2-bit error detection, Ne can be 7 (Nd + Nc is 40 + α, which is a syndrome for specifying an error bit). 6 bits that can specify 0-63 and 1 parity bit for 2-bit error detection). Generally, a memory device is made of a multiple of 8 bits. To make the data width of the memory 1 a multiple of 8 bits, Nd is 32 and Ne is 7. As Nc is larger, error detection capability is higher. And

図2には、メモリコントローラ2とメモリ1との接続関係をより具体的に示す。メモリ1は16ビットのデータ幅のメモリデバイス11,12,13から構成され、クロックは差動で正反2本の信号線をメモリデバイス個別に接続している。このクロックは125MHz以上必要であり、現在500MHzと年々高速化されている。このクロックに同期して与える信号が、アドレス(A),ローアドレスストローブ(RAS),カラムアドレスストローブ(CAS),ライトリード制御信号(WE)で比較的タイミングが厳しくないため、メモリデバイスに同じ信号線で接続する。8ビット単位にメモリコントローラと1対1に接続するデータマスク(DMU,DML),データストローブ(DQSU,DQSL),データ(DQ)は、クロックの立ち上がり,立ち下がりを使用し周波数が2倍となるためクリティカルパスである。特にデータストローブ,データは双方向の信号でもあり、さらに厳しい信号といえる。   FIG. 2 shows the connection relationship between the memory controller 2 and the memory 1 more specifically. The memory 1 is composed of memory devices 11, 12, and 13 having a data width of 16 bits. The clock is differential and two signal lines are connected to each memory device individually. This clock requires 125 MHz or more, and is currently being speeded up to 500 MHz year by year. The signals given in synchronization with this clock are address (A), row address strobe (RAS), column address strobe (CAS), and write / read control signal (WE). Connect with wires. The data mask (DMU, DML), data strobe (DQSU, DQSL), and data (DQ) connected to the memory controller in one-to-one correspondence in units of 8 bits use the rising and falling edges of the clock to double the frequency. Therefore, it is a critical path. In particular, the data strobe and data are bidirectional signals and can be said to be stricter signals.

このメモリインタフェースは一般的なダブルデータレートの同期式ダイナミックメモリと同じであるが、その厳しさを説明するため図3,図4にタイムチャートを示す。   This memory interface is the same as a general synchronous dynamic memory having a double data rate, but time charts are shown in FIGS. 3 and 4 for explaining its severity.

まず、図3はメモリへのデータライトを行うタイミングを示している。最も重要なクロックは差動信号で与える(CLKPとCLKN)。以下アドレスA,ローアドレスストローブRAS,カラムアドレスストローブCAS,ライトリード制御信号WEはクロック(CLKP)の立ち上がりでラッチされる。時間T1でアドレスAにローアドレスをメモリ内部にセット、時間T3でアドレスAにカラムアドレスを内部にセット、同時にライトアクセスであることを指定している。ここで、ローアドレスストローブRAS,カラムアドレスストローブCAS,ライトリード制御信号WEはローアクティブの信号であり、ローレベルで所定の動作を意味する信号となっている。メモリは時間T3で指定されたローアドレスとカラムアドレスで指定されたメモリエリアにライトアクセスが行われることが判る。そして、ライトデータ受け取った後該メモリエリアにライトデータを書き込むことになる。この時、ライトデータはデータストローブDQSLをクロックとしてデータDQ及び、データマスクDMLで与えられる。データストローブはクロックと同じ周波数であるが位相は一致していない信号で、データ,データマスクの有効なタイミングで立ち上がり、または、立ち下がりエッジがくる信号である。通常は、データ及びデータストローブはハイインピーダンス状態になっており、時間T3でライト動作を指定した後オンバスする。データマスクはハイレベルの時、該当するデータをメモリに書き込まないようにする信号である。図3には、データを8ビット,データマスクとデータストローブをそれぞれ1本分示したが、図2に示した回路では、これらが6セット存在する。このように8ビットのデータ単位でグループ化することで、データと、データマスク,データストローブの配線遅延を最小限に抑えることができ、高速にデータ転送できるようにしている。   First, FIG. 3 shows the timing of data writing to the memory. The most important clock is given by differential signals (CLKP and CLKN). Hereinafter, the address A, the row address strobe RAS, the column address strobe CAS, and the write / read control signal WE are latched at the rising edge of the clock (CLKP). At time T1, a row address is set in the memory at address A, and at time T3, a column address is set in address A at the same time. Here, the row address strobe RAS, the column address strobe CAS, and the write / read control signal WE are low-active signals, which are signals indicating a predetermined operation at a low level. It can be seen that the memory is write-accessed to the memory area specified by the row address and column address specified at time T3. Then, after receiving the write data, the write data is written into the memory area. At this time, the write data is given by the data DQ and the data mask DML using the data strobe DQSL as a clock. The data strobe is a signal having the same frequency as the clock but not in phase, and is a signal that rises or falls at an effective timing of data and data mask. Normally, the data and the data strobe are in a high impedance state, and they are turned on after designating the write operation at time T3. The data mask is a signal that prevents the corresponding data from being written into the memory when it is at a high level. FIG. 3 shows 8 bits of data and one data mask and one data strobe, but there are 6 sets of these in the circuit shown in FIG. By grouping in units of 8-bit data in this way, the wiring delay of data, data mask, and data strobe can be minimized and data can be transferred at high speed.

図4はリードを行う場合のタイミングである。アドレスとローアドレスストローブ,カラムアドレスストローブ,ライトリード制御信号の与え方はライト動作と同じであるが、リードしたデータの出力タイミングは少し異なっている。即ち、ライト動作の時は、データまたは、ライトマスクの中央にデータストローブの立ち上がりまたは、立ち下がりエッジがくるようにしたが、リードの場合にはメモリは、データストローブの立ち上がりまたは立ち下がりと同時にデータを出力することになっている。即ち、受け取るメモリコントローラでは、受信したデータストローブからデータが有効であるタイミングでデータを取り込む必要がある。この場合、時間T5と時間T6の中間付近(正確にはデータストローブの立ち上がりと立ち下がりの中間)でデータを内部に取り込む。クロックを400MHzとすると、周期は2.5ns、データの有効期間は1.25ns、データストローブとデータを取り込むタイミングの差は0.625nsと非常に高速なタイミングをコントロールする必要がある。電気信号の伝送速度が10cmでおよそ0.6nsである。電圧は1.5v程度に下がり、反射も考慮する必要がある。このように、メモリはタイミング的に非常に厳しい信号線で接続されている。これらの信号線のうち高々1本の信号線が正しく伝送できない場合のことを考える。アドレス,ローアドレスストローブ,カラムアドレスストローブ,ライトリード制御信号が正しくメモリに伝送されない場合は、指定したアドレスとは別なメモリエリアにライトしたり、リードしたりしてしまうことになる。データストローブやデータマスクが正しく伝送されない場合には、8ビット単位にライトすべきデータがマスクされたり、マスクするはずのデータがライトされたりする。データが正しく転送されない場合には、データが1ビット誤ってライトされたり、リードされたりする。   FIG. 4 shows the timing when reading is performed. The address, row address strobe, column address strobe, and write / read control signal are applied in the same manner as in the write operation, but the output timing of the read data is slightly different. In other words, during the write operation, the rising or falling edge of the data strobe comes to the center of the data or write mask. However, in the case of reading, the memory stores data at the same time as the rising or falling edge of the data strobe. Is supposed to be output. That is, the receiving memory controller needs to take in data from the received data strobe at a timing when the data is valid. In this case, data is taken in around the middle of the time T5 and the time T6 (more precisely, between the rising and falling edges of the data strobe). When the clock is 400 MHz, the period is 2.5 ns, the valid period of data is 1.25 ns, and the difference between the data strobe and the data fetching timing is 0.625 ns, so that it is necessary to control very high timing. The transmission speed of the electric signal is about 0.6 ns at 10 cm. The voltage drops to about 1.5v, and reflection needs to be considered. In this way, the memories are connected by signal lines that are very strict in terms of timing. Consider a case where at most one of these signal lines cannot be transmitted correctly. If the address, row address strobe, column address strobe, and write / read control signal are not correctly transmitted to the memory, data is written to or read from a memory area different from the designated address. When the data strobe or the data mask is not transmitted correctly, the data to be written is masked in units of 8 bits or the data to be masked is written. If the data is not transferred correctly, the data is erroneously written or read by 1 bit.

本発明はこれらの異常状態を訂正あるいは検出できるようにすることを目的としてなされた。先ず、1ビットの異常を検出し訂正するために誤り訂正符号ECCを付加した。更に、8ビットの連続した異常を検出するために、8次以上の生成多項式を用いた誤り検出符号CRCをアクセスするアドレスとデータに対して付加した。以下その実現方法を図5と図6を用いて説明する。   The present invention has been made for the purpose of correcting or detecting these abnormal states. First, an error correction code ECC was added to detect and correct a 1-bit abnormality. Further, in order to detect consecutive abnormalities of 8 bits, an error detection code CRC using an 8th-order or higher generation polynomial is added to the address and data to be accessed. The realization method will be described below with reference to FIGS.

図5はメモリコントローラ2におけるメモリへのライトデータを生成する回路を示したものである。プロセッサ4からのメモリへのアクセス要求に基づくアドレスAとライトデータWDが与えられると、メモリコントローラ2はアドレスAはそのままメモリ1への信号として出力すると伴に、CRC生成回路21の入力とする。ここでは便宜上アドレスAをそのまま出力する構成を記したが、実際にはローアドレスとカラムアドレスに分離する回路が挿入される。さて、CRC生成回路21では、ライトするデータWDと該アドレスAから9ビットのCRCを生成する。ここでは、例えば生成多項式としてX(9)+X(7)+X(5)+X(4)+X(2)+X(1)+1を用いる。ここで、X(N)はXのN乗を示す。この時ハミング距離は4であり、任意の3個までのビット誤りを検出できる、さらに、9個の連続したビット誤りを検出することが出来るようになる。   FIG. 5 shows a circuit for generating write data to the memory in the memory controller 2. When the address A and the write data WD based on the memory access request from the processor 4 are given, the memory controller 2 outputs the address A as a signal to the memory 1 as it is and also inputs it to the CRC generation circuit 21. Here, for the sake of convenience, the configuration in which the address A is output as it is is described, but actually, a circuit for separating the row address and the column address is inserted. The CRC generation circuit 21 generates a 9-bit CRC from the data WD to be written and the address A. Here, for example, X (9) + X (7) + X (5) + X (4) + X (2) + X (1) +1 is used as a generator polynomial. Here, X (N) represents X to the Nth power. At this time, the Hamming distance is 4, so that it is possible to detect up to three arbitrary bit errors, and it is possible to detect nine consecutive bit errors.

次に、このCRCとライトデータWDからECC生成回路22で誤り訂正符号ECCを生成する。今、ライトデータWDを32ビット、CRCを9ビットとしているから、あわせて41ビットのデータに対してECCを生成する。1ビットの誤り訂正能力と2ビットの誤り検出能力を持たせる場合、7ビットのECCを付加すればよい。一般に、7ビットのECCは1ビットのパリティと6ビットのシンドロームから構成されている。6ビットのシンドロームは異常の検出されたビット位置を一意に示すもので、通常異常が無い場合は0になる値である。   Next, the ECC generation circuit 22 generates an error correction code ECC from the CRC and the write data WD. Since write data WD is 32 bits and CRC is 9 bits, ECC is generated for 41-bit data. In order to provide a 1-bit error correction capability and a 2-bit error detection capability, a 7-bit ECC may be added. In general, a 7-bit ECC is composed of a 1-bit parity and a 6-bit syndrome. The 6-bit syndrome uniquely indicates a bit position where an abnormality has been detected, and is normally a value that is 0 when there is no abnormality.

これらCRCとECCとライトデータWDをメモリへのライトするデータ31として出力する。   The CRC, ECC, and write data WD are output as data 31 to be written to the memory.

次に、図6にメモリ1からリードしたデータが正しいかどうかをチェックし、訂正する回路を示す。アドレスAに対してリードしたデータ31として入力されると、ECCチェック回路23でデータ31を入力としてECCをチェックし2ビットエラーのときはECCエラーを、1ビットエラーのときはシンドロームをECC訂正回路24に与える。ECCチェック回路23では、データ31からシンドロームとパリティを求め、パリティが0でシンドロームが0でない時、即ちパリティとシンドロームに矛盾があるときECCエラーをアサートする。ECC訂正へはシンドローム6ビットをそのまま送ればよい。   Next, FIG. 6 shows a circuit for checking whether the data read from the memory 1 is correct and correcting it. When it is input as the data 31 read from the address A, the ECC check circuit 23 inputs the data 31 and checks the ECC. When a 2-bit error occurs, the ECC error is displayed. When a 1-bit error occurs, the syndrome is displayed as an ECC correction circuit. 24. The ECC check circuit 23 obtains a syndrome and parity from the data 31, and asserts an ECC error when the parity is 0 and the syndrome is not 0, that is, when there is a contradiction between the parity and the syndrome. The syndrome 6 bits may be sent as it is to the ECC correction.

ECC訂正回路24では、ECCチェック回路23からにシンドロームの値に従ってCRCとデータDATAの所定のビットを反転させる。ECC訂正回路24の出力はアドレスAと伴にCRCチェック回路25に入力し、CRCが正しいかチェックする。CRCチェック回路はアドレスAと、ECC訂正回路24で訂正されたデータが前記CRC生成回路21で用いた生成多項式で除算し余りが0のとき、CRCが正しいと判定する回路である。プロセッサ4の指示でメモリコントローラ2がアドレスAに対して読み出しを行うと、ECCエラー及びCRCエラーが無い時データRDを正しいリードデータとしてプロセッサ4に送る。ECCエラーあるいはCRCエラーが発生したときは、例えばメモリエラーが発生した割り込み(図1のプロセッサ4のポートERRに接続した信号)をプロセッサ4に与えメモリが異常であることを認識することができる。高信頼コントローラ6はこれによりメモリに異常が有ったことを認識できるので、何度かリトライ後ダウン信号を出力して停止するようにする。   The ECC correction circuit 24 inverts predetermined bits of CRC and data DATA from the ECC check circuit 23 according to the value of the syndrome. The output of the ECC correction circuit 24 is input to the CRC check circuit 25 together with the address A to check whether the CRC is correct. The CRC check circuit is a circuit that determines that the CRC is correct when the address A and the data corrected by the ECC correction circuit 24 are divided by the generator polynomial used in the CRC generation circuit 21 and the remainder is zero. When the memory controller 2 reads the address A in response to an instruction from the processor 4, the data RD is sent to the processor 4 as correct read data when there is no ECC error and CRC error. When an ECC error or a CRC error occurs, for example, an interrupt (a signal connected to the port ERR of the processor 4 in FIG. 1) in which a memory error has occurred can be given to the processor 4 to recognize that the memory is abnormal. Since the highly reliable controller 6 can recognize that there is an abnormality in the memory, it outputs a down signal several times after the retry and stops.

ここで、ECC生成回路22,CRC生成回路21,ECCチェック回路23,CRCチェック回路25はそれぞれ多段の排他的論理和演算素子で構成される。それぞれ同じ回路ではないが、入力ビット数に対して排他的論理和を求めていくだけの回路であるから、32ビットのアドレス、32ビットのデータを最大の入力として64ビットの入力を2入力の排他的論理和では6段で結果を得ることが出来る。1個の2入力排他的論理は0.1ns以下で演算可能であり、演算時間に余裕を持って演算結果を得ることが出来る。   Here, the ECC generation circuit 22, the CRC generation circuit 21, the ECC check circuit 23, and the CRC check circuit 25 are each composed of a multi-stage exclusive OR operation element. Although they are not the same circuit, they are circuits that only obtain an exclusive OR for the number of input bits. Therefore, a 32-bit address and 32-bit data are the maximum inputs, and a 64-bit input is exclusive of two inputs. In logical OR, the result can be obtained in 6 stages. One 2-input exclusive logic can be operated in 0.1 ns or less, and an operation result can be obtained with a sufficient operation time.

図7は、このような高信頼コントローラを2個用いて高信頼,高可用性システムを構築した例を示している。2個の高信頼コントローラ61と62は同じ入力信号を受け、同じ処理を行い、高信頼用の出力制御装置7に出力データと伴にダウン信号を出力する。高信頼コントローラ61または62からのダウン信号は、正しく動作している時に決まった周期で0と1を反転するような信号で、一定値になる時異常であることを示す信号が一般に使用される。出力制御装置7は、2個の高信頼コントローラ61と62が正常動作している時は、それらのどちらかを出力する。どちらか一方の高信頼コントローラが異常になった時は、正常の高信頼コントローラの出力を選択して出力する。また、その際には故障した高信頼コントローラの交換を要求する信号を出力する。   FIG. 7 shows an example of constructing a highly reliable and highly available system using two such highly reliable controllers. The two high-reliability controllers 61 and 62 receive the same input signal, perform the same processing, and output a down signal together with the output data to the high-reliability output control device 7. The down signal from the high-reliability controller 61 or 62 is a signal that inverts 0 and 1 at a fixed period when operating correctly, and a signal that indicates an abnormality when it becomes a constant value is generally used. . When the two high-reliability controllers 61 and 62 are operating normally, the output control device 7 outputs one of them. When either one of the high reliability controllers becomes abnormal, the output of the normal high reliability controller is selected and output. At that time, a signal requesting replacement of the failed high reliability controller is output.

以上示してきたように、本実施例に拠れば、アドレスとデータに対する誤り検出符号CRCを9ビット付加し、更に該CRCとデータに誤り訂正コードECCを7ビット付加したことにより1ビットのメモリ内セル及びメモリ間配線の異常を訂正あるいは検出することが可能になった。   As described above, according to this embodiment, 9 bits of the error detection code CRC for the address and data are added, and 7 bits of the error correction code ECC is added to the CRC and data. It has become possible to correct or detect abnormalities in the wiring between the cell and the memory.

高信頼コントローラの構成を示す図。The figure which shows the structure of a highly reliable controller. メモリコントローラとメモリデバイスとの接続を示す図。The figure which shows the connection of a memory controller and a memory device. メモリのライトタイミングを示す図。The figure which shows the write timing of memory. メモリのリードタイミングを示す図。The figure which shows the read timing of a memory. メモリコントローラのライトデータ生成回路を示す図。The figure which shows the write data generation circuit of a memory controller. メモリコントローラのリードデータ誤り訂正,検出回路を示す図。The figure which shows the read data error correction and detection circuit of a memory controller. 高信頼コントローラを用いた高信頼,高可用性システムを示す図。A diagram showing a highly reliable and highly available system using a highly reliable controller.

符号の説明Explanation of symbols

1 メモリ
2 メモリコントローラ
4 プロセッサ
6 高信頼コントローラ
11,12,13 メモリデバイス
21 CRC生成回路
22 ECC生成回路
23 シンドローム算出回路
24 ECC訂正回路
25 CRCチェック回路
DESCRIPTION OF SYMBOLS 1 Memory 2 Memory controller 4 Processor 6 High reliability controller 11, 12, 13 Memory device 21 CRC generation circuit 22 ECC generation circuit 23 Syndrome calculation circuit 24 ECC correction circuit 25 CRC check circuit

Claims (9)

プロセッサと、メモリ制御装置と、メモリ装置とを備えたコントローラにおいて、
前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正し、訂正された誤り検出符号CRCと読み出したデータに誤りがありかどうかを検出することを特徴とするコントローラ。
In a controller comprising a processor, a memory control device, and a memory device,
When the processor performs write access to arbitrary data at an arbitrary address, the memory control device, the error detection code CRC determined from the address and the arbitrary data, the error detection code CRC and the arbitrary data An error correction code ECC determined from the data is generated, and an error detection code CRC and an error correction code ECC are written to the memory device together with the arbitrary data;
When the processor performs read access to an arbitrary address, the memory control device reads the error correction code ECC, error detection code CRC, and data written in the memory device, and reads the read error correction code ECC. And a controller for correcting an error in the read error detection code CRC and the read data and detecting whether there is an error in the corrected error detection code CRC and the read data.
請求項1のコントローラにおいて、
前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするコントローラ。
The controller of claim 1, wherein
The controller, wherein the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.
請求項1のコントローラにおいて、
前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするコントローラ。
The controller of claim 1, wherein
The controller, wherein the memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is larger than the number of grouped signal lines.
プロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを検出するメモリ誤り検出方法において、
前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを検出することを特徴とするメモリ誤り検出方法。
In a memory error detection method for detecting a memory error, comprising a processor, a memory control device, and a memory device,
When the processor performs write access to arbitrary data at an arbitrary address, the memory control device, the error detection code CRC determined from the address and the arbitrary data, the error detection code CRC and the arbitrary data An error correction code ECC determined from the data is generated, and an error detection code CRC and an error correction code ECC are written to the memory device together with the arbitrary data;
When the processor performs read access to an arbitrary address, the memory control device reads the error correction code ECC, error detection code CRC, and data written in the memory device, and reads the read error correction code ECC. A memory error detection method, comprising: detecting an error between the read error detection code CRC and the read data based on the method.
請求項4のメモリ誤り検出方法において、
前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするメモリ誤り検出方法。
The memory error detection method according to claim 4,
A memory error detection method, wherein the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.
請求項4のメモリ誤り検出方法において、
前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするメモリ誤り検出方法。
The memory error detection method according to claim 4,
The memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is larger than the number of grouped signal lines. Detection method.
プロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを訂正するメモリ誤り訂正方法において、
前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正することを特徴とするメモリ誤り訂正方法。
In a memory error correction method for correcting a memory error, comprising a processor, a memory control device, and a memory device,
When the processor performs write access to arbitrary data at an arbitrary address, the memory control device, the error detection code CRC determined from the address and the arbitrary data, the error detection code CRC and the arbitrary data An error correction code ECC determined from the data is generated, and an error detection code CRC and an error correction code ECC are written to the memory device together with the arbitrary data;
When the processor performs read access to an arbitrary address, the memory control device reads the error correction code ECC, error detection code CRC, and data written in the memory device, and reads the read error correction code ECC. A memory error correction method, comprising: correcting an error between the read error detection code CRC and the read data based on:
請求項7のメモリ誤り訂正方法において、
前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするメモリ誤り訂正方法。
The memory error correction method according to claim 7,
A memory error correction method, wherein the number of bits of the error detection code CRC is larger than the number of error detection bits detectable by the error correction code ECC.
請求項7のメモリ誤り訂正方法において、
前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするメモリ誤り訂正方法。
The memory error correction method according to claim 7,
The memory device is connected to the memory control device by a plurality of grouped signal lines, and the number of bits of the error detection code CRC is larger than the number of grouped signal lines. Correction method.
JP2008252146A 2008-09-30 2008-09-30 Memory error correction method, error detection method, and controller using the same Active JP5174603B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008252146A JP5174603B2 (en) 2008-09-30 2008-09-30 Memory error correction method, error detection method, and controller using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008252146A JP5174603B2 (en) 2008-09-30 2008-09-30 Memory error correction method, error detection method, and controller using the same

Publications (2)

Publication Number Publication Date
JP2010086120A true JP2010086120A (en) 2010-04-15
JP5174603B2 JP5174603B2 (en) 2013-04-03

Family

ID=42250049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008252146A Active JP5174603B2 (en) 2008-09-30 2008-09-30 Memory error correction method, error detection method, and controller using the same

Country Status (1)

Country Link
JP (1) JP5174603B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012518224A (en) * 2009-02-18 2012-08-09 マイクロン テクノロジー, インク. Data integrity in memory controllers and methods
JP2012174088A (en) * 2011-02-23 2012-09-10 Hitachi Ltd Memory control device
WO2013084267A1 (en) 2011-12-08 2013-06-13 Hitachi, Ltd. Remote copy system and remote copy control method
US9798600B2 (en) 2014-09-29 2017-10-24 Renesas Electronics Corporation Semiconductor memory device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023966A (en) * 2000-06-30 2002-01-25 Toshiba Corp Disk system for making transfer data as redundant data
JP2005085464A (en) * 2003-09-10 2005-03-31 Hewlett-Packard Development Co Lp Magnetic memory with error correction coding
JP2005234976A (en) * 2004-02-20 2005-09-02 Renesas Technology Corp Storage device
JP2006065697A (en) * 2004-08-27 2006-03-09 Hitachi Ltd Storage device control apparatus
JP2006331303A (en) * 2005-05-30 2006-12-07 Toshiba Corp Storage device
JP2007242157A (en) * 2006-03-09 2007-09-20 Fujitsu Ltd Information storage device, and write-in control circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023966A (en) * 2000-06-30 2002-01-25 Toshiba Corp Disk system for making transfer data as redundant data
JP2005085464A (en) * 2003-09-10 2005-03-31 Hewlett-Packard Development Co Lp Magnetic memory with error correction coding
JP2005234976A (en) * 2004-02-20 2005-09-02 Renesas Technology Corp Storage device
JP2006065697A (en) * 2004-08-27 2006-03-09 Hitachi Ltd Storage device control apparatus
JP2006331303A (en) * 2005-05-30 2006-12-07 Toshiba Corp Storage device
JP2007242157A (en) * 2006-03-09 2007-09-20 Fujitsu Ltd Information storage device, and write-in control circuit

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012518224A (en) * 2009-02-18 2012-08-09 マイクロン テクノロジー, インク. Data integrity in memory controllers and methods
US9015553B2 (en) 2009-02-18 2015-04-21 Round Rock Research, Llc Data integrity in memory controllers and methods
JP2012174088A (en) * 2011-02-23 2012-09-10 Hitachi Ltd Memory control device
WO2013084267A1 (en) 2011-12-08 2013-06-13 Hitachi, Ltd. Remote copy system and remote copy control method
US8762638B2 (en) 2011-12-08 2014-06-24 Hitachi, Ltd. Remote copy system and remote copy control method
US9164693B2 (en) 2011-12-08 2015-10-20 Hitachi, Ltd. Remote copy system and remote copy control method
US9798600B2 (en) 2014-09-29 2017-10-24 Renesas Electronics Corporation Semiconductor memory device
US10120741B2 (en) 2014-09-29 2018-11-06 Renesas Electronics Corporation Semiconductor memory device
US10360091B2 (en) 2014-09-29 2019-07-23 Renesas Electronics Corporation Semiconductor memory device

Also Published As

Publication number Publication date
JP5174603B2 (en) 2013-04-03

Similar Documents

Publication Publication Date Title
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US8041990B2 (en) System and method for error correction and detection in a memory system
KR102198611B1 (en) Method of correcting error in a memory
US6018817A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
US8171377B2 (en) System to improve memory reliability and associated methods
JP4899556B2 (en) Semiconductor integrated circuit
US9128868B2 (en) System for error decoding with retries and associated methods
US8185800B2 (en) System for error control coding for memories of different types and associated methods
US8352806B2 (en) System to improve memory failure management and associated methods
US8181094B2 (en) System to improve error correction using variable latency and associated methods
US8176391B2 (en) System to improve miscorrection rates in error control code through buffering and associated methods
US8566672B2 (en) Selective checkbit modification for error correction
US8185801B2 (en) System to improve error code decoding using historical information and associated methods
US20040237001A1 (en) Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
JP5174603B2 (en) Memory error correction method, error detection method, and controller using the same
US9037948B2 (en) Error correction for memory systems
US11768731B2 (en) System and method for transparent register data error detection and correction via a communication bus
US10740179B2 (en) Memory and method for operating the memory
US20030182611A1 (en) Method for verifying error correction code function of a computer system
TW202240392A (en) Semiconductor device and semiconductor system for testing error correction circuit
KR20230131029A (en) Semiconductor device and semiconductor system
JP2006011576A (en) High-reliability controller
CN115994050A (en) Route allocation based on error correction capability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121228

R151 Written notification of patent or utility model registration

Ref document number: 5174603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160111

Year of fee payment: 3