JP5422974B2 - 誤り判定回路及び共有メモリシステム - Google Patents

誤り判定回路及び共有メモリシステム Download PDF

Info

Publication number
JP5422974B2
JP5422974B2 JP2008294828A JP2008294828A JP5422974B2 JP 5422974 B2 JP5422974 B2 JP 5422974B2 JP 2008294828 A JP2008294828 A JP 2008294828A JP 2008294828 A JP2008294828 A JP 2008294828A JP 5422974 B2 JP5422974 B2 JP 5422974B2
Authority
JP
Japan
Prior art keywords
error
data
polynomial
code
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008294828A
Other languages
English (en)
Other versions
JP2010122828A (ja
Inventor
昌樹 鵜飼
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008294828A priority Critical patent/JP5422974B2/ja
Priority to US12/604,544 priority patent/US8327236B2/en
Priority to EP09174357A priority patent/EP2187527A3/en
Priority to CN200910212292A priority patent/CN101740135A/zh
Priority to KR1020090110818A priority patent/KR101050744B1/ko
Publication of JP2010122828A publication Critical patent/JP2010122828A/ja
Application granted granted Critical
Publication of JP5422974B2 publication Critical patent/JP5422974B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、誤り判定回路及び共有メモリシステムに係り、特に主記憶メモリのデータ保証をする誤り判定回路及び共有メモリシステムに関する。
マルチプロセッサシステム又は共有メモリシステムにおいてキャッシュコヒーレンシーを保つ方法としては、SMP(Symmetric Multi Processing)方式とccNUMA(cache coherent Non-Uniform Memory Access)方式がある。
ccNUMA方式では、一般的に主記憶メモリをあるサイズのブロック毎に分割し、各ブロックに対してディレクトリ(Directory)と呼ばれるキャッシュコヒーレンシー(Coherency)を保つための情報を主記憶メモリに格納するフルディレクトリ(Full Directory)方式が採用されている。ブロックサイズは、キャッシュメモリのラインサイズと等しいことが多い。
ディレクトリを格納する領域を、主記憶メモリとは別の領域に確保する手法がある。しかし、ディレクトリを格納するために主記憶メモリとは別のメモリを設けると、主記憶メモリとして使用できる領域を確保することはできるものの、システムのコストが増加してしまう。
一方、特にサーバとして使用されるシステムの主記憶メモリは例えば8:1の割合の1の部分にパリティ(Parity)情報又は誤り訂正コードのチェックビットを格納できるようなDIMM(Dual Inline Memory Module)が一般的であり、この8:1の割合の1の部分をパリティ情報の代わりにディレクトリを格納する領域とする手法もある。しかし、サーバとして使用されるシステムの主記憶メモリ、即ち、DIMMでは、格納されたデータの信頼性(即ち、データ化けが起きていないこと)を保証する必要がある。
ccNUMA方式以外の方式、即ち、主記憶メモリにデータ以外を格納する必要が無いSMP方式等では、1バイト分のところにSEC−DED(Single Error Correct, Double Error Detect)誤り訂正コード(ECC:Error Check and correction Code)を格納したり、或いは、複数回データを読み出す単位でチェックすることでSEC−DED(Single-8-bit-group Error Correct, Double-8-bit-group Error Detect)ECC方式が採用されている。特に後者の場合、市販の例えば18チップで構成されたDIMMにおいて1チップが故障したとしても、データ訂正によりDIMMの運用が可能となる。
従って、サーバとして使用されるシステムがフルディレクトリ方式のccNUMA方式を採用する場合、SMP方式のようなDIMMの1チップ故障にも耐えられるデータインテグリティ(Data Integrity)又はデータ保証をしつつ、ディレクトリのための領域を確保することが望ましい。
一方、主記憶メモリをページと呼ばれる単位に区切り、ページ毎にストレージキー(Storage Key)と呼ばれる情報を格納するメインフレーム等のアーキテクチャが提案されている。主記憶メモリの領域に例えば4ビットのキー情報を格納しておくことで、同一キー情報を持つアクセスのみを許可するメモリ保護機能(又は、メモリプロテクト機能)を実現できる。しかし、近年のマルチプロセッサシステムでは、主記憶メモリの容量が増大しているので、主記憶メモリの容量の増大に比例してページ数も増大し、キー情報の総量も増大している。又、主記憶メモリには安価な規格化されたDIMMを用いるのが一般的であるため、キー情報を格納する領域を別途安価に構築することが難しい。
そこで、従来は、DIMMで構築される主記憶メモリの領域の一部をキー情報の格納領域に転用している。このため、本来なら主記憶メモリの領域として使用したい領域がキー情報の格納用に使用されており、主記憶メモリの利用効率を向上するのが難しい。
特開平11−232129号公報 特開平9−120671号公報 特開2006−252545号公報 特開昭54−57848号公報
従来のマルチプロセッサシステム又は共有メモリシステムでは、主記憶メモリの領域の一部をキャッシュコヒーレンシーを保つための情報、データ保証をするための情報、メモリを保護するための情報等を格納するために使用するため、システムのコストを増加させることなく主記憶メモリの領域の利用効率を向上してデータ保証を行うことが難しいという問題があった。
そこで、本発明は、システムのコストを増加させることなく主記憶メモリの領域の利用効率を向上してデータ保証を行うことが可能な誤り判定回路及び共有メモリシステムを提供することを目的とする。
本発明の一観点によれば、P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(−3)リード・ソロモン符号(は2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、S =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備え、前記第1の排他的論理和ツリーは、原始多項式P(x)の性質P(α)=0よりαの次数をm−1以下にする誤り判定回路が提供される。
本発明の一観点によれば、プロセッサ、主記憶メモリ及びキャッシュメモリを有するノードが複数接続された共有メモリシステムであって、各ノードは、P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(−3)リード・ソロモン符号(は2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、S =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備え、前記第1の排他的論理和ツリーは、原始多項式P(x)の性質P(α)=0よりαの次数をm−1以下にする共有メモリシステムが提供される。
開示の誤り判定回路及び共有メモリシステムによれば、システムのコストを増加させることなく主記憶メモリの領域の利用効率を向上してデータ保証を行うことができる。
開示の誤り判定回路及び共有メモリシステムでは、P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体(Galois Field)GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(k,k−3)リード・ソロモン(Reed-Solomon)符号(kは2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、元符号にチェックビットを添加した符号C(x)に対してエラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、S =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を用いる。
主記憶メモリに格納されて読み出されるデータに対して上記の如きリードソロモン符号を用いた符号化及び復号化処理を行うことで、主記憶メモリの空き領域を生み出して別の用途に転用すると共に誤り訂正強度を従来と同程度に保つことで、主記憶メモリの領域の利用効率を向上してデータ保証を行うことができる。
以下に、本発明の誤り判定回路及び共有メモリシステムの各実施例を、図面と共に説明する。
図1は、本発明の一実施例における共有メモリシステムを示すブロック図である。図1に示す共有メモリシステムは、ccNUMA方式のマルチプロセッサシステムである。共有メモリシステムは、複数のノード1が周知の接続手段2により接続された構成を有する。ここでは説明の便宜上、1つのノード1のみを示す。ノード1は、CPU(Central Processing Unit)等のプロセッサ11、ディレクトリコントローラ(DC:Directory Controller)12、主記憶メモリ13及びキャッシュメモリ14を有する。ccNUMA方式を採用するため、主記憶メモリ13にはデータに加え、キャッシュメモリ14に格納されるデータのコヒーレンシーを保つためのディレクトリ情報も格納される。
後述するように、符号化回路は、P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体(Galois Field)GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(k,k−3)リード・ソロモン(Reed-Solomon)符号(kは2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーを有する。一方、復号化回路は、前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、S =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を有する。後述するように、誤り判定回路は、第1の排他的論理和ツリー、第2の排他的論理和ツリー及び誤り検出回路部を有する。

尚、本実施例では、説明の便宜上、k=36であるものとする。この場合、(k,k−3)リード・ソロモン符号は、(36,33)リード・ソロモン符号である。
又、mが8未満の自然数であると、(k,k−3)リード・ソロモン符号とならないため、mは8以上の自然数である必要がある。本実施例では、説明の便宜上、m=8であるものとするが、例えばm=16等であっても良いことは言うまでもない。
主記憶メモリ13は複数のDIMM130を有する。各DIMM130は、図2に示すように、18個のメモリチップ131−1〜131−18を有する。各メモリチップ131−1〜131−18は、4ビットのデータ幅を有する。図2は、DIMM130の構成を示す図であり、データ線以外のアドレス線等の図示は省略してある。
ECCを用いたデータ訂正可能なDIMM130を用いた主記憶メモリ13は、データ幅が例えば8バイト+1バイト(=72ビット)である。この場合、DIMM130が1チップ故障に耐えられることがデータの信頼性を保証する上で必要条件であると、SEC−DEDを行えば十分である。例えば、16バイトのデータに対して16ビットのチェックビットを設けることで、SEC−DEDを実現できることが知られている(例えば、特許文献4)。この場合のデータとチェックビットの比率は8:1であるため、図3に示すように、DIMM130には余分のデータを格納するだけのビットの余りはない。図3は、2個のDIMM130を用いて1バイトのデータ幅の誤り検出及び訂正処理を実現する場合を示す図である。
そこで、本実施例では、2インターリーブ(2 interleave)により2回の読み出しを1つの単位とすることで、SEC−DEDコードであれば、1チップ故障による場合でも8ビットブロックの単一誤りとして取り扱う。これにより、余分のデータを格納するために8ビット(1バイト)の領域を確保することができ、他のチップに誤りが無ければ、データ訂正が可能である。図4は、2個のDIMM130を用いて2インターリーブにより2回の読み出しを1つの単位とする誤り検出及び訂正処理を行う場合を示す図である。
本実施例では、SEC−DED符号として、ガロア拡大体GF(2)における(36,33)リードソロモン符号を用いる、高速処理が可能な符号化及び復号化回路を構成する。ガロア体GF(2)上の8次の原始多項式P(x)には、例えばP(x)=x+x+x+x+1を用いる。ガロア拡大体GF(2)の原始元(ガロア体GF(2)の原始元でもある)をαとすると、原始多項式P(x)が8次多項式なのでP(x)=0の根は8個あり、α(i=0,...,7)となる。
〔符号化回路〕
EC−DEDは、1バイト誤り訂正可能で2バイト誤り検出可能な符号であり、データと誤り訂正コードを合わせて36バイトになるリードソロモン符号は、符号間距離を3にすればデータ部が33バイトで誤り訂正コードが3バイトの(36,33)リードソロモン符号となる。この(36,33)リードソロモン符号の生成多項式G(x)は、G(x)=(x+α)(x+α)(x+α)で表すことができる。
この場合、誤りから保護するべき対象(即ち、誤り保護対象)である元符号の多項式をI(x)とすると、誤り訂正コードの多項式C(x)はC(x)=xI(x)modP(x)なる多項式剰余演算で表され、保護された符号F(x)はF(x)=xI(x)+C(x)で表される。
符号化処理を高速なハードウェア回路で実現する際に問題となるのは、上記多項式剰余演算の部分である。多項式剰余演算を既存のSEC−DED ECCと同様の生成行列の形で表すことができれば、符号化処理のハードウェアへの実装は容易になる。
元符号の33バイトのデータビット列D={d263,d262,...,d}は、次の多項式で表すことができる。次の多項式において、iは33バイトのブロックのバイト位置(バイト0〜32)を示し、jはバイトブロック内のビット位置(ビット0〜7)を示し、各dは0又は1の値を取る。
Figure 0005422974
ここで、ある単一ビットのみが1であるようなデータビット列をD={(263−i)番目のみが1で他が0のビット列}と定義し、I(x)を各データビット列Dに対応する多項式とするとき、線形性により元符号の多項式I(x)はd=1であるデータビットに対応する多項式I(x)の線形和で表すことができる。D,I(x),dにおいて、iは0から263までの自然数である。このため、誤り訂正コードの多項式C(x)もC(x)=x(x)modP(x)の線形和、即ち、C(x)=ΣC(x)で表すことができる。従って、データビット列Dに関する誤り訂正コードの多項式C(x)を予め求めておくことができ、誤り訂正コードの多項式C(x)から生成行列を構成可能である。
原始多項式P(x)の性質P(α)=0より、本実施例ではα=α+α+α+1を繰り返し用いてαの次数を7以下にする。このようにすると、誤り訂正コードの多項式C(x)を次のように表すことができる。
Figure 0005422974
誤り訂正コードの多項式C(x)において、k=0,1,2であり、Ci〔n〕(上記の多項式中、nは8k+j)の「i」は「C」の添え字、「〔n〕」は「i」の添え字を表し、各Ci〔n〕は0又は1の値を取り、iは0〜263である。この{Ci〔n〕}(n=23...0)の線形結合がチェックビット列{C}(n=23...0)になる。
Figure 0005422974
上記の式は、ガロア拡大体GF(2)上の加算なので、実体は排他的論理和である。
図5及び図6は、上記の如く求めた生成行列の一例を示す図である。図5及び図6では、バイト毎に区切られるブロック番号Block35〜Block3について生成行列c23〜cが示されているが、ブロック番号の利用方法自体については復号化回路の動作と共に後述する。尚、ブロック番号Block2〜Block0は、24ビットの誤り訂正コードに割り当てられる。
尚、データビットがオール0(All-0)となるデータ壊れの検出耐性を向上するために、Cのうちいくつかを反転してDIMM130に格納する等の保護対策を取るようにしても良い。尚、このような保護対策自体は周知であるため、その説明は省略する。
図7は、符号化回路を示すブロック図であり、図8は、符号化回路の排他的論理和(EOR:Exclusive-OR)ツリーの構成を示す回路図である。符号化回路は、ノード1においてプロセッサ11内又はプロセッサ11外に設けられている。
図7に示すように、EORツリー21には33バイトのデータDataが入力され、24ビットのチェックビットCheckBitが出力される。EORツリー21は、図8に示す如く接続されたEOR回路211を有し、データData[262]〜Data[5]に対してチェックビットCheckBit[23]を出力する。EORツリー21は、図6及び7に示す生成行列中「1」のビットについて全て排他的論理和を求める。
データData及び誤り訂正コードのチェックビットCheckBitは、図4と共に説明したように主記憶メモリ13(DIMM130)に格納される。
〔復号化回路〕
図9は、復号化回路を示すブロック図である。復号化回路は、図9に示す如く接続されたEORツリー31、誤り検出回路部32及び誤り訂正回路部33を有する。復号化回路は、ノード1においてプロセッサ11内又はプロセッサ11外に設けられている。
EORツリー31は、図8に示すEORツリー21と同様の構成を有するので、その図示及び説明は省略する。EORツリー31は、符号化されたデータReadData[263:0]及びチェックビットReadCheckBit[23:0]に基づいて以下に説明するシンドロームSyndrom0[7:0], Syndrom1[7:0], Syndrom2[7:0]を生成する。
EC−DEDのために、本実施例では8ビットのシンドロームを3種類生成する。形式的には24ビットのシンドロームを生成することと実質的に同じであるが、誤り検出及び訂正処理の説明を簡単にするため、シンドロームをS,S,Sで表す。主記憶メモリ13(DIMM130)から読み出された符号が、データとチェックビットを合わせて36バイトの多項式表現Y(x)で表されるものとすると、シンドロームS,S,SはS=Y(α)(n=0,1,2)なるシンドローム生成行列の抽象表現式で表される。つまり、Y(x)は、誤りが検出される対象(即ち、誤り検出対象)である符号の多項式表現である。ここでは、読み出されたデータ列D'をD'=d'263,...,d',c'23,...,c'で表す。DIMM130に保存されている間にデータが壊れた、或いは、誤りが混入した可能性があるので、格納前のデータとは読み出し後のデータに「'」なる記号を付けて区別すると、読み出された符号は次のような多項式表現Y(x)で表される。
Figure 0005422974
ここで、シンドロームS,S,Sについても上記生成行列を作ったときと同様に、読み出したデータとチェックビットからなるビット列が1つだけ1であるような線形結合で表すことができる。この場合も、符号化時と同様にしてα=α+α+α+1により次数を落とすことでシンドロームS,S,Sを求める生成行列を得ることができる。チェックビットが加わるものの、シンドロームS,S,Sを求める行列を得る手法は符号化時に用いる手法と同様であるため、その説明は省略する。
以下の行列表現においては、S=ΣS0α、S=ΣS1α、S=ΣS2αであり、各S0,S1,S2は0又は1の値を取る。
図10及び図11は、シンドロームを求める行列の一例を示す図である。図10及び図11は、ブロック番号Block35〜Block0についてシンドロームSの生成行列要素S0〜S0、シンドロームSの生成行列要素S1〜S1、シンドロームSの生成行列要素S2〜S2を示す。
図12は、誤り検出回路部32を示す回路図である。誤り検出回路部32は、図12に示す如く接続されたデコード・エンコード回路41、指数部分mod255付き加算回路42、誤り判定回路43、インバータ回路44及び並び替え回路45を有する。
上記の如く得られた3つのシンドロームS,S,Sの値がいずれも0であれば誤りは無い。少なくとも1つのシンドロームが0でなければ、何らかの誤りがある。少なくとも1つのシンドロームが0でない場合、ガロア拡大体GF(2)上で方程式S =Sが成立すると、復元可能な1ブロック誤りである。リード・ソロモン符号としては、方程式の等号不成立ならば2ブロック誤りであるが、方程式の等号成立、且つ、S=0、即ち3ブロック以上誤りというのは式上あり得ない。方程式の等号不成立であれば、2ブロック以上誤りであり、SEDの能力を超えているためデータの訂正(回復)は不可能であるが、DED能力により検出可能である。このようにデータの訂正が不可能である場合には、システムにより誤りを通知したり、或いは、誤りマーク処理等の適切な処置を行う必要がある。又、ここではα55=1であることも考慮する必要がある。
上記の如く、シンドロームS,S,SはS=ΣS0α、S=ΣS1α、S=ΣS2αなる7次以下のαの項の和で表されているので、このままでは方程式S =Sを評価するのは容易ではない。そこで、この評価と後述する誤り訂正処理の両方において、図13に示す対数変換をデコード・エンコード回路41により行う。図13は、対数変換の一例を説明する図であり、対数変換表の内容を示す。Sn,Sn,Sn,Sn,Sn,Sn,Sn,Sn(n=0,1,2)を1つの16進数2桁(2進数8桁)の数値としてこの対数変換表を辿ると、その交点がαのべき指数kを表している。ビット誤りを起こしている場合にこの対数変換表を用いるため、シンドロームSもシンドロームSも0にはならない。従って、対数変換表の定義域は1以上である。尚、対数変換表の内容は16進数で示されている。この対数変換表は、α(n=0,...,254)の夫々に対してα=α+α+α+1により次数を落とすことで得ることができる。
このようにして、EORツリー31が出力するシンドロームSyndrom0[7:0], Syndrom1[7:0], Syndrom2[7:0]に基づいて、3個のデコード・エンコード回路41は対数変換後のシンドロームAlog_Syndrom0[7:0], Alog_Syndrom1[7:0], Alog_Syndrom2[7:0]を出力すると共に、1ブロック誤りを示すSingleBlockErrorData[7:0]を出力する。
加算回路42は、図12に示す如く接続された加算器421、アンド(AND)回路422、オア(OR)回路423及びインクリメント回路424を有する。加算器421のキャリー(Carry)ビットはオア回路423に入力される。インクリメント回路424のキャルービットは無視する。加算回路42は、ブロック誤りの判定及びブロック誤りの位置を計算するために、mod255演算を含む剰余演算を行う。
図12において、上側の加算回路42は、一番上側のデコード・エンコード回路41の出力するシンドロームAlog_Syndrom0[7:0]をインバータ回路44を介して入力されると共に、上から2番目のデコード・エンコード回路41の出力するシンドロームAlog_Syndrom1[7:0]を入力され、1ブロック誤りの位置(即ち、訂正するべきバイト位置)pを示すSingleBlockErrorPos[7:0]を出力する。
又、図12において、下側の加算回路42は、一番上側のデコード・エンコード回路41の出力するシンドロームAlog_Syndrom0[7:0]を入力されると共に、一番下側のデコード・エンコード回路41の出力するシンドロームAlog_Syndrom2[7:0]を入力される。対数変換後のシンドロームSとシンドロームSの積は、べき指数部の加算で実現できるので、下側の加算回路42はこのべき数部の加算結果Alog_Syn2_PL_Syn0_mod[7:0]を出力する。このようにして、α255=1(=α)を考慮したべき指数部の加算を実現できる。
誤り判定回路43は、図12に示す如く接続された加算器431、一致検出回路432、インバータ回路433、アンド回路434及びノア(NOR)回路435を有する。加算器431には、EORツリー31が出力するシンドロームSyndrom0[7:0], Syndrom1[7:0], Syndrom2[7:0]が入力される。加算器431からは、誤りが無いことを示すビットNo_Errorを出力する。一致検出回路432には、図12において上から2番目のデコード・エンコード回路41は出力するシンドロームAlog_Syndrom1[7:0]のビットの並び替えを行う並び替え回路45の出力Alog_Syndrom1[6:0,7]と、下側の加算回路42の出力Alog_Syn2_PL_Syn0_mod[7:0]が入力される。アンド回路434からは、1ブロック誤りを示すビットSingleBlockErrorが出力される。ノア回路435からは、2ブロック誤りを示すビットDoubleBlockErrorが出力される。このように、S は、α55=1(=α)を考慮すると指数部のビットの並び替えのみで実現でき、シンドロームS,Sの一致検出を行うことで場合分けができる。
図14は、誤り訂正回路部33を示す回路図である。誤り訂正回路部33は、図14に示す如く接続されたデコード回路51、36個のアンド回路52及び36個のEOR回路53を有する。デコード回路51には、図12において上側の誤り判定回路42が出力する、1ブロック誤りの位置pを示すSingleBlockErrorPos[7:0]が入力される。デコード回路51の36ビットの出力は、対応するアンド回路52に入力される。又、デコード回路51は、1ブロック以上の誤りの位置を示す値BlockPosErrorを出力する。各アンド回路52には、デコード・エンコード回路41が出力する、1ブロック誤りを示すSingleBlockErrorData[7:0]も入力される。上側の33個のEOR回路53は、対応するアンド回路52の出力とデータReadData[253:255]〜ReadData[7:0]を入力され、訂正データCorrectData[263:255]〜CorrectData[7:0]を出力する。又、下側の3個のEOR回路53は、対応するアンド回路52の出力とチェックビットReadCheckBit[23:16], ReadCheckBit[15:8], ReadCheckBit[7:0]を入力され、訂正チェックビットCorrectCB[23:16], CorrectCB[15:8], CorrectCB[7:0]を出力する。つまり、誤り訂正回路部33からは、訂正データCorrectData[263:0]、訂正チェックビットCorrectCB[23:0]及び1ブロック以上の誤りの位置を示す値BlockPosErrorが出力される。
誤り訂正回路部33が出力する訂正データCorrectData[263:0]が誤り訂正処理を施された(即ち、訂正後の)正しいデータとなるので、2ブロック誤りでなければこの訂正データを使用すれば良い。又、誤り訂正回路部33が出力する訂正チェックビットCorrectCB[23:0]をその後の処理で使用しない場合には、誤り訂正回路部33中の訂正チェックビットCorrectCB[23:0]を生成する回路部分は省略しても良い。又、1ブロック誤りの位置pを示すSingleBlockErrorData[7:0] (誤り訂正回路部33は値BlockPosErrorを出力する)の値が0〜35の範囲外、即ち、36以上になった場合には、多ブロック誤りと判断し、2ブロック誤りと同様の扱いにすれば良い。
方程式S =Sが成立している場合、シンドロームSが訂正データを意味しており、又、訂正するべきバイト位置pは、ガロア拡大体GF(2)上でSα=Sより求められる。従って、読み出しデータのブロック位置pにある8ビットデータに対し、シンドロームSとの排他的論理和を演算すれば誤りが訂正され、SECの能力が確保される。
尚、上記の如くα255=1(=α)が成り立つので、べき指数の加算時にガロア拡大体GF(2)上で方程式S =Sの等号成立検出や誤り位置検出の回路を構成する際は、べき指数の加算結果が0だけでなく255になる場合もあることを考慮する必要があることは。言うまでもない。
次に、上記実施例の符号化回路及び復号化回路の回路規模とレイテンシについて説明する。
生成行列の大きさから分かるように、符号化回路の回路規模は約140ビットのEOR回路が24個である。符号化回路のレイテンシは、EORツリーを用いるので、2ビットのEOR回路が9段分程度となる。
復号化回路において、シンドロームを生成する回路の規模は(シンドロームSだけは疎行列のため他のシンドロームより若干小さいが)約140ビットのEOR回路が24個である。シンドロームを生成する回路のレイテンシは、符号化回路と同様にEORツリーを用いるので、2ビットのEOR回路が9段分程度となる。誤り検出回路部及び誤り訂正回路部は、生成されたシンドロームから誤り訂正処理を行うために8ビットから8ビットへの対数変換のための回路を3個、誤り判定のために8ビット加算器と一致検出回路を1個、シングルブロック訂正のための回路を1個(AND−EOR回路を264ビット分)を少なくとも必要とする。対数変換回路として機能する8ビットデコード・エンコード回路は、AND−OR回路で構成可能である。従って、誤り検出回路部及び誤り訂正回路部のレイテンシは、シンドロームを生成する回路よりやや時間が必要となる。
上記実施例の如く簡略化されたECCのチェックビットは、DIMM130中の1チップが故障してもデータ訂正を可能とする。上記の例の場合、図4に示すように36バイトのうち33バイトをデータ領域(32バイトが元々のデータ、1バイトが余分のデータのために新規に確保される空き領域)となる。従来であれば、上記の例の場合、図3に示すように主記憶メモリ13は例えば8:1の割合の1の部分(2バイト)にチェックビットを格納するが、本実施例では、図4に示すように11:1の割合の1の部分(3バイト)にチェックビットを格納しても、従来と同等のデータの信頼性を確保することができる。
このように、上記実施例の場合、32バイトデータに対して従来と同等の誤り訂正、検出能力を維持しつつ、必要となるチェックビットの数を減らして、主記憶メモリ13に1バイト分の余分なデータ(又は、情報)を格納可能な空き領域を確保できる。この1バイト分の空き領域を用いて、ccNUMAのディレクトリ情報や、メインフレームのキー情報等を格納することができる。つまり、従来と同等の誤り訂正、検出能力を維持し、且つ、主記憶メモリ13の領域の一部を、キャッシュコヒーレンシーを保つための情報、データ保証をするための情報、メモリを保護するための情報等の格納用に使用できる。従って、システムのコストを増加させることなく、主記憶メモリ13の領域の利用効率を向上してデータ保証を行うことが可能となる。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(k,k−3)リード・ソロモン符号(kは2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、
前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、
=Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備えた、誤り判定回路。
(付記2)
前記誤り検出回路部は、積Sを指数部の加算で求める対数変換回路を含む、付記1記載の誤り判定回路。
(付記3)
前記データと、前記誤り検出回路部から出力される前記2ブロック誤りの位置及び前記1ブロック誤りの位置に基づいて、1ブロック以上の誤りの位置を検出すると共に、S =Sが成立している場合にはシンドロームSから訂正データを出力する誤り訂正回路部を更に備えた、付記1又は2記載の誤り判定回路。
(付記4)
前記誤り訂正回路部は、1ブロック誤りまでが訂正された訂正データを出力する、付記3記載の誤り判定回路。
(付記5)
m=8である、付記1乃至4のいずれか1項記載の誤り判定回路。
(付記6)
前記第2の排他的論理和ツリーに入力される前記データ及び前記チェックビットは、9バイトのメモリモジュール2個に対して2インターリーブにより2回の読み出しを1つの単位として行うことで得られた32バイトのデータ、3バイトのチェックビット及び1バイトの余りデータに含まれる、付記5記載の誤り判定回路。
(付記7)
k=36である、付記1乃至6のいずれか1項記載の誤り判定回路。
(付記8)
プロセッサ、主記憶メモリ及びキャッシュメモリを有するノードが複数接続された共有メモリシステムであって、
各ノードは、
P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(k,k−3)リード・ソロモン符号(kは2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、
前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、
=Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備えた、共有メモリシステム。
(付記9)
前記誤り検出回路部は、積Sを指数部の加算で求める対数変換回路を含む、付記8記載の共有メモリシステム。
(付記10)
各ノードは、
前記データと、前記誤り検出回路部から出力される前記2ブロック誤りの位置及び前記1ブロック誤りの位置に基づいて、1ブロック以上の誤りの位置を検出すると共に、S =Sが成立している場合にはシンドロームSから訂正データを出力する誤り訂正回路部を更に備えた、付記8又は9記載の共有メモリシステム。
(付記11)
前記誤り訂正回路部は、1ブロック誤りまでが訂正された訂正データを出力する、付記10記載の共有メモリシステム。
(付記12)
m=8である、付記8乃至11のいずれか1項記載の共有メモリシステム。
(付記13)
前記第2の排他的論理和ツリーに入力される前記データ及び前記チェックビットは、前記主記憶メモリ内の複数の9バイトのメモリモジュールのうち2個のメモリモジュールに対して2インターリーブにより2回の読み出しを1つの単位として行うことで得られた32バイトのデータ、3バイトのチェックビット及び1バイトの余りデータに含まれる、付記12記載の共有メモリシステム。
(付記14)
前記1バイトの余りデータは、各ノードの前記キャッシュメモリに格納されるデータのコヒーレンシーを保つための情報、データ保証をするための情報、メモリを保護するための情報のいずれかである、付記13記載の共有メモリシステム。
(付記15)
前記1バイトの余りデータは、ccNUMA方式で使用されるディレクトリ情報である、付記13又は14記載の共有メモリシステム。
(付記16)
k=36である、付記8乃至15のいずれか1項記載の共有メモリシステム。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
本発明の一実施例における共有メモリシステムを示すブロック図である。 DIMMの構成を示す図である。 2個のDIMMを用いて1バイトのデータ幅の誤り検出及び訂正処理を実現する場合を示す図である。 2個のDIMMを用いて2インターリーブにより2回の読み出しを1つの単位とする誤り検出及び訂正処理を行う場合を示す図である。 生成行列の一例を示す図である。 生成行列の一例を示す図である。 符号化回路を示すブロック図である。 符号化回路のEORツリーの構成を示す回路図である。 復号化回路を示すブロック図である。 シンドロームを求める行列の一例を示す図である。 シンドロームを求める行列の一例を示す図である。 誤り検出回路部を示す回路図である。 対数変換の一例を説明する図である。 誤り訂正回路部を示す回路図である。
符号の説明
1 ノード
2 接続手段
11 プロセッサ
12 DC
13 主記憶メモリ
14 キャッシュメモリ
21,31 EORツリー
32 誤り検出回路部
33 誤り訂正回路部

Claims (13)

  1. P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(−3)リード・ソロモン符号(は2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、
    前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、
    =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備え
    前記第1の排他的論理和ツリーは、原始多項式P(x)の性質P(α)=0よりαの次数をm−1以下にする、誤り判定回路。
  2. 前記誤り検出回路部は、積Sを指数部の加算で求める対数変換回路を含む、請求項1記載の誤り判定回路。
  3. 前記データと、前記誤り検出回路部から出力される前記2ブロック誤りの位置及び前記1ブロック誤りの位置に基づいて、1ブロック以上の誤りの位置を検出すると共に、S =Sが成立している場合にはシンドロームSから訂正データを出力する誤り訂正回路部を更に備えた、請求項1又は2記載の誤り判定回路。
  4. m=8であり、
    前記第1の排他的論理和ツリーは、α =α +α +α +1を繰り返し用いてαの次数を7以下にして誤り訂正コードの多項式C (x)を次式から求め、
    Figure 0005422974
    前記誤り訂正コードの多項式C (x)中、k=0,1,2であり、nは8k+jであり、C i〔n〕 のiはCの添え字、〔n〕はiの添え字を表し、各C i〔n〕 は0又は1の値を取り、iは0〜263であり、{C i〔n〕 }(n=23...0)の線形結合がチェックビット列{C }(n=23...0)になる、請求項1乃至3のいずれか1項記載の誤り判定回路。
  5. 前記第2の排他的論理和ツリーに入力される前記データ及び前記チェックビットは、9バイトのメモリモジュール2個に対して2インターリーブにより2回の読み出しを1つの単位として行うことで得られた32バイトのデータ、3バイトのチェックビット及び1バイトの余りデータに含まれる、請求項4記載の誤り判定回路。
  6. =36である、請求項1乃至5のいずれか1項記載の誤り判定回路。
  7. プロセッサ、主記憶メモリ及びキャッシュメモリを有するノードが複数接続された共有メモリシステムであって、
    各ノードは、
    P(x)をガロア体GF(2)上のm次(mは8以上の自然数)の原始多項式とし、ガロア拡大体GF(2)の原始元をαとし、P(x)=0の根をα(i=0,...,m−1)とすると、(−3)リード・ソロモン符号(は2以下の自然数)を用いたSEC−DEDにおいて、mビットブロック単位のデータに対し、誤りから保護するべき対象である元符号の多項式表現I(x)に対し、C(x)=xI(x)modP(x)なる多項式剰余演算により訂正コードのチェックビットの生成を前記ガロア拡大体GF(2)上の加算で行う第1の排他的論理和ツリーと、
    前記元符号に前記チェックビットを添加した符号C(x)に対して、エラーが混入した可能性のある誤りを検出するべき対象である符号の多項式表現をY(x)とし、シンドロームS,S,SをS=Y(α)(n=0,1,2)から生成する第2の排他的論理和ツリーと、
    =Sが成立しているか否かに基づいて、1ブロックの誤り、2ブロックの誤り、或いは、誤りがないことを検出すると共に、ブロック誤りの位置pを前記ガロア拡大体GF(2)上でSα=Sから検出する誤り検出回路部を備え
    前記第1の排他的論理和ツリーは、原始多項式P(x)の性質P(α)=0よりαの次数をm−1以下にする、共有メモリシステム。
  8. 前記誤り検出回路部は、積Sを指数部の加算で求める対数変換回路を含む、請求項7記載の共有メモリシステム。
  9. 各ノードは、
    前記データと、前記誤り検出回路部から出力される前記2ブロック誤りの位置及び前記1ブロック誤りの位置に基づいて、1ブロック以上の誤りの位置を検出すると共に、S =Sが成立している場合にはシンドロームSから訂正データを出力する誤り訂正回路部を更に備えた、請求項7又は8記載の共有メモリシステム。
  10. m=8であり、
    前記第1の排他的論理和ツリーは、α =α +α +α +1を繰り返し用いてαの次数を7以下にして誤り訂正コードの多項式C (x)を次式から求め、
    Figure 0005422974
    前記誤り訂正コードの多項式C (x)中、k=0,1,2であり、nは8k+jであり、C i〔n〕 のiはCの添え字、〔n〕はiの添え字を表し、各C i〔n〕 は0又は1の値を取り、iは0〜263であり、{C i〔n〕 }(n=23...0)の線形結合がチェックビット列{C }(n=23...0)になる、請求項7乃至9のいずれか1項記載の共有メモリシステム。
  11. 前記第2の排他的論理和ツリーに入力される前記データ及び前記チェックビットは、前記主記憶メモリ内の複数の9バイトのメモリモジュールのうち2個のメモリモジュールに対して2インターリーブにより2回の読み出しを1つの単位として行うことで得られた32バイトのデータ、3バイトのチェックビット及び1バイトの余りデータに含まれる、請求項10記載の共有メモリシステム。
  12. 前記1バイトの余りデータは、各ノードの前記キャッシュメモリに格納されるデータのコヒーレンシーを保つための情報、データ保証をするための情報、メモリを保護するための情報のいずれかである、請求項11記載の共有メモリシステム。
  13. =36である、請求項7乃至12のいずれか1項記載の共有メモリシステム。
JP2008294828A 2008-11-18 2008-11-18 誤り判定回路及び共有メモリシステム Expired - Fee Related JP5422974B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008294828A JP5422974B2 (ja) 2008-11-18 2008-11-18 誤り判定回路及び共有メモリシステム
US12/604,544 US8327236B2 (en) 2008-11-18 2009-10-23 Error judging circuit and shared memory system
EP09174357A EP2187527A3 (en) 2008-11-18 2009-10-28 Error judging circuit and shared memory system
CN200910212292A CN101740135A (zh) 2008-11-18 2009-11-16 错误判断电路和共享的存储器系统
KR1020090110818A KR101050744B1 (ko) 2008-11-18 2009-11-17 오류 판정 회로 및 공유 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008294828A JP5422974B2 (ja) 2008-11-18 2008-11-18 誤り判定回路及び共有メモリシステム

Publications (2)

Publication Number Publication Date
JP2010122828A JP2010122828A (ja) 2010-06-03
JP5422974B2 true JP5422974B2 (ja) 2014-02-19

Family

ID=42045253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008294828A Expired - Fee Related JP5422974B2 (ja) 2008-11-18 2008-11-18 誤り判定回路及び共有メモリシステム

Country Status (5)

Country Link
US (1) US8327236B2 (ja)
EP (1) EP2187527A3 (ja)
JP (1) JP5422974B2 (ja)
KR (1) KR101050744B1 (ja)
CN (1) CN101740135A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
JP2012177964A (ja) * 2011-02-25 2012-09-13 Nec Computertechno Ltd メモリシステム及びメモリモジュール制御方法
JP5601256B2 (ja) * 2011-03-20 2014-10-08 富士通株式会社 メモリコントローラ及び情報処理装置
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
JP5464226B2 (ja) * 2012-03-30 2014-04-09 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
US9362953B2 (en) * 2013-08-02 2016-06-07 Infineon Technologies Ag Efficient error correction of multi-bit errors
CN105808497B (zh) * 2014-12-30 2018-09-21 华为技术有限公司 一种数据处理方法
US11061772B2 (en) 2018-12-14 2021-07-13 Samsung Electronics Co., Ltd. FPGA acceleration system for MSR codes
KR20210138241A (ko) 2020-05-12 2021-11-19 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4162480A (en) * 1977-01-28 1979-07-24 Cyclotomics, Inc. Galois field computer
JPS594741B2 (ja) 1977-10-15 1984-01-31 日本電信電話株式会社 ブロツク誤り検出訂正方式
JPS58219852A (ja) * 1982-06-15 1983-12-21 Toshiba Corp エラ−訂正回路
EP0096165B1 (en) * 1982-06-15 1988-06-08 Kabushiki Kaisha Toshiba Apparatus for dividing the elements of a galois field
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
JPS61126826A (ja) * 1984-11-22 1986-06-14 Hiroichi Okano 倍長単一誤り訂正2重誤り検出リ−ド・ソロモン符号の復号器
JPH01158828A (ja) * 1987-12-15 1989-06-21 Victor Co Of Japan Ltd 誤り検出・訂正装置
JP2810397B2 (ja) 1989-02-16 1998-10-15 キヤノン株式会社 誤り訂正装置
CA2019351A1 (en) * 1989-07-06 1991-01-06 Francis H. Reiff Fault tolerant memory
US5226043A (en) 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
US5325370A (en) * 1991-11-12 1994-06-28 Storage Technology Corporation Method and apparatus for recording data on magnetic tape media
KR100253171B1 (ko) 1992-06-02 2000-04-15 구자홍 데이타 오류정정 방법 및 회로
JPH07226687A (ja) * 1994-02-10 1995-08-22 Matsushita Electric Ind Co Ltd 誤り訂正処理装置
EP1139338A3 (en) * 1994-03-19 2006-10-11 Sony Corporation Optical disk and method and apparatus for recording and then playing information back from that disc
IN188196B (ja) * 1995-05-15 2002-08-31 Silicon Graphics Inc
JPH10255402A (ja) * 1997-03-10 1998-09-25 Fujitsu Ltd 磁気ディスク装置
JPH1117557A (ja) 1997-05-01 1999-01-22 Mitsubishi Electric Corp 誤り訂正方法及び誤り訂正装置
GB2346234B (en) 1998-01-08 2002-12-18 Seagate Technology A physical block address recovery apparatus,system and method for cyclic error correction codes
JP3678574B2 (ja) 1998-02-09 2005-08-03 日本電気エンジニアリング株式会社 チェックビット生成回路及びエラー訂正回路並びにそれ等を使用したecc制御回路
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード
JP3345385B2 (ja) * 2000-01-18 2002-11-18 松下電器産業株式会社 チェンサーチ装置
JP3668673B2 (ja) * 2000-06-09 2005-07-06 株式会社日立コミュニケーションテクノロジー エラー訂正符号の構成方法、復号方法、伝送装置、ネットワーク
GB2380598B (en) * 2000-10-04 2003-09-03 Global Silicon Ltd Deinterleaving data
TW522657B (en) * 2002-01-17 2003-03-01 Via Tech Inc PGZ algorithm based multi-mode Reed-Solomon decoder and its method
US7392347B2 (en) * 2003-05-10 2008-06-24 Hewlett-Packard Development Company, L.P. Systems and methods for buffering data between a coherency cache controller and memory
US7437651B2 (en) * 2004-06-29 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US7353336B2 (en) 2005-03-09 2008-04-01 Hewlett-Packard Development Company, L.P. External RAID-enabling cache
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
US7600176B2 (en) * 2006-03-07 2009-10-06 Broadcom Corporation Performing multiple Reed-Solomon (RS) software error correction coding (ECC) Galois field computations simultaneously
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
JP2008242034A (ja) * 2007-03-27 2008-10-09 Japan Aerospace Exploration Agency データ圧縮/伸張と暗号化/復号と誤り制御とを行う統合符号化及び復号装置、並びに方法
TWI334277B (en) * 2007-06-06 2010-12-01 Lite On Technology Corp Method for calculating syndrome efficiently in reed-solomon decoding and machine readable storage medium storing instructions for performing the method

Also Published As

Publication number Publication date
JP2010122828A (ja) 2010-06-03
EP2187527A3 (en) 2012-10-10
US20100125771A1 (en) 2010-05-20
CN101740135A (zh) 2010-06-16
US8327236B2 (en) 2012-12-04
KR101050744B1 (ko) 2011-07-21
KR20100056389A (ko) 2010-05-27
EP2187527A2 (en) 2010-05-19

Similar Documents

Publication Publication Date Title
JP5422974B2 (ja) 誤り判定回路及び共有メモリシステム
US5418796A (en) Synergistic multiple bit error correction for memory of array chips
US20080133986A1 (en) Error correction for flash memory
US7398449B1 (en) Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US7231585B2 (en) Error correction for flash memory
US20070268905A1 (en) Non-volatile memory error correction system and method
US5768294A (en) Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US8117526B2 (en) Apparatus and method for generating a transmit signal and apparatus and method for extracting an original message from a received signal
JP2015507409A (ja) 代数符号を用いるマルチフェーズecc符号化
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US20050188292A1 (en) Method and apparatus for encoding special uncorrectable errors in an error correction code
US7890846B2 (en) Electronic data flash card with Reed Solomon error detection and correction capability
US20040260994A1 (en) Method for constructing erasure correcting codes whose implementation requires only exclusive ORs
EP0147336A2 (en) Error correcting and detecting system
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
US20050149834A1 (en) (18, 9) Error correction code for double error correction and triple error detection
JPH0831806B2 (ja) エラー訂正方法
US5761221A (en) Memory implemented error detection and correction code using memory modules
US12040034B2 (en) Method to increase the usable word width of a memory providing an error correction scheme
JP2732862B2 (ja) データ伝送試験装置
CN106021012B (zh) 数据处理电路
Lala A single error correcting and double error detecting coding scheme for computer memory systems
JP2006323434A (ja) データ処理装置及びそのメモリ訂正方法
TW200839502A (en) Flash memory system and method for controlling the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

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: 20131029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5422974

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees