JPWO2007096997A1 - メモリ制御装置およびメモリ制御方法 - Google Patents

メモリ制御装置およびメモリ制御方法 Download PDF

Info

Publication number
JPWO2007096997A1
JPWO2007096997A1 JP2008501550A JP2008501550A JPWO2007096997A1 JP WO2007096997 A1 JPWO2007096997 A1 JP WO2007096997A1 JP 2008501550 A JP2008501550 A JP 2008501550A JP 2008501550 A JP2008501550 A JP 2008501550A JP WO2007096997 A1 JPWO2007096997 A1 JP WO2007096997A1
Authority
JP
Japan
Prior art keywords
error
data
unit
pseudo
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008501550A
Other languages
English (en)
Other versions
JP4834721B2 (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
Publication of JPWO2007096997A1 publication Critical patent/JPWO2007096997A1/ja
Application granted granted Critical
Publication of JP4834721B2 publication Critical patent/JP4834721B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証すること。読出指示部(102)は、データの読み出し命令が出された旨をカウンタ部(103)へ通知するとともに、読み出すデータのアドレスを読出部(104)へ指示する。カウンタ部(103)は、読み出し命令の回数をカウントし、カウンタ値が所定のしきい値に達すると擬似エラー注入部(105)へ擬似エラー注入を指示する。読出部(104)は、データをキャッシュ(200)から読み出す。擬似エラー注入部(105)は、擬似エラー注入が指示されると、読出部(104)から出力されるデータに擬似エラーを注入する。誤り位置特定部(106)は、データ中の誤り位置を特定する。判定部(108)は、擬似エラーの注入位置と誤り位置とが一致するか否かを判定し、両者が一致すれば、誤り位置特定部(106)による誤り位置の特定が正確であると判断する。

Description

本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置およびメモリ制御方法に関し、特に、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法に関する。
近年、半導体技術の微細化および高速化に伴って、CPU(Central Processing Unit:中央処理演算装置)などのプロセッサに搭載されるRAM(Random Access Memory)の記憶素子も微細化したため、RAMに記憶される情報においてビット反転などの故障が発生することがある。このため、故障に自動的に対処する方法として、RAS(Reliability, Availability, Serviceability:信頼性、可用性、保守性)制御に関する検討が盛んに行われている。
RAS制御においては、例えばECC(Error Correcting Code:誤り訂正符号)を用いた誤り訂正技術などが重要な役割を担っている。一般的な誤り訂正技術においては、誤り訂正回路によってデータに付加されているECCが用いられ、データに発生したビット反転などの誤りが訂正される。このような誤り訂正においては、誤り訂正回路が正しく動作することが前提となっているため、誤り訂正回路の信頼性を担保する必要がある。
そこで、RAMにデータが書き込まれる際に、データに故意にエラーを発生させておき、このデータに対する誤り訂正を実行することにより、誤り訂正回路が正しく動作しているか否かが検証されることがある。また、例えば特許文献1では、RAMの特定のアドレスに正常なデータを書き込む一方で、正常なデータが書き込まれるアドレスを反転させたアドレスにエラーがあるエラーデータを書き込み、反転アドレスに書き込まれたエラーデータを用いて誤り訂正回路の試験を行うことが開示されている。
特開平7−84889号公報
しかしながら、上記の技術では、RAMにデータが書き込まれる際にのみ故意にエラーを発生させるため、RAMがCPUのキャッシュメモリとして使用される場合には、例えばエラーを発生させたデータが読み出される前に書き換えられたりして、必ずしも誤り訂正回路の信頼性が保証されないという問題がある。すなわち、上述した誤り訂正回路の試験においては、RAMに書き込むデータにエラーを発生させ、このエラーデータに対する読み出し要求が発行されて誤り訂正を実行したときに、エラーが正しく検出または訂正されることが確認されるため、読み出し要求が発行される前にエラーデータが書き換えられてしまえば、読み出し時に読み出されるのはエラーデータではなくなってしまう。
したがって、例えばキャッシュメモリにエラーデータが書き込まれてから読み出されるまでの間隔が比較的長い場合は、誤り訂正回路が正しく動作しているか否かを定期的に検証することができるとは限らず、結果としてRAS制御の正当な機能が保証されない。
本発明はかかる点に鑑みてなされたものであり、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法を提供することを目的とする。
上記課題を解決するために、本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であって、前記メモリからデータを読み出す読出手段と、前記読出手段によって読み出されたデータに擬似エラーを注入する注入手段と、前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定手段と、前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬似エラーの位置とが一致するか否かを判定する判定手段と、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力手段とを有することを特徴とする。
また、本発明は、上記発明において、前記注入手段は、前記読出手段によってデータが読み出される回数をカウントするカウント手段を含み、前記カウント手段によってカウントされた回数が所定回数に達するごとにデータに擬似エラーを注入することを特徴とする。
また、本発明は、上記発明において、前記注入手段は、前記読出手段によって読み出されたデータの所定のビットを反転させることにより擬似エラーを注入することを特徴とする。
また、本発明は、上記発明において、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、前記特定手段を含む誤り訂正回路が故障している旨を外部に通知する通知手段をさらに有することを特徴とする。
また、本発明は、上記発明において、前記特定手段は、データに付加されている誤り訂正符号を用いて誤り位置を特定することを特徴とする。
また、本発明は、上記発明において、前記出力手段は、誤り位置のビットを反転させてエラーを訂正する誤り訂正手段を含むことを特徴とする。
また、本発明は、上記発明において、前記読出手段は、前記メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データを前記メモリから読み出すことを特徴とする。
また、本発明は、上記発明において、前記注入手段は、ストア処理の開始後2回目に前記読出手段によって読み出されたストア対象外データに擬似エラーを注入することを特徴とする。
また、本発明は、上記発明において、前記出力手段によって出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成する生成手段と、前記生成手段によって生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成する合成手段と、前記合成手段によって合成されて得られた誤り訂正符号を前記メモリに書き込む書込手段とをさらに有することを特徴とする。
また、本発明は、上記発明において、前記注入手段は、前記メモリが複数のウェイに分割されている場合、いずれか1つのウェイに対応するデータに擬似エラーを注入することを特徴とする。
また、本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御方法であって、前記メモリからデータを読み出す読出工程と、前記読出工程にて読み出されたデータに擬似エラーを注入する注入工程と、前記注入工程にて擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定工程と、前記特定工程にて特定された誤り位置と前記注入工程にて注入された擬似エラーの位置とが一致するか否かを判定する判定工程と、前記判定工程における判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力工程とを有することを特徴とする。
本発明によれば、メモリからデータを読み出し、読み出されたデータに擬似エラーを注入し、擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定し、特定された誤り位置と注入された擬似エラーの位置とが一致するか否かを判定し、判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する。このため、データの読み出し時に擬似エラーを含むエラーの訂正が正常に行われることが確認された場合のみデータを出力し、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる。
また、本発明によれば、データが読み出される回数をカウントし、カウントされた回数が所定回数に達するごとにデータに擬似エラーを注入するため、メモリへのデータの書き込みが行われずデータの読み出しが連続して実行される場合でも、定期的に誤り訂正回路の正当性を検証することができる。
また、本発明によれば、読み出されたデータの所定のビットを反転させることにより擬似エラーを注入するため、読み出された元のデータとは必ず異なるビットが発生し、確実に擬似エラーを注入することができる。
また、本発明によれば、判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、誤り訂正回路が故障している旨を外部に通知するため、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
また、本発明によれば、データに付加されている誤り訂正符号を用いて誤り位置を特定するため、データ中のエラーが発生しているビットを特定し、確実に誤り位置を特定することができる。
また、本発明によれば、誤り位置のビットを反転させてエラーを訂正するため、誤っているビットが正しいビットに変更され、エラーがないデータを得ることができる。
また、本発明によれば、メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データをメモリから読み出すため、ストア対象外データの誤り訂正が正しく行われることを担保することができる。
また、本発明によれば、ストア処理の開始後2回目に読み出されたストア対象外データに擬似エラーを注入するため、ストア処理に伴う誤り訂正符号の更新に用いられるストア対象外データの誤り訂正が正しく行われることを担保することができ、正確な誤り訂正符号の更新を行うことができる。
また、本発明によれば、出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成し、生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成し、合成されて得られた誤り訂正符号をメモリに書き込む。このため、ストア処理によってデータの一部が書き換えられても、正常に動作する誤り訂正回路によって誤り訂正されたデータを元に誤り訂正符号が更新され、正確な誤り訂正符号の更新を行うことができる。
また、本発明によれば、メモリが複数のウェイに分割されている場合、いずれか1つのウェイに対応するデータに擬似エラーを注入するため、メモリが例えばセットアソシアティブ方式のキャッシュメモリである場合にも、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる。
図1は、本発明の一実施の形態に係るCPUの概略構成を示すブロック図である。 図2は、一実施の形態に係るキャッシュ制御部の要部構成を示すブロック図である。 図3は、一実施の形態に係るキャッシュ制御部の読み出し処理時の動作を示すフロー図である。 図4は、一実施の形態に係るキャッシュ制御部のストア処理時の動作を示すフロー図である。
符号の説明
100 キャッシュ制御部
101 接続部
102 読出指示部
103 カウンタ部
104 読出部
105 擬似エラー注入部
106 誤り位置特定部
107 誤り訂正部
108 判定部
109 ECC生成部
110 ECC合成部
111 ストアデータ取得部
112 書込部
200 キャッシュ
300 命令処理部
400 演算処理部
500 メインメモリ
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、CPUにキャッシュメモリが1つのみ備えられている場合を例に挙げて説明するが、本発明はこれに限定されず、2次以上のキャッシュメモリがある場合にも、それぞれのキャッシュメモリに対応する誤り訂正回路の検証に適用することができる。
図1は、本発明の一実施の形態に係るCPUの概略構成を示すブロック図である。図1に示すCPUは、キャッシュ制御部100、キャッシュ200、命令処理部300、および演算処理部400を有している。また、このCPUは、メインメモリ500に接続されている。
キャッシュ制御部100は、命令処理部300から発行される命令に応じて、キャッシュ200に対するデータの書き込みおよび読み出しを制御する。また、キャッシュ制御部100は、キャッシュ200から読み出されたデータの誤り訂正を行うとともに、データの誤り訂正を行う誤り訂正回路が正しく機能しているか否かを判定する。キャッシュ制御部100の具体的な構成については、後に詳述する。
キャッシュ200は、メインメモリ500上の頻繁に使用されるデータを記憶するとともに、記憶されたデータに付加されるECC(Error Correcting Code)を記憶する。具体的には、キャッシュ200は、データを記憶するデータRAMおよびECCを記憶するECCRAMを有しており、それぞれのRAMにデータおよびECCを記憶する。なお、キャッシュ200は、データのタグ情報を記憶するタグRAMなどをさらに有していても良い。
命令処理部300は、プログラムなどの命令を解釈し、必要な演算処理の実行を演算処理部400に指示するとともに、必要なデータの読み出しおよび書き込みをキャッシュ制御部100へ指示する。演算処理部400は、命令処理部300からの指示に応じて、キャッシュ200などから読み出されたデータを用いた演算処理を行う。
メインメモリ500は、主記憶装置であって、CPUにおける処理に必要なデータやプログラムを記憶している。メインメモリ500は、キャッシュ200と比較すると大容量であるが、アクセス速度が遅い。
図2は、本実施の形態に係るキャッシュ制御部100の要部構成を示すブロック図である。同図に示すキャッシュ制御部100は、接続部101、読出指示部102、カウンタ部103、読出部104、擬似エラー注入部105、誤り位置特定部106、誤り訂正部107、判定部108、ECC生成部109、ECC合成部110、ストアデータ取得部111、および書込部112を有している。
接続部101は、命令処理部300と接続され、命令処理部300からのデータの読み出し命令などの命令および書き換えられたストアデータを読出指示部102へ通知する一方、キャッシュ200から読み出されたデータおよび誤り訂正回路が正しく機能しているか否かの判定結果を命令処理部300へ出力する。
読出指示部102は、命令処理部300からデータの読み出し命令またはストア命令が出された場合、その旨をカウンタ部103へ通知するとともに、読み出すデータのアドレスを読出部104へ指示する。
カウンタ部103は、読出指示部102から読み出し命令の通知を受けた回数をカウントし、カウンタ値が所定のしきい値に達すると擬似エラー注入部105へ擬似エラー注入を指示するとともにカウンタ値をリセットする。また、カウンタ部103は、読出指示部102からストア命令の通知を受けると、2回目のデータ読み出し時に擬似エラー注入をするよう擬似エラー注入部105へ指示する。ストア処理時には、ストアデータがストアされる前に、書き換えられることがないストア対象外データが一旦キャッシュ200から読み出されて(1回目のデータ読み出し)エラー検出が行われ、エラーがなければストアデータがストアされ、次いでストア対象外データがキャッシュ200から再び読み出されて(2回目のデータ読み出し)、ストアデータとともにECCの生成が行われる。このため、カウンタ部103は、2回目のデータ読み出し時に擬似エラー注入を指示する。
読出部104は、読出指示部102から指示されるアドレスのデータをキャッシュ200から読み出し、擬似エラー注入部105へ出力する。具体的には、読出部104は、命令処理部300から出される読み出し命令に含まれるアドレスのデータ、または、ストア命令に含まれるアドレスのストア対象外データを読み出す。
擬似エラー注入部105は、カウンタ部103から擬似エラー注入が指示されると、読出部104から出力されるデータに擬似エラーを注入する。具体的には、擬似エラー注入部105は、読出部104から出力されるデータの所定のビットを反転させることにより、擬似エラーを注入する。上述したように、カウンタ部103からの擬似エラー注入の指示は、所定数の読み出し命令が出された場合やストア命令が出された場合に行われるため、擬似エラー注入部105は、少なくとも所定数の読み出し命令が出されるごとに1回擬似エラーを注入することになる。また、擬似エラー注入部105は、擬似エラーを注入した位置を判定部108へ報告する。
誤り位置特定部106は、データに付加されているECCを用いて、データ中のエラーが発生しているビットの位置を特定し、特定された誤り位置を誤り訂正部107および判定部108へ通知する。
誤り訂正部107は、誤り訂正を続行する旨が判定部108から指示された場合、誤り位置特定部106から通知された誤り位置のビットを反転させて、データ中の誤りを訂正する。そして、誤り訂正部107は、誤り訂正後のデータを接続部101またはECC生成部109へ出力する。すなわち、誤り訂正部107は、命令処理部300から読み出し命令が出された場合は、誤り訂正後のデータを接続部101へ出力し、ストア命令が出された場合は、誤り訂正後のストア対象外データをECC生成部109へ出力する。なお、誤り位置特定部106および誤り訂正部107は、本実施の形態における誤り訂正回路を形成している。
判定部108は、擬似エラー注入部105から報告された擬似エラーの注入位置と誤り位置特定部106から通知された誤り位置とが一致するか否かを判定し、両者が一致すれば、誤り位置特定部106による誤り位置の特定が正確であると判断し、誤り訂正続行を誤り訂正部107へ指示する。また、判定部108は、擬似エラー注入位置と誤り位置とが一致しない場合、誤り位置特定部106に故障が発生していると判定し、誤り訂正回路が故障している旨の判定結果を接続部101へ出力する。
ECC生成部109は、誤り訂正部107から出力されるストア対象外データおよびストアデータ取得部111から出力されるストアデータそれぞれについてECCを生成し、それぞれのECCをECC合成部110へ出力する。
ECC合成部110は、ECC生成部109から出力されるストア対象外データのECCとストアデータのECCとを合成(マージ)することにより、データの一部が書き換えられるストア処理が行われた場合の新たなECCを生成し、書込部112へ出力する。
ストアデータ取得部111は、命令処理部300からストア命令が出された場合に、書き換えられたストアデータを接続部101から取得し、ECC生成部109および書込部112へ出力する。
書込部112は、ストアデータ取得部111から出力されるストアデータをキャッシュ200へ書き込む。また、書込部112は、ECC合成部110から出力される新たなECCをキャッシュ200へ書き込む。
次いで、上記のように構成されたキャッシュ制御部100の読み出し処理時の動作について、図3に示すフロー図を参照しながら説明する。
まず、初期状態では、カウンタ部103のカウンタ値が0にリセットされている(ステップS101)。このとき、命令処理部300からキャッシュ制御部100へデータの読み出し命令が出されると(ステップS102)、読み出し命令は、接続部101を介して読出指示部102へ入力される。そして、読出指示部102によって、読み出すデータのアドレスが読出部104へ指示されるとともに、読み出し処理が実行される旨がカウンタ部103へ通知される。
そして、読出部104によって、指示されたアドレスのデータがキャッシュ200から読み出されるとともに(ステップS103)、読み出し処理実行の旨が通知されると、カウンタ部103によってカウンタ値が1インクリメントされる(ステップS104)。カウンタ値が1インクリメントされると、カウンタ部103によって、カウンタ値が所定のしきい値に達したか否かが判定される(ステップS105)。
この判定の結果、カウンタ値が所定のしきい値に達していない場合(ステップS105No)、読出部104によってキャッシュ200から読み出されたデータは、擬似エラー注入部105を経由して誤り訂正回路へ出力され、誤り位置特定部106によってエラーの位置が検出され、誤り訂正部107によってエラーが検出された位置のビットが反転されることにより誤り訂正が行われ(ステップS109)、誤り訂正後のデータが接続部101を介して命令処理部300へ出力される。すなわち、カウンタ部103のカウンタ値が所定のしきい値に達していない場合は、誤り訂正回路が正常に機能しているという前提の下でデータの誤り訂正が行われ、読み出し処理が実行される。そして、この読み出し処理の実行後、命令処理部300による次の読み出し命令が待機される。
ここでは、再び命令処理部300からキャッシュ制御部100へデータの読み出し命令が出された(ステップS102)ものとして説明を続ける。この場合も、読み出し命令は、接続部101を介して読出指示部102へ入力され、読出指示部102からの指示により、読出部104によってデータがキャッシュ200から読み出されるとともに(ステップS103)、カウンタ部103によってカウンタ値が1インクリメントされる(ステップS104)。そして、カウンタ部103によって、カウンタ値が所定のしきい値に達したか否かが判定される(ステップS105)。
この判定の結果、カウンタ値が所定のしきい値に達した場合(ステップS105Yes)、カウンタ部103から擬似エラー注入部105に対して、データに擬似エラーを注入する旨の指示が出され、読出部104によってキャッシュ200から読み出されたデータが擬似エラー注入部105へ出力されると、擬似エラー注入部105によって、データに擬似エラーが注入される(ステップS106)。この擬似エラーは、擬似エラー注入部105によって、データの所定のビットが反転されることによって注入される。擬似エラー注入部105によって擬似エラーが注入された位置は、判定部108へ報告される。
ここで、擬似エラー注入部105によるキャッシュ200から読み出されたデータへの擬似エラーの注入は、カウンタ部103のカウンタ値が所定のしきい値に達するたびに、換言すれば、命令処理部300から出される読み出し命令の数が所定数に達するたびに実行されるため、命令処理部300から連続して読み出し命令が出されても、定期的に誤り訂正回路の正当性を検証することができ、RAS制御の正当な機能を保証することができる。
そして、擬似エラーが注入されたデータは、誤り訂正回路内の誤り位置特定部106へ出力され、誤り位置特定部106によって、データに付加されたECCが用いられることにより、エラーが発生している誤り位置が特定される(ステップS107)。ここで、擬似エラー注入部105によって擬似エラーが注入されている場合、誤り位置特定部106が正しくエラーの位置を特定していれば、擬似エラー注入部105が注入した擬似エラーの位置においてエラーが検出されるはずである。そこで、誤り位置特定部106によって誤り位置が特定されると、擬似エラーの位置と比較するために、誤り位置が判定部108へ通知される。また、データと誤り位置の情報は、誤り訂正部107へも出力される。
判定部108に誤り位置が通知されると、判定部108によって、誤り位置が擬似エラー注入部105から報告された擬似エラーの位置と比較される(ステップS108)。この比較の結果、誤り位置が擬似エラーの位置と一致していれば(ステップS108Yes)、誤り位置特定部106が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部107に対して指示される。
そして、誤り訂正部107によって、誤り位置特定部106から出力されたデータにおいて誤り位置のビットが反転されることにより、データの誤り訂正が行われる(ステップS109)。誤り訂正後のデータは、誤り訂正部107から接続部101経由で命令処理部300へ出力され、読み出し命令に応じたデータの読み出し処理が完了する。
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ(ステップS108No)、誤り位置特定部106が正常に機能しておらず、誤り訂正回路による誤り訂正によってデータにさらなるエラーが生じると判断され、誤り訂正回路が故障している旨の判定結果が接続部101経由で命令処理部300へ出力され、誤り訂正回路の故障が通知される(ステップS110)。誤り訂正回路の故障が命令処理部300へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
次に、本実施の形態に係るキャッシュ制御部100のストア処理時の動作について、図4に示すフロー図を参照しながら説明する。なお、図4において、図3と同じ部分には同じ符号を付し、その詳しい説明を省略する。
まず、命令処理部300からキャッシュ制御部100へデータのストア命令が出されると(ステップS201)、ストア命令は、接続部101を介して読出指示部102へ入力される。そして、読出指示部102によって、書き換えられるストアデータ以外のデータであるストア対象外データのアドレスが読出部104へ指示されるとともに、ストア処理が実行される旨がカウンタ部103へ通知される(ステップS202)。
そして、読出部104によって、アドレスを指示されたストア対象外データがキャッシュ200から読み出されるとともに(ステップS203)、ストア処理実行の旨が通知されると、カウンタ部103によって、2回目のストア対象外データ読み出し時に擬似エラーを注入するよう擬似エラー注入部105へ指示が出される。このため、読出部104によって今回読み出されたストア対象外データは、擬似エラー注入部105による処理を受けることなく、誤り位置特定部106によって誤り位置が特定され、特定された誤り位置のビットが誤り訂正部107によって反転されることにより誤り訂正が行われる(ステップS204)。
この誤り訂正回路における誤り訂正の過程で、ストア対象外データにエラーがないことが確認されると、ストアデータ取得部111によって、命令処理部300から接続部101へ出力されたストアデータが取得され、ストアデータは、キャッシュ200への書き込み指示とともに書込部112へ出力され、書込部112によってデータのストアが行われる(ステップS205)。また、ストアデータは、ストアデータ取得部111からECC生成部109へ出力される。
書込部112によるデータのストアが完了すると、読出部104によって再度ストア対象外データがキャッシュ200から読み出される(ステップS206)。そして、読み出されたストア対象外データは、擬似エラー注入部105へ出力され、今回の読み出しが2回目であるため、擬似エラー注入部105によって擬似エラーが注入される(ステップS106)。また、擬似エラーが注入された位置は、判定部108へ報告される。
そして、擬似エラーが注入されたストア対象外データは、誤り訂正回路内の誤り位置特定部106によってECCが用いられることにより、エラーが発生している誤り位置が特定され(ステップS107)、誤り位置が判定部108および誤り訂正部107へ通知される。判定部108に誤り位置が通知されると、判定部108によって、誤り位置が擬似エラー注入部105から報告された擬似エラーの位置と比較される(ステップS108)。この比較の結果、誤り位置が擬似エラーの位置と一致していれば(ステップS108Yes)、誤り位置特定部106が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部107に対して指示される。
そして、誤り訂正部107によって、誤り位置特定部106から出力されたストア対象外データにおいて誤り位置のビットが反転されることにより、ストア対象外データの誤り訂正が行われる(ステップS109)。誤り訂正後のストア対象外データは、誤り訂正部107からECC生成部109へ出力される。
これにより、ECC生成部109には、ストアデータおよびストア対象外データが入力され、ECC生成部109によって、ストアデータのECCおよびストア対象外データのECCが生成される(ステップS207)。これらのECCは、ECC合成部110によって合成(マージ)され(ステップS208)、ストア処理後のデータのECCが得られる。そして、ストア処理後のデータのECCは、書込部112によって、キャッシュ200内のECCRAMに書き込まれ、ストア命令に応じたデータのストア処理およびストア処理に応じたECCの更新が完了する。
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ(ステップS108No)、誤り位置特定部106が正常に機能しておらず、誤り訂正回路による誤り訂正によってストア対象外データにさらなるエラーが生じ、正しいECCが生成されないと判断され、誤り訂正回路が故障している旨の判定結果が接続部101経由で命令処理部300へ出力され、誤り訂正回路の故障が通知される(ステップS110)。誤り訂正回路の故障が命令処理部300へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
以上のように、本実施の形態によれば、所定数の読み出し命令が出されるたび、またはストア命令が出されるたびに、キャッシュから読み出されるデータに擬似エラーを注入し、擬似エラーが注入されたデータの誤り位置を誤り訂正回路にて特定し、特定された誤り位置が擬似エラーの位置と一致するか否か判定する。このため、誤り位置と擬似エラーの位置が一致すれば誤り訂正回路が正常に機能していると判断することができる一方、誤り位置と擬似エラーの位置が一致しなければ誤り訂正回路の故障と判断することができ、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる
なお、上記一実施の形態においては、キャッシュメモリからのデータの読み出し時に擬似エラーを注入するものとしたが、その他の種々のメモリからのデータの読み出し時に擬似エラーを注入し、誤り訂正回路の正当性を検証することもできる。また、キャッシュメモリが例えばセットアソシアティブ方式で構成されており、複数のウェイを有する場合には、擬似エラー注入時にいずれか1つのウェイを指定し、指定されたウェイのデータに擬似エラーを注入するようにしても良い。
本発明は、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証する場合に適用することができる。
本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置およびメモリ制御方法に関し、特に、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法に関する。
近年、半導体技術の微細化および高速化に伴って、CPU(Central Processing Unit:中央処理演算装置)などのプロセッサに搭載されるRAM(Random Access Memory)の記憶素子も微細化したため、RAMに記憶される情報においてビット反転などの故障が発生することがある。このため、故障に自動的に対処する方法として、RAS(Reliability, Availability, Serviceability:信頼性、可用性、保守性)制御に関する検討が盛んに行われている。
RAS制御においては、例えばECC(Error Correcting Code:誤り訂正符号)を用いた誤り訂正技術などが重要な役割を担っている。一般的な誤り訂正技術においては、誤り訂正回路によってデータに付加されているECCが用いられ、データに発生したビット反転などの誤りが訂正される。このような誤り訂正においては、誤り訂正回路が正しく動作することが前提となっているため、誤り訂正回路の信頼性を担保する必要がある。
そこで、RAMにデータが書き込まれる際に、データに故意にエラーを発生させておき、このデータに対する誤り訂正を実行することにより、誤り訂正回路が正しく動作しているか否かが検証されることがある。また、例えば特許文献1では、RAMの特定のアドレスに正常なデータを書き込む一方で、正常なデータが書き込まれるアドレスを反転させたアドレスにエラーがあるエラーデータを書き込み、反転アドレスに書き込まれたエラーデータを用いて誤り訂正回路の試験を行うことが開示されている。
特開平7−84889号公報
しかしながら、上記の技術では、RAMにデータが書き込まれる際にのみ故意にエラーを発生させるため、RAMがCPUのキャッシュメモリとして使用される場合には、例えばエラーを発生させたデータが読み出される前に書き換えられたりして、必ずしも誤り訂正回路の信頼性が保証されないという問題がある。すなわち、上述した誤り訂正回路の試験においては、RAMに書き込むデータにエラーを発生させ、このエラーデータに対する読み出し要求が発行されて誤り訂正を実行したときに、エラーが正しく検出または訂正されることが確認されるため、読み出し要求が発行される前にエラーデータが書き換えられてしまえば、読み出し時に読み出されるのはエラーデータではなくなってしまう。
したがって、例えばキャッシュメモリにエラーデータが書き込まれてから読み出されるまでの間隔が比較的長い場合は、誤り訂正回路が正しく動作しているか否かを定期的に検証することができるとは限らず、結果としてRAS制御の正当な機能が保証されない。
本発明はかかる点に鑑みてなされたものであり、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法を提供することを目的とする。
上記課題を解決するために、メモリ制御装置は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であって、前記メモリからデータを読み出す読出手段と、前記読出手段によって読み出されたデータに擬似エラーを注入する注入手段と、前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定手段と、前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬似エラーの位置とが一致するか否かを判定する判定手段と、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力手段とを有する構成を採る
また、メモリ制御装置は、上記構成において、前記注入手段は、前記読出手段によってデータが読み出される回数をカウントするカウント手段を含み、前記カウント手段によってカウントされた回数が所定回数に達するごとにデータに擬似エラーを注入する構成を採る
また、メモリ制御装置は、上記構成において、前記注入手段は、前記読出手段によって読み出されたデータの所定のビットを反転させることにより擬似エラーを注入する構成を採る
また、メモリ制御装置は、上記構成において、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、前記特定手段を含む誤り訂正回路が故障している旨を外部に通知する通知手段をさらに有する構成を採る
また、メモリ制御装置は、上記構成において、前記特定手段は、データに付加されている誤り訂正符号を用いて誤り位置を特定する構成を採る
また、メモリ制御装置は、上記構成において、前記出力手段は、誤り位置のビットを反転させてエラーを訂正する誤り訂正手段を含む構成を採る
また、メモリ制御装置は、上記構成において、前記読出手段は、前記メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データを前記メモリから読み出す構成を採る
また、メモリ制御装置は、上記構成において、前記注入手段は、ストア処理の開始後2回目に前記読出手段によって読み出されたストア対象外データに擬似エラーを注入する構成を採る
また、メモリ制御装置は、上記構成において、前記出力手段によって出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成する生成手段と、前記生成手段によって生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成する合成手段と、前記合成手段によって合成されて得られた誤り訂正符号を前記メモリに書き込む書込手段とをさらに有する構成を採る
また、メモリ制御装置は、上記構成において、前記注入手段は、前記メモリが複数のウェイに分割されている場合、いずれか1つのウェイに対応するデータに擬似エラーを注入する構成を採る
また、メモリ制御方法は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御方法であって、前記メモリからデータを読み出す読出工程と、前記読出工程にて読み出されたデータに擬似エラーを注入する注入工程と、前記注入工程にて擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定工程と、前記特定工程にて特定された誤り位置と前記注入工程にて注入された擬似エラーの位置とが一致するか否かを判定する判定工程と、前記判定工程における判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力工程とを有するようにした
本発明によれば、メモリからデータを読み出し、読み出されたデータに擬似エラーを注入し、擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定し、特定された誤り位置と注入された擬似エラーの位置とが一致するか否かを判定し、判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する。このため、データの読み出し時に擬似エラーを含むエラーの訂正が正常に行われることが確認された場合のみデータを出力し、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる。
また、本発明によれば、データが読み出される回数をカウントし、カウントされた回数が所定回数に達するごとにデータに擬似エラーを注入するため、メモリへのデータの書き込みが行われずデータの読み出しが連続して実行される場合でも、定期的に誤り訂正回路の正当性を検証することができる。
また、本発明によれば、読み出されたデータの所定のビットを反転させることにより擬似エラーを注入するため、読み出された元のデータとは必ず異なるビットが発生し、確実に擬似エラーを注入することができる。
また、本発明によれば、判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、誤り訂正回路が故障している旨を外部に通知するため、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
また、本発明によれば、データに付加されている誤り訂正符号を用いて誤り位置を特定するため、データ中のエラーが発生しているビットを特定し、確実に誤り位置を特定することができる。
また、本発明によれば、誤り位置のビットを反転させてエラーを訂正するため、誤っているビットが正しいビットに変更され、エラーがないデータを得ることができる。
また、本発明によれば、メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データをメモリから読み出すため、ストア対象外データの誤り訂正が正しく行われることを担保することができる。
また、本発明によれば、ストア処理の開始後2回目に読み出されたストア対象外データに擬似エラーを注入するため、ストア処理に伴う誤り訂正符号の更新に用いられるストア対象外データの誤り訂正が正しく行われることを担保することができ、正確な誤り訂正符号の更新を行うことができる。
また、本発明によれば、出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成し、生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成し、合成されて得られた誤り訂正符号をメモリに書き込む。このため、ストア処理によってデータの一部が書き換えられても、正常に動作する誤り訂正回路によって誤り訂正されたデータを元に誤り訂正符号が更新され、正確な誤り訂正符号の更新を行うことができる。
また、本発明によれば、メモリが複数のウェイに分割されている場合、いずれか1つのウェイに対応するデータに擬似エラーを注入するため、メモリが例えばセットアソシアティブ方式のキャッシュメモリである場合にも、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる。
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、CPUにキャッシュメモリが1つのみ備えられている場合を例に挙げて説明するが、本発明はこれに限定されず、2次以上のキャッシュメモリがある場合にも、それぞれのキャッシュメモリに対応する誤り訂正回路の検証に適用することができる。
図1は、本発明の一実施の形態に係るCPUの概略構成を示すブロック図である。図1に示すCPUは、キャッシュ制御部100、キャッシュ200、命令処理部300、および演算処理部400を有している。また、このCPUは、メインメモリ500に接続されている。
キャッシュ制御部100は、命令処理部300から発行される命令に応じて、キャッシュ200に対するデータの書き込みおよび読み出しを制御する。また、キャッシュ制御部100は、キャッシュ200から読み出されたデータの誤り訂正を行うとともに、データの誤り訂正を行う誤り訂正回路が正しく機能しているか否かを判定する。キャッシュ制御部100の具体的な構成については、後に詳述する。
キャッシュ200は、メインメモリ500上の頻繁に使用されるデータを記憶するとともに、記憶されたデータに付加されるECC(Error Correcting Code)を記憶する。具体的には、キャッシュ200は、データを記憶するデータRAMおよびECCを記憶するECCRAMを有しており、それぞれのRAMにデータおよびECCを記憶する。なお、キャッシュ200は、データのタグ情報を記憶するタグRAMなどをさらに有していても良い。
命令処理部300は、プログラムなどの命令を解釈し、必要な演算処理の実行を演算処理部400に指示するとともに、必要なデータの読み出しおよび書き込みをキャッシュ制御部100へ指示する。演算処理部400は、命令処理部300からの指示に応じて、キャッシュ200などから読み出されたデータを用いた演算処理を行う。
メインメモリ500は、主記憶装置であって、CPUにおける処理に必要なデータやプログラムを記憶している。メインメモリ500は、キャッシュ200と比較すると大容量であるが、アクセス速度が遅い。
図2は、本実施の形態に係るキャッシュ制御部100の要部構成を示すブロック図である。同図に示すキャッシュ制御部100は、接続部101、読出指示部102、カウンタ部103、読出部104、擬似エラー注入部105、誤り位置特定部106、誤り訂正部107、判定部108、ECC生成部109、ECC合成部110、ストアデータ取得部111、および書込部112を有している。
接続部101は、命令処理部300と接続され、命令処理部300からのデータの読み出し命令などの命令および書き換えられたストアデータを読出指示部102へ通知する一方、キャッシュ200から読み出されたデータおよび誤り訂正回路が正しく機能しているか否かの判定結果を命令処理部300へ出力する。
読出指示部102は、命令処理部300からデータの読み出し命令またはストア命令が出された場合、その旨をカウンタ部103へ通知するとともに、読み出すデータのアドレスを読出部104へ指示する。
カウンタ部103は、読出指示部102から読み出し命令の通知を受けた回数をカウントし、カウンタ値が所定のしきい値に達すると擬似エラー注入部105へ擬似エラー注入を指示するとともにカウンタ値をリセットする。また、カウンタ部103は、読出指示部102からストア命令の通知を受けると、2回目のデータ読み出し時に擬似エラー注入をするよう擬似エラー注入部105へ指示する。ストア処理時には、ストアデータがストアされる前に、書き換えられることがないストア対象外データが一旦キャッシュ200から読み出されて(1回目のデータ読み出し)エラー検出が行われ、エラーがなければストアデータがストアされ、次いでストア対象外データがキャッシュ200から再び読み出されて(2回目のデータ読み出し)、ストアデータとともにECCの生成が行われる。このため、カウンタ部103は、2回目のデータ読み出し時に擬似エラー注入を指示する。
読出部104は、読出指示部102から指示されるアドレスのデータをキャッシュ200から読み出し、擬似エラー注入部105へ出力する。具体的には、読出部104は、命令処理部300から出される読み出し命令に含まれるアドレスのデータ、または、ストア命令に含まれるアドレスのストア対象外データを読み出す。
擬似エラー注入部105は、カウンタ部103から擬似エラー注入が指示されると、読出部104から出力されるデータに擬似エラーを注入する。具体的には、擬似エラー注入部105は、読出部104から出力されるデータの所定のビットを反転させることにより、擬似エラーを注入する。上述したように、カウンタ部103からの擬似エラー注入の指示は、所定数の読み出し命令が出された場合やストア命令が出された場合に行われるため、擬似エラー注入部105は、少なくとも所定数の読み出し命令が出されるごとに1回擬似エラーを注入することになる。また、擬似エラー注入部105は、擬似エラーを注入した位置を判定部108へ報告する。
誤り位置特定部106は、データに付加されているECCを用いて、データ中のエラーが発生しているビットの位置を特定し、特定された誤り位置を誤り訂正部107および判定部108へ通知する。
誤り訂正部107は、誤り訂正を続行する旨が判定部108から指示された場合、誤り位置特定部106から通知された誤り位置のビットを反転させて、データ中の誤りを訂正する。そして、誤り訂正部107は、誤り訂正後のデータを接続部101またはECC生成部109へ出力する。すなわち、誤り訂正部107は、命令処理部300から読み出し命令が出された場合は、誤り訂正後のデータを接続部101へ出力し、ストア命令が出された場合は、誤り訂正後のストア対象外データをECC生成部109へ出力する。なお、誤り位置特定部106および誤り訂正部107は、本実施の形態における誤り訂正回路を形成している。
判定部108は、擬似エラー注入部105から報告された擬似エラーの注入位置と誤り位置特定部106から通知された誤り位置とが一致するか否かを判定し、両者が一致すれば、誤り位置特定部106による誤り位置の特定が正確であると判断し、誤り訂正続行を誤り訂正部107へ指示する。また、判定部108は、擬似エラー注入位置と誤り位置とが一致しない場合、誤り位置特定部106に故障が発生していると判定し、誤り訂正回路が故障している旨の判定結果を接続部101へ出力する。
ECC生成部109は、誤り訂正部107から出力されるストア対象外データおよびストアデータ取得部111から出力されるストアデータそれぞれについてECCを生成し、それぞれのECCをECC合成部110へ出力する。
ECC合成部110は、ECC生成部109から出力されるストア対象外データのECCとストアデータのECCとを合成(マージ)することにより、データの一部が書き換えられるストア処理が行われた場合の新たなECCを生成し、書込部112へ出力する。
ストアデータ取得部111は、命令処理部300からストア命令が出された場合に、書き換えられたストアデータを接続部101から取得し、ECC生成部109および書込部112へ出力する。
書込部112は、ストアデータ取得部111から出力されるストアデータをキャッシュ200へ書き込む。また、書込部112は、ECC合成部110から出力される新たなECCをキャッシュ200へ書き込む。
次いで、上記のように構成されたキャッシュ制御部100の読み出し処理時の動作について、図3に示すフロー図を参照しながら説明する。
まず、初期状態では、カウンタ部103のカウンタ値が0にリセットされている(ステップS101)。このとき、命令処理部300からキャッシュ制御部100へデータの読み出し命令が出されると(ステップS102)、読み出し命令は、接続部101を介して読出指示部102へ入力される。そして、読出指示部102によって、読み出すデータのアドレスが読出部104へ指示されるとともに、読み出し処理が実行される旨がカウンタ部103へ通知される。
そして、読出部104によって、指示されたアドレスのデータがキャッシュ200から読み出されるとともに(ステップS103)、読み出し処理実行の旨が通知されると、カウンタ部103によってカウンタ値が1インクリメントされる(ステップS104)。カウンタ値が1インクリメントされると、カウンタ部103によって、カウンタ値が所定のしきい値に達したか否かが判定される(ステップS105)。
この判定の結果、カウンタ値が所定のしきい値に達していない場合(ステップS105No)、読出部104によってキャッシュ200から読み出されたデータは、擬似エラー注入部105を経由して誤り訂正回路へ出力され、誤り位置特定部106によってエラーの位置が検出され、誤り訂正部107によってエラーが検出された位置のビットが反転されることにより誤り訂正が行われ(ステップS109)、誤り訂正後のデータが接続部101を介して命令処理部300へ出力される。すなわち、カウンタ部103のカウンタ値が所定のしきい値に達していない場合は、誤り訂正回路が正常に機能しているという前提の下でデータの誤り訂正が行われ、読み出し処理が実行される。そして、この読み出し処理の実行後、命令処理部300による次の読み出し命令が待機される。
ここでは、再び命令処理部300からキャッシュ制御部100へデータの読み出し命令が出された(ステップS102)ものとして説明を続ける。この場合も、読み出し命令は、接続部101を介して読出指示部102へ入力され、読出指示部102からの指示により、読出部104によってデータがキャッシュ200から読み出されるとともに(ステップS103)、カウンタ部103によってカウンタ値が1インクリメントされる(ステップS104)。そして、カウンタ部103によって、カウンタ値が所定のしきい値に達したか否かが判定される(ステップS105)。
この判定の結果、カウンタ値が所定のしきい値に達した場合(ステップS105Yes)、カウンタ部103から擬似エラー注入部105に対して、データに擬似エラーを注入する旨の指示が出され、読出部104によってキャッシュ200から読み出されたデータが擬似エラー注入部105へ出力されると、擬似エラー注入部105によって、データに擬似エラーが注入される(ステップS106)。この擬似エラーは、擬似エラー注入部105によって、データの所定のビットが反転されることによって注入される。擬似エラー注入部105によって擬似エラーが注入された位置は、判定部108へ報告される。
ここで、擬似エラー注入部105によるキャッシュ200から読み出されたデータへの擬似エラーの注入は、カウンタ部103のカウンタ値が所定のしきい値に達するたびに、換言すれば、命令処理部300から出される読み出し命令の数が所定数に達するたびに実行されるため、命令処理部300から連続して読み出し命令が出されても、定期的に誤り訂正回路の正当性を検証することができ、RAS制御の正当な機能を保証することができる。
そして、擬似エラーが注入されたデータは、誤り訂正回路内の誤り位置特定部106へ出力され、誤り位置特定部106によって、データに付加されたECCが用いられることにより、エラーが発生している誤り位置が特定される(ステップS107)。ここで、擬似エラー注入部105によって擬似エラーが注入されている場合、誤り位置特定部106が正しくエラーの位置を特定していれば、擬似エラー注入部105が注入した擬似エラーの位置においてエラーが検出されるはずである。そこで、誤り位置特定部106によって誤り位置が特定されると、擬似エラーの位置と比較するために、誤り位置が判定部108へ通知される。また、データと誤り位置の情報は、誤り訂正部107へも出力される。
判定部108に誤り位置が通知されると、判定部108によって、誤り位置が擬似エラー注入部105から報告された擬似エラーの位置と比較される(ステップS108)。この比較の結果、誤り位置が擬似エラーの位置と一致していれば(ステップS108Yes)、誤り位置特定部106が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部107に対して指示される。
そして、誤り訂正部107によって、誤り位置特定部106から出力されたデータにおいて誤り位置のビットが反転されることにより、データの誤り訂正が行われる(ステップS109)。誤り訂正後のデータは、誤り訂正部107から接続部101経由で命令処理部300へ出力され、読み出し命令に応じたデータの読み出し処理が完了する。
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ(ステップS108No)、誤り位置特定部106が正常に機能しておらず、誤り訂正回路による誤り訂正によってデータにさらなるエラーが生じると判断され、誤り訂正回路が故障している旨の判定結果が接続部101経由で命令処理部300へ出力され、誤り訂正回路の故障が通知される(ステップS110)。誤り訂正回路の故障が命令処理部300へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
次に、本実施の形態に係るキャッシュ制御部100のストア処理時の動作について、図4に示すフロー図を参照しながら説明する。なお、図4において、図3と同じ部分には同じ符号を付し、その詳しい説明を省略する。
まず、命令処理部300からキャッシュ制御部100へデータのストア命令が出されると(ステップS201)、ストア命令は、接続部101を介して読出指示部102へ入力される。そして、読出指示部102によって、書き換えられるストアデータ以外のデータであるストア対象外データのアドレスが読出部104へ指示されるとともに、ストア処理が実行される旨がカウンタ部103へ通知される(ステップS202)。
そして、読出部104によって、アドレスを指示されたストア対象外データがキャッシュ200から読み出されるとともに(ステップS203)、ストア処理実行の旨が通知されると、カウンタ部103によって、2回目のストア対象外データ読み出し時に擬似エラーを注入するよう擬似エラー注入部105へ指示が出される。このため、読出部104によって今回読み出されたストア対象外データは、擬似エラー注入部105による処理を受けることなく、誤り位置特定部106によって誤り位置が特定され、特定された誤り位置のビットが誤り訂正部107によって反転されることにより誤り訂正が行われる(ステップS204)。
この誤り訂正回路における誤り訂正の過程で、ストア対象外データにエラーがないことが確認されると、ストアデータ取得部111によって、命令処理部300から接続部101へ出力されたストアデータが取得され、ストアデータは、キャッシュ200への書き込み指示とともに書込部112へ出力され、書込部112によってデータのストアが行われる(ステップS205)。また、ストアデータは、ストアデータ取得部111からECC生成部109へ出力される。
書込部112によるデータのストアが完了すると、読出部104によって再度ストア対象外データがキャッシュ200から読み出される(ステップS206)。そして、読み出されたストア対象外データは、擬似エラー注入部105へ出力され、今回の読み出しが2回目であるため、擬似エラー注入部105によって擬似エラーが注入される(ステップS106)。また、擬似エラーが注入された位置は、判定部108へ報告される。
そして、擬似エラーが注入されたストア対象外データは、誤り訂正回路内の誤り位置特定部106によってECCが用いられることにより、エラーが発生している誤り位置が特定され(ステップS107)、誤り位置が判定部108および誤り訂正部107へ通知される。判定部108に誤り位置が通知されると、判定部108によって、誤り位置が擬似エラー注入部105から報告された擬似エラーの位置と比較される(ステップS108)。この比較の結果、誤り位置が擬似エラーの位置と一致していれば(ステップS108Yes)、誤り位置特定部106が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部107に対して指示される。
そして、誤り訂正部107によって、誤り位置特定部106から出力されたストア対象外データにおいて誤り位置のビットが反転されることにより、ストア対象外データの誤り訂正が行われる(ステップS109)。誤り訂正後のストア対象外データは、誤り訂正部107からECC生成部109へ出力される。
これにより、ECC生成部109には、ストアデータおよびストア対象外データが入力され、ECC生成部109によって、ストアデータのECCおよびストア対象外データのECCが生成される(ステップS207)。これらのECCは、ECC合成部110によって合成(マージ)され(ステップS208)、ストア処理後のデータのECCが得られる。そして、ストア処理後のデータのECCは、書込部112によって、キャッシュ200内のECCRAMに書き込まれ、ストア命令に応じたデータのストア処理およびストア処理に応じたECCの更新が完了する。
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ(ステップS108No)、誤り位置特定部106が正常に機能しておらず、誤り訂正回路による誤り訂正によってストア対象外データにさらなるエラーが生じ、正しいECCが生成されないと判断され、誤り訂正回路が故障している旨の判定結果が接続部101経由で命令処理部300へ出力され、誤り訂正回路の故障が通知される(ステップS110)。誤り訂正回路の故障が命令処理部300へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、RAS制御の信頼性を向上することができる。
以上のように、本実施の形態によれば、所定数の読み出し命令が出されるたび、またはストア命令が出されるたびに、キャッシュから読み出されるデータに擬似エラーを注入し、擬似エラーが注入されたデータの誤り位置を誤り訂正回路にて特定し、特定された誤り位置が擬似エラーの位置と一致するか否か判定する。このため、誤り位置と擬似エラーの位置が一致すれば誤り訂正回路が正常に機能していると判断することができる一方、誤り位置と擬似エラーの位置が一致しなければ誤り訂正回路の故障と判断することができ、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証することができる
なお、上記一実施の形態においては、キャッシュメモリからのデータの読み出し時に擬似エラーを注入するものとしたが、その他の種々のメモリからのデータの読み出し時に擬似エラーを注入し、誤り訂正回路の正当性を検証することもできる。また、キャッシュメモリが例えばセットアソシアティブ方式で構成されており、複数のウェイを有する場合には、擬似エラー注入時にいずれか1つのウェイを指定し、指定されたウェイのデータに擬似エラーを注入するようにしても良い。
本発明は、定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証する場合に適用することができる。
図1は、本発明の一実施の形態に係るCPUの概略構成を示すブロック図である。 図2は、一実施の形態に係るキャッシュ制御部の要部構成を示すブロック図である。 図3は、一実施の形態に係るキャッシュ制御部の読み出し処理時の動作を示すフロー図である。 図4は、一実施の形態に係るキャッシュ制御部のストア処理時の動作を示すフロー図である。
符号の説明
100 キャッシュ制御部
101 接続部
102 読出指示部
103 カウンタ部
104 読出部
105 擬似エラー注入部
106 誤り位置特定部
107 誤り訂正部
108 判定部
109 ECC生成部
110 ECC合成部
111 ストアデータ取得部
112 書込部
200 キャッシュ
300 命令処理部
400 演算処理部
500 メインメモリ

Claims (11)

  1. データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であって、
    前記メモリからデータを読み出す読出手段と、
    前記読出手段によって読み出されたデータに擬似エラーを注入する注入手段と、
    前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定手段と、
    前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬似エラーの位置とが一致するか否かを判定する判定手段と、
    前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力手段と
    を有することを特徴とするメモリ制御装置。
  2. 前記注入手段は、
    前記読出手段によってデータが読み出される回数をカウントするカウント手段を含み、
    前記カウント手段によってカウントされた回数が所定回数に達するごとにデータに擬似エラーを注入することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記注入手段は、
    前記読出手段によって読み出されたデータの所定のビットを反転させることにより擬似エラーを注入することを特徴とする請求項1記載のメモリ制御装置。
  4. 前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、前記特定手段を含む誤り訂正回路が故障している旨を外部に通知する通知手段をさらに有することを特徴とする請求項1記載のメモリ制御装置。
  5. 前記特定手段は、
    データに付加されている誤り訂正符号を用いて誤り位置を特定することを特徴とする請求項1記載のメモリ制御装置。
  6. 前記出力手段は、
    誤り位置のビットを反転させてエラーを訂正する誤り訂正手段を含むことを特徴とする請求項1記載のメモリ制御装置。
  7. 前記読出手段は、
    前記メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データを前記メモリから読み出すことを特徴とする請求項1記載のメモリ制御装置。
  8. 前記注入手段は、
    ストア処理の開始後2回目に前記読出手段によって読み出されたストア対象外データに擬似エラーを注入することを特徴とする請求項7記載のメモリ制御装置。
  9. 前記出力手段によって出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成する生成手段と、
    前記生成手段によって生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成する合成手段と、
    前記合成手段によって合成されて得られた誤り訂正符号を前記メモリに書き込む書込手段と
    をさらに有することを特徴とする請求項7記載のメモリ制御装置。
  10. 前記注入手段は、
    前記メモリが複数のウェイに分割されている場合、いずれか1つのウェイに対応するデータに擬似エラーを注入することを特徴とする請求項1記載のメモリ制御装置。
  11. データを記憶するメモリにおけるデータの入出力を制御するメモリ制御方法であって、
    前記メモリからデータを読み出す読出工程と、
    前記読出工程にて読み出されたデータに擬似エラーを注入する注入工程と、
    前記注入工程にて擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定工程と、
    前記特定工程にて特定された誤り位置と前記注入工程にて注入された擬似エラーの位置とが一致するか否かを判定する判定工程と、
    前記判定工程における判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する出力工程と
    を有することを特徴とするメモリ制御方法。
JP2008501550A 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法 Expired - Fee Related JP4834721B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303474 WO2007096997A1 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法

Publications (2)

Publication Number Publication Date
JPWO2007096997A1 true JPWO2007096997A1 (ja) 2009-07-09
JP4834721B2 JP4834721B2 (ja) 2011-12-14

Family

ID=38437058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501550A Expired - Fee Related JP4834721B2 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法

Country Status (3)

Country Link
US (1) US8140940B2 (ja)
JP (1) JP4834721B2 (ja)
WO (1) WO2007096997A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008026568A1 (de) * 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
JP5348418B2 (ja) * 2009-11-19 2013-11-20 横河電機株式会社 コントローラ
JP5544878B2 (ja) * 2009-12-25 2014-07-09 富士通株式会社 故障制御装置、プロセッサコア、演算処理装置、情報処理装置および擬似故障制御方法
JP5423501B2 (ja) * 2010-03-16 2014-02-19 富士通株式会社 制御装置,試験方法及び試験プログラム
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
JPWO2012137323A1 (ja) * 2011-04-06 2014-07-28 富士通株式会社 情報処理装置及び疑似障害発生方法
US8984372B2 (en) * 2012-11-21 2015-03-17 Nvidia Corporation Techniques for storing ECC checkbits in a level two cache
JP6217086B2 (ja) * 2013-01-28 2017-10-25 日本電気株式会社 情報処理装置、エラー検出機能診断方法およびコンピュータプログラム
KR20160105625A (ko) * 2015-02-27 2016-09-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
DE102015210651B4 (de) * 2015-06-10 2022-10-27 Infineon Technologies Ag Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
US10706950B1 (en) * 2018-06-19 2020-07-07 Cadence Design Systems, Inc. Testing for memory error correction code logic

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61226853A (ja) * 1985-03-30 1986-10-08 Toshiba Corp 半導体メモリにおける誤り検出訂正機能テスト回路
JPH0693231B2 (ja) * 1987-02-16 1994-11-16 日本電気株式会社 キヤツシユ記憶装置の擬似障害発生方式
JPH01123345A (ja) * 1987-11-09 1989-05-16 Oki Electric Ind Co Ltd 誤り訂正装置の自己診断回路
JPH02177099A (ja) * 1988-12-27 1990-07-10 Nec Corp 半導体記憶装置
JPH06325595A (ja) * 1991-03-27 1994-11-25 Nec Kyushu Ltd 誤り訂正回路付きprom装置
JPH04343154A (ja) * 1991-05-20 1992-11-30 Yokogawa Electric Corp メモリ装置
JPH0784889A (ja) 1993-09-17 1995-03-31 Fujitsu Ltd メモリ装置のエラー検出訂正回路の試験方式
JPH08137763A (ja) * 1994-11-04 1996-05-31 Fujitsu Ltd フラッシュメモリ制御装置
US7283380B1 (en) * 2001-08-03 2007-10-16 Netlogic Microsystems, Inc. Content addressable memory with selective error logging
US6971053B1 (en) * 2002-07-30 2005-11-29 Cypress Semiconductor Corp. Method for initiating internal parity operations in a CAM device
US6904587B2 (en) * 2002-12-20 2005-06-07 Synopsys, Inc. Incremental lithography mask layout design and verification
GB0619949D0 (en) * 2006-10-09 2006-11-15 Advanced Risc Mach Ltd Integrated circuit

Also Published As

Publication number Publication date
US8140940B2 (en) 2012-03-20
WO2007096997A1 (ja) 2007-08-30
US20080301528A1 (en) 2008-12-04
JP4834721B2 (ja) 2011-12-14

Similar Documents

Publication Publication Date Title
JP4834721B2 (ja) メモリ制御装置およびメモリ制御方法
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
US7299400B2 (en) Error correction circuit
US7404137B2 (en) Method and related apparatus for performing error checking-correcting
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
US20080126905A1 (en) Memory control device, computer system and data reproducing and recording device
JP2009042911A (ja) メモリアクセスシステム
JP2008009721A (ja) 評価システム及びその評価方法
JP5462453B2 (ja) 半導体装置
CN111176884A (zh) 用于fpga配置存储器的sec校验方法和装置
TW201305809A (zh) 快閃記憶體控制器及資料讀取方法
JP4339914B2 (ja) エラー訂正コード生成方法及びメモリ管理装置
JP2007041665A (ja) Ecc機能検査回路およびecc機能検査方法
CN115509609A (zh) 数据处理装置和方法
US20100070821A1 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
US8286053B2 (en) Method and apparatus for reading data
JP2016122338A (ja) エラー訂正装置
JP6332134B2 (ja) メモリ診断回路
TWI437572B (zh) 運用錯誤控制碼於記憶元件的存取方法與系統
JP2007064762A (ja) 半導体装置、テストモード制御回路
US20240063823A1 (en) Memory device and test method thereof
JP7160860B2 (ja) メモリエラーを訂正するためのシステム及び方法
JP2008234358A (ja) 記憶装置、情報処理装置及び不正書込検出方法
US20090198878A1 (en) Information processing system and information processing method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110520

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees