JP4799027B2 - 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法 - Google Patents

記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法 Download PDF

Info

Publication number
JP4799027B2
JP4799027B2 JP2005100541A JP2005100541A JP4799027B2 JP 4799027 B2 JP4799027 B2 JP 4799027B2 JP 2005100541 A JP2005100541 A JP 2005100541A JP 2005100541 A JP2005100541 A JP 2005100541A JP 4799027 B2 JP4799027 B2 JP 4799027B2
Authority
JP
Japan
Prior art keywords
address
code
data
bit
bits
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
JP2005100541A
Other languages
English (en)
Other versions
JP2006285318A (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 JP2005100541A priority Critical patent/JP4799027B2/ja
Priority to EP05253806A priority patent/EP1715424A3/en
Priority to KR1020050059174A priority patent/KR100720911B1/ko
Priority to CN2005100822859A priority patent/CN1841334B/zh
Priority to US11/236,610 priority patent/US7555699B2/en
Publication of JP2006285318A publication Critical patent/JP2006285318A/ja
Application granted granted Critical
Publication of JP4799027B2 publication Critical patent/JP4799027B2/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
    • 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/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Description

本発明は、メモリ等の記憶制御回路に関し、特に、アドレスに関する多ビットエラーを検出する記憶制御回路、記憶制御回路におけるエラーチェック方法に関する。
メモリ等の記憶制御回路におけるデータの入出力は、その記憶制御回路における記憶領域をアドレスにより指定して行われる。例えば、アドレスにより指定される記憶領域に、所望のデータが書き込まれ、アドレスにより指定される記憶領域に格納されたデータが読み出される。
一般的に記憶制御回路においては、さまざまな要因(例えば、信号線に発生するノイズ、信号線を中継するバッファの故障、信号線の断線、電磁波などの影響によるソフトエラー等)により、アドレスやデータの値が反転するエラーや、0又は1の固定値になるエラーが発生することがある。例えば、データ書き込み時にアドレスにエラーが発生すれば、所望のアドレスとは異なる記憶領域にデータが書き込まれ、場合によっては、その記憶制御回路を搭載するPC(Personal Computer)等の情報処理装置の暴走の原因となる。
書き込もうとするデータにエラーが発生しても、やはり、情報処理装置の暴走の原因となる恐れがあり、好ましくない。読み出し時にアドレス又はデータに発生するエラーも、同様に、その記憶制御回路を搭載する情報処理装置に重大な影響を及ぼす可能性がある。
そこで、従来例において、エラーを検出するための技術が提案されている。例えば、特許文献1〜5には、アドレス情報と記憶装置に格納するデータとを用いて、単一ビット誤り訂正・二重ビット誤り検出可能なエラー訂正コード(ECC: Error Correcting Code)を生成することが記載される。
また、図1にも従来技術におけるエラー検出方法が示される。図1は、アドレスパリティとデータに基づきチェックコードを生成し、それをデータと共に、指定されたアドレスに書き込む記憶制御回路の例を示す。
アドレスパリティ用チェックコード生成回路11は、データを書き込むために指定されるアドレスのパリティビット(図1では例として奇数パリティ)に基づき、アドレス用のコード103を生成する。図1には、アドレスパリティ用チェックコード生成回路11により生成されるビットパターンの例が表されている。x印は、パリティビットが1である場合、ONになるビットである。
データ用チェックコード生成回路12は、書き込むデータに基づき、データ用のコード104を生成する。データ用チェックコード生成回路12により生成されるビットパターンは図示されていないが、所望のコードが得られるように設計されている。
図1の場合与えられたアドレス101(「01010101」)のパリティビット(奇数パリティ)が1であることから、アドレス用コード103として先頭5ビットがONにされた「11111000」が生成される。そして、データ用チェックコード生成回路12により、一例として、「00101001」なるデータ用コード104が生成される。両者の排他的論理和(EOR)を取り、チェックコード105(「11010001」)が生成され、データ102(「00000001」)と共に、アドレス101で指定された記憶領域に書き込まれる。
そして、データの読み出し時に、読み出されたデータ102と読み出しに用いたアドレス101を使用して、書き込み時と同様、チェックコードを生成し、それを読み出されたチェックコード105と比較する。両者が一致しない場合、エラーとして検出される。
特開昭55−8617号公報 特開昭53−62936号公報 特開平8−235793号公報 特開平2−206855号公報 特開昭52−2244号公報
しかしながら、従来技術においては、アドレスの多ビットエラーで検出できない場合があるという課題を有していた。例えば、図1に示す従来例では、アドレスの2箇所でビット反転しても(例えば、先頭ビットと2番目のビットが入れ替わった状態でも)、パリティビットは1のままであり、エラーとして検出されない。
そこで、本発明の目的は、アドレスに関する多ビットエラーを検出する記憶制御回路、記憶制御回路におけるエラーチェック方法を提供することにある。
上記目的は、本発明の第一の側面として、アドレスで指定される記憶領域にデータを格納する記憶部と、前記記憶部へ書き込まれるデータと書き込み用に指定される前記アドレスから、該記憶部へ書き込まれるデータに対応付けて前記記憶部に格納するチェックコードを生成するチェックコード生成部と、前記記憶部から読み出されるデータと、該読み出されるデータに対応付けられたチェックコードと、読み出し用に指定される前記アドレスから、エラーチェックを行うチェックコード検査部とを備え、前記チェックコード生成部と前記チェックコード検査部は、前記アドレスに付与する第1のコードを偶数ビットで符号化し、前記記憶部へ書き込まれるデータに付与する第2のコードを奇数ビットで符号化し、前記第1のコードと前記第2のコードとに基づき、前記書き込まれるデータまたは前記読み出されるデータに対応したチェックコードを、生成または検査することを特徴とする記憶制御回路を提供することにより達成される。
上記発明の側面においてより好ましい実施例によれば、前記アドレスは、1または複数のビットずつ区切られて複数のグループに分割され、前記複数のグループ毎に各グループ内のすべての1ビットまたは複数ビットの故障が識別可能なビットパターンを用いて、前記第1のコードを偶数ビットで符号化する。
上記発明の側面においてより好ましい実施例によれば、前記アドレスに、更に、前記記憶部への前記データの書き込み及び読み出しのために指定されるアドレスが一巡する度に、値が反転するロールビットが付与され、前記ロールビットを含んだ前記アドレスに付与する前記第1のコードを偶数ビットで符号化する。
また、上記目的は、第二の側面として、アドレスで指定される記憶領域にデータを格納する記憶部を有する記憶制御回路におけるアドレスエラーチェック方法であって、前記アドレスに付与する第1のコードを偶数ビットで符号化し、前記記憶部へ書き込まれるデータに付与する第2のコードを奇数ビットで符号化し、前記第1のコードと前記第2のコードとに基づき、チェックコードを生成して前記記憶部へ書き込まれるデータに対応付けて前記記憶部に格納し、前記記憶部から読み出されるデータと、該読み出されるデータに対応付けられたチェックコードと、読み出しアドレスとに基づき、エラーチェックを行うことを特徴とするアドレスエラーチェック方法を提供することにより達成される。
上記発明の側面においてより好ましい実施例によれば、前記アドレスは、1または複数のビットずつ区切られて複数のグループに分割され、前記複数のグループ毎に各グループ内のすべての1ビットまたは複数ビットの故障が識別可能なビットパターンを用いて、前記第1のコードを偶数ビットで符号化する。
上記発明の側面においてより好ましい実施例によれば、前記アドレスに、更に、前記記憶部への前記データの書き込み及び読み出しのために指定されるアドレスが一巡する度に、値が反転するロールビットが付与され、前記ロールビットを含んだ前記アドレスに付与する前記第1のコードを偶数ビットで符号化する。
本実施形態のアドレスエラーチェック方法を使用すれば、チェックコードのビット数を増やすことなく、アドレスに関する多ビットエラーを検出することができる。
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
図2は、本発明の実施形態における記憶制御回路の構成例を示す図である。チェックコード生成回路21には、データを書き込むために指定されるアドレス201(以下、書き込みアドレスと呼ぶ)と、記憶制御回路に格納するデータ202(以下、書き込みデータと呼ぶ)とが入力される。
そして、チェックコード生成回路21は、書き込みアドレス201と書き込みデータ202とに基づき、書き込みデータ202に付与するチェックコードを生成する。チェックコード生成回路21により生成されるビットパターンについては、図3で後述する。
メモリ25は、本実施形態の記憶制御回路における記憶部である。メモリ25には、アドレス(番地)で指定される複数の記憶素子が配置され、その複数の記憶素子が記憶領域を形成している。
ライトレジスタ(WR)22には、メモリ25に格納される情報(書き込みデータ202とチェックコード204)が入力される。ライトレジスタ22は、このメモリ25に格納される情報を一時的に格納する。
ライトデコーダ(WDEC)23には、書き込みアドレス201が入力される。ライトデコーダ23は、書き込みアドレス201に対応するメモリ25内の記憶領域を駆動して、ライトレジスタ22の情報を、駆動する記憶領域に格納する。
リードデコーダ(RDEC)24には、読み出しアドレス203が入力される。リードデコーダ24は、読み出しアドレス203に対応するメモリ25内の記憶領域に格納される情報を読み出し、リードレジスタ(RR)26に格納する。
リードレジスタ26には、メモリ25から読み出された情報(読み出しアドレス203に対応する書き込みデータ202とチェックコード204)が入力される。リードレジスタ26は、このメモリ25から読み出された情報を一時的に格納する。
チェックコード検査回路27は、読み出しアドレス203とメモリ25から読み出された情報(読み出しアドレス203に対応する書き込みデータ202とチェックコード204)とが入力される。チェックコード検査回路27は、読み出しアドレス203と読み出しアドレス203に対応する書き込みデータ202とに基づき、チェックコードを生成し、その生成されたチェックコードと、読み出しアドレス203に対応するチェックコード204とを比較する。
比較の過程において、チェックコード検査回路27は、シンドロームビットを生成する。シンドロームビットとは、生成されたチェックコードと、読み出しアドレス203に対応するチェックコード204との排他的論理和を取ったコードのことである。
チェックコード検査回路27は、シンドロームビットがすべて0であれば、エラーなしと判定し、読み出しアドレス203に対応する書き込みデータ202を出力する。チェックコード検査回路27は、シンドロームビットに1が含まれれば、エラーありと判定し、エラー通知を出力する。チェックコード検査回路27により生成されるチェックコードは、チェックコード生成回路21で生成されるものと同じであり、図3で後述する。
本実施形態の記憶制御回路は、チェックコード生成回路21とチェックコード検査回路27で生成されるチェックコードのビットパターンに特徴がある。本実施形態の記憶制御回路は、書き込みアドレス201に付与するコードを偶数ビットで符号化し、書き込みデータ202に付与するコードを奇数ビットで符号化し、両者の排他的論理和(EOR)を取ることにより、チェックコードを生成する。
図3は、チェックコード生成回路21及びチェックコード検査回路27により生成されるビットパターンの例を示す図である。図3は、32ビットの書き込みデータ202と9ビットの書き込みアドレス201に対し、本実施形態の記憶制御回路が生成するチェックコードの例を示す。
本実施形態の記憶制御回路は、データ部分を3ビットで符号化する。つまり、32ビットのデータの各ビット位置においてそのビットが1である場合、生成されるチェックコードでONとなるビットの数が3となる。そして、本実施形態の記憶制御回路は、アドレス部分を2ビットで符号化する。
図3Aは、32ビットのデータの前半16ビットに関するビットパターンを示し、図3Bは、32ビットのデータの後半16ビットに関するビットパターンを示し、図3Cは、9ビットのアドレスに関するビットパターンを示す。x印は、(データ又はアドレスの)ビットが1である場合、(生成されるコードにおいて)ONとなるビットを示す。
例えば、32ビットのデータが、最後から2番目と4番目のビットのみが1であるようなデータ「00000000 00000000 00000000 00001010」の場合、図3Bの「D28」が1である場合にONとなるビットからなるコード「00001101」と、「D30」が1である場合にONとなるビットからなるコード「00010101」の2者の排他的論理和を取った「00011000」が、データに対するコード(第2のコード)として生成される。
このデータをアドレス「101010101」に書き込むとき、図3Cの「A0」が1である場合にONとなるビットからなるコード「11000000」、同様に、「A2、A4、A6、A8」が1である場合にONとなるビットからなるコード「10010000」「10000100」「10000001」「01010000」の5者の排他的論理和を取った「00000101」がアドレスに対するコード(第1のコード)として生成される。
記憶制御回路は、アドレスに対する第1のコード「00000101」とデータに対する第2のコード「00011000」の排他的論理和を取り、最終的にチェックコードを生成する。この場合、チェックコードは「00011101」である。
また、図3において、データ部のビットパターンは、それぞれ異なる。例えば、データの先頭ビットD00に対するビットパターン「00001110」は、データにおける他のビットDxxに対するビットパターンとはいずれも異なる。同様に、アドレス部のビットパターンもそれぞれ異なる。
こうして、本実施形態の記憶制御回路は、アドレスに付与するコードの体系を、データに付与するコードの体系と変えることにより、アドレスに生じるエラーを検出することができる。本実施形態の記憶制御回路では、アドレスに付与するコードは2ビットで符号化されており、アドレスに生じるエラーが、シンドロームビットにおけるデータの2ビットエラーとして検出される。
なお、本実施形態では、記憶制御回路が、書き込みアドレス201に付与するコードを2ビットで符号化し、書き込みデータ202に付与するコードを3ビットで符号化するが、符号化に使用するビット数はこれに限定されない。一般的に、書き込みアドレス201に付与するコードを2ビット以上の偶数ビットで符号化し、書き込みデータ202に付与するコードを3ビット以上の奇数ビットで符号化すれば、本実施形態と同様の効果を得ることができる。
本実施形態では、シンドロームビットのビットパターンが図3Aまた図3Bのビットパターンと同じであれば、該当するデータビットの1ビットエラーであり、該当するデータビットを反転(訂正)すれば正しいデータを得られる。また、シンドロームビットが1ビットのみONであるビットパターンはチェックビットの1ビットエラーであり無視することができるし、シンドロームビットがすべて0であればエラーが無いことになる。そして、シンドロームビットが、これらのいずれでもない場合にデータの2ビットエラーまたはアドレスエラーとして認識する。
データの2ビットエラーを検出するために図3の例に示すように、データの各ビットには3ビット以上の奇数ビットのビットパターンを付与している。このことにより任意の2ビットのデータビットが反転するとシンドロームビットは奇数ビットパターンと奇数ビットパターンの排他的論理和で偶数ビットパターンとなるため、2ビットエラーと認識することができる。アドレスのエラーは、偶数ビットパターンが付与されているため、1ビットまたは複数ビットが反転すると、シンドロームビットは偶数ビットパターンと偶数ビットパターンの排他的論理和で偶数ビットパターンとなるため、2ビットエラーと認識することができる。
図3Cのアドレスに対するビットパターン例ではビットA0〜A6とビットA7〜A8の2グループに分けてビットパターンを付与している。この図3Cのビットパターン例ではアドレスグループ内のすべての故障組み合わせ(1〜7ビットの任意の組み合わせ)でも、シンドロームビットは2ビット以上の偶数ビットパターンとなるため、2ビットエラーと認識することができる。ただし、アドレスグループ間にまたがる3ビット以上の故障(例えばアドレスのA0,A1,A7ビットが同時に反転する故障)では、シンドロームビットがすべて0となって、エラーを検出できない場合がある。しかし、アドレスグループは同時に故障する可能性の低いビット同士をグループ化するため、シンドロームビットがすべて0となって、エラーを検出できない故障は、ほとんど発生しない。
図4は、読み出しアドレス203に対する1ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。読み出しアドレス203がリードデコーダ24に入力される途中に故障箇所300があり、アドレスに1ビット反転が発生する状態を示す。書き込みは正常に行われ、アドレス「101010101」に、データとチェックコードが格納されている。
そして、書き込まれたデータを読み出すために、読み出しアドレス203(「101010101」)が指定される。リードデコーダ24には、故障箇所300を経た読み出しアドレス203が1ビット反転(ここでは、読み出しアドレスの先頭ビットが反転する)し、故障アドレス303(「001010101」)として入力され、対応するアドレスに格納されたデータとチェックコードがリードレジスタ26を経て、チェックコード検査回路27に入力される。
一方、読み出しアドレス203は、正常にチェックコード検査回路27に入力される。チェックコード検査回路27は、読み出されたデータとチェックコードと読み出しアドレス203とに基づき、シンドロームビット401を生成する。
生成されるシンドロームビット401は、故障アドレス303(「001010101」)のチェックコード304(「11000101」)と読み出しアドレス203(「101010101」)のチェックコード305(「00000101」)の排他的論理和となる。シンドロームビット401は、ここでは、「11000000」であり、アドレスにおける1ビット反転が、データの2ビットエラーとして検出される。
図5は、読み出しアドレス203に対する2ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。図5は、図4と異なり、2ビットエラーが発生する点が異なるが、それ以外の点は同じである。
読み出しアドレス203がリードデコーダ24に入力される途中に故障箇所300があり、アドレスに2ビット反転が発生する状態を示す。書き込みは正常に行われ、アドレス「101010101」に、データとチェックコードが格納されている。
そして、書き込まれたデータを読み出すために、読み出しアドレス203(「101010101」)が指定される。リードデコーダ24には、故障箇所300を経た読み出しアドレス203が、2ビット反転(ここでは、読み出しアドレスの先頭ビットと2番目のビットが反転する)し、故障アドレス303(「011010101」)として入力され、対応するアドレスに格納されたデータとチェックコードがリードレジスタ26を経て、チェックコード検査回路27に入力される。
一方、読み出しアドレス203は、正常にチェックコード検査回路27に入力される。チェックコード検査回路27は、読み出されたデータとチェックコードと読み出しアドレス203(「101010101」)とに基づき、シンドロームビット401を生成する。 生成されるシンドロームビット401は、故障アドレス303(「011010101」)のチェックコード304(「01100101」)と読み出しアドレス203(「101010101」)のチェックコード305(「00000101」)の排他的論理和となる。シンドロームビット401は、ここでは、「01100000」であり、アドレスにおける2ビット反転が、データの2ビットエラーとして検出される。
図6は、読み出しアドレス203に対する3ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。図6は、図4と異なり、3ビットエラーが発生する点が異なるが、それ以外の点は同じである。
読み出しアドレス203がリードデコーダ24に入力される途中に故障箇所300があり、アドレスに3ビット反転が発生する状態を示す。書き込みは正常に行われ、アドレス「101010101」に、データとチェックコードが格納されている。
そして、書き込まれたデータを読み出すために、読み出しアドレス203(「101010101」)が指定される。リードデコーダ24には、故障箇所300を経た読み出しアドレス203が、3ビット反転(ここでは、読み出しアドレスの先頭ビットと2番目、3番目のビットが反転する)し、故障アドレス303(「010010101」)として入力され、対応するアドレスに格納されたデータとチェックコードがリードレジスタ26を経て、チェックコード検査回路27に入力される。
一方、読み出しアドレス203は、正常にチェックコード検査回路27に入力される。チェックコード検査回路27は、読み出されたデータとチェックコードと読み出しアドレス203(「101010101」)とに基づき、シンドロームビット401を生成する。 生成されるシンドロームビット401は、故障アドレス303(「010010101」)のチェックコード304(「11110101」)と読み出しアドレス203(「101010101」)のチェックコード305(「00000101」)の排他的論理和となる。シンドロームビット401は、ここでは、「11110000」であり、アドレスにおける3ビット反転が、データの2ビットエラーとして検出される。こうして、アドレスエラーが、シンドロームビット401における偶数ビットエラーとして検出される。
図3に示すチェックコードのビットパターンにおいて、チェックコードの各ビットを行毎に見るとき、各行に含まれるx印の数が多いと、それだけ、チェックコード生成回路21及びチェックコード検査回路27において、EORゲートが多段に接続されることになり、遅延時間が遅くなる。そこで、各行に含まれるx印の数が平均化されるようにして、多段に接続されるEORゲートを減らすようチェックコード生成回路21及びチェックコード検査回路27を設計することができる。
図7は、EORゲートの段数を減らすことを目的とするアドレスに関するビットパターンの例である。図3Cを、図7で置き換えれば、チェックコードの先頭ビットC0に必要なEORゲートの段数が、図3Cと比べて少なくて済むことがわかる。
また、本実施形態においては、チェックコードとして8ビット(C0〜C7)を用いたが、このチェックコードに必要なビット数xは、次のような条件を満たしていればよい。それは、n個の物から順列を考慮せず、r個取り出したときの組合せをnCrで表すとき、データに関してはxCd>(データのビット数)が成立することである。ここで、dは、データを符号化するための3以上の奇数すべてで、(8C3=56)+(8C5=56)+(8C7=8)=120となり、データのビット数が32より大きいための条件を満たしていることが分かる。
アドレスに関しては2つの条件が必要であり、一つ目の条件は、xCa>(アドレスのビット数)が成立することである。ここで、aは、アドレスを符号化するための2以上の偶数のすべてで、(8C2=28)+(8C4=70)+(8C6=28)+(8C8=1)=127となりアドレスのビット数9より大きいため条件を満たしていることが分かる。アドレスの二つ目の条件はアドレスグループ内のビット数よりチェックコードのビット数が大きければよい。ここでは、アドレスグループはビットA0〜A6と、ビットA7、A8の2つのグループに分かれており、それぞれ7ビットと2ビットずつであり、チェックコードの8ビットの方が大きいため条件を満たしていることが分かる。
続いて、アドレスのグループ化の例を説明する。
図8Aは、本実施形態におけるメモリの物理的構成を示す図である。4つのcolumn (column 0〜3)に分割され、データとチェックコードを合わせた40ビットが書き込まれる様子が描かれる。
図8Bは、columnを抜き出して説明する図である。各columnは、40ビットのデータ1組を128組(row 0〜127)格納する記憶素子を含む。
図8Cは、アドレスにおけるグループ化を説明する図である。図8に示すメモリの場合、9ビットのアドレスのうち、先頭からの7ビットがrowを指定するのに用いられ、残り2ビットがcolumnを指定するのに用いられる。アドレスのグループは、このアドレスのグループは、このrowを指定する7ビットとcolumnを指定する2ビットに分けられる。
以上の説明は、記憶制御回路が、データの読み出し時におけるアドレスのエラーを検出する例として説明してきた。以上の説明からあきらかなように、メモリに書き込まれたチェックコードには、書き込みアドレス情報がコード化されて含まれており、読み出しアドレスと不一致であればアドレスエラーとしていることが分かる。これは、読み出しアドレスのエラー以外に、書き込みアドレスのエラーも検出が可能であることを容易に推測できる。書き込みアドレスが故障して、メモリの間違ったアドレス位置にデータとチェックコードを書き込んだとする。ただし、チェックコードは、正しい書き込みアドレスから生成されたとする。この間違ったアドレス位置に書き込まれたデータとチェックコードを読み出して、チェックコードを検査すると、読み出しアドレスと読み出されたチェックコードに含まれた書き込みアドレス情報が不一致であるので、アドレスエラーを検出できる。
ただし、書き込みアドレスがエラーすると、本来書き込まれるべきアドレス位置には、古いデータとチェックコードが残っていることになる。この古いデータとチェックコードを読み出しても、読み出しアドレスと読み出したチェックコードの書き込みアドレス情報が一致するためにアドレスエラーを検出できない。この、古いデータとチェックコードを読み出したときにエラーを検出するために、メモリへのデータの書き込みのために指定されるアドレスが一巡する度に、値が反転するロールビットを追加する。
図9Aは、ロールビットを説明する図である。9ビットのアドレスの先頭のアドレスは、「000000000」であり、末尾のアドレスは、「111111111」である。ロールビットは、アドレスが「000000000」から「111111111」まで一巡し、ふたたび「000000000」になる度に反転する。
図9Bは、一巡目の書き込みを説明する図である。一巡目の書き込みでは、ロールビットは0として、チェックビットが生成され、データと共に書き込まれる。
図9Cは、二巡目の書き込みを説明する図である。そして、書き込みアドレス201が先頭アドレスを通過する二順目の書き込みでは、ロールビットが1として、チェックビットが生成され、データと共に書き込まれる。図9Cにおいて、アドレス「000000110」に二巡目のデータを書き込もうとして3ビット反転が発生し、アドレス「000010101」に書き込みが行われたとする。
アドレス「000000110」に対応するメモリ25には、ロールビットが0の時に生成されたチェックコードが残されている。アドレス「000010101」に対応するメモリ25には、ロールビットが1として生成されたチェックコードが、(周囲はロールビットが0の領域であるにも関わらず)格納される。
次にロールビットに1が指定された状態で、データの読み出しが行われるとする。すると、アドレス「000000110」のデータを読み出して、エラーチェックを行うと、ロールビットが0の時に生成されたチェックコードが残されており、エラーが検出される。
図10は、ロールビットが付与される場合のアドレスに関するビットパターンの例である。図3Cと比較して、追加されたロールビット(AX)が1である場合、すべてのビットがONになるような例である。この場合でもロールビットは偶数ビットで符号化されていることになる。
図11は、本実施形態の記憶制御回路の変形例を示す図である。変形例は、図2に示すライトデコーダ23とリードデコーダ24に分かれた2ポート構成ではなく、ライトデコーダ23とリードデコーダ24の機能を合わせたデコーダ(DEC)30を有する1ポート構成である点が異なる。デコーダ30には、書き込みアドレスと読み出しアドレスが共にアドレス200として入力され、それぞれの処理が行われる。
この場合でも、図2に示す構成における本実施形態の記憶制御回路と同じ効果を得ることができる。
こうして、本実施形態の記憶制御回路は、アドレスに付与するコードの体系と、データに付与するコードの体系を変えることにより、アドレスに生じる多ビットエラーであっても検出することができる。本実施形態の記憶制御回路では、アドレスに付与するコードは2ビットで符号化されており、アドレスに生じるエラーが、シンドロームビットにおけるデータの2ビットエラーとして検出される。
また、本実施形態の記憶制御回路は、ロールビットという、仮想のビットをアドレスに付加し、同様に符号化することにより、データの書き込みが行われなかったアドレスのエラーを検出することもできる。
従来技術におけるエラー検出方法を説明する図である。 本発明の実施形態における記憶制御回路の構成例を示す図である。 チェックコード生成回路及びチェックコード検査回路により生成されるビットパターンの例を示す図であり、Aは、32ビットのデータの前半16ビットに関するビットパターンを示し、Bは、32ビットのデータの後半16ビットに関するビットパターンを示し、Cは、9ビットのアドレスに関するビットパターンを示す。 読み出しアドレスに対する1ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。 読み出しアドレスに対する2ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。 読み出しアドレスに対する3ビットエラーが発生する場合におけるエラー検出の様子を説明する図である。 EORゲートの段数を減らすことを目的とするアドレスに関するビットパターンの例である。 Aは、本実施形態におけるメモリの物理的構成を示す図であり、Bは、columnを抜き出して説明する図であり、Cは、アドレスにおけるグループ化を説明する図である。 Aは、ロールビットを説明する図であり、Bは、一巡目の書き込みを説明する図であり、Cは、二巡目の書き込みを説明する図である。 ロールビットが付与される場合のアドレスに関するビットパターンの例である。 本実施形態の記憶制御回路の変形例を示す図である。
符号の説明
21 チェックコード生成回路、22 ライトレジスタ、23 ライトデコーダ、24 リードデコーダ、25 メモリ、26 リードレジスタ、27 チェックコード検査回路、30 デコーダ、200 アドレス、201 書き込みアドレス、202 書き込みデータ、203 読み出しアドレス、204 チェックコード、300 故障箇所、303 故障アドレス、304 故障アドレスから生成したチェックコード、305 読み出しアドレスから生成したチェックコード、401 シンドロームビット

Claims (6)

  1. アドレスで指定される記憶領域にデータを格納する記憶部と、
    前記記憶部へ書き込まれるデータと書き込み用に指定される前記アドレスから、該記憶部へ書き込まれるデータに対応付けて前記記憶部に格納するチェックコードを生成するチェックコード生成部と、
    前記記憶部から読み出されるデータと、該読み出されるデータに対応付けられたチェックコードと、読み出し用に指定される前記アドレスから、エラーチェックを行うチェックコード検査部とを備え、
    前記チェックコード生成部は、前記書き込み用に指定されるアドレスに付与する第1のコードを偶数ビットで符号化し、前記記憶部へ書き込まれるデータに付与する第2のコードを奇数ビットで符号化し、前記第1のコードと前記第2のコードとに基づき、前記書き込まれるデータに対応した第1のチェックコードを生成し、
    前記チェックコード検査部は、前記読み出し用に指定されるアドレスに付与する第3のコードを偶数ビットで符号化し、前記記憶部から読み出されるデータに付与する第4のコードを奇数ビットで符号化し、前記第3のコードと前記第4のコードとに基づき前記読み出されるデータに対応した第2のチェックコードを生成し、前記記憶部から読み出された前記第1のチェックコードと生成された前記第2のチェックコードとに基づいて前記エラーチェックを行うことを特徴とする記憶制御回路。
  2. 請求項1において、
    前記アドレスは、1または複数のビットずつ区切られて複数のグループに分割され、
    前記複数のグループ毎に各グループ内のすべての1ビットまたは複数ビットの故障が識別可能なビットパターンを用いて、前記第1のコードを偶数ビットで符号化することを特徴とする記憶制御回路。
  3. 請求項1又は2において、
    前記アドレスに、更に、前記記憶部への前記データの書き込み及び読み出しのために指定されるアドレスが一巡する度に、値が反転するロールビットが付与され、
    前記ロールビットを含んだ前記アドレスに付与する前記第1のコードを偶数ビットで符号化することを特徴とする記憶制御回路。
  4. アドレスで指定される記憶領域にデータを格納する記憶部を有する記憶制御回路におけるアドレスエラーチェック方法であって、
    書き込み用に指定される前記アドレスに付与する第1のコードを偶数ビットで符号化し、
    前記記憶部へ書き込まれるデータに付与する第2のコードを奇数ビットで符号化し、
    前記第1のコードと前記第2のコードとに基づき、第1のチェックコードを生成して前記記憶部へ書き込まれるデータに対応付けて前記記憶部に格納し、
    読み出し用に指定される前記アドレスに付与する第3のコードを偶数ビットで符号化し、前記記憶部から読み出されるデータに付与する第4のコードを奇数ビットで符号化し、前記第3のコードと前記第4のコードとに基づき前記読み出されるデータに対応した第2のチェックコードを生成し、前記記憶部から読み出した前記第1のチェックコードと生成した前記第2のチェックコードとに基づいて、エラーチェックを行うことを特徴とするアドレスエラーチェック方法。
  5. 請求項4において、
    前記アドレスは、1または複数のビットずつ区切られて複数のグループに分割され、
    前記複数のグループ毎に各グループ内のすべての1ビット又は複数ビットの故障が識別可能なビットパターンを用いて、前記第1のコードを偶数ビットで符号化することを特徴とするアドレスエラーチェック方法。
  6. 請求項4又は5において、
    前記アドレスに、更に、前記記憶部への前記データの書き込みおよび読み出しのために指定されるアドレスが一巡する度に、値が反転するロールビットが付与され、
    前記ロールビットを含んだ前記アドレスに付与する前記第1のコードを偶数ビットで符号化することを特徴とするアドレスエラーチェック方法。
JP2005100541A 2005-03-31 2005-03-31 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法 Expired - Fee Related JP4799027B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005100541A JP4799027B2 (ja) 2005-03-31 2005-03-31 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法
EP05253806A EP1715424A3 (en) 2005-03-31 2005-06-20 Storage control circuit and method to detect addressing errors in the storage control circuit
KR1020050059174A KR100720911B1 (ko) 2005-03-31 2005-07-01 기억 제어 회로, 기억 제어 회로에서의 어드레스 에러 체크방법
CN2005100822859A CN1841334B (zh) 2005-03-31 2005-07-06 存储控制电路及存储控制电路中的地址错误检验方法
US11/236,610 US7555699B2 (en) 2005-03-31 2005-09-28 Storage control circuit, and method for address error check in the storage control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005100541A JP4799027B2 (ja) 2005-03-31 2005-03-31 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法

Publications (2)

Publication Number Publication Date
JP2006285318A JP2006285318A (ja) 2006-10-19
JP4799027B2 true JP4799027B2 (ja) 2011-10-19

Family

ID=36954951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005100541A Expired - Fee Related JP4799027B2 (ja) 2005-03-31 2005-03-31 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法

Country Status (5)

Country Link
US (1) US7555699B2 (ja)
EP (1) EP1715424A3 (ja)
JP (1) JP4799027B2 (ja)
KR (1) KR100720911B1 (ja)
CN (1) CN1841334B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028180A1 (en) * 2006-07-31 2008-01-31 Newman Alex P Inappropriate access detector based on system segmentation faults
GB2455212B (en) * 2008-01-30 2012-03-21 Ibm Method for identifying address faults of CPU status register files during read and write accesses
US8990660B2 (en) 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
US8566672B2 (en) * 2011-03-22 2013-10-22 Freescale Semiconductor, Inc. Selective checkbit modification for error correction
US8607121B2 (en) 2011-04-29 2013-12-10 Freescale Semiconductor, Inc. Selective error detection and error correction for a memory interface
US8990657B2 (en) 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US8949694B2 (en) 2011-09-23 2015-02-03 International Business Machines Corporation Address error detection
US9048876B2 (en) * 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
FR2992091B1 (fr) * 2012-06-14 2015-07-03 Commissariat Energie Atomique Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe
US9690517B2 (en) * 2015-05-22 2017-06-27 Texas Instruments Incorporated Dual-mode error-correction code/write-once memory codec
US20170177259A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Techniques to Use Open Bit Line Information for a Memory System
US10489241B2 (en) * 2015-12-30 2019-11-26 Arteris, Inc. Control and address redundancy in storage buffer
US10740174B2 (en) * 2016-11-29 2020-08-11 Taiwan Semiconductor Manufacturing Company, Ltd. Memory address protection circuit and method
US10353769B2 (en) * 2017-07-25 2019-07-16 Apple Inc. Recovering from addressing fault in a non-volatile memory
US11443820B2 (en) * 2018-01-23 2022-09-13 Microchip Technology Incorporated Memory device, memory address decoder, system, and related method for memory attack detection
CN109669802A (zh) * 2018-11-13 2019-04-23 北京时代民芯科技有限公司 一种用于edac验证的可配置存储器验证系统
JP7184632B2 (ja) * 2018-12-25 2022-12-06 ルネサスエレクトロニクス株式会社 半導体装置
US11537319B2 (en) * 2019-12-11 2022-12-27 Advanced Micro Devices, Inc. Content addressable memory with sub-field minimum and maximum clamping

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS522244A (en) 1975-06-24 1977-01-08 Toshiba Corp Measuring system
JPS5362936A (en) 1976-11-17 1978-06-05 Toshiba Corp Memory control device
JPS605022B2 (ja) * 1977-08-29 1985-02-07 株式会社日立製作所 記憶装置のエラー検出装置
JPS54142942A (en) * 1978-04-28 1979-11-07 Hitachi Ltd Address checking system
JPS558617A (en) 1978-06-29 1980-01-22 Fujitsu Ltd Storage system
DE3319710A1 (de) * 1983-05-31 1984-12-06 Siemens AG, 1000 Berlin und 8000 München Speichersteueranordnung, insbesondere fuer ein fehlertolerantes fernsprech-vermittlungssystem
JP2930239B2 (ja) 1989-02-06 1999-08-03 株式会社日立製作所 記憶装置の障害検出方法及び記憶制御装置
EP0449052A3 (en) * 1990-03-29 1993-02-24 National Semiconductor Corporation Parity test method and apparatus for a memory chip
JPH0546419A (ja) * 1991-08-15 1993-02-26 Fujitsu Ltd Fifoメモリのエラー検出処理方式
JPH0793225A (ja) * 1993-09-27 1995-04-07 Toshiba Corp メモリチェック方式
JP3307529B2 (ja) 1994-12-27 2002-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法及びデータ記憶装置
JPH08314812A (ja) * 1995-05-16 1996-11-29 Kawasaki Steel Corp パリティ検査回路
US5949358A (en) * 1995-06-07 1999-09-07 Seagate Technology, Inc. Rate n(n+1) code for embedded servo address encoding
WO1998009219A1 (de) * 1996-08-30 1998-03-05 Siemens Aktiengesellschaft Fehlererkennung in einem speichersystem
EP0936743A1 (fr) * 1998-02-17 1999-08-18 Koninklijke Philips Electronics N.V. Décodage itératif pour codes binaires en bloc
US6282686B1 (en) 1998-09-24 2001-08-28 Sun Microsystems, Inc. Technique for sharing parity over multiple single-error correcting code words
US6691278B1 (en) * 1999-10-13 2004-02-10 Maxtor Corporation Detecting errors in coded bit strings
US6457154B1 (en) * 1999-11-30 2002-09-24 International Business Machines Corporation Detecting address faults in an ECC-protected memory
US6581185B1 (en) * 2000-01-24 2003-06-17 Storage Technology Corporation Apparatus and method for reconstructing data using cross-parity stripes on storage media
WO2002078196A1 (en) 2001-03-22 2002-10-03 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
WO2002099976A2 (en) * 2001-06-06 2002-12-12 Seagate Technology Llc A method and coding apparatus using low density parity check codes for data storage or data transmission

Also Published As

Publication number Publication date
KR20060106558A (ko) 2006-10-12
US7555699B2 (en) 2009-06-30
EP1715424A3 (en) 2008-03-19
CN1841334A (zh) 2006-10-04
US20060236205A1 (en) 2006-10-19
JP2006285318A (ja) 2006-10-19
CN1841334B (zh) 2010-08-18
EP1715424A2 (en) 2006-10-25
KR100720911B1 (ko) 2007-05-25

Similar Documents

Publication Publication Date Title
JP4799027B2 (ja) 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法
JP4192154B2 (ja) エラー訂正のためのデータの分割
US6009548A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
JP3871471B2 (ja) Ecc回路搭載半導体記憶装置及びその検査方法
US8572444B2 (en) Memory apparatus and testing method thereof
US4716566A (en) Error correcting system
JP2017215958A (ja) 複数のデータビット及び複数のアドレスビットを有するブロックのエラーコード生成装置及び方法
JPS63115239A (ja) エラ−検査訂正回路
JPS60142430A (ja) 誤り訂正・検出装置
JPH03248251A (ja) 情報処理装置
JP2000004170A (ja) 訂正検査方法及び訂正検査装置
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
KR100566162B1 (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
US20230368860A1 (en) Memory and operation method of memory
US6519735B1 (en) Method and apparatus for detecting errors in data output from memory and a device failure in the memory
US20070256002A1 (en) Error correction and error detection method for reading of stored information data and a storage control unit for the same
JP2503249B2 (ja) 記憶装置におけるeccエラ―処理方式
CN113380303A (zh) 内存存储装置及数据访问方法
JP2005011386A (ja) 誤り訂正装置
TWI708256B (zh) 記憶體裝置、記憶體控制器及其資料存取方法
JP3913221B2 (ja) 情報処理装置
JPH06301604A (ja) 記憶再生システム
US8266494B2 (en) Bus with error correction circuitry
KR20240052583A (ko) 에러 처리 회로, 메모리 및 메모리의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110216

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110802

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees