JP5010271B2 - エラー訂正コード生成方法、およびメモリ制御装置 - Google Patents

エラー訂正コード生成方法、およびメモリ制御装置 Download PDF

Info

Publication number
JP5010271B2
JP5010271B2 JP2006353505A JP2006353505A JP5010271B2 JP 5010271 B2 JP5010271 B2 JP 5010271B2 JP 2006353505 A JP2006353505 A JP 2006353505A JP 2006353505 A JP2006353505 A JP 2006353505A JP 5010271 B2 JP5010271 B2 JP 5010271B2
Authority
JP
Japan
Prior art keywords
data
store
error
error detection
register
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
JP2006353505A
Other languages
English (en)
Other versions
JP2008165449A (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 JP2006353505A priority Critical patent/JP5010271B2/ja
Priority to US11/864,057 priority patent/US8127205B2/en
Publication of JP2008165449A publication Critical patent/JP2008165449A/ja
Application granted granted Critical
Publication of JP5010271B2 publication Critical patent/JP5010271B2/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/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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Description

本発明は、キャッシュメモリの制御方式に係り、さらに詳しくはキャッシュメモリへデータを書き込む場合のエラー訂正コードの生成方法、およびエラー訂正コード生成を制御するキャッシュメモリ制御装置に関する。
メインメモリ内の一部のデータを計算機の中央処理装置(CPU)に近いキャッシュメモリに格納しておき、CPUの処理速度を高める方式が一般的に用いられている。キャッシュメモリに格納されているデータに対しては、エラー訂正コード(ECC)を付けることによってデータの保護が行われる。
しかしながら近年の半導体技術の微細化に伴い、キャッシュメモリとして使用されるRAMを構成する記憶素子も微細化し、記憶されたデータの反転が発生しやすくなってきている。またRAM内部の回路についても、動作周波数の向上のために内部動作タイミングの調整用のマージンが削られる傾向があり、動作可能な電圧や温度が制限されるために、電圧変動や温度変動に対するデータ保持の信頼性が低くなるという問題点がある。
このような事情によってキャッシュメモリにおいても各種のモードの故障が発生するようになっている。そのモードの第1は一般にソフトエラーと呼ばれるものであり、α線などの衝突によってRAMセルの値の反転が発生するものである。第2のモードはデータの書き込み時にRAMセルの値を正しく更新できないものであり、これら第1、第2のモードではRAM内部の値が壊れていることになる。
第3のモードは、RAMセルの値を読み出したときに、読み出し線の電荷によってRAMセルの値が反転するものであり、また第4のモードはライト・リカバリー不良によって正しいRAMセルの値を読み出すことができないものである。
ライト・リカバリー不良は、例えばSRAMのエラーであり、SRAMに対するデータの書き込み直後に読み出しを行う場合に、読み出し直前の書き込みデータがビット線に残留して次のサイクルにおける読み出しのマージンを低下させる現象である。この現象が生ずると軽い場合には遅延が大きくなり、ひどい場合には読み出しエラーが発生することになる。
このようなRAMの故障のECC生成への影響について図10を用いて説明する。図10は、キャッシュメモリへのデータ書き込み時におけるエラー訂正コード生成方式の従来例の説明図である。ここではキャッシュメモリの1ラインが、例えば8バイトであり、その前半4バイトに対してデータを書き込むものとして、エラー訂正コードの生成の従来方式について説明する。
図10の従来方式では、例えばCPUの内部の命令ユニットから発行されるストア命令に対応して、まずキャッシュメモリの内部のストア対象キャッシュラインのデータがチェックされ、ストア対象キャッシュラインにエラーがないことが確認された後に、実際に、例えば演算ユニットから与えられるストアデータをキャッシュメモリに書き込む動作が行われていた。図10は、第1段階としてストア対象キャッシュラインにエラーがないことが確認された後に、第2段階としてストアデータがキャッシュメモリに書き込まれる場合の、エラー訂正コード生成の説明図である。
まずサイクル0において、演算ユニットから出力されたストアデータはストアバッファ(STB)に格納され、サイクル1において書き込みデータとしてキャッシュメモリに与えられる。サイクル1においては、同時にキャッシュメモリの内部のストア対象キャッシュライン、すなわち第1段階でエラーがないことが確認されたキャッシュラインのデータが出力され、サイクル2においてストアバッファに格納されているストアデータとマージされ、サイクル3においてマージ結果のデータに対してエラー訂正コードが生成され、サイクル4においてECCを格納するECC格納用RAMにそのECCの登録が行われる。すなわちキャッシュアクセス高速化のために、ECCの生成は実際のキャッシュデータの更新後に行われることになる。
図10で説明した従来技術では、第1段階でキャッシュメモリの内部のストア対象キャッシュラインに対してエラーが検出されなくても、第1段階から第2段階に至る間にRAMのエラーが発生する可能性がある。このようなエラーが発生した場合には、第2段階でキャッシュメモリから読み出されたキャッシュラインの、例えばストア対象外の後半4バイトの中に1ビットエラーが生じ、そのキャッシュラインデータがストアデータとマージされることになるために、ストア後のデータに対して正しいエラー訂正コード作成することができなくなるという問題点がある。また、この場合、ストア後のデータは正しくないデータであり、このエラーが例えばパリティチェックによって発見されても、エラー訂正そのものが不可能であり、そのエラーは訂正不能なエラーとして処理される。さらにデータマージのためのキャッシュライン読み出しにおいてRAMの読み出し不良が発生した場合にも、例えばそのデータを使用しないようにするなど、訂正不能なエラーとして処理する必要があるという問題点があった。
このようなキャッシュメモリに対するエラー訂正の従来技術としての特許文献1には、キャッシュメモリ中でパイプライン式エラー検査、および訂正を実施するために、複数のデータバイト用の検査ビットを設けることによって、エラー検出、および訂正のオーバヘッドを低下させることができる技術が開示されている。
またソフトエラー訂正のための従来技術としての特許文献2には、キャッシュラインのデータのパリティをチェックし、パリティエラーが検出されなかった場合に訂正を行うことなく、そのデータを使用し、エラーが検出された場合にはエラー訂正を実行する技術が開示されている。
しかしながらこのような従来技術を用いても、キャッシュメモリに格納されているデータにエラーがないことを確認した後に、実際にキャッシュメモリに書き込みデータを書き込むまでにエラーが生じた場合には、ストア後のデータに対して正しいエラー訂正コードを生成することができないという問題点を解決することはできなかった。
特開平3−108041号 「パイプライン式エラー検査/訂正キャッシュ・メモリ及びキャッシュ・メモリ・アレイ」 特開2004−514184号 「デジタル・データにおけるソフト・エラーを訂正するための方法および装置」
本発明の課題は、上述の問題点に鑑み、ストア対象キャッシュラインのデータにエラーがないことを確認した後に、実際のキャッシュメモリにストアデータを書き込む前にRAMのエラーが発生しても、正しいエラー訂正コードを生成可能とすることである。
ラー訂正コード生成方法の一観点によれば、第1のストア命令に対応する第1のストアデータの書込み前に前記第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを第1のレジスタに格納しておき、読み出した前記データの前記第1のレジスタへの格納後であって、前記第1のストアデータを含む前記キャッシュラインに対応するキャッシュデータについてのエラー検出情報の生成前に、前記第1のストアデータを前記キャッシュラインに書き込み、前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして生成した第1のマージデータのエラーの検出に用いることができるエラー検出情報を生成することを特徴とするエラー訂正コードを生成する方法が用いられる。
ャッシュメモリ制御装置の一観点によれば、第1のストア命令に対応する第1のストアデータの書込み前に前記第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを格納しておく第1のレジスタと、読み出した前記データの前記第1のレジスタへの格納後であって、前記第1のストアデータを含む前記キャッシュラインに対応するキャッシュデータについてのエラー検出情報の生成前に、前記第1のストアデータを前記キャッシュラインに書き込む書込み部と、前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして第1のマージデータを生成するマージデータ生成部と、生成された前記第1のマージデータのエラーの検出に用いることができるエラー検出情報を生成するエラー検出情報生成部を有する
以上のように本発明によれば、ストアデータのキャッシュメモリへの書き込みに先立って、ストア対象キャッシュラインのデータが、格納データのエラー発生の可能性が少ないフリップ・フロップ(FF)によって構成されるレジスタに格納された後に、その格納内容とストアデータとのマージが行われ、そのマージ結果に対してエラー訂正コードが生成される。
本発明によれば、ストア対象キャッシュラインのデータにエラーがないことを確認してから、実際にキャッシュメモリにストアデータを書き込むまでにキャッシュメモリとしてのRAMの故障が発生しても、正しいエラー訂正コードを生成することが可能となり、情報処理の信頼性の向上に寄与するところが大きい。
図1は、本発明のエラー訂正コード生成方法の原理的な機能ブロック図である。同図において、まずステップS1でストアデータのキャッシュメモリへの書き込みに先立って、書き込み対象キャッシュラインのデータがレジスタに格納される。このレジスタは、例えば後述するフェッチ・データ・レジスタ(FCDR)である。
そしてステップS2でそのレジスタの格納内容とストアデータとのマージが行われる。キャッシュメモリの1ラインが、例えば8バイトであり、ストアデータがその前半4バイトに書き込まれるものとすると、マージ結果の前半4バイトはストアデータとなり、後半4バイトはストア対象外のデータとしてレジスタに格納されていた内容となる。
そしてステップS3で、レジスタの格納内容とストアデータとがマージされた結果に対してエラー訂正コード生成回路によってエラー訂正コードが生成され、例えばエラー訂正コードを格納するRAMにECCデータとして格納される。
図2は、本発明のエラー訂正コード生成方式が用いられる計算機の中央処理装置(CPU)の構成例のブロックである。同図においてCPU1は、命令ユニット(IU)2、演算ユニット(EU)3、一次データ・キャッシュメモリ(L1D$)4、一次命令・キャッシュメモリ(L1I$)5、二次キャッシュメモリ(L2$)6を備えている。
本発明のエラー訂正コードの生成方式は、図2の一次データ・キャッシュメモリ(L1D$)4において実行されるものであり、図3はその一次データ・キャッシュメモリの詳細構成ブロック図である。同図においては一次データ・キャッシュメモリ4に接続されている命令ユニット2、演算ユニット3、および二次キャッシュメモリ6も示されている。
一次データ・キャッシュメモリ4は、実際にデータを格納するメモリ、すなわちオペランド・キャッシュしてのL1D$ RAM10、演算ユニット3からストアデータを受け取り、そのデータを一時的に格納するストアバッファ11、本実施形態において最も特徴
的な構成要素として、一次データ・キャッシュメモリ10の内部のストア対象キャッシュラインデータを一時的に保持するフェッチ・データ・レジスタ(FCDR)12、命令ユニット2からの指示に対応して一次データ・キャッシュメモリ10に対するアドレスを指定するアドレス選択部13、アドレス選択部13などの動作を制御するコントロールユニット14、一次データ・キャッシュメモリ10の内部のデータに対するエラーを検出するエラー検出部15、ストアバッファ11内のデータとFCDR12に保持されているデータとをマージして、マージ結果に対するエラー訂正コード(ECC)を生成するストアマージおよびECC生成部16、生成されたECCが格納されるECC RAM17、一次データ・キャッシュメモリから二次キャッシュメモリ6へのムーブアウトデータに対するECCのチェックを行うECCチェック/訂正部18、二次キャッシュメモリ6からのムーブインデータに対するECCの検査を行い、ムーブインデータに対するパリティを生成すECCチェック/訂正およびパリティ生成部19を備えている。ここで二次キャッシュメモリ6と一次データ・キャッシュメモリ4との間で転送されるデータはECCで保護されており、また一次データ・キャッシュメモリに格納されているデータはパリティによって保護されているものとする。なお本発明のキャッシュメモリ制御装置は、図3の一次データ・キャッシュメモリ4の内部で、L1D$RAM10を除くすべてのブロックによって構成されているものとする。
図4は、図3のストアバッファ11とフェッチ・データ・レジスタ12との構成の説明図である。同図においてストアバッファ(STB)11とフェッチ・データ・レジスタ(FCDR)12とはともに、それぞれn個のエントリを備えており、ストアバッファ11の各エントリにはストアデータが登録され、フェッチ・データ・レジスタ12には1次データ・キャッシュメモリ上のストアデータが書き込まれる前のストア対象キャッシュラインのデータが各エントリに登録される。STB11のストアデータとFCDR12の登録データのうちで、同じキャッシュラインに対応するデータが1対1の形式で読み出され、ストアマージおよびECC生成部16に与えられる。
これに対して従来技術においては、図3内でL1D$RAM10からストアマージおよびECC生成部16に対する点線の矢印によって、ストア対象キャッシュラインのデータが与えられ、ストアバッファ11のデータとのマージが行われていた。
なお、図4においてSTB11とFCDR12とのそれぞれn個のエントリに対しては、基本的には異なるキャッシュラインに対するデータが格納されるが、同一のアドレス、すなわち同一キャッシュラインに対するデータのストアが連続するような場合には、複数のエントリに同じキャッシュラインに対応するデータが格納される場合がある。
図5は、本実施形態におけるストア対象キャッシュラインデータのFCDR12への登録動作の説明図である。本実施形態においては、前述と同様に一次データ・キャッシュメモリへのデータ書き込み、およびECCの生成は、2つの段階で行われるものとし、第1の段階は命令ユニットからのリクエスト、あるいはストア動作の第1段階を示すST1リクエストに対する動作として行われるものとする。図5は第1段階、すなわちIU−REQ/ST1−REQに対する動作の説明図である。
図5においてサイクル1で、一次データ・キャッシュメモリ10から、すでにエラーがないことが確認されたストア対象キャッシュラインのデータがセレクタ21に与えられ、サイクル2でこのデータ、すなわちセレクタ21の上側の入力端子へのデータが選択され、サイクル3で中継用のレジスタ22を介して、サイクル4でそのデータがFCDR12に格納される。FCDR12に格納されるデータは、ストアデータを格納すべきアドレスによって指定されるストア対象キャッシュラインのデータであり、すでにエラーがないことが確認された、ストアデータ書き込み前のキャッシュラインのデータである。
図6は、キャッシュメモリへのデータストアの第2段階における動作の説明図である。この第2段階をST2−REQに対する動作として説明する。図6においては、図5で説明したIU−REQ/ST1−REQに対する動作と、ST2−REQに対する動作とが、それぞれの動作におけるサイクル0から5に対して示されているが、図7のタイムチャートで説明するように、図5における動作の後に、図6におけるST2−REQに対する動作が行われることは当然である。
図6において、ST2−REQに対する動作のサイクル0でストアバッファ11から読み出されたデータは、サイクル1で、キャッシュメモリへの書き込みデータとして、一次データ・キャッシュメモリ10に与えられる。一方、ストアバッファ11に格納されているデータは、サイクル2でセレクタ21によって選択されて出力され、サイクル3で中継用バッファ22に格納される。すなわち、サイクル2ではST2−REQに対する動作として、セレクタ21への2つの入力のうち、下側の入力端子へのデータが選択されて出力される。そしてサイクル4で中継バッファ22内のデータ、すなわちストアデータがFCDR12に与えられ、FCDR12の保持するデータの更新が行われる。
ST2−REQに対する動作としてのサイクル2では、セレクタ21によってストアデータが中継バッファ22に出力されると同時に、IU−REQ/ST1−REQに対する動作としてFCDR12に格納された、ストアデータが書き込まれる前のストア対象キャッシュラインのデータがFCDR12から出力され、マージ回路23によってストアバッファ11から出力されるストアデータとマージされ、そのマージ結果がストア・フェッチ・データ・レジスタ(STFDR)24に格納され、サイクル3でマージされたデータに対するECCがECC生成回路25によって生成され、サイクル4で図3のECCRAM17に格納される。
ストアデータが書き込まれたキャッシュラインデータ、例えば8バイトのうちで後半4バイトのストア対象外データのうちに1ビットエラーが発生している可能性もあるが、エラー訂正コードは正しく生成されており、ストアデータが書き込まれたキャッシュラインデータに対するエラー訂正コードによるチェックを、例えば図3のECCチェック/訂正部18によって実行し、エラー訂正を行うことが可能である。
なお本発明の特許請求の範囲は請求項4、5におけるバッファはストアバッファ11に、レジスタはフェッチ・データ・レジスタ(FCDR)12に、マージ結果保持レジスタはストア・フェッチ・データ・レジスタ(STFDR)24に相当する。
図7は、IU−REQに対する動作と、ST2−REQに対する動作との概略的なタイムチャートである。IU−REQに対するパイプラインの処理としてのサイクル0はプライオリティ、サイクル1はタグ、サイクル2はマッチ、サイクル3はバッファ、サイクル4はリザルトのサイクルであり、サイクル3でストアアドレスがバリッドになると、サイクル4でFCDRへのライト、すなわちストア対象キャッシュラインのFCDRへの格納が行われる。
ST2−REQに対する動作は、サイクル6でプライオリティ、7でタグ、8でマッチ、9でバッファ、10でリザルトのサイクルの処理として行われ、サイクル8でFDCR−SELECT、すなわちFDCRの内容が選択されてリードされ、ストアデータとのマージが行われ、サイクル9でその結果に対応してECCが生成され、ECCアレイへの書き込みが行われる。
図4で説明したように、本実施形態においては、ストアバッファ11とFCDR12と
にそれぞれn個のエントリが設けられ、キャッシュメモリへのデータの書き込みに対応して、STB11とFCDR12とのエントリに、ストアデータとストア対象キャッシュラインのデータが1対1の形式で登録される。例えば同一のアドレス、すなわち同一のキャッシュラインに連続してデータのストアが行われる場合には、STB11とFCDR12とのそれぞれ複数のエントリにデータの登録が行われ、連続的にデータ書き込み処理が行われることになる。図8は、そのような場合のECC更新動作の説明図である。
図8においてIU−REQに対する動作の説明は省略し、3つの連続するST2−REQ動作に対して、ストアデータとマージするためのFCDRの格納内容のリード動作について説明する。まず最初のST2−REQ−0に対する動作としてサイクル3でアドレスマッチが検出される。図示しないが、同時に図6のサイクル2で説明したように、FCDR12の格納内容のリードが行われ、その格納内容がストアデータとマージされて、マージ結果に対するECCが生成される。一方、図6で説明したように、ST2−REQに対する動作としてセレクタ21、中継用バッファ22を介してストアデータがFCDR12に与えられ、FCDR12の格納内容の更新が行われる。
次のST2−REQ−1に対するパイプラインの動作は、ST2−REQ−0に対するパイプラインの動作より2サイクル遅れて開始されるものとする。この場合、アドレスマッチとFCDRの格納内容のリードはサイクル5で行われ、この時すでに先行するストア命令に対応するストアデータを用いたFCDR12の更新が行われており、FCDR12からは先行ストアデータが格納されたストア対象キャッシュラインのデータを読み出すことができ、新たなストアデータとのマージによって新たに正しいECCを生成することが可能となる。そしてサイクル7において新たなストアデータを用いてFCDR12の更新が行われる。
さらに引き続くST2−REQ−2に対するパイプラインの動作は、さらに1サイクル遅れて開始されるものとする。この場合には、サイクル6においてアドレスマッチが検出され、FCDR12の格納内容がリードされるが、この時先行するストア命令に対応するST2−REQ−1の動作として行われるべきFCDR12の更新はまだ行われておらず、FCDR12から読み出されたデータとストアデータとのマージを行っても、そのマージ結果を用いることによっては、正しいECCを生成することはできなくなってしまうという問題が生ずる。
図9は、このように同一アドレス、すなわち同一キャッシュラインに連続的にデータのストアが行われる場合の本実施形態におけるECC生成方式の説明図である。図8で説明したように、このような連続的なストアに対応して、FCDR12の内容をリードしてストアデータの書き込みを行うと、先行するストア命令に伴うFCDR12の格納内容の更新が行われないうちに、その内容を読み出してストアデータとのマージを行ってしまう可能性があるため、図9では先行するストア命令に対応してストア・フェッチ・データ・レジスタ(STFDR)24に格納された、先行ストア命令に対応するストアデータがマージされた結果をマージ回路23の入力側にフィードバックし、新たなストア命令に対応するストアデータとそのフィードバックデータとをマージして再びSTSDR24に格納し、その格納内容を用いて新たなECCの生成を行うことによって、後続のストア命令に対しても正しいECCを生成することが可能となる。
(付記1)
ストア命令に対応するストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータをレジスタに格納し、
該ストアデータをキャッシュメモリに書き込み、
前記レジスタ格納内容と、該ストアデータとをマージし、
該マージ結果に対してエラー訂正コードを生成することを特徴とするエラー訂正コード生成方法。
(付記2)
前記ストア命令の後続のストア命令が前記キャッシュラインと同一のキャッシュラインへのデータのストア命令であるとき、
前記ストア命令に対応する前記マージの結果と後続ストア命令に対応するストアデータとをマージし、
該マージ結果を用いて、該後続ストア命令に対応するエラー訂正コードを生成することを特徴とする請求項1記載のエラー訂正コード生成方法。
(付記3)
前記キャッシュメモリが、ランダム・アクセス・メモリによって構成されることを特徴とする請求項1、または2記載のエラー訂正コード生成方法。
(付記4)
ストア命令に対応するストアデータが格納されるバッファと、
該ストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータが格納されるレジスタと、
該ストアデータと該レジスタの格納内容とをマージするマージ回路と、
該マージ結果に対してエラー訂正コードを生成するエラー訂正コード生成回路とを備えることを特徴とするキャッシュメモリ制御装置。
(付記5)
前記マージ回路は、
同一キャッシュラインにデータを書き込むべき連続ストア命令のうち、先行ストア命令に対して、前記レジスタの格納内容とストアデータとをマージし、
後続ストア命令に対して、先行ストア命令に対応して前記マージされたデータと該後続ストア命令に対応するストアデータとをマージすることを特徴とする請求項4記載のキャッシュメモリ制御装置。
(付記6)
前記キャッシュメモリがランダム・アクセス・メモリによって構成されることを特徴とする請求項4、または5記載のキャッシュメモリ制御装置。
本発明のエラー訂正コード生成方法の原理的な機能ブロック図である。 本発明のエラー訂正コード生成方式が適用されるCPUの構成ブロック図である。 図2の一次データ・キャッシュメモリの詳細構成ブロック図である。 ストアバッファとフェッチ・データ・レジスタとの構成の説明図である。 ストア対象キャッシュラインのフェッチ・データ・レジスタへの登録の説明図である。 フェッチ・データ・レジスタ格納データとストアデータとのマージによるエラー訂正コード生成の説明図である。 エラー訂正コード生成までのタイムチャートである。 同一アドレスへのデータ連続ストア動作における問題点の説明図である。 同一アドレスへのデータ連続ストア動作における正しいエラー訂正コード生成方法の説明図である。 エラー訂正コード生成方式の従来例の説明図である。
符号の説明
1 中央処理装置(CPU)
2 命令ユニット(IU)
3 演算ユニット(EU)
4 一次データ・キャッシュメモリ
5 一次命令・キャッシュメモリ
6 二次キャッシュメモリ
11 ストアバッファ(STB)
12 フェッチ・データ・レジスタ(FCDR)
13 アドレス選択部
14 コントロールユニット
15 エラー検出部
16 ストアマージおよびECC生成部
17 エラー訂正コード格納用ランダム・アクセス・メモリ(ECCRAM)
18 ECCチェック/訂正部
19 ECCチェック/訂正およびパリティ生成部
21 セレクタ
22 中継用レジスタ
23 マージ回路
24 ストア・フェッチ・データ・レジスタ(STFDR)
25 エラー訂正コード(ECC)生成回路

Claims (12)

  1. 第1のストア命令に対応する第1のストアデータの書込み前に前記第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを第1のレジスタに格納しておき、
    読み出した前記データの前記第1のレジスタへの格納後であって、前記第1のストアデータを含む前記キャッシュラインに対応するキャッシュデータについてのエラー検出情報の生成前に、前記第1のストアデータを前記キャッシュラインに書き込み、
    前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして生成した第1のマージデータのエラーの検出に用いることができるエラー検出情報を生成することを特徴とするエラー訂正コード生成方法。
  2. 第1のストア命令に対応する第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを第1のレジスタに格納しておき、
    読み出した前記データの前記第1のレジスタへの格納後に、前記第1のストアデータを前記キャッシュラインに書き込み、
    前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして生成した第1のマージデータを第2のレジスタに格納し、
    前記第1のストア命令の後に発行された第2のストア命令に対応する第2のストアデータを前記キャッシュラインに書き込み、
    前記第2のストアデータと前記第2のレジスタに格納された前記第1のマージデータとをマージして生成した第2のマージデータのエラー検出に用いることができるエラー検出情報を生成することを特徴とするエラー訂正コード生成方法。
  3. 前記エラー訂正コード生成方法はさらに、
    エラー検出部により前記キャッシュラインのエラーの有無を検出することを特徴とする請求項1又は2に記載のエラー訂正コード生成方法。
  4. 前記エラー訂正コード生成方法はさらに、
    生成した前記エラー検出情報を、エラー検出情報を保持するエラー検出情報メモリに書き込むことを特徴とする請求項1〜3のいずれか1項に記載のエラー訂正コード生成方法。
  5. 前記エラー訂正コード生成方法はさらに、
    生成した前記第1のマージデータのエラー検出に用いることができる第1のエラー検出情報を生成することを特徴とする請求項4に記載のエラー訂正コード生成方法。
  6. 前記エラー訂正コード生成方法はさらに、
    生成した前記第1のエラー検出情報を前記エラー検出情報メモリに書き込むことを特徴とする請求5記載のエラー訂正コード生成方法。
  7. 第1のストア命令に対応する第1のストアデータの書込み前に前記第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを格納しておく第1のレジスタと、
    読み出した前記データの前記第1のレジスタへの格納後であって、前記第1のストアデータを含む前記キャッシュラインに対応するキャッシュデータについてのエラー検出情報の生成前に、前記第1のストアデータを前記キャッシュラインに書き込む書込み部と、
    前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして第1のマージデータを生成するマージデータ生成部と、
    生成された前記第1のマージデータのエラーの検出に用いることができるエラー検出情報を生成するエラー検出情報生成部を有することを特徴とするキャッシュメモリ制御装置。
  8. 第1のストア命令に対応する第1のストアデータが書き込まれるキャッシュラインにエラーがない場合、前記キャッシュラインから読み出したデータを格納しておく第1のレジスタと、
    読み出した前記データの前記第1のレジスタへの格納後に、前記第1のストアデータを前記キャッシュラインに書き込むとともに、前記第1のストア命令の後に発行された第2のストア命令に対応する第2のストアデータを前記キャッシュラインに書き込む書込み部と、
    前記第1のレジスタに格納されたデータと前記第1のストアデータとをマージして生成した第1のマージデータを格納する第2のレジスタと、
    前記第2のストアデータと前記第2のレジスタに格納された前記第1のマージデータとをマージして第2のマージデータを生成するマージデータ生成部と、
    生成された前記第2のマージデータのエラー検出に用いることができるエラー検出情報を生成するエラー検出情報生成部を有することを特徴とするキャッシュメモリ制御装置。
  9. 前記キャッシュメモリ制御装置はさらに、
    前記キャッシュラインのエラーの有無を検出するエラー検出部を有することを特徴とする請求項7又は8に記載のキャッシュメモリ制御装置。
  10. 前記キャッシュメモリ制御装置はさらに、
    生成した前記エラー検出情報を、エラー検出情報を保持するエラー検出情報メモリに書き込むことを特徴とする請求項7〜9のいずれか1項に記載のキャッシュメモリ制御装置。
  11. 前記キャッシュメモリ制御装置はさらに、
    生成した前記第1のマージデータのエラー検出に用いることができる第1のエラー検出情報を生成することを特徴とする請求項10に記載のキャッシュメモリ制御装置。
  12. 前記キャッシュメモリ制御装置はさらに、
    生成した前記第1のエラー検出情報を前記エラー検出情報メモリに書き込むことを特徴とする請求項11記載のキャッシュメモリ制御装置。
JP2006353505A 2006-12-27 2006-12-27 エラー訂正コード生成方法、およびメモリ制御装置 Expired - Fee Related JP5010271B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006353505A JP5010271B2 (ja) 2006-12-27 2006-12-27 エラー訂正コード生成方法、およびメモリ制御装置
US11/864,057 US8127205B2 (en) 2006-12-27 2007-09-28 Error correction code generation method and memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006353505A JP5010271B2 (ja) 2006-12-27 2006-12-27 エラー訂正コード生成方法、およびメモリ制御装置

Publications (2)

Publication Number Publication Date
JP2008165449A JP2008165449A (ja) 2008-07-17
JP5010271B2 true JP5010271B2 (ja) 2012-08-29

Family

ID=39585799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006353505A Expired - Fee Related JP5010271B2 (ja) 2006-12-27 2006-12-27 エラー訂正コード生成方法、およびメモリ制御装置

Country Status (2)

Country Link
US (1) US8127205B2 (ja)
JP (1) JP5010271B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2159705B1 (en) 2007-06-20 2016-03-02 Fujitsu Limited Cache memory device, arithmetic processing unit, and its control method
JP5466953B2 (ja) * 2008-02-08 2014-04-09 富士通株式会社 バックアップ方法及びディスクアレイシステム
KR101543245B1 (ko) 2009-03-18 2015-08-11 삼성전자주식회사 에러 교정 장치와 이를 포함하는 메모리 장치와 데이터 처리 시스템
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US9195551B2 (en) 2012-03-29 2015-11-24 Intel Corporation Enhanced storage of metadata utilizing improved error detection and correction in computer memory
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
WO2015016880A1 (en) 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Global error correction
US9262263B2 (en) * 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
US9684559B1 (en) * 2014-04-25 2017-06-20 Altera Corporation Methods and apparatus for storing error correction information on a memory controller circuit
WO2016095191A1 (en) 2014-12-19 2016-06-23 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
US9934086B2 (en) 2016-06-06 2018-04-03 Micron Technology, Inc. Apparatuses and methods for selective determination of data error repair
JP7184632B2 (ja) * 2018-12-25 2022-12-06 ルネサスエレクトロニクス株式会社 半導体装置
US11036636B2 (en) 2019-06-28 2021-06-15 Intel Corporation Providing improved efficiency for metadata usages
JP2022014963A (ja) 2020-07-08 2022-01-21 富士通株式会社 キャッシュ制御装置及びキャッシュシステムの制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058116A (en) 1989-09-19 1991-10-15 International Business Machines Corporation Pipelined error checking and correction for cache memories
JPH0437935A (ja) * 1990-06-01 1992-02-07 Hitachi Ltd キャッシュメモリを有する計算機
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5687353A (en) * 1995-03-03 1997-11-11 Hal Computer Systems, Inc. Merging data using a merge code from a look-up table and performing ECC generation on the merged data
US6408417B1 (en) * 1999-08-17 2002-06-18 Sun Microsystems, Inc. Method and apparatus for correcting soft errors in digital data
JP2001084064A (ja) 1999-09-16 2001-03-30 Toshiba Corp コンピュータシステム及びコンピュータの拡張装置
US7149945B2 (en) * 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality

Also Published As

Publication number Publication date
JP2008165449A (ja) 2008-07-17
US20080163029A1 (en) 2008-07-03
US8127205B2 (en) 2012-02-28

Similar Documents

Publication Publication Date Title
JP5010271B2 (ja) エラー訂正コード生成方法、およびメモリ制御装置
US7810016B2 (en) Semiconductor storage device equipped with ECC function
EP2159709B1 (en) Error correcting method and computing element
US8589763B2 (en) Cache memory system
JP7303408B2 (ja) 欠陥検出を備えるエラー補正ハードウェア
US20080126905A1 (en) Memory control device, computer system and data reproducing and recording device
JPS6151241A (ja) 制御記憶装置の誤り回復方式
US20080301528A1 (en) Method and apparatus for controlling memory
US7752527B2 (en) Microcontroller and RAM
JP2008090442A (ja) メモリ制御装置
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
JPWO2007088597A1 (ja) エラー訂正コード生成方法及びメモリ管理装置
JP4102313B2 (ja) 半導体集積回路装置
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US8286053B2 (en) Method and apparatus for reading data
JP6332134B2 (ja) メモリ診断回路
KR20210116342A (ko) 데이터 처리 디바이스 및 데이터 처리 방법
JP5446931B2 (ja) 誤り検出訂正装置及びメモリ装置
JPH0773114A (ja) 宇宙用デジタル計算機のメモリ制御回路
JPH0316655B2 (ja)
US8533565B2 (en) Cache controller and cache controlling method
JP2004126911A (ja) 制御装置
JP2006155735A (ja) 記憶装置
JP2004326564A (ja) 不揮発性半導体メモリ装置
JP2013156821A (ja) データ処理装置、制御ユニット、メモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120227

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees