JP2004030527A - 記憶制御装置、および記憶制御方法 - Google Patents

記憶制御装置、および記憶制御方法 Download PDF

Info

Publication number
JP2004030527A
JP2004030527A JP2002189770A JP2002189770A JP2004030527A JP 2004030527 A JP2004030527 A JP 2004030527A JP 2002189770 A JP2002189770 A JP 2002189770A JP 2002189770 A JP2002189770 A JP 2002189770A JP 2004030527 A JP2004030527 A JP 2004030527A
Authority
JP
Japan
Prior art keywords
unit
information
error
storage
data
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.)
Pending
Application number
JP2002189770A
Other languages
English (en)
Inventor
Daisuke Ito
伊藤 大介
Masaki Ukai
鵜飼 昌樹
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 JP2002189770A priority Critical patent/JP2004030527A/ja
Priority to US10/340,641 priority patent/US7395489B2/en
Publication of JP2004030527A publication Critical patent/JP2004030527A/ja
Pending legal-status Critical Current

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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories

Landscapes

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

Abstract

【課題】メモリ制御において、データのエラー補正機能を備えることにより高信頼性を確保し、かつ、エラー補正がない構成と同等の性能を発揮させる。
【解決手段】記憶制御装置であり、記憶部へ情報を書き込む書き込み部と、上記記憶部から情報を読み出す読み出し部と、上記読み出し部の読み出し動作と並行して上記情報の誤り検出を実行する誤り検出部と、誤りが検出された情報の誤り訂正を実行する誤り訂正部と、外部装置との情報の授受を制御し、上記誤りが検出されたときに、外部装置への情報の出力を停止する制御部と、を備える。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、メモリへのアクセス制御に関するものである。
【0002】
【従来の技術】
従来、メモリ上のデータの保護は、例えば、パリティチェックにより行われていた。しかし、パリティチェックでは、エラーの検出は可能であるが、誤りを訂正することができなかった。そこで、エラーが検出されたデータは、メモリ上で無効化され、新たにデータのソースからエラーのないデータが読み込まれていた。この方法では、エラー訂正処理によりアクセス時間が大きく低下した。また、エラーを検出した場合に、データを無効化してエラーを報告するという制御が必要であり、論理が複雑となっていた。
【0003】
一方、メモリ上のエラー訂正機構として、例えば、ECC(Error Check Code)を利用した誤り訂正回路が知られている。このような誤り訂正回路によれば、データを無効し、新たにデータを読み出すという手間は不要である。しかし、誤り訂正回路による場合も、メモリから読み出されたデータに対して、まず、誤り検出および誤り訂正を実行し、データの誤りを除去した後、そのデータに対する本来の処理が実行されていた。
【0004】
【発明が解決しようとする課題】
以上のように、メモリ上のデータ保護技術は多数提案されている。しかし、このようなデータ保護技術を利用することにより、メモリへのアクセス時間が遅延する。この遅延は、高速アクセスが必要なキャッシュメモリにおいては、特に深刻な問題であった。
【0005】
本発明はこのような従来の技術の問題点に鑑みてなされたものである。すなわち、本発明の課題は、データのエラー補正機能を備えることにより高信頼性を確保し、かつ、エラー補正がない構成と同等の性能を発揮するメモリ制御技術を提供することにある。
【0006】
【課題を解決するための手段】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、記憶制御装置であり、
記憶部へ情報を書き込む書き込み部と、
上記記憶部から情報を読み出す読み出し部と、
上記読み出し部の読み出し動作と並行して上記情報の誤り検出を実行する誤り検出部と、
誤りが検出された情報の誤り訂正を実行する誤り訂正部と、
外部装置との情報の授受を制御し、上記誤りが検出されたときに、外部装置への情報の出力を停止する制御部と、を備えるものである。
【0007】
ここで、外部装置とは、上記記憶部に格納された情報を参照する装置であり、上記制御部を介して記憶部にアクセスする。このように、本記憶制御装置は、上記読み出し部の読み出し動作と並行して上記情報の誤り検出を実行するので、誤り検出による記憶部へのアクセス速度の劣化を低減できる。
【0008】
好ましくは、上記記憶制御装置は、誤りが訂正された情報のビットパターンを反転する反転部をさらに備え、
上記書き込み部は、上記誤りが検出されたときにビットパターンを反転させた情報を記憶部に書き込むものでもよい。
【0009】
誤り訂正された情報のビットパターンを反転することにより、記憶部において、特定のビットが1または0のいずれかに固定されるような障害がある場合にも、その障害を回避できる。
【0010】
好ましくは、上記記憶部は、書き込みまたは読み出しの単位となる単位記憶情報内に外部装置と情報を授受する単位である外部単位情報を複数記憶しており、
上記読み出し部は、上記記憶部から単位記憶情報を読み出し、
上記誤り検出部は、単位記憶情報に含まれる複数の外部単位情報に対して誤りを検出し、
上記制御部は、誤りが検出されなかった外部単位情報を外部装置へ出力するようにしてもよい。
【0011】
好ましくは、上記誤り訂正部は、上記誤りが検出された外部単位情報に対して誤りを訂正し、
上記書き込み部は、誤りが訂正された外部単位情報を含む単位記憶情報を上記記憶部に書き込み、
上記制御部は、上記訂正された外部単位情報を外部装置へ出力するようにしてもよい。
【0012】
このように、本記憶制御装置では、記憶部が書き込みまたは読み出しの単位となる単位記憶情報内に、複数の外部単位情報を記憶する。このため、1回の記憶部へのアクセスにより、複数の外部単位情報が読み出され、そのうちの1つの外部単位情報が外部装置に出力される。このような構成により、外部に出力されなかった外部単位情報に対して、事前に誤り検出と誤り訂正を実行できる。この誤り検出と訂正は、他の外部単位情報を外部装置に出力する処理と並行して実行できる。したがって、アクセス時間の劣化を低減した上で、データの信頼性を向上できる。
【0013】
また、本発明は、制御装置が、以上述べた処理を実行する方法であってもよい。ここで、制御装置には、例えば、電子回路、論理回路等が含まれる。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図1から図5の図面に基づいて説明する。
【0015】
図1は、本発明の一実施の形態に係るメモリ制御回路のハードウェアブロック図であり、図2は、図1に示したインバートフラグ制御部3の実施例であり、図3は、書き込み許可制御部9の実施例を示す図であり、図4は、タグRAM2のエントリに格納されるデータ構成例であり、図5は、タグRAM2の読み出し手順を示すタイムチャートである。
【0016】
<ハードウェア構成>
図1に、本発明の一実施の形態に係るメモリ制御回路のハードウェアブロック図を示す。このメモリ制御回路は、キャッシュメモリの構成要素となるタグRAM2と、タグRAM2へのデータ書き込み回路とタグRAM2からのデータ読み出し回路と、タグRAM2へのデータの書き込みおよび読み出しを制御するメイン制御部1とを有している。
【0017】
タグRAM2は、キャッシュメモリの一部を構成するメモリであり、タグを格納する。タグは、キャッシュメモリの各ライン(ラインをブロックともいう)ごとにメインメモリのどの部分のデータが格納されているかを示す情報である。タグRAM2の各エントリがキャッシュメモリの各ラインに対応する。
【0018】
本実施形態では、セットアソシアティブ方式のキャッシュメモリを例にメモリ制御回路を説明する。セットアソシアティブ方式では、キャッシュメモリは、複数のセットと、セット内の複数のラインから構成される。セットアソシアティブ方式とは、キャッシュメモリと対応するメインメモリとのマッピングの方式をいう。セットアソシアティブ方式では、メインメモリからセットへのマッピングは、固定的に決定される。また、セット内のラインへのマッピングは、固定されておらず自在となっている。本実施形態のキャッシュメモリでは、下位記憶装置11のデータがセット内のどのラインにマッピングされているかをタグRAM2のエントリに保持する。
【0019】
タグRAM2のエントリは、メイン制御部1が保持するインデックスアドレスに基づいて参照される。本実施形態においては、インデックスアドレスは、キャッシュされる下位記憶装置11におけるアドレスのうち13ビット(ビット18〜6)から構成される。
【0020】
本キャッシュメモリでは、このインデックスアドレス対して、タグRAM2の4つのエントリが並列してアクセスされる。このような4つのエントリをウェイと呼ぶ。
【0021】
このタグRAM2のエントリには、キャッシュされる下位記憶装置11におけるアドレスの上位ビット(これをタグといい、本実施形態では、例えば、32ビットアドレスの上位13ビットである)が格納される。本実施形態では、タグRAM2の1つのエントリは、2つのラインから構成される。そして、各々のラインには、1ビットだけ値の異なる2つのインデックスアドレスに対応する2つのタグが格納される。
【0022】
なお、タグRAM2を参照するためのインデックスアドレスは19ビットに限定されるものではない。いずれにしても、インデックスアドレスを除く下位記憶装置11のアドレスの上位ビットをタグとしてタグRAM2のエントリに格納すればよい。
【0023】
タグRAM2へのデータ書き込み回路は、エラー補正部6、チェックビット生成部7、およびインバートフラグ制御部3と、書き込み許可制御部9とを有している。上述のように本実施形態では、タグRAM2の4つのウェイに並列に書き込むため、データ書き込み回路は4系統設けられている。しかし、図1では、表現を簡略化するため、タグRAM2へのデータ書き込み回路は1系統だけ示されている。
【0024】
エラー訂正部6は、タグRAM2に格納されたデータにビット誤りがあった場合に、誤り訂正を実行する。誤り訂正としては、例えば、ECCを用いればよい。チェックビット生成部7は、データにECCのチェックビットを付加する。
【0025】
インバートフラグ制御部3は、データのインバート処理を実行し、インバートされたデータにインバートフラグを設定する。インバート処理とは、元のデータのビットパターンを反転する処理である。
【0026】
例えば、16進数で、0xF0(インバートフラグ0)というデータにインバート処理を実行すると、0x0F(インバートフラグ1)というデータに変更される。したがって、インバートフラグを確認することで、真の値を復元することができる。
【0027】
今、例えば、メモリ上の特定のアドレスにおける特定のビット位置が破壊され、0以外の値を取り得ないような場合を想定する。そのような場合、そのビット位置が0になるようにインバート処理を施してデータを格納することにより、そのような破壊されたビット位置を含むメモリ上のアドレスを使用できる。
【0028】
また、上記とは逆に、破壊されたビット位置が、1以外の値を取り得ないような場合も、同様に、インバート処理により、障害を回避できる。ただし、タグRAM2の1エントリが2ビット以上破壊された場合には、この方法でビットエラーを回避することはできない。
【0029】
図2に、インバートフラグ制御部3の構成例を示す。この例では、インバート処理は、排他論理和(ExclusiveOR)ゲートの組み合わせにより実現される。図2では、入力データの各ビットとインバートフラグとが排他論理和ゲートに入力され、その出力が処理後のデータとなる。
【0030】
この結果、インバートフラグが1のとき、入力データで0のビットは1となり、入力データで1のビットは0となる。これにより、入力データのビットパターンが反転される。一方、インバートフラグが0のとき、入力データがそのまま処理後のデータとして出力される。
【0031】
書き込み許可制御部9は、タグRAM2への書き込み許可条件を判定し、書き込み許可信号(いわゆるライトイネーブル信号)を発生する。図3に、書き込み許可制御部9の実施例を示す。図3のように、書き込み許可信号は、タグRAM2から読み出したエントリデータにおいてエラー(ビット誤り)が検出され、そのデータが上位記憶装置10(外部装置に相当)から参照されたデータであり(そのデータを処理で使用する場合)、かつ、データのエラー以外の要因でそのデータに対する処理がキャンセルされることがないならば書き込み許可信号がアサート(例えば、1で書き込み許可が出力)される。
【0032】
また、エラーデータが上位記憶装置10から参照されたデータでない場合(そのデータが処理で使用されない場合)、無条件で書き込み許可信号がアサートされる。
【0033】
上位記憶装置10から参照されたデータ(処理で使用されるデータ)とは、タグRAM2の1つのエントリに格納され、読み出された2つのラインのうち、実際に上位記憶装置10(例えば、CPU等)で参照されたデータをいう。
【0034】
データのエラー以外の要因で処理がキャンセルされる場合とは、例えば、同一のラインに1サイクルごとに続けて2つのアクセスがあり、最初のアクセスでキャッシュミスが判明した場合である。このような場合、そのラインへの後のアクセスはキャンセルされる。キャッシュミスの判明により、改めて下位記憶装置11からデータが参照され、キャッシュに格納される。このような場合、本メモリ制御回路は、後のアクセスをキャンセルし、データの整合性を保つ。
【0035】
エラーデータが処理で使用されるデータであって、データのエラー以外の要因で処理がキャンセルされない場合には、本実施形態のメモリ制御回路は、誤り訂正したデータの書き込みを許可する。また、エラーデータが処理で使用されないデータの場合、本実施形態のメモリ制御回路は、無条件で誤り訂正したデータの書き込みを許可する。ただし、いずれにしても、1つのエントリに格納されている2つのラインのうち、誤りのなかった他方のラインはそのまま上書きされる。
【0036】
タグRAM2からのデータ読み出し回路は、インバートフラグ制御部3の出力に対して並列に接続されるECCチェック部4およびアドレスマッチ部5と、ECCチェック部4の出力側に接続されるエラー訂正部6とを有している。本実施形態では、タグRAM2の4つのウェイから並列に読み出すため、データ読み出し回路は4系統設けられている。しかし、図1では、表現を簡略化するためタグRAM2からのデータ読み出し回路は、1系統だけ示されている。
【0037】
ECCチェック部4は、タグRAM2から読み出されたデータにビット誤りがないか否かをチェックする。ビット誤りの有無は、エラー報告(S10)として書き込み制御部9に、また、エラー検出時の処理キャンセル指示(S11)としてメイン制御部1に伝達される。エラー訂正部6は、ECCチェック部4でエラーが検出されたデータのビット誤りを訂正する。
【0038】
アドレスマッチ部5は、メモリ制御部1から入力されるタグと、タグRAM2の4つのウェイから読み出された4つのタグを比較し、タグが一致したか否か、すなわち、参照されたデータがヒットしたか否かを判定する。このアドレスマッチ部5の処理は、ECCチェック部4の処理と並行して、かつ、4つのウェイを並列にして実行される。そして、ヒットしたか否かの信号(キャッシュヒット/ミスヒット(S5))が各ウェイごとにメイン制御部1に出力される。
【0039】
メイン制御部1は、上位記憶装置10から参照命令を受け、タグRAM2およびタグRAM2に対応する不図示のデータRAMのラインのデータを参照する。そして、メイン制御部1は、ヒットしたデータを上位記憶装置10に出力する。上位記憶装置10は、例えば、コンピュータのCPUである。
【0040】
また、メイン制御部1は、キャッシュがヒットしなかった場合、下位記憶装置11を参照し、必要なデータをタグRAM2およびタグRAM2に対応する不図示のデータRAMのラインに格納する。下位記憶装置11は、例えば、コンピュータのメインメモリである。メイン制御部1は、このような信号を入出力する論理回路から構成される。
【0041】
<タグRAM2のデータ構成>
図4に、タグRAM2のエントリに格納されるデータ構成例を示す。上述のように、本実施形態では、キャッシュメモリは、セットアソシアティブ方式であり、複数のセットから構成される。また、各セットは、並列にアクセス可能な4つのウェイから構成される。また、各ウェイには、タグと格納するタグRAM2と、そのタグに対応するデータを格納するデータRAMのライン(ラインをブロックともいい、下位記憶装置11とデータを授受する単位である)が含まれる。
【0042】
また、上述のように、本実施形態では、タグRAM2の1つのエントリに2つのタグが格納される。例えば、ウェイ0にはライン0と1、ウェイ1にはライン2と3、ウェイ2にはライン4と5、ウェイ3にはライン6と7が各々格納される。したがって、ウェイ0〜3により、実質的に2つのセットが構成される。ここで、ライン0、2、4、6からなるセットをセットAと呼ぶ。また、ライン1、3、5、7からなるセットをセットBと呼ぶ。
【0043】
図4では、1つのウェイ(ウェイ0)に含まれるタグRAM2のエントリの詳細な構成が示されている。ここでは、タグRAM2に着目し、データを格納するデータRAMの構成は省略されている。
【0044】
本実施形態では、タグRAM2のエントリは、LRU(の一部)フィールド20、ライン0、インバートフラグフィールド21、ライン1、およびチェックビットフィールド22の各フィールドから構成される。
【0045】
LRUフィールド20には、LRUビットの一部(3ビット分)が格納される。また、ウェイ0のLRUフィールド20と、ウェイ1のLRUフィールドとにより、セットA全体のLRUビット(6ビット)が構成される。さらに、また、ウェイ2のLRUフィールドと、ウェイ3のLRUフィールドとにより、セットB全体のLRUビット(6ビット)が構成される。
【0046】
LRUビットは、1つのセットを構成する4つのウェイから次にデータを追い出す(新たにデータを格納する)ウェイを選択するためのビットである。LRU(Least Recently Used)方式によるアルゴリズムは、例えば、キャッシュメモリの管理方法、仮想記憶方式の主記憶の管理方法として広く知られている。このアルゴリズムでは、4つのウェイのうち、最も前にアクセスされたものが最初に追い出されるようにウェイが選択される。
【0047】
LRUフィールド20には、そのようなウェイの選択順位を示すビット列が格納される。4つのウェイの選択順位を示す情報は、4つの中から2つを選択する組み合わせの数=6ビット必要であることが知られている。4つのウェイ相互間の新旧の関係を順序付ける情報があればよいからである。
【0048】
本実施形態では、セットAにおける4つのウェイの選択順位を示す情報6ビットのうち、3ビットをウェイ0に格納する。また、残り3ビットをウェイ1に格納する。
【0049】
ライン0のフィールドには、キャッシュメモリのタグであるアドレス、キャッシュされたデータの論理アドレスおよびラインの状態を格納する。本実施形態で、タグは、下位記憶装置11におけるアドレスの上位13ビットである。また、論理アドレスとは、上記記憶装置10においてキャッシュされたデータに付与するアドレスである。このアドレスおよび論理アドレスは、参照命令のパラメータとして上位記憶装置10から引き渡される。
【0050】
ただし、本発明の実施において、論理アドレスは、必須の構成要素ではない。すなわち、上位記憶装置10において論理アドレスが使用されず、直接アドレスでデータにアクセスするようにしてもよい。
【0051】
ラインの状態とは、当該ラインのデータが有効か否かの情報、当該ラインのデータと下位記憶装置11のデータが一致しているか否かの情報等である。当該ラインのデータが有効でない場合は、例えば、各々キャッシュメモリを有する複数のプロセッサが下位記憶装置11のデータを共有するマルチプロセッサシステムにおいて生じ得る。例えば、あるプロセッサのキャッシュのデータが、対応する他のプロセッサのキャッシュにおいて書き替えられ、その結果が下位記憶装置11に反映された結果、当該プロセッサのキャッシュのデータが無効になる場合である。
【0052】
当該ラインのデータと下位記憶装置11のデータが一致しているか否かの情報は、いわゆる、ライトバック方式(ストアバック方式、ストアイン方式、スワップ方式ともいう)におけるダーティビットとして知られている。ただし、本発明の実施は、ライトバック方式に限定されず、ライトスルー方式においても実施可能である。その場合には、ダーティビットは必ずしも必要ではない。
【0053】
インバートフラグ21は、エントリのビットパターンがインバートされたか否かを示すフラグである。なお、本実施形態では、インバートフラグ21は、3ビット以上に多重化され、その値を多数決により判定することで信頼性を確保している。
【0054】
本フラグが’1’のとき、タグRAM2のエントリが反転されていることを意味する。このフラグの初期値は、’0’であり、そのエントリでエラーが検出される度に値が反転される。
【0055】
タグRAM2からの読み出し時、このフラグが’1’であれば、そのエントリは反転されているので、反転して元に戻してからECCによるエラーチェック、アドレスマッチが実行される。
【0056】
上述のように、本実施形態において、タグRAM2の1つのエントリには、2つのラインのデータが格納される。図4において、ライン1は、そのような2つ目のラインのデータであり、その構成はライン0と同様である。
【0057】
チェックビットフィールド22には、当該エントリのビット誤りを検出し、訂正するためのチェックビットを格納する。このチェックビットにより、誤りが発生したビット位置が特定される。
【0058】
<作用>
以下、図1の信号(矢印の肩にS1からS13で表示)にしたがい、メモリ制御回路の動作を説明する。今、上位記憶装置10からキャッシュメモリのデータを参照する参照命令が発行された場合を仮定する。
【0059】
参照命令は、参照すべき下位記憶装置11のアドレス(ビット31〜0)および論理アドレスとともにメイン制御部1に入力される(S1)。メイン制御部1は、参照命令に含まれるアドレスからビット18〜6を選択し、インデックスアドレスとしてタグRAM2に入力する(S2)。また、メイン制御部1は、参照命令に含まれるアドレスからビット31〜19を選択しアドレスマッチ部5へ入力する(S5)。
【0060】
タグRAM2は、入力されたインデックスアドレスに対応するセットを選択し、4つのウェイを並列に動作させ、各ウェイのエントリのデータを読み出す(S2)。ただし、上述のように、読み出し回路は1系統だけ示されている。
【0061】
次に、インバートフラグ処理部3は、インバートフラグにしたがい、インバート処理を実行する(ただし、インバートフラグがオフの場合、データはインバートされない)。インバートフラグ制御部3の出力信号の1つは、ECCチェック部4に入力され(S4)、他の1つは、アドレスマッチ部5に入力される(S3)。
【0062】
アドレスマッチ部5は、4つのウェイから読み出されたデータ(タグ)について各々並列にアドレスマッチ処理を実行する。アドレスマッチ処理では、メイン制御部1から入力された下位記憶装置11のアドレスのビット31〜19と、タグRAM2から読み出されたタグの内容を比較する。
【0063】
そして、比較の結果、2つの入力(S3、S4)が一致したウェイについて、キャッシュヒットを示す信号(S5)がメイン制御部1に入力される。また、比較の結果、2つの入力(S3、S4)が一致しなかったウェイについて、ミスヒットを示す信号(S5)がメイン制御部1に入力される。メイン制御部1は、ヒットしたウェイに対応する不図示のデータRAMのラインからデータを読み出し、上位記憶装置10に引き渡す(S13)。
【0064】
一方、ECCチェック部4は、上記のアドレスマッチ部5の処理と並行して、かつ、各ウェイ並列にビット誤りの検出を実行する。すなわち、ECCチェック部4は、各ウェイから読み出されたデータを並列にビット誤りをチェックする。
【0065】
そして、誤りが検出された場合、ECCチェック部4は、エラー報告を書き込み許可制御部9に送信する(S10)。また、エラー検出時、ECCチェック部4は、処理キャンセルの指示をメイン制御部1に送信する(S11)。これにより、メイン制御部1は、キャッシュヒットの信号(S5)に対応するデータRAMのラインからのデータ読み出しを中止し、再読み出し処理を実行する。
【0066】
また、誤りが検出されたウェイのデータはエラー訂正部6に入力され、エラーが訂正される。エラー訂正は、エラーが発生したビットに対して実行される。
【0067】
そして、チェックビット生成部7により、チェックビットが付加される。さらに、そのチェックビットが付加されたデータは、インバートフラグとともに、インバートフラグ制御部3に入力される。
【0068】
インバートフラグ制御部3は、エラーが訂正されたデータが入力される度に、インバート処理を実行し、処理したデータをタグRAM2に書き込む(S12)。すなわち、本メモリ制御回路では、ビット誤りが検出されたデータでエラーが訂正されたものは、インバート処理がなされ、タグRAM2に書き込まれる。
【0069】
このとき、エラー報告(S10)に基づき、書き込み許可信号がアサートされている。書き込まれたデータは、再読み出し処理において、上述と同様の手順で読み出される。
【0070】
アドレスマッチ部5において、すべてのウェイがヒットしなかった場合、メイン制御部1には、ミスヒットのみが送信される(S5)。この場合、メイン制御部1は、下位記憶装置11を参照し(S6)、参照命令(S1)で参照されたデータを読み出す(S7)。
【0071】
そして、タグRAM2のLRUを参照し、追い出しの対象とすべきウェイを公知のアルゴリズムにしたがい決定する。そして、そのウェイに対して、タグデータ(下位記憶装置11のアドレスのビット31〜19)、論理アドレス、および、ラインの状態(図4参照)を書き込む(S8)。
【0072】
この場合、図4に示したように、1つのタグRAM2のエントリに、1ビット値の異なる2つのインデックスアドレスの内容が重複して格納されている。書き込みの対象となったライン(例えば、ウェイ0に含まれるライン0または1のいずれが)が更新され、書き込みの対象とならなかったラインのデータはそのまま再度タグRAM2に書き込まれる。また、書き込みの対象とならなかったウェイついては、LRUビットが更新され、再びタグRAM2に書き込まれる。この書き込みは、4ウェイ並列に実行される。
【0073】
図5に、タグRAM2の読み出し手順をタイムチャートに示す。図5では、比較のため、従来手法による場合と本実施形態のメモリ制御回路による場合とが表示されている。
【0074】
従来手法、例えば、パリティチェックによる場合には、タグRAM2からデータが読み出され(T1)、パリティチェックが実行され(T2)、エラーが検出された場合にキャンセル信号が送出される(T3)。そして、所定のマシンサイクルを経過した後(図5では、2サイクル)、エラー処理が起動され、システム(例えば、CPU)にエラー処理が要求され(T4)、さらに、所定のマシンサイクル経過後、エラーのラインに対して無効化処理が実行される。この無効化処理に基づき、当該ラインのデータが下位記憶装置11等から読み出される。
【0075】
一方、本実施形態のメモリ制御回路によれば、タグRAMからデータが読み出され(XP1)、ECCチェックが実行され(XP2)、エラーが検出された場合にキャンセル信号が送出される(XP3)。このキャンセル信号は、ECCチェックと並列実行されていた通常処理(例えば、アドレスマッチ、または、その後のマッチしたタグに対応するデータRAMのラインのデータ読み出し処理)をキャンセルさせる。
【0076】
さらに、キャンセル信号送出後、エラー訂正(XP4)が実行され、書き込み許可信号がアサートされ(XP5)、訂正されたデータがタグRAM2に書き込まれる(XP6)。
【0077】
以上述べたように、本実施形態のメモリ制御回路によれば、ECCによるデータのチェックと通常動作とを並列に行うことにより信頼性を高めつつキャッシュアクセス時間を短縮する。このため、このメモリ制御回路は、データにエラーがない場合には、ECCを持たないキャッシュメモリと同等の性能を発揮する。また、訂正可能なエラーを検出した場合、このメモリ制御回路は、下位記憶装置11等から再度読み出すことなく、短時間でエラーの訂正を実行する。
【0078】
また、本メモリ制御回路は、1つのキャッシュメモリのエントリに複数のラインを格納する。この構成により、現在参照中のデータのエラーチェックと並列して、参照中でないデータについてもエラーチェックおよびエラー訂正を実行することができ、信頼性を向上しつつアクセス時間の低下を防ぐことができる。
【0079】
また、本メモリ制御回路は、エラーが発生したエントリに対してビット反転してデータを書き込む。このため、特定のビットが常に1になる、または、常に0になるようなメモリの故障があった場合も、1つのエントリに1ビットの故障であれば、このメモリ制御回路はそのような故障を回避できる。
【0080】
<変形例>
上記実施形態では、タグRAM2へのデータの読み出しおよび書き込みを行うメモリ制御回路の例を示した。しかし、本発明の実施は、タグRAM2には限定されない。すなわち、例えば、通常のメインメモリ、ハードディスクのキャッシュ等において発明を適用してもよい。また、キャッシュメモリは、セットアソシアティブ方式には限定されない。
【0081】
上記実施形態では、4ウェイのキャッシュメモリを例にして説明した。しかし、本発明をキャッシュメモリに適用する場合、ウェイの数が4ウェイに限定されるものではなく、2ウェイ以下でもよいし、8ウェイ以上でも構わない。
【0082】
上記実施形態では、ビット誤りの検出と訂正にECCを利用する例を示した。しかし、本発明の実施はECCによるビット誤りの検出と訂正に限定されるものではない。
【0083】
【発明の効果】
以上説明したように、本発明によれば、メモリの制御において、データのエラー補正機能を備えることにより高信頼性を確保し、かつ、エラー補正がない構成と同等の性能を発揮することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るメモリ制御回路のハードウェアブロック図
【図2】インバートフラグ制御部3の実施例
【図3】書き込み許可制御部9の実施例を示す図
【図4】タグRAM2のエントリに格納されるデータ構成例
【図5】タグRAM2の読み出し手順を示すタイムチャート
【符号の説明】
1 メイン制御部
2 タグRAM
3 インバータフラグ制御部
4 ECCチェック部
5 アドレスマッチ部
6 エラー訂正部
7 チェックビット生成部
10 上位記憶装置
11 下位記憶装置

Claims (8)

  1. 記憶部へ情報を書き込む書き込み部と、
    前記記憶部から情報を読み出す読み出し部と、
    前記読み出し部の読み出し動作と並行して前記情報の誤り検出を実行する誤り検出部と、
    誤りが検出された情報の誤り訂正を実行する誤り訂正部と、
    外部装置との情報の授受を制御し、前記誤りが検出されたときに、外部装置への情報の出力を停止する制御部と、を備える記憶制御装置。
  2. 誤りが訂正された情報のビットパターンを反転する反転部をさらに備え、
    前記書き込み部は、前記誤りが検出されたときにビットパターンを反転させた情報を記憶部に書き込む請求項1に記載の記憶制御装置。
  3. 前記記憶部は、書き込みまたは読み出しの単位となる単位記憶情報内に外部装置と情報を授受する単位である外部単位情報を複数記憶しており、
    前記読み出し部は、前記記憶部から単位記憶情報を読み出し、
    前記誤り検出部は、単位記憶情報に含まれる複数の外部単位情報に対して誤りを検出し、
    前記制御部は、誤りが検出されなかった外部単位情報を外部装置へ出力する請求項1に記載の記憶制御装置。
  4. 前記誤り訂正部は、前記誤りが検出された外部単位情報に対して誤りを訂正し、
    前記書き込み部は、誤りが訂正された外部単位情報を含む単位記憶情報を前記記憶部に書き込み、
    前記制御部は、前記訂正された外部単位情報を外部装置へ出力する請求項3に記載の記憶制御装置。
  5. 制御装置が、
    記憶部へ情報を書き込む書き込みステップと、
    前記記憶部から情報を読み出す読み出しステップと、
    前記読み出しステップと並行して前記情報の誤り検出を実行する誤り検出ステップと、
    誤りが検出された情報の誤り訂正を実行する誤り訂正ステップと、
    外部装置との情報の授受を制御し、前記誤りが検出されたときに、外部装置への情報の出力を停止する制御ステップと、を備える記憶制御方法。
  6. 誤りが訂正された情報のビットパターンを反転するステップをさらに備え、
    前記書き込みステップでは、前記誤りが検出されたときにビットパターンを反転させた情報が記憶部に書き込まれる請求項5に記載の記憶制御方法。
  7. 前記記憶部は、書き込みまたは読み出しの単位となる単位記憶情報内に外部装置と情報を授受する単位である外部単位情報を複数記憶しており、
    前記読み出しステップでは、前記記憶部から単位記憶情報が読み出され、
    前記誤り検出ステップでは、単位記憶情報に含まれる複数の外部単位情報に対して誤り検出が実行され、
    前記制御ステップでは、誤りが検出されなかった外部単位情報が外部装置へ出力される請求項5に記載の記憶制御方法。
  8. 前記誤り訂正ステップでは、前記誤りが検出された外部単位情報の誤りが訂正され、
    前記書き込みステップでは、誤りが訂正された外部単位情報を含む単位記憶情報が前記記憶部に書き込まれ、
    前記制御ステップでは、前記訂正された外部単位情報が外部装置へ出力される請求項7に記載の記憶制御方法。
JP2002189770A 2002-06-28 2002-06-28 記憶制御装置、および記憶制御方法 Pending JP2004030527A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002189770A JP2004030527A (ja) 2002-06-28 2002-06-28 記憶制御装置、および記憶制御方法
US10/340,641 US7395489B2 (en) 2002-06-28 2003-01-13 Control system and memory control method executing a detection of an error in a formation in parallel with reading operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002189770A JP2004030527A (ja) 2002-06-28 2002-06-28 記憶制御装置、および記憶制御方法

Publications (1)

Publication Number Publication Date
JP2004030527A true JP2004030527A (ja) 2004-01-29

Family

ID=29774307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002189770A Pending JP2004030527A (ja) 2002-06-28 2002-06-28 記憶制御装置、および記憶制御方法

Country Status (2)

Country Link
US (1) US7395489B2 (ja)
JP (1) JP2004030527A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645791B2 (en) 2011-11-07 2014-02-04 Samsung Electronics Co., Ltd. Data cache controller, devices having the same, and method of operating the same
WO2014097464A1 (ja) * 2012-12-20 2014-06-26 富士通株式会社 データ比較回路、及び、処理装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246300B1 (en) 2004-08-06 2007-07-17 Integrated Device Technology Inc. Sequential flow-control and FIFO memory devices having error detection and correction capability with diagnostic bit generation
WO2007097040A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited 情報処理装置の制御方法、情報処理装置
US7840874B2 (en) * 2006-12-27 2010-11-23 Mips Technologies, Inc. Speculative cache tag evaluation
US8606322B2 (en) * 2010-10-25 2013-12-10 Raytheon Applied Signal Technology, Inc. Portable cellular base station configuration
US8588853B2 (en) 2010-10-25 2013-11-19 Raytheon Applied Signal Technology, Inc. Femtocell configuration
JP2014052971A (ja) * 2012-09-10 2014-03-20 Toshiba Corp 半導体集積回路
US9740557B2 (en) * 2014-02-25 2017-08-22 Imagination Technologies Limited Pipelined ECC-protected memory access
JP6540703B2 (ja) * 2014-07-24 2019-07-10 ソニー株式会社 メモリコントローラおよびメモリコントローラの制御方法
US10474552B2 (en) * 2017-05-18 2019-11-12 Nxp Usa, Inc. Hardware and software debug using data dependency tracing
DE102018122826A1 (de) 2017-09-21 2019-03-21 Samsung Electronics Co., Ltd. Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
TWI764771B (zh) * 2021-06-29 2022-05-11 群聯電子股份有限公司 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079450A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 記憶装置エラ−訂正方式
JPS62130444A (ja) * 1985-12-03 1987-06-12 Nec Corp メモリアクセス制御装置
JPH0588993A (ja) * 1991-09-25 1993-04-09 Shikoku Nippon Denki Software Kk メモリ制御システム
JPH05334196A (ja) * 1991-09-30 1993-12-17 Oki Electric Ind Co Ltd メモリ多重化システムにおけるメモリ管理方式
JPH06243034A (ja) * 1993-01-29 1994-09-02 Motorola Inc 推論的データ転送を有するデータ処理装置と動作方法
JPH06324943A (ja) * 1993-05-17 1994-11-25 Hitachi Ltd 主記憶制御方法
JPH09282237A (ja) * 1996-04-19 1997-10-31 Fujitsu General Ltd Eepromを用いた記憶装置
JPH11353242A (ja) * 1998-06-10 1999-12-24 Oki Electric Ind Co Ltd メモリ制御システム
JP2000148601A (ja) * 1998-11-05 2000-05-30 Nec Ic Microcomput Syst Ltd データ保護装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4612640A (en) * 1984-02-21 1986-09-16 Seeq Technology, Inc. Error checking and correction circuitry for use with an electrically-programmable and electrically-erasable memory array
EP0496506B1 (en) * 1991-01-25 2000-09-20 Hitachi, Ltd. Fault tolerant computer system incorporating processing units which have at least three processors
US5434775A (en) * 1993-11-04 1995-07-18 The General Hospital Corporation Managing an inventory of devices
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
US6772383B1 (en) * 1999-05-27 2004-08-03 Intel Corporation Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US6848070B1 (en) * 1999-11-24 2005-01-25 Intel Corporation Error correcting code scheme
US6553457B1 (en) * 2000-04-19 2003-04-22 Western Digital Technologies, Inc. Tag memory disk cache architecture
US6802039B1 (en) * 2000-06-30 2004-10-05 Intel Corporation Using hardware or firmware for cache tag and data ECC soft error correction

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079450A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 記憶装置エラ−訂正方式
JPS62130444A (ja) * 1985-12-03 1987-06-12 Nec Corp メモリアクセス制御装置
JPH0588993A (ja) * 1991-09-25 1993-04-09 Shikoku Nippon Denki Software Kk メモリ制御システム
JPH05334196A (ja) * 1991-09-30 1993-12-17 Oki Electric Ind Co Ltd メモリ多重化システムにおけるメモリ管理方式
JPH06243034A (ja) * 1993-01-29 1994-09-02 Motorola Inc 推論的データ転送を有するデータ処理装置と動作方法
JPH06324943A (ja) * 1993-05-17 1994-11-25 Hitachi Ltd 主記憶制御方法
JPH09282237A (ja) * 1996-04-19 1997-10-31 Fujitsu General Ltd Eepromを用いた記憶装置
JPH11353242A (ja) * 1998-06-10 1999-12-24 Oki Electric Ind Co Ltd メモリ制御システム
JP2000148601A (ja) * 1998-11-05 2000-05-30 Nec Ic Microcomput Syst Ltd データ保護装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645791B2 (en) 2011-11-07 2014-02-04 Samsung Electronics Co., Ltd. Data cache controller, devices having the same, and method of operating the same
WO2014097464A1 (ja) * 2012-12-20 2014-06-26 富士通株式会社 データ比較回路、及び、処理装置

Also Published As

Publication number Publication date
US20040001269A1 (en) 2004-01-01
US7395489B2 (en) 2008-07-01

Similar Documents

Publication Publication Date Title
US12007907B2 (en) Victim cache with write miss merging
JP4395425B2 (ja) 破損データ値を処理するためのデータ処理装置と方法
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US7447844B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
JP2004030527A (ja) 記憶制御装置、および記憶制御方法
JPH0340047A (ja) キヤツシユ・ライン・ストア方法
US6138206A (en) Data register for multicycle data cache read
JPH09146836A (ja) キャッシュ索引の障害訂正装置
JPH05324468A (ja) 階層化キャッシュメモリ
US7607048B2 (en) Method and apparatus for protecting TLB's VPN from soft errors
JP3733604B2 (ja) キャッシュメモリ
JP4267040B2 (ja) メモリコントローラ及びこれを備えたマルチプロセッサシステム
JPH0773106A (ja) キャッシュメモリ
JPH03230238A (ja) キャッシュメモリ制御方式
JP3716190B2 (ja) キャッシュメモリにおけるデータアレイの訂正不能障害救済方式
JP3171639B2 (ja) データ処理装置
JP2780555B2 (ja) キャッシュ・メモリ内蔵型マイクロプロセッサ
JP3492544B2 (ja) キャッシュメモリの更新キャンセルシステム及び方法
US7069391B1 (en) Method for improved first level cache coherency
JP2791319B2 (ja) データ処理装置
JP2690697B2 (ja) バッファメモリ装置
JPH09325912A (ja) 情報処理装置
JPH01169553A (ja) バッファ記憶制御方式
JPH0564376B2 (ja)
JPH0683707A (ja) キャッシュメモリ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080215

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080328