JP2006004133A - Error correction and detection device in information processor - Google Patents
Error correction and detection device in information processor Download PDFInfo
- Publication number
- JP2006004133A JP2006004133A JP2004179157A JP2004179157A JP2006004133A JP 2006004133 A JP2006004133 A JP 2006004133A JP 2004179157 A JP2004179157 A JP 2004179157A JP 2004179157 A JP2004179157 A JP 2004179157A JP 2006004133 A JP2006004133 A JP 2006004133A
- Authority
- JP
- Japan
- Prior art keywords
- asic
- data
- dimm
- ecc
- group
- 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.)
- Withdrawn
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、汎用のメモリモジュール(DIMM:Dual Inline Memory Module )を使用するサーバ等の各種情報処理装置に利用されるものであり、該情報処理装置におけるハード故障及びソフトエラー両面でのエラー訂正、検出が可能な情報処理装置におけるエラー訂正、検出装置に関する。
The present invention is used in various information processing apparatuses such as a server that uses a general-purpose memory module (DIMM: Dual Inline Memory Module), and corrects errors in both hardware failure and software error in the information processing apparatus. The present invention relates to an error correction and detection apparatus in an information processing apparatus capable of detection.
(1) :従来例1
従来例1は、単一バイト誤り検出符号を使用した例である。従来、単一バイト誤り検出符号を使用した例として、16バイト+16ビットのECCビット、合計144ビットデータでECCの塊を構成する例が知られていた。このECCは4ビットブロックの訂正と4ビットブロック2箇所故障検出が可能であるので、2枚のDIMMにアクセスして訂正・検出が可能である。
(1): Conventional example 1
Conventional example 1 is an example using a single byte error detection code. Conventionally, as an example of using a single-byte error detection code, an example in which an ECC block is configured with 16 bytes + 16 ECC bits and a total of 144-bit data has been known. Since this ECC can correct a 4-bit block and detect a failure at two locations in a 4-bit block, it can be corrected and detected by accessing two DIMMs.
(2) :従来例2
以下、特許文献1を従来例2として説明する。なお、特許文献2も参照しながら従来例2(特許文献1)を説明する。従来例2(特許文献1)は、ハードウェア量の少ない高速で動作する効率的な倍長単一誤り訂正2重誤り検出リード・ソロモン符号の復号器を提供するものである。
(2): Conventional example 2
Hereinafter,
1バイトをbビットとしたとき、(2b +2)×2バイトの長さの検査行列を用い、特に、情報ビット長128、チェックビット長16の符号に対して有効である。なお、単一誤りか2重誤りかを判定する手段を有している。復号器は、シンドローム生成手段、単一誤り訂正手段、2重誤り判定手段、誤り検出手段等で構成される。以下、関連技術について詳細に説明する。 When 1 byte is b bits, a check matrix having a length of (2 b +2) × 2 bytes is used, and this is particularly effective for codes having an information bit length of 128 and a check bit length of 16. It has means for determining whether it is a single error or a double error. The decoder includes syndrome generation means, single error correction means, double error determination means, error detection means, and the like. Hereinafter, related technologies will be described in detail.
(a) :大容量の記憶装置においては、動作の信頼度を向上させるために、誤り訂正/検出符号が必要である。このため、1ビット誤り訂正/2ビット誤り検出符号が用いられてきた。更に、半導体技術の進歩により、数ビットの情報を1バイトとして、一個のメモリ素子に格納されるようにもなった。この場合には、一個のメモリ素子の障害のため数ビットまとめてエラーが生じる。 (a): In a large-capacity storage device, an error correction / detection code is necessary to improve the reliability of operation. For this reason, 1-bit error correction / 2-bit error detection codes have been used. Furthermore, due to advances in semiconductor technology, several bits of information are stored as one byte in a single memory device. In this case, several bits are collectively errored due to a failure of one memory element.
この種の素子を用いた記憶装置に対しては、バイトの誤りを検出または訂正可能な符号が効果的である。なお、コンピュータでは、情報ビットとして32,64,128が用いられる。本願発明は、このようなバイト単位に誤り処理をする単一バイト誤り訂正2重バイト誤り検出符号に関するものであり、特に、情報ビット128の場合に有効である。この種の従来例について述べる。なお、本明細書において、
| | | |
| |
は行列の符号である。
For a storage device using this type of element, a code capable of detecting or correcting a byte error is effective. In the computer, 32, 64, and 128 are used as information bits. The present invention relates to a single byte error correction double byte error detection code that performs error processing in units of bytes, and is particularly effective in the case of information bits 128. This type of conventional example will be described. In this specification,
| | | |
| |
Is the sign of the matrix.
まず、単一バイト誤り2重バイト誤り検出を行うリード・ソロモン符号の基本形を示す。GF(2b )の原始元をαとすると検査マトリクスは次式となる。 First, the basic form of a Reed-Solomon code that performs single-byte error double-byte error detection is shown. When α is the primitive element of GF (2 b ), the inspection matrix is as follows.
次に、金田、藤原(" Single Byte Error Correcting-Double ByteError Detecting Codes for Memory Systems" ,IEEE Trans.onComputer,C-31,NO.7,july 1982) の符号は次式の検査マトリクスを用いる。まず、GF(24 )を構成するg(x)=X4 +x+1の随伴行列をTとする。なお、Tとαは本質的に同一である。 Next, the code of Kanada and Fujiwara (“Single Byte Error Correcting-Double Byte Error Detecting Codes for Memory Systems”, IEEE Trans.on Computer, C-31, NO. 7, july 1982) uses the following check matrix. First, let T be the adjoint matrix of g (x) = X 4 + x + 1 that constitutes GF (2 4 ). T and α are essentially the same.
なお、金田、藤原”主記憶用誤り検出・訂正符号”(日本電信電話公社、研究実用化報告第30巻第4号,1981)に、各バイト位置において、バイト誤り検出手段を用いる一般的な方法が述べられている。 Kanada and Fujiwara “Main Memory Error Detection / Correction Code” (Nippon Telegraph and Telephone Public Corporation, Research Practical Report Vol. 30, No. 4, 1981), a general method using byte error detection means at each byte position. A method is described.
次に、特許文献2の検査マトリクスは情報64ビットについて有効であり、それについて述べられている。q=2b としたとき、検査マトリクスは次式になる。
Next, the inspection matrix of
情報ビット128に対して有効な単一バイト誤り訂正/2重バイト誤り検出符号を構成する従来(前記)の符号はいずれも復号法が複雑になる。したがって、情報ビット128に対して有効な単一バイト誤り訂正/2重バイト誤り検出符号の検査マトリクスを見いだし、復号動作が高速で、ハードウェア量の少ない復号器を構成する必要がある。 The conventional (above) codes constituting the effective single-byte error correction / double-byte error detection code for the information bits 128 have complicated decoding methods. Therefore, it is necessary to find a check matrix of a single byte error correction / double byte error detection code effective for information bits 128, and to configure a decoder with a high decoding speed and a small amount of hardware.
本発明はかかる問題点を解決するためになされたものであって、情報ビット128に対して有効であり、一般的に、bビットを1バイトとする単一バイト誤り訂正/2重バイト誤り検出符号の検査マトリクスを見いだし、復号ステップあるいは、ハードウェア量の少ない倍長単一誤り訂正2重誤り検出リード・ソロモン符号の復号器を提供することを目的とする。 The present invention has been made to solve such problems, and is effective for information bits 128. In general, single-byte error correction / double-byte error detection in which b bits are one byte. An object of the present invention is to provide a decoder for double-length single error correction double error detection Reed-Solomon codes with a small amount of hardware by finding a code check matrix.
請求項1のエラー訂正処理装置は、bビットを一バイトとし、単一バイト誤り訂正/2重バイト誤り検出符号を採用し、q=2b とし、
The error correction processing apparatus according to
(1) 上記検査行列を用いて、受信系列から、シンドロームC1、C2、C3、C4を発生させるためのシンドローム生成手段。ただし、Cは検査行列第1行目、C2は検査行列第2行目、C3は検査行列第3行目、C4は検査行列第4行目に対応する。 (1) Syndrome generating means for generating syndromes C1, C2, C3, and C4 from the received sequence using the parity check matrix. However, C corresponds to the first row of the check matrix, C2 corresponds to the second row of the check matrix, C3 corresponds to the third row of the check matrix, and C4 corresponds to the fourth row of the check matrix.
(2) シントロームC1、C2、C3、C4が全て零のとき誤りなしと判定する手段。 (2) Means for determining that there is no error when all the syndromes C1, C2, C3, and C4 are zero.
(3) 誤りのあるバイト位置を求める手段。 (3) Means for determining the byte position in error.
(4) 誤りの大きさを求める手段。 (4) Means for determining the magnitude of error.
(5) 単一誤りのとき、誤りのあるバイト位置の情報を、誤りの大きさを用いて訂正する手段。 (5) Means to correct the error byte position information using the error size when there is a single error.
(6) 2重誤り検出する手段。 (6) Means for detecting double errors.
請求項2のエラー訂正処理装置は、誤りのあるバイト位置を求める手段として、各バイト位置において、誤り検査手段を設けたことを特徴とする。この方法によると、ハードウェア量は増加するが高速復号する。
The error correction processing apparatus according to
請求項3のエラー訂正処理装置は、2重誤りを検出する手段の一部として、検査行列の左からq−1列のブロックおよび続くq−1列のブロックの、それぞれのブロック内の2重誤りを検出するために、S0 =C1+C2,S1 =C3、S2 =C4とし、Z=S1 2+S0 ・S2 =0が真のときは単位一誤りとし、偽のときは2重誤りと判定する2重誤り判定手段を含むことを特徴とする。
The error correction processing apparatus according to
本発明に係る倍長単一誤り訂正2重誤り検出リード・ソロモン符号の復号器は、効率的な検査マトリクスを用いて、ハードウェア量の少ない復号器を構成しており、受信語を受け取るとシンドロームを発生させ、高速に、単一バイト誤りを訂正し、2重バイト誤りを訂正する。 The double-length single error correction double error detection Reed-Solomon code decoder according to the present invention uses an efficient check matrix to constitute a decoder with a small amount of hardware, and receives a received word. Syndrome is generated, single byte errors are corrected, and double byte errors are corrected at high speed.
(3) :従来例3
図6は従来のチップ構成図、図7は従来のDIMMとのインタフェースを持つASICを分割した時のチップ構成図である。以下、図6、7を参照しながら従来例3を説明する。
(3): Conventional example 3
FIG. 6 is a conventional chip configuration diagram, and FIG. 7 is a chip configuration diagram when an ASIC having an interface with a conventional DIMM is divided. Hereinafter, Conventional Example 3 will be described with reference to FIGS.
(a) :チップ構成の説明
図6の(a) 図に示した例は、基本的なチップ構成であり、CPUに1個のASIC0を接続し、前記1個のASIC0に1個のASIC2を接続し、前記1個のASIC2に2個(又は2枚)のDIMM(DIMM:Dual Inline Memory Module )を接続した構成である。
(a): Explanation of chip configuration The example shown in FIG. 6A is a basic chip configuration, in which one ASIC0 is connected to the CPU, and one ASIC2 is connected to the one ASIC0. In this configuration, two (or two) DIMMs (DIMM: Dual Inline Memory Module) are connected to the one
また、図6の(b) 図に示した例は、前記1個のASIC0を2分割した例であり、CPUに2個のASIC1(前記ASIC0を分割したもの)を接続し、前記2個のASIC1に1個のASIC2を接続し、前記1個のASIC2に2個のDIMMを接続した構成である。
In addition, the example shown in FIG. 6B is an example in which the one ASIC0 is divided into two, and two ASIC1 (the one obtained by dividing the ASIC0) is connected to the CPU, and the two ASIC0s are connected. In this configuration, one
(b) :DIMMとのインタフェースを持つASICを分割した時のチップ構成の説明
図7の(a) 図に示した例は、図6の(a) 図に示した1個のASIC2を2分割した例であり、CPUに1個のASIC0を接続し、前記1個のASIC0に2個のASIC4(前記1個のASIC2を2分割したもの)を接続し、前記2個のASIC4にそれぞれ1個のDIMMを接続した構成である。
(b): Explanation of a chip configuration when an ASIC having an interface with a DIMM is divided. In the example shown in FIG. 7 (a), one
また、図7の(b) 図に示した例は、図7の(a) 図に示した1つのASIC0を2分割した例であり、CPUに2個のASIC1(1個のASIC0を2分割したもの)を接続し、前記2枚のASIC4にそれぞれ1個のASIC4を接続し、前記2個のASIC4にそれぞれ1個のDIMMを接続した構成である。
Further, the example shown in FIG. 7B is an example in which one
(4) :従来例4
以下、特許文献3を従来例4として説明する。従来例4は自己回復するメモリ構成に関するものであり、複雑なデータ修復方法を必要とせず、複数チャネル上の複数エラーに対するエラー検出および訂正を行うと共に、障害の発生したメモリのホットスワッピングもサポートする、メモリシステム構成を提供するものである。
(4): Conventional example 4
Hereinafter,
本メモリ構成には、メモリコンローラに電気的に結合されているCPUバスと、スイッチング手段に接続されたメモリコンローラと、複数のメモリモジュールに電気的に接続されたスイッチとを含む。 The memory configuration includes a CPU bus electrically coupled to the memory controller, a memory controller connected to the switching means, and a switch electrically connected to the plurality of memory modules.
複数のメモリモジュールは、少なくとも一つのデータ用のメモリモジュールと、少なくとも一つのデータ訂正用のメモリモジュールと、少なくともホットスペアモジュールとを含む。データ用メモリモジュールと、エラー訂正用メモリモジュールと、ホットスペアメモリモジュールとは並列に接続されている。 The plurality of memory modules include at least one data memory module, at least one data correction memory module, and at least a hot spare module. The data memory module, the error correction memory module, and the hot spare memory module are connected in parallel.
また、従来例4には次のような内容も記載されている。すなわち、利用可能なサーバメモリシステムのサイズは、時と共に増大し続けており、現サーバメモリシステムは、64ギガバイト以上であることも多い。メモリシステムのサイズが増大するに従い、メモリビットの障害、すなわちメモリシステムに障害が発生する可能性も増加している。 Further, Conventional Example 4 also describes the following contents. That is, the size of available server memory systems continues to increase over time, and current server memory systems are often 64 gigabytes or more. As the size of the memory system increases, the possibility of failure of the memory bits, that is, the failure of the memory system, also increases.
メモリシステム障害は、一時的エラーまたは永続的エラーの両方で起こりえる。一時的エラーは、一般に、アルファ粒子によって起こる。永続的エラーには、一般に、メモリセルウォール障害、行または列デコーダ障害、状態機械障害、またはデュアルインラインメモリモジュール(以下、「DIMM」とする)の印刷回路基板とシステム印刷回路基板間の機械的インタフェースの故障といった他の破局故障などがある。 Memory system failures can occur with both temporary or permanent errors. Transient errors are generally caused by alpha particles. Permanent errors generally include memory cell wall failure, row or column decoder failure, state machine failure, or mechanical between the printed circuit board of a dual in-line memory module (hereinafter “DIMM”) and the system printed circuit board. There are other catastrophic failures such as interface failures.
(4) :従来例5
以下、特許文献4を従来例5として説明する。従来例5は、冗長メモリモジュールおよびメモリコントローラに関するものであり、システム稼働中に異常なDIMMを動的に交換可能にするものである。
(4): Conventional example 5
Hereinafter,
そして、この発明では、ECC/ChipKill回路4−0〜4−4は、ECCの生成/チェック/再構成およびChipKillを行うパリティ生成/チェック/再構成回路5は、データライト時にはパリティデータの生成、データリード時にはパリティデータのチェック、異常なDIMMが存在する場合には正常なDIMMからデータの最構成を行う。
In the present invention, the ECC / ChipKill circuits 4-0 to 4-4 are used to generate / check / reconfigure the ECC and the parity generation / check /
これにより、4枚のDIMM1−0〜103に対して1枚のパリティDIMM1−4を用意することで、DIMMの障害時に、異常なDIMMをホットプラグすることを可能とし、OSのメモリ縮退機能によらずにDIMMの動的な交換を可能にする。
(1) :従来例1〜3の課題
(a) :従来例の場合、ASIC2に接続されるDIMMの個数が多くなればなるほどPIN数が増えるので、ASIC2のLSIのサイズが大きくなりLSIのコストが高くなる。
(1): Issues of conventional examples 1 to 3
(a): In the case of the conventional example, as the number of DIMMs connected to the
(b) :図7に示したように、ASICを2個のASIC4に分割することにより、ASIC4の1個当たりピン数を減らすことができ、コストを低くすることができる。すなわち、通常の場合、図6に示したASIC2と、これを2分割した2個のASIC4のコストはASIC4を2個の方が安い。
(b): As shown in FIG. 7, by dividing the ASIC into two
(c) :図7の(a) 図のものは、ASIC0で単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出符号を使ってチェックビットの生成や、シンドロームの生成を行い、エラー訂正・検出を行うことは可能である。しかし、図7の(b) 図のように、ASIC0も2個のASIC1に分割した例では、CPUで単一バイト誤り、二重バイト誤り検出符号を使えばエラー訂正や検出が可能であるが、大型機など複数のCPUが実装されたシステムでは、CPU間でのデータの遣り取りを行うことが非常に多いので、16バイトの単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出符号ではビット幅が大きいため有効ではない。 (c): The figure in (a) of Fig. 7 uses ASIC0 to generate check bits and syndromes using single byte (1 byte) error and double byte (2 byte) error detection codes. It is possible to perform error correction / detection. However, as shown in FIG. 7B, in the example in which ASIC0 is also divided into two ASIC1, error correction and detection can be performed by using a single byte error / double byte error detection code in the CPU. In systems equipped with multiple CPUs, such as large machines, there are very many data exchanges between CPUs, so 16 byte single byte (1 byte) error, double byte (2 byte) error The detection code is not effective because the bit width is large.
(2) :従来例4、5の課題
従来例4、5は前記のような内容が記載されているが、本発明の特許請求の範囲に記載された具体的な構成は記載されておらず、参考程度の内容である。
(2): Problems of Conventional Examples 4 and 5 Conventional Examples 4 and 5 describe the above contents, but do not describe the specific configuration described in the claims of the present invention. The content is for reference only.
本発明は前記従来例の課題を解決し、複数個のASICでECCの塊を作成し、そのECCの塊が同じDIMM(汎用のメモリモジュール、例えば、DRAM)の素子にアサイン(assign)されないようにデータを割り振ることにより、単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出を可能にして、1つのLSIに対するピン数を削減可能にすることを目的とする。 The present invention solves the problem of the conventional example, creates an ECC block by a plurality of ASICs, and prevents the ECC block from being assigned to the same DIMM (general-purpose memory module, for example, DRAM) element. By allocating data to each other, it is possible to detect a single byte (1 byte) error and a double byte (2 byte) error, and to reduce the number of pins for one LSI.
(1) :CPUとASICと2個のDIMM(デュアルインラインメモリモジュール)を有し、前記CPUとDIMMとの間でASICを介してライト/リードデータの転送を行う情報処理装置におけるエラー訂正、検出装置であって、前記ASICは、前記CPUとのインタフェースを持ち、かつ、同じ機能を持つ2又は4個(2又は4枚)のASICに分割した第1のASIC群と、前記第1のASIC群及び前記2個のDIMMとのインタフェースを持ち、かつ、同じ機能を有する2個のASICからなる第2のASIC群とで構成し、前記第1のASIC群の各ASICは、該第1のASIC群内でECCの塊を作成し、このECCの塊により、ライトデータに対するECCコードの発生及び該発生させたECCコードのライトデータへの付加機能と、ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける機能と、DIMMからのリードデータに対するECCチェック及びECC訂正機能とを有し、前記第2のASIC群の各ASICは、DIMMの制御を行う機能と、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにライトデータの並び替えを行う機能と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す機能とを有し、前記各機能により1バイト誤り訂正又は2バイト誤り検出を可能にしたことを特徴とする。
(1): Error correction and detection in an information processing apparatus having a CPU, an ASIC, and two DIMMs (dual in-line memory module), and transferring write / read data between the CPU and the DIMM via the ASIC A first ASIC group divided into 2 or 4 (2 or 4) ASICs having an interface with the CPU and having the same function; and the first ASIC. And a second ASIC group comprising two ASICs having an interface with the two DIMMs and having the same function, and each ASIC of the first ASIC group has the first ASIC group An ECC block is created in the ASIC group, and the ECC block generates an ECC code for the write data and converts the generated ECC code to the write data. Additional function, a function of distributing write data with an ECC code to each ASIC of the second ASIC group, an ECC check and ECC correction function for read data from the DIMM, and each ASIC of the second ASIC group Includes a function for controlling the DIMM, a function for rearranging write data so that the ECC block generated in the first ASIC group does not access the same element in the DIMM, and a read data from the DIMM. On the other hand, it has a function of returning data rearranged at the time of writing, and each of the functions enables 1-byte error correction or 2-byte error detection.
(2) :CPUとASICと2個のDIMMを有し、前記CPUとDIMMとの間でASICを介してライト/リードデータの転送を行う情報処理装置におけるエラー訂正、検出装置であって、前記CPUに対してそれぞれインタフェースを持ち、かつ、同じ機能を持つ2又は4個に分割したASICからなる第1のASIC群と、前記第1のASIC群及び前記2個のDIMMとのインタフェースを持ち、かつ、同じ機能を有する2個のASICからなる第2のASIC群とを備え、前記第1のASIC群の各ASICは、それぞれ、CPUからDIMMへのライトデータに対し、ECCコードを発生してライトデータに付与するECCコード発生回路と、前記ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける転送データ振り分け回路と、DIMMからCPUへのリードデータに対し、ECCチェックを行うECCチェック回路と、前記ECCチェック回路のチェック結果が1バイトエラーであればエラー訂正を行い、2バイトエラーであればエラー検出のみを行うECC訂正回路を備え、前記第2のASIC群の各ASICは、それぞれ、DIMMの制御を行うメモリコントローラと、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにデータの並び替えを行う書き込みデータ並び替え回路と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す読出しデータ並べ替え回路を備えていることを特徴とする。 (2): An error correction / detection device in an information processing apparatus having a CPU, an ASIC, and two DIMMs, and transferring write / read data between the CPU and the DIMM via the ASIC, A first ASIC group composed of two or four ASICs each having an interface to the CPU and having the same function; an interface between the first ASIC group and the two DIMMs; And a second ASIC group composed of two ASICs having the same function, and each ASIC in the first ASIC group generates an ECC code for write data from the CPU to the DIMM, respectively. ECC code generation circuit to be assigned to write data, and transfer to distribute the write data with ECC code to each ASIC of the second ASIC group Data distribution circuit, ECC check circuit that performs ECC check on read data from DIMM to CPU, and error correction if the check result of the ECC check circuit is 1 byte error, error if it is 2 byte error An ECC correction circuit that performs only detection is provided, and each ASIC of the second ASIC group includes a memory controller that controls the DIMM, and an ECC block generated by the first ASIC group is the same in the DIMM. A write data rearrangement circuit that rearranges data so as not to access the elements, and a read data rearrangement circuit that restores the data rearranged at the time of writing to the read data from the DIMM. To do.
(作用)
以下、図1を参照しながら、前記構成に基づく作用を説明する。
(Function)
Hereinafter, the operation based on the above configuration will be described with reference to FIG.
(a) :前記(1) では、CPUから2個のDIMMへのデータ書き込みを行う場合、CPUから第1のASIC群の各ASIC(5、6等)へライトデータを振り分けて送信する。この時、第1のASIC群の各ASICは、該第1のASIC群内でECCの塊を作成し、このECCの塊により、ライトデータに対するECCコードを発生させ、そのECCコードをライトデータへ付加する。そして、ECCコード付きライトデータを第2のASIC群の各ASIC(7、8)へ振り分けて送信する。 (a): In the above (1), when data is written from the CPU to the two DIMMs, the write data is distributed and transmitted from the CPU to each ASIC (5, 6, etc.) of the first ASIC group. At this time, each ASIC in the first ASIC group creates an ECC block in the first ASIC group, and generates an ECC code for the write data using the ECC block, and converts the ECC code to the write data. Append. Then, the write data with the ECC code is distributed and transmitted to each ASIC (7, 8) in the second ASIC group.
また、第2のASIC群の各ASICは、DIMMの制御を行うことで、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにライトデータの並び替えを行い、DIMMに書き込む。 In addition, each ASIC in the second ASIC group performs DIMM control to rearrange the write data so that the ECC block generated in the first ASIC group does not access the same element in the DIMM. And write to DIMM.
また、第2のASIC群の各ASICは、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻し、第1のASIC群の各ASICに送信する。第1のASIC群の各ASICでは、受信したDIMMからのリードデータに対し、ECCチェックが行われ、1バイトエラーであればリードデータの訂正を行い、2バイトエラーであればエラー検出のみを行い、CPUへ送信する。 Further, each ASIC in the second ASIC group restores the data rearranged at the time of writing to the read data from the DIMM, and transmits the data to each ASIC in the first ASIC group. Each ASIC in the first ASIC group performs an ECC check on the received read data from the DIMM, corrects the read data if it is a 1-byte error, and only detects an error if it is a 2-byte error. To the CPU.
(b) :前記(2) では、CPUから2個のDIMMへのデータ書き込みを行う場合、CPUから第1のASIC群の各ASIC(5、6等)へライトデータを振り分けて送信する。この時、第1のASIC群の各ASICでは、ECCコード発生回路15がCPUからDIMMへのライトデータに対し、ECCコードを発生してライトデータに付与する。そして、転送データ振り分け回路16は、前記ECCコード付きライトデータを第2のASIC群の各ASICへ振り分けて送信する。
(b): In (2), when data is written from the CPU to the two DIMMs, the write data is distributed and transmitted from the CPU to each ASIC (5, 6, etc.) of the first ASIC group. At this time, in each ASIC of the first ASIC group, the ECC code generation circuit 15 generates an ECC code for the write data from the CPU to the DIMM and assigns it to the write data. The transfer
第2のASIC群の各ASICでは、書き込みデータ並び替え回路27は、前記ECCコード付きライトデータを受信すると、前記ECCの塊が、同じDIMMにアサインされないようにデータの並べ替えを行い、メモリコントローラ26の制御によりDIMMに書き込む。
In each ASIC of the second ASIC group, when the write
また、DIMMからのリードデータは、メモリコントローラ26の制御によりDIMMから読み出し、そのリードデータは、読み出しデータ並べ替え回路28が、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す。その後、元に戻したリードデータを第1のASIC群の各ASICに送信する。
Read data from the DIMM is read from the DIMM under the control of the
第1のASIC群の各ASICでは、受信したリードデータに対し、ECCチェック回路19がECCチェックを行い、ECC訂正回路20により、前記ECCチェック回路19のチェック結果が1バイトエラーであればエラー訂正を行い、2バイトエラーであればエラー検出のみを行う。その後、データをCPUへ送信する。
In each ASIC of the first ASIC group, the
(c) :以上のようにして、複数のASICでECCの塊を作成し、そのECCの塊が同じDIMM(DRAM)の素子にアサイン(assign)されないようにデータを割り振ることにより、単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出を可能にして、1つのLSIに対するピン数を削減可能にすることができる。 (c): As described above, an ECC chunk is created by a plurality of ASICs, and data is allocated so that the ECC chunk is not assigned to the same DIMM (DRAM) element. It is possible to detect (1 byte) error and double byte (2 byte) error, and to reduce the number of pins for one LSI.
(1) :1個当たりのASICのピン数を少なくした構成においても、DIMMのECC訂正、検出が行なえるため、同じ信頼性でコストを下げることが期待できる。
(1): Even in a configuration in which the number of ASIC pins per unit is reduced, it is possible to perform ECC correction and detection of DIMMs, so that the cost can be expected to be reduced with the same reliability.
(2) :複数のASICでECCの塊を作成し、そのECCの塊が同じDIMM(デュアルインラインメモリモジュール)の素子にアサイン(assign)されないようにデータを割り振ることにより、単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出を可能にして、1つのLSIに対するピン数を削減可能にすることができる。 (2): A single byte (1 byte) is created by creating ECC chunks with multiple ASICs and allocating data so that the ECC chunks are not assigned to the same DIMM (Dual Inline Memory Module) element. ) Error and double byte (2 byte) error detection can be performed, and the number of pins for one LSI can be reduced.
§1:簡単なチップ構成と結線の説明
図2はチップ構成と結線の説明図である。以下、図2を参照しながら、情報処理装置におけるエラー訂正、検出装置と、その簡単なチップ構成と結線について説明する。
§1: Explanation of simple chip configuration and connection FIG. 2 is an explanatory diagram of the chip configuration and connection. Hereinafter, an error correction / detection device in an information processing apparatus, and its simple chip configuration and connection will be described with reference to FIG.
(a) :エラー訂正、検出装置と、その簡単なチップ構成と結線の説明
以下に説明する装置は、CPUと複数のASICと2つのDIMM(Dual Inline Memory Module)を有し、前記CPUとDIMMとの間でASICを介してライト/リードデータの転送を行う情報処理装置におけるエラー訂正、検出装置である。
(a): Description of error correction / detection device and its simple chip configuration and connection The device described below has a CPU, a plurality of ASICs, and two DIMMs (Dual Inline Memory Modules). An error correction / detection device in an information processing device that transfers write / read data to and from the device via an ASIC.
この装置では、前記ASICは、前記CPUとのインタフェースを持ち、かつ、同じ機能を持つ2個のASIC5、6に分割した第1のASIC群と、前記第1のASIC群及び前記DIMMとのインタフェースを持ち、かつ、同じ機能を有する2個のASIC7、8からなる第2のASIC群とで構成する。
In this apparatus, the ASIC has an interface with the CPU and a first ASIC group divided into two
そして、前記第1のASIC群の各ASICは、該第1のASIC群内でECCの塊を作成し、このECCの塊により、ライトデータに対するECCコードの発生及び該発生させたECCコードのライトデータへの付加機能と、ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける機能と、DIMMからのリードデータに対するECCチェック及びECC訂正機能とを有する。 Each ASIC of the first ASIC group creates an ECC block in the first ASIC group, and the ECC block generates an ECC code for write data and writes the generated ECC code. A function for adding data, a function for distributing write data with an ECC code to each ASIC of the second ASIC group, and an ECC check and ECC correction function for read data from the DIMM.
また、前記第2のASIC群の各ASICは、DIMMの制御を行う機能と、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにライトデータの並び替えを行う機能と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す機能とを有する。 In addition, each ASIC of the second ASIC group has a function to control the DIMM and rearranges the write data so that the ECC block generated in the first ASIC group does not access the same element in the DIMM. And a function to restore the data rearranged at the time of writing to the read data from the DIMM.
このように、ASIC5とASIC6でECCの塊を作成し、そのECCの塊が同じDIMMの素子にアサインされないようにデータを並べ替えて書き込み、読み出したリードデータは、ライト時に並び替えたデータを元に戻して転送することにより、単一バイト(1バイト)誤り、二重バイト(2バイト)誤り検出を可能にする。 In this way, ECC chunks are created by ASIC5 and ASIC6, data is rearranged and written so that the ECC chunks are not assigned to the same DIMM element, and the read data read out is based on the data rearranged at the time of writing. By transferring back to, single byte (1 byte) error and double byte (2 byte) error detection becomes possible.
(b) :転送データの具体例による説明
例えば、CPUから64バイトデータをスライスして各ASIC5、6に32バイトのデータを転送する例で説明する。
(b): Description of Specific Example of Transfer Data For example, an example will be described in which 64-byte data is sliced from the CPU and 32-byte data is transferred to the
ASIC5、6では、それぞれ、16バイト単位に単一バイト誤り(1バイト誤り)、二重バイト誤り(2バイト誤り)検出符号を使って、16バイトデータと16ビットのチェックビットを生成し、8バイトデータと8ビットのチェックビットに分け、ASIC7、8へ転送する。
The
この時、エラー箇所の指摘精度が求められるシステムでは、ASIC5−7間、ASIC5−8間、ASIC6−7間、ASIC6−8間のエラー訂正・検出が行われるように、新しくECCを生成し、エラー箇所の指摘を行うこともできる。 At this time, in a system that requires the accuracy of indicating the error location, a new ECC is generated so that error correction / detection is performed between ASICs 5-7, between ASICs 5-8, between ASICs 6-7, and between ASICs 6-8, It is also possible to point out errors.
また、ASIC7、8では、それぞれASIC5とASIC6からそれぞれ16バイト合計32バイトのデータが転送されるので、8バイトと8ビットのチェックビット、合計72ビットのデータ幅で4回(バーストレングス=4)アクセスを行う。この時、ASIC5、6で作成したECCの塊が同じDIMM(DRAM)の同じ素子に書き込み、読み出しが行われないようにデータのアサインを行う。
Further, in
§2:装置の構成と処理の説明
図3は処理説明図である。以下、図3を参照しながら、装置の構成と処理について説明する。なお、図3は図2に示したチップ構成での処理である。
§2: Description of apparatus configuration and processing FIG. 3 is an explanatory diagram of processing. Hereinafter, the configuration and processing of the apparatus will be described with reference to FIG. FIG. 3 shows the processing with the chip configuration shown in FIG.
(1) :本装置の構成は次の通りである。 (1): The configuration of this device is as follows.
CPUと複数のASICと2つのDIMMを有し、CPUとDIMMとの間でASICを介してライト/リードデータの転送を行う情報処理装置におけるエラー訂正、検出装置であって、CPUに対してそれぞれインタフェースを持ち、かつ、同じ機能を持つ2個のASIC5、6で構成した第1のASIC群と、前記第1のASIC群及び前記DIMMとそれぞれインタフェースを持ち、かつ、同じ機能を持ち2つのASIC7、8で構成した第2のASIC群とを備える。
An error correction / detection device in an information processing apparatus having a CPU, a plurality of ASICs, and two DIMMs, and transferring write / read data between the CPU and the DIMMs via the ASIC, each for the CPU A first ASIC group composed of two
そして、CPUには、CPUと2個のDIMMとの間でデータのリード、ライトやそれらのデータの各種処理を行うプログラム11と、リクエストの送受信を行うリクエスト送受信回路12と、複数個のASIC(ASIC5、6)へのデータの振り分けを行う転送データ振り分け回路13を備えている。
The CPU includes a program 11 for reading and writing data between the CPU and the two DIMMs, various processes for the data, a request transmission /
また、前記第1のASIC群の各ASIC5、6は、それぞれ、CPUからDIMMへのライトデータに対し、ECCコードを発生してライトデータに付与するECCコード発生回路15と、前記ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける転送データ振り分け回路16と、DIMMからCPUへのリードデータに対し、ECCチェックを行うECCチェック回路19と、前記ECCチェック回路のチェック結果が1バイトエラーであればエラー訂正を行い、2バイトエラーであればエラー検出のみを行うECC訂正回路20と、CPUからのデータを受信する受信回路14と、第2のASIC群の各ASICからのデータを受信する受信回路18と、CPUへデータを送信する送信回路21と、第2のASIC群の各ASIC7、8へデータを送信する送信回路17を備えている。
Each of the
また、第2のASIC群の各ASIC7、8は、それぞれ、DIMMの制御を行うメモリコントローラ26と、第1のASIC群の各ASIC5、6で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにデータの並び替えを行う書き込みデータ並び替え回路27と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す読出しデータ並べ替え回路28と、第1のASIC群の各ASIC5、6からのデータを受信する受信回路25と、第1のASIC群の各ASIC5、6へデータを送信する送信回路29を備えている。
The
(2) :本装置での処理は次の通りである。 (2): Processing in this device is as follows.
(a) :CPUでは、CPU内にあるプログラム11で発生したメモリ(DIMM)へのライト・リード要求をリクエスト送受信回路12にてASIC5、6に対して送受信する。この場合、ライトデータは転送データ振り分け回路13にて振り分けASIC5、6への転送を行い、リードデータはASIC5、6より受信しプログラム11へ送出する。
(a): In the CPU, the request transmission /
(b) :ASIC5、6では、CPUからのライト・リード要求を受信回路14にて受信し、送信回路17よりASIC7、8に転送する。ライトデータも受信回路14で受信し、ECCコード発生回路15にてECCコードを発生させ、ライトデータに付加する。そして、転送データ振り分け回路16にてデータの振り分けを行なってから送信回路17よりASIC7、8に送信する。DIMMからのリードデータは、ASIC7、8から受信回路18にて受信し、ECCチェック回路19でデータのエラーチェックを行う。
(b): The
ECC訂正回路20では、4ビットを1つのブロックとする36個のブロックの内、1ブロック(1バイト)が誤りであれば訂正し、2ブロック(2バイト)に誤りがあれば、それを検出したことを送信回路21にてCPUに送信する。
The
(c) :ASIC7、8では、ライト・リードデータ要求を受信回路25にて受信し、メモリコントローラ26でDIMMの制御信号に変換してDIMMに送出する。ライトデータも受信回路25で受信し、書き込みデータ並び替え回路27にてASIC5、6で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにデータの並び替えを行う。リードデータも、読出しデータ並び替え回路28にてライト時に並び替えたデータを元に戻し送信回路29でASIC5、6に送信する。
(c): In the
(d) :以上のように、LSIを分割した場合においても、従来通りにDIMMの1ブロック訂正(1バイト訂正)、2ブロック検出(2バイト検出)が可能となる。また、ASIC5、6とASIC7、8の間、ASIC7、8とDIMMの間でシステムボード上の配線が故障した場合においても、ECCチェックにてエラーの訂正または検出が可能となる。
(d): As described above, even when the LSI is divided, it is possible to perform 1 block correction (1 byte correction) and 2 block detection (2 byte detection) of the DIMM as usual. Further, even when the wiring on the system board fails between the
§3:データ例と処理の説明
(1) :データの説明
図4はデータ例の説明図である。以下、図4を参照しながら、データ例について説明する。
§3: Explanation of data examples and processing
(1): Explanation of data FIG. 4 is an explanatory diagram of a data example. Hereinafter, an example of data will be described with reference to FIG.
(a) :図4のCPUには、図示のデータが格納されているものとする。この場合、図示のように、1ST(ファースト:1番目)のデータは、8B(B:バイト)のデータ「A0−3」(前半の4バイト)+「A4−7」(後半の4バイト)である。2ND(セカンド:2番目)のデータは、8B(B:バイト)のデータ「B0−3」(前半の4バイト)+「B4−7」(後半の4バイト)である。 (a): Assume that the illustrated data is stored in the CPU of FIG. In this case, as illustrated, 1ST (first: first) data is 8B (B: byte) data “A0-3” (first 4 bytes) + “A4-7” (second 4 bytes). It is. The 2ND (second: second) data is 8B (B: byte) data “B0-3” (first 4 bytes) + “B4-7” (second 4 bytes).
3RD(サード:3番目)のデータは、8B(バイト)のデータ「C0−3」(前半の4バイト)+「C4−7」(後半の4バイト)である。4TH(4番目)のデータは、8B(バイト)のデータ「D0−3」(前半の4バイト)+「D4−7」(後半の4バイト)である。 The 3RD (third: third) data is 8B (byte) data “C0-3” (first 4 bytes) + “C4-7” (second 4 bytes). The 4TH (fourth) data is 8B (byte) data “D0-3” (first 4 bytes) + “D4-7” (second 4 bytes).
5TH(5番目)のデータは、8B(バイト)のデータ「E0−3」(前半の4バイト)+「E4−7」(後半の4バイト)である。6TH(6番目)のデータは、8B(バイト)のデータ「F0−3」(前半の4バイト)+「F4−7」(後半の4バイト)である。7TH(7番目)のデータは、8B(バイト)のデータ「G0−3」(前半の4バイト)+「G4−7」(後半の4バイト)である。8TH(8番目)のデータは、8B(バイト)のデータ「H0−3」(前半の4バイト)+「H4−7」(後半の4バイト)である。 The 5TH (fifth) data is 8B (byte) data “E0-3” (first 4 bytes) + “E4-7” (second 4 bytes). The 6TH (sixth) data is 8B (byte) data “F0-3” (first 4 bytes) + “F4-7” (second 4 bytes). The 7TH (seventh) data is 8B (byte) data “G0-3” (first 4 bytes) + “G4-7” (second 4 bytes). The 8TH (8th) data is 8B (byte) data “H0-3” (first 4 bytes) + “H4-7” (second 4 bytes).
前記のような前半4バイトのデータと後半4バイトの合計8バイトデータがCPU内に存在するものとする。このデータは、CPUからDIMMへライトするデータ、又はDIMMからリードしたデータである。
It is assumed that a total of 8 bytes of data of the
(b) :前記のような前半4バイトのデータと後半4バイトの合計8バイトデータをCPU内に持ち、このデータをDIMMに対してライトする場合、CPUからASIC5、6へ前記8バイトのデータを4バイトに分割して転送する。
(b): When the CPU has the above-mentioned 4-byte data of the first half and 4-byte data of the latter half in the CPU, and writing this data to the DIMM, the 8-byte data from the CPU to the
この時、ASIC5には、A0−3の4バイト、B0−3の4バイト、C0−3の4バイト、D0−3の4バイト、E0−3の4バイト、F0−3の4バイト、G0−3の4バイト、H0−3の4バイトが格納される。
At this time, the
また、ASIC6には、A4−7の4バイト、B4−7の4バイト、C4−7の4バイト、D4−7の4バイト、E4−7の4バイト、F4−7の4バイト、G4−7の4バイト、H4−7の4バイトが格納される。
The
そして、データのライト時には、これらのデータをECCの塊としてECCビットを生成し、前記データに付加する。また、データのリード時には、これらのデータにECCビットが付加されたデータ(転送されたデータ)をチェックする。具体的には次の通りである。 When data is written, ECC bits are generated using these data as an ECC block and added to the data. Further, when data is read, data in which an ECC bit is added to these data (transferred data) is checked. Specifically, it is as follows.
A0−3/B0−3/C0−3/D0−3の16バイトでECCビットj0−Fを生成(データライト時)/チェック(データリード時)する。E0−3/F0−3/G0−3/H0−3の16バイトでECCビットk0−Fを生成(データライト時)/チェック(データリード時)する。 ECC bits j0-F are generated (during data write) / check (during data read) with 16 bytes of A0-3 / B0-3 / C0-3 / D0-3. ECC bits k0-F are generated (during data writing) / checked (during data reading) with 16 bytes of E0-3 / F0-3 / G0-3 / H0-3.
A4−7/B4−7/C4−7/D4−7の16バイトでECCビットm0−Fを生成(データライト時)/チェック(データリード時)する。E4−7/F4−7/G4−7/H4−7の16バイトでECCビットn0−Fを生成(データライト時)/チェック(データリード時)する。 ECC bits m0-F are generated (during data writing) / checked (during data reading) with 16 bytes of A4-7 / B4-7 / C4-7 / D4-7. ECC bits n0-F are generated (during data write) / check (during data read) with 16 bytes of E4-7 / F4-7 / G4-7 / H4-7.
このようにしてASIC5、6には、次のようなデータが格納される。すなわち、(A0−3、B0−3、C0−3、D0−3)+(j0−F)及び(E0−3、F0−3、G0−3、H0−3)+(k0−F)のデータが格納される。また、ASIC6には、(A4−7、B4−7、C4−7、D4−7)+(m0−F)及び(E4−7、F4−7、G4−7、H4−7)+(n0−F)のデータが格納される。
In this way, the following data is stored in the
(c) :次に、ASIC5、6とASIC7、8間でデータ転送を行う。この場合、ASIC7には、(A0−3+j0−3)、(C0−3+j8−B)、(E0−3+k0−3)、(G0−3+k8−B)のデータ及び(A4−7+m0−3)、(C4−7+m8−B)、(E4−7+n0−3)、(G4−7+n8−B)のデータが格納される。
(c): Next, data transfer is performed between the
また、ASIC8には、(B0−3+j4−7)、(D0−3+jC−F)、(F0−3+k4−7)、(H0−3+kC−F)のデータ及び(B4−7+m4−7)、(D4−7+mC−F)、(F0−3+n4−7)、(H0−3+nC−F)のデータが格納される。
The
なお、ASIC5−7、8間、ASIC6−7、8間で発生したデータ転送時の故障を訂正検出(1ビットだと訂正し、2ビットエラーだと検出のみ)する場合、16バイトのECCと別のECCでガードする。 When correcting and detecting a failure during data transfer between the ASICs 5-7 and ASIC6 and between the ASICs 6-7 and 8 (correcting if it is 1 bit and only detecting if it is a 2-bit error) Guard with another ECC.
(d) :次に、ASIC7、8がDIMMとデータ転送を行う(データのリード/ライトを行う)。
(d): Next, the
この場合、一方のASIC7とデータ転送を行うDIMMでは、1ST(1番目)のデータは、A0−3、A4−7、j0−3、m0−3である。2ND(2番目)のデータは、C4−7、C0−3、m8−B、j8−Bである。3RD(3番目)のデータは、E0−3、E4−7、k0−3、n0−3のデータである。4TH(4番目)のデータは、G4−7、G0−3、n8−Bのデータである。
In this case, in the DIMM that performs data transfer with one
また、他方のASIC8とデータ転送を行うDIMMでは、1ST(1番目)のデータは、B0−3、B4−7、j4−7、m4−7である。2ND(2番目)のデータは、D4−7、D0−3、mC−F、jC−Fである。3RD(3番目)のデータは、F0−3、F4−7、k4−7、n4−7のデータである。4TH(4番目)のデータは、H4−7、H0−3、nC−F、KC−Fのデータである。
In the DIMM that performs data transfer with the
このように、ASIC5、6で作成したECCの塊が同じDIMM(DRAM)にアクセスしない。
In this way, ECC blocks created by the
§4:CPU−ASIC間でデータを4つにスライスした時の説明
図5はCPU−ASIC間でデータを4つにスライスした時の説明図である。以下、図5を参照しながら、CPU−ASIC間でデータを4つにスライスした時の変形例について説明をする。
§4: Explanation when data is sliced into four between CPU and ASIC FIG. 5 is an explanatory diagram when data is sliced into four between CPU and ASIC. Hereinafter, with reference to FIG. 5, a modification example in which data is sliced into four between the CPU and the ASIC will be described.
(a) :他の実施形態(変形例)の説明
図5に示したように、この例では、CPUにASIC9、10、11、12からなる4分割したASIC(第1のASIC群)を接続し、前記4分割したASIC9、10、11、12には、それぞれ、2個づつのASIC13、14(第2のASIC群)を接続する。また、前記2個のASIC13、14には、それぞれ1個のDIMMを接続する。このような構成により前記データを4個にスライスすることができる。
(a): Description of Other Embodiments (Modifications) As shown in FIG. 5, in this example, the CPU is connected to a ASIC (first ASIC group) divided into four parts composed of
この場合、ASIC9、10、11、12(第1のASIC群)には、16バイトのデータが転送されるので、その16バイト単位にECCの塊を生成し、前記図2、3、4の例と同様に、その塊が同じDIMMの同じ素子にデータに読み書きされないようにデータのアサインを行う。
In this case, since 16-byte data is transferred to the
(b) :具体的なデータ例の説明
図5に示した装置では、CPU−ASIC間でデータが4つにスライスした例が示されている。この装置において、ASIC9、10、11、12には、16バイトのデータが転送されるので、その16バイト単位にECCの塊を生成し、前記と同様に、前記ECCの塊が同じDIMMの同じ素子に対して書き込みや読み出しがされないようにデータのアサインを行う。
(b): Description of Specific Data Example In the apparatus shown in FIG. 5, an example in which data is sliced into four parts between the CPU and the ASIC is shown. In this apparatus, since 16 bytes of data are transferred to the
このようにすれば、アドレス故障、データ故障、DIMM1個の故障が発生した場合でも、エラーの訂正、検出が可能になる。そのため、1個当たりのASICのピン数を少なくすることができ、コストダウンが期待できる。また、DIMMやCPUを多く搭載することも可能になる。 This makes it possible to correct and detect an error even when an address failure, data failure, or one DIMM failure occurs. Therefore, the number of ASIC pins per one can be reduced, and cost reduction can be expected. In addition, a large number of DIMMs and CPUs can be installed.
11 プログラム
12 リクエスト送受信回路
13 転送データ振り分け回路
14 受信回路
15 ECCコード発生回路
16 転送データ振り分け回路
17 送信回路
18 受信回路
19 ECCチェック回路
20 ECC訂正回路
21 送信回路
25 受信回路
26 メモリコントローラ
27 書込みデータ並び替え回路
28 読出しデータ並び替え回路
29 送信回路
DESCRIPTION OF SYMBOLS 11
Claims (2)
前記ASICは、前記CPUとのインタフェースを持ち、かつ、同じ機能を持つ2又は4個のASICに分割した第1のASIC群と、前記第1のASIC群及び前記2個のDIMMとのインタフェースを持ち、かつ、同じ機能を有する2個のASICからなる第2のASIC群とで構成し、
前記第1のASIC群の各ASICは、該第1のASIC群内でECCの塊を作成し、このECCの塊により、ライトデータに対するECCコードの発生及び該発生させたECCコードのライトデータへの付加機能と、ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける機能と、DIMMからのリードデータに対するECCチェック及びECC訂正機能とを有し、
前記第2のASIC群の各ASICは、DIMMの制御を行う機能と、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにライトデータの並び替えを行う機能と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す機能とを有し、
前記各機能により1バイト誤り訂正又は2バイト誤り検出を可能にしたことを特徴とする情報処理装置におけるエラー訂正、検出装置。 An error correction / detection device in an information processing apparatus having a CPU, an ASIC, and two DIMMs, and transferring write / read data between the CPU and the DIMM via the ASIC,
The ASIC has an interface with the CPU and a first ASIC group divided into two or four ASICs having the same function, and an interface with the first ASIC group and the two DIMMs. And a second ASIC group consisting of two ASICs having the same function.
Each ASIC of the first ASIC group creates an ECC block within the first ASIC group, and the ECC block generates an ECC code for write data and converts the generated ECC code to write data. Additional function, a function of distributing write data with ECC code to each ASIC of the second ASIC group, an ECC check and ECC correction function for read data from DIMM,
Each ASIC in the second ASIC group performs a DIMM control function and rearranges write data so that the ECC block generated in the first ASIC group does not access the same element in the DIMM. And a function to restore the data rearranged at the time of writing to the read data from the DIMM,
An error correction / detection device in an information processing apparatus, wherein each function enables one-byte error correction or two-byte error detection.
前記CPUに対してそれぞれインタフェースを持ち、かつ、同じ機能を持つ2又は4個に分割したASICからなる第1のASIC群と、前記第1のASIC群及び前記2個のDIMMとのインタフェースを持ち、かつ、同じ機能を有する2個のASICからなる第2のASIC群とを備え、
前記第1のASIC群の各ASICは、それぞれ、CPUからDIMMへのライトデータに対し、ECCコードを発生してライトデータに付与するECCコード発生回路と、前記ECCコード付きライトデータを第2のASIC群の各ASICへ振り分ける転送データ振り分け回路と、DIMMからCPUへのリードデータに対し、ECCチェックを行うECCチェック回路と、前記ECCチェック回路のチェック結果が1バイトエラーであればエラー訂正を行い、2バイトエラーであればエラー検出のみを行うECC訂正回路を備え、
前記第2のASIC群の各ASICは、それぞれ、DIMMの制御を行うメモリコントローラと、第1のASIC群で発生させたECCの塊がDIMMの中の同じ素子にアクセスしないようにデータの並び替えを行う書き込みデータ並び替え回路と、DIMMからのリードデータに対し、ライト時に並び替えたデータを元に戻す読出しデータ並べ替え回路を備えていることを特徴とする情報処理装置におけるエラー訂正、検出装置。 An error correction / detection device in an information processing apparatus having a CPU, an ASIC, and two DIMMs, and transferring write / read data between the CPU and the DIMM via the ASIC,
Each of the CPUs has an interface, and has an interface between the first ASIC group composed of two or four ASICs having the same function, and the first ASIC group and the two DIMMs. And a second ASIC group consisting of two ASICs having the same function,
Each ASIC of the first ASIC group generates an ECC code for generating write data from the CPU to the DIMM and assigning the write data to the write data, and the write data with the ECC code is sent to the second data. Transfer data distribution circuit that distributes to each ASIC of the ASIC group, ECC check circuit that performs ECC check on read data from DIMM to CPU, and error correction if the check result of the ECC check circuit is a 1-byte error If it is a 2-byte error, it has an ECC correction circuit that only detects errors,
Each ASIC of the second ASIC group is arranged to rearrange the data so that the memory controller that controls the DIMM and the ECC block generated by the first ASIC group do not access the same element in the DIMM. And a read data rearrangement circuit that restores the data rearranged at the time of writing with respect to the read data from the DIMM. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004179157A JP2006004133A (en) | 2004-06-17 | 2004-06-17 | Error correction and detection device in information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004179157A JP2006004133A (en) | 2004-06-17 | 2004-06-17 | Error correction and detection device in information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006004133A true JP2006004133A (en) | 2006-01-05 |
Family
ID=35772487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004179157A Withdrawn JP2006004133A (en) | 2004-06-17 | 2004-06-17 | Error correction and detection device in information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006004133A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012177964A (en) * | 2011-02-25 | 2012-09-13 | Nec Computertechno Ltd | Memory system and memory module control method |
JP2014116015A (en) * | 2012-12-11 | 2014-06-26 | Samsung Electronics Co Ltd | Memory controller and memory system including the same |
CN113168882A (en) * | 2018-11-29 | 2021-07-23 | 华为技术有限公司 | Encoding method, decoding method and storage controller |
-
2004
- 2004-06-17 JP JP2004179157A patent/JP2006004133A/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012177964A (en) * | 2011-02-25 | 2012-09-13 | Nec Computertechno Ltd | Memory system and memory module control method |
JP2014116015A (en) * | 2012-12-11 | 2014-06-26 | Samsung Electronics Co Ltd | Memory controller and memory system including the same |
CN113168882A (en) * | 2018-11-29 | 2021-07-23 | 华为技术有限公司 | Encoding method, decoding method and storage controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664344B2 (en) | Memory repair method and apparatus based on error code tracking | |
US20200357446A1 (en) | Memory buffer with data scrambling and error correction | |
US6662333B1 (en) | Shared error correction for memory design | |
US7484161B2 (en) | System, method and storage medium for providing fault detection and correction in a memory subsystem | |
EP0989491B1 (en) | Technique for partioning data to correct memory part failures | |
US8086783B2 (en) | High availability memory system | |
CN101097784B (en) | Improving reliability, availability, and serviceability in a memory device | |
US8185800B2 (en) | System for error control coding for memories of different types and associated methods | |
US5007053A (en) | Method and apparatus for checksum address generation in a fail-safe modular memory | |
US5666371A (en) | Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements | |
US20040225944A1 (en) | Systems and methods for processing an error correction code word for storage in memory components | |
US20060077750A1 (en) | System and method for error detection in a redundant memory system | |
US20230236934A1 (en) | Instant write scheme with dram submodules | |
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 | |
KR100609343B1 (en) | A system and method for improving multi-bit error protection in computer memory systems | |
US7404118B1 (en) | Memory error analysis for determining potentially faulty memory components | |
US6460157B1 (en) | Method system and program products for error correction code conversion | |
KR102023121B1 (en) | Memory device which corrects error and method of correcting error | |
JP2006004133A (en) | Error correction and detection device in information processor | |
US7478307B1 (en) | Method for improving un-correctable errors in a computer system | |
US11030061B2 (en) | Single and double chip spare | |
US6249878B1 (en) | Data storage system | |
US10740179B2 (en) | Memory and method for operating the memory | |
JP2006323434A (en) | Data processor and memory correction method therefor | |
US9690673B2 (en) | Single and double chip spare |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070904 |