(57)【要約】【課題】ストア対象キャッシュラインデータにエラーがないことを確認した後で、実際にストアデータをキャッシュメモリ（ＲＡＭ）に書き込む前にＲＡＭエラーが発生しても、正しいエラー訂正コードを生成可能とする。【解決手段】ストアデータの書き込みに先立ってストア対象キャッシュラインデータをレジスタに格納し、ストアデータをキャッシュメモリに書き込み、レジスタ格納内容とストアデータとをマージし、そのマージ結果に対してエラー訂正コードを生成する。【選択図】図１
2008165449.tif 000002
【特許請求の範囲】
【請求項１】
ストア命令に対応するストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータをレジスタに格納し、
該ストアデータをキャッシュメモリに書き込み、
前記レジスタ格納内容と、該ストアデータとをマージし、
該マージ結果に対してエラー訂正コードを生成することを特徴とするエラー訂正コード生成方法。
【請求項２】
前記ストア命令の後続のストア命令が前記キャッシュラインと同一のキャッシュラインへのデータのストア命令であるとき、
前記ストア命令に対応する前記マージの結果と後続ストア命令に対応するストアデータとをマージし、
該マージ結果を用いて、該後続ストア命令に対応するエラー訂正コードを生成することを特徴とする請求項１記載のエラー訂正コード生成方法。
【請求項３】
前記キャッシュメモリが、ランダム・アクセス・メモリによって構成されることを特徴とする請求項１、または２記載のエラー訂正コード生成方法。
【請求項４】
ストア命令に対応するストアデータが格納されるバッファと、
該ストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータが格納されるレジスタと、
該ストアデータと該レジスタの格納内容とをマージするマージ回路と、
該マージ結果に対してエラー訂正コードを生成するエラー訂正コード生成回路とを備えることを特徴とするキャッシュメモリ制御装置。
【請求項５】
前記マージ回路は、
同一キャッシュラインにデータを書き込むべき連続ストア命令のうち、先行ストア命令に対して、前記レジスタの格納内容とストアデータとをマージし、
後続ストア命令に対して、先行ストア命令に対応して前記マージされたデータと該後続ストア命令に対応するストアデータとをマージすることを特徴とする請求項４記載のキャッシュメモリ制御装置。
【請求項６】
前記キャッシュメモリがランダム・アクセス・メモリによって構成されることを特徴とする請求項４、または５記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリの制御方式に係り、さらに詳しくはキャッシュメモリへデータを書き込む場合のエラー訂正コードの生成方法、およびエラー訂正コード生成を制御するキャッシュメモリ制御装置に関する。
【背景技術】
【０００２】
メインメモリ内の一部のデータを計算機の中央処理装置（ＣＰＵ）に近いキャッシュメモリに格納しておき、ＣＰＵの処理速度を高める方式が一般的に用いられている。キャッシュメモリに格納されているデータに対しては、エラー訂正コード（ＥＣＣ）を付けることによってデータの保護が行われる。
【０００３】
しかしながら近年の半導体技術の微細化に伴い、キャッシュメモリとして使用されるＲＡＭを構成する記憶素子も微細化し、記憶されたデータの反転が発生しやすくなってきている。またＲＡＭ内部の回路についても、動作周波数の向上のために内部動作タイミングの調整用のマージンが削られる傾向があり、動作可能な電圧や温度が制限されるために、電圧変動や温度変動に対するデータ保持の信頼性が低くなるという問題点がある。
【０００４】
このような事情によってキャッシュメモリにおいても各種のモードの故障が発生するようになっている。そのモードの第１は一般にソフトエラーと呼ばれるものであり、α線などの衝突によってＲＡＭセルの値の反転が発生するものである。第２のモードはデータの書き込み時にＲＡＭセルの値を正しく更新できないものであり、これら第１、第２のモードではＲＡＭ内部の値が壊れていることになる。
【０００５】
第３のモードは、ＲＡＭセルの値を読み出したときに、読み出し線の電荷によってＲＡＭセルの値が反転するものであり、また第４のモードはライト・リカバリー不良によって正しいＲＡＭセルの値を読み出すことができないものである。
【０００６】
ライト・リカバリー不良は、例えばＳＲＡＭのエラーであり、ＳＲＡＭに対するデータの書き込み直後に読み出しを行う場合に、読み出し直前の書き込みデータがビット線に残留して次のサイクルにおける読み出しのマージンを低下させる現象である。この現象が生ずると軽い場合には遅延が大きくなり、ひどい場合には読み出しエラーが発生することになる。
【０００７】
このようなＲＡＭの故障のＥＣＣ生成への影響について図１０を用いて説明する。図１０は、キャッシュメモリへのデータ書き込み時におけるエラー訂正コード生成方式の従来例の説明図である。ここではキャッシュメモリの１ラインが、例えば８バイトであり、その前半４バイトに対してデータを書き込むものとして、エラー訂正コードの生成の従来方式について説明する。
【０００８】
図１０の従来方式では、例えばＣＰＵの内部の命令ユニットから発行されるストア命令に対応して、まずキャッシュメモリの内部のストア対象キャッシュラインのデータがチェックされ、ストア対象キャッシュラインにエラーがないことが確認された後に、実際に、例えば演算ユニットから与えられるストアデータをキャッシュメモリに書き込む動作が行われていた。図１０は、第１段階としてストア対象キャッシュラインにエラーがないことが確認された後に、第２段階としてストアデータがキャッシュメモリに書き込まれる場合の、エラー訂正コード生成の説明図である。
【０００９】
まずサイクル０において、演算ユニットから出力されたストアデータはストアバッファ（ＳＴＢ）に格納され、サイクル１において書き込みデータとしてキャッシュメモリに与えられる。サイクル１においては、同時にキャッシュメモリの内部のストア対象キャッシュライン、すなわち第１段階でエラーがないことが確認されたキャッシュラインのデータが出力され、サイクル２においてストアバッファに格納されているストアデータとマージされ、サイクル３においてマージ結果のデータに対してエラー訂正コードが生成され、サイクル４においてＥＣＣを格納するＥＣＣ格納用ＲＡＭにそのＥＣＣの登録が行われる。すなわちキャッシュアクセス高速化のために、ＥＣＣの生成は実際のキャッシュデータの更新後に行われることになる。
【００１０】
図１０で説明した従来技術では、第１段階でキャッシュメモリの内部のストア対象キャッシュラインに対してエラーが検出されなくても、第１段階から第２段階に至る間にＲＡＭのエラーが発生する可能性がある。このようなエラーが発生した場合には、第２段階でキャッシュメモリから読み出されたキャッシュラインの、例えばストア対象外の後半４バイトの中に１ビットエラーが生じ、そのキャッシュラインデータがストアデータとマージされることになるために、ストア後のデータに対して正しいエラー訂正コード作成することができなくなるという問題点がある。また、この場合、ストア後のデータは正しくないデータであり、このエラーが例えばパリティチェックによって発見されても、エラー訂正そのものが不可能であり、そのエラーは訂正不能なエラーとして処理される。さらにデータマージのためのキャッシュライン読み出しにおいてＲＡＭの読み出し不良が発生した場合にも、例えばそのデータを使用しないようにするなど、訂正不能なエラーとして処理する必要があるという問題点があった。
【００１１】
このようなキャッシュメモリに対するエラー訂正の従来技術としての特許文献１には、キャッシュメモリ中でパイプライン式エラー検査、および訂正を実施するために、複数のデータバイト用の検査ビットを設けることによって、エラー検出、および訂正のオーバヘッドを低下させることができる技術が開示されている。
【００１２】
またソフトエラー訂正のための従来技術としての特許文献２には、キャッシュラインのデータのパリティをチェックし、パリティエラーが検出されなかった場合に訂正を行うことなく、そのデータを使用し、エラーが検出された場合にはエラー訂正を実行する技術が開示されている。
【００１３】
しかしながらこのような従来技術を用いても、キャッシュメモリに格納されているデータにエラーがないことを確認した後に、実際にキャッシュメモリに書き込みデータを書き込むまでにエラーが生じた場合には、ストア後のデータに対して正しいエラー訂正コードを生成することができないという問題点を解決することはできなかった。
【特許文献１】特開平３−１０８０４１号  「パイプライン式エラー検査／訂正キャッシュ・メモリ及びキャッシュ・メモリ・アレイ」
【特許文献２】特開２００４−５１４１８４号  「デジタル・データにおけるソフト・エラーを訂正するための方法および装置」
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の課題は、上述の問題点に鑑み、ストア対象キャッシュラインのデータにエラーがないことを確認した後に、実際のキャッシュメモリにストアデータを書き込む前にＲＡＭのエラーが発生しても、正しいエラー訂正コードを生成可能とすることである。
【課題を解決するための手段】
【００１５】
本発明のエラー訂正コード生成方法として、ストア命令に対応するストアデータのキャ
ッシュメモリへの書き込みに先立って、そのストアデータが格納されるべきキャッシュラインのデータをレジスタに格納し、ストアデータのキャッシュメモリへの書き込み時に、そのレジスタの格納内容とストアデータとをマージし、そのマージ結果に対してエラー訂正コードを生成する方法が用いられる。
【００１６】
本発明のキャッシュメモリ制御装置は、前述のエラー訂正コード生成方法を実行するものであり、ストアデータを格納するバッファと、前述のレジスタと、レジスタ格納内容とストアデータとをマージするマージ回路と、エラー訂正コードを生成するエラー訂正コード生成回路とを備える。
【００１７】
以上のように本発明によれば、ストアデータのキャッシュメモリへの書き込みに先立って、ストア対象キャッシュラインのデータが、格納データのエラー発生の可能性が少ないフリップ・フロップ（ＦＦ）によって構成されるレジスタに格納された後に、その格納内容とストアデータとのマージが行われ、そのマージ結果に対してエラー訂正コードが生成される。
【発明の効果】
【００１８】
本発明によれば、ストア対象キャッシュラインのデータにエラーがないことを確認してから、実際にキャッシュメモリにストアデータを書き込むまでにキャッシュメモリとしてのＲＡＭの故障が発生しても、正しいエラー訂正コードを生成することが可能となり、情報処理の信頼性の向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明のエラー訂正コード生成方法の原理的な機能ブロック図である。同図において、まずステップＳ１でストアデータのキャッシュメモリへの書き込みに先立って、書き込み対象キャッシュラインのデータがレジスタに格納される。このレジスタは、例えば後述するフェッチ・データ・レジスタ（ＦＣＤＲ）である。
【００２０】
そしてステップＳ２でそのレジスタの格納内容とストアデータとのマージが行われる。キャッシュメモリの１ラインが、例えば８バイトであり、ストアデータがその前半４バイトに書き込まれるものとすると、マージ結果の前半４バイトはストアデータとなり、後半４バイトはストア対象外のデータとしてレジスタに格納されていた内容となる。
【００２１】
そしてステップＳ３で、レジスタの格納内容とストアデータとがマージされた結果に対してエラー訂正コード生成回路によってエラー訂正コードが生成され、例えばエラー訂正コードを格納するＲＡＭにＥＣＣデータとして格納される。
【００２２】
図２は、本発明のエラー訂正コード生成方式が用いられる計算機の中央処理装置（ＣＰＵ）の構成例のブロックである。同図においてＣＰＵ１は、命令ユニット（ＩＵ）２、演算ユニット（ＥＵ）３、一次データ・キャッシュメモリ（Ｌ１Ｄ＄）４、一次命令・キャッシュメモリ（Ｌ１Ｉ＄）５、二次キャッシュメモリ（Ｌ２＄）６を備えている。
【００２３】
本発明のエラー訂正コードの生成方式は、図２の一次データ・キャッシュメモリ（Ｌ１Ｄ＄）４において実行されるものであり、図３はその一次データ・キャッシュメモリの詳細構成ブロック図である。同図においては一次データ・キャッシュメモリ４に接続されている命令ユニット２、演算ユニット３、および二次キャッシュメモリ６も示されている。
【００２４】
一次データ・キャッシュメモリ４は、実際にデータを格納するメモリ、すなわちオペランド・キャッシュしてのＬ１Ｄ＄  ＲＡＭ１０、演算ユニット３からストアデータを受け取り、そのデータを一時的に格納するストアバッファ１１、本実施形態において最も特徴
的な構成要素として、一次データ・キャッシュメモリ１０の内部のストア対象キャッシュラインデータを一時的に保持するフェッチ・データ・レジスタ（ＦＣＤＲ）１２、命令ユニット２からの指示に対応して一次データ・キャッシュメモリ１０に対するアドレスを指定するアドレス選択部１３、アドレス選択部１３などの動作を制御するコントロールユニット１４、一次データ・キャッシュメモリ１０の内部のデータに対するエラーを検出するエラー検出部１５、ストアバッファ１１内のデータとＦＣＤＲ１２に保持されているデータとをマージして、マージ結果に対するエラー訂正コード（ＥＣＣ）を生成するストアマージおよびＥＣＣ生成部１６、生成されたＥＣＣが格納されるＥＣＣ  ＲＡＭ１７、一次データ・キャッシュメモリから二次キャッシュメモリ６へのムーブアウトデータに対するＥＣＣのチェックを行うＥＣＣチェック／訂正部１８、二次キャッシュメモリ６からのムーブインデータに対するＥＣＣの検査を行い、ムーブインデータに対するパリティを生成すＥＣＣチェック／訂正およびパリティ生成部１９を備えている。ここで二次キャッシュメモリ６と一次データ・キャッシュメモリ４との間で転送されるデータはＥＣＣで保護されており、また一次データ・キャッシュメモリに格納されているデータはパリティによって保護されているものとする。なお本発明のキャッシュメモリ制御装置は、図３の一次データ・キャッシュメモリ４の内部で、Ｌ１Ｄ＄ＲＡＭ１０を除くすべてのブロックによって構成されているものとする。
【００２５】
図４は、図３のストアバッファ１１とフェッチ・データ・レジスタ１２との構成の説明図である。同図においてストアバッファ（ＳＴＢ）１１とフェッチ・データ・レジスタ（ＦＣＤＲ）１２とはともに、それぞれｎ個のエントリを備えており、ストアバッファ１１の各エントリにはストアデータが登録され、フェッチ・データ・レジスタ１２には１次データ・キャッシュメモリ上のストアデータが書き込まれる前のストア対象キャッシュラインのデータが各エントリに登録される。ＳＴＢ１１のストアデータとＦＣＤＲ１２の登録データのうちで、同じキャッシュラインに対応するデータが１対１の形式で読み出され、ストアマージおよびＥＣＣ生成部１６に与えられる。
【００２６】
これに対して従来技術においては、図３内でＬ１Ｄ＄ＲＡＭ１０からストアマージおよびＥＣＣ生成部１６に対する点線の矢印によって、ストア対象キャッシュラインのデータが与えられ、ストアバッファ１１のデータとのマージが行われていた。
【００２７】
なお、図４においてＳＴＢ１１とＦＣＤＲ１２とのそれぞれｎ個のエントリに対しては、基本的には異なるキャッシュラインに対するデータが格納されるが、同一のアドレス、すなわち同一キャッシュラインに対するデータのストアが連続するような場合には、複数のエントリに同じキャッシュラインに対応するデータが格納される場合がある。
【００２８】
図５は、本実施形態におけるストア対象キャッシュラインデータのＦＣＤＲ１２への登録動作の説明図である。本実施形態においては、前述と同様に一次データ・キャッシュメモリへのデータ書き込み、およびＥＣＣの生成は、２つの段階で行われるものとし、第１の段階は命令ユニットからのリクエスト、あるいはストア動作の第１段階を示すＳＴ１リクエストに対する動作として行われるものとする。図５は第１段階、すなわちＩＵ−ＲＥＱ／ＳＴ１−ＲＥＱに対する動作の説明図である。
【００２９】
図５においてサイクル１で、一次データ・キャッシュメモリ１０から、すでにエラーがないことが確認されたストア対象キャッシュラインのデータがセレクタ２１に与えられ、サイクル２でこのデータ、すなわちセレクタ２１の上側の入力端子へのデータが選択され、サイクル３で中継用のレジスタ２２を介して、サイクル４でそのデータがＦＣＤＲ１２に格納される。ＦＣＤＲ１２に格納されるデータは、ストアデータを格納すべきアドレスによって指定されるストア対象キャッシュラインのデータであり、すでにエラーがないことが確認された、ストアデータ書き込み前のキャッシュラインのデータである。
【００３０】
図６は、キャッシュメモリへのデータストアの第２段階における動作の説明図である。この第２段階をＳＴ２−ＲＥＱに対する動作として説明する。図６においては、図５で説明したＩＵ−ＲＥＱ／ＳＴ１−ＲＥＱに対する動作と、ＳＴ２−ＲＥＱに対する動作とが、それぞれの動作におけるサイクル０から５に対して示されているが、図７のタイムチャートで説明するように、図５における動作の後に、図６におけるＳＴ２−ＲＥＱに対する動作が行われることは当然である。
【００３１】
図６において、ＳＴ２−ＲＥＱに対する動作のサイクル０でストアバッファ１１から読み出されたデータは、サイクル１で、キャッシュメモリへの書き込みデータとして、一次データ・キャッシュメモリ１０に与えられる。一方、ストアバッファ１１に格納されているデータは、サイクル２でセレクタ２１によって選択されて出力され、サイクル３で中継用バッファ２２に格納される。すなわち、サイクル２ではＳＴ２−ＲＥＱに対する動作として、セレクタ２１への２つの入力のうち、下側の入力端子へのデータが選択されて出力される。そしてサイクル４で中継バッファ２２内のデータ、すなわちストアデータがＦＣＤＲ１２に与えられ、ＦＣＤＲ１２の保持するデータの更新が行われる。
【００３２】
ＳＴ２−ＲＥＱに対する動作としてのサイクル２では、セレクタ２１によってストアデータが中継バッファ２２に出力されると同時に、ＩＵ−ＲＥＱ／ＳＴ１−ＲＥＱに対する動作としてＦＣＤＲ１２に格納された、ストアデータが書き込まれる前のストア対象キャッシュラインのデータがＦＣＤＲ１２から出力され、マージ回路２３によってストアバッファ１１から出力されるストアデータとマージされ、そのマージ結果がストア・フェッチ・データ・レジスタ（ＳＴＦＤＲ）２４に格納され、サイクル３でマージされたデータに対するＥＣＣがＥＣＣ生成回路２５によって生成され、サイクル４で図３のＥＣＣＲＡＭ１７に格納される。
【００３３】
ストアデータが書き込まれたキャッシュラインデータ、例えば８バイトのうちで後半４バイトのストア対象外データのうちに１ビットエラーが発生している可能性もあるが、エラー訂正コードは正しく生成されており、ストアデータが書き込まれたキャッシュラインデータに対するエラー訂正コードによるチェックを、例えば図３のＥＣＣチェック／訂正部１８によって実行し、エラー訂正を行うことが可能である。
【００３４】
なお本発明の特許請求の範囲は請求項４、５におけるバッファはストアバッファ１１に、レジスタはフェッチ・データ・レジスタ（ＦＣＤＲ）１２に、マージ結果保持レジスタはストア・フェッチ・データ・レジスタ（ＳＴＦＤＲ）２４に相当する。
【００３５】
図７は、ＩＵ−ＲＥＱに対する動作と、ＳＴ２−ＲＥＱに対する動作との概略的なタイムチャートである。ＩＵ−ＲＥＱに対するパイプラインの処理としてのサイクル０はプライオリティ、サイクル１はタグ、サイクル２はマッチ、サイクル３はバッファ、サイクル４はリザルトのサイクルであり、サイクル３でストアアドレスがバリッドになると、サイクル４でＦＣＤＲへのライト、すなわちストア対象キャッシュラインのＦＣＤＲへの格納が行われる。
【００３６】
ＳＴ２−ＲＥＱに対する動作は、サイクル６でプライオリティ、７でタグ、８でマッチ、９でバッファ、１０でリザルトのサイクルの処理として行われ、サイクル８でＦＤＣＲ−ＳＥＬＥＣＴ、すなわちＦＤＣＲの内容が選択されてリードされ、ストアデータとのマージが行われ、サイクル９でその結果に対応してＥＣＣが生成され、ＥＣＣアレイへの書き込みが行われる。
【００３７】
図４で説明したように、本実施形態においては、ストアバッファ１１とＦＣＤＲ１２と
にそれぞれｎ個のエントリが設けられ、キャッシュメモリへのデータの書き込みに対応して、ＳＴＢ１１とＦＣＤＲ１２とのエントリに、ストアデータとストア対象キャッシュラインのデータが１対１の形式で登録される。例えば同一のアドレス、すなわち同一のキャッシュラインに連続してデータのストアが行われる場合には、ＳＴＢ１１とＦＣＤＲ１２とのそれぞれ複数のエントリにデータの登録が行われ、連続的にデータ書き込み処理が行われることになる。図８は、そのような場合のＥＣＣ更新動作の説明図である。
【００３８】
図８においてＩＵ−ＲＥＱに対する動作の説明は省略し、３つの連続するＳＴ２−ＲＥＱ動作に対して、ストアデータとマージするためのＦＣＤＲの格納内容のリード動作について説明する。まず最初のＳＴ２−ＲＥＱ−０に対する動作としてサイクル３でアドレスマッチが検出される。図示しないが、同時に図６のサイクル２で説明したように、ＦＣＤＲ１２の格納内容のリードが行われ、その格納内容がストアデータとマージされて、マージ結果に対するＥＣＣが生成される。一方、図６で説明したように、ＳＴ２−ＲＥＱに対する動作としてセレクタ２１、中継用バッファ２２を介してストアデータがＦＣＤＲ１２に与えられ、ＦＣＤＲ１２の格納内容の更新が行われる。
【００３９】
次のＳＴ２−ＲＥＱ−１に対するパイプラインの動作は、ＳＴ２−ＲＥＱ−０に対するパイプラインの動作より２サイクル遅れて開始されるものとする。この場合、アドレスマッチとＦＣＤＲの格納内容のリードはサイクル５で行われ、この時すでに先行するストア命令に対応するストアデータを用いたＦＣＤＲ１２の更新が行われており、ＦＣＤＲ１２からは先行ストアデータが格納されたストア対象キャッシュラインのデータを読み出すことができ、新たなストアデータとのマージによって新たに正しいＥＣＣを生成することが可能となる。そしてサイクル７において新たなストアデータを用いてＦＣＤＲ１２の更新が行われる。
【００４０】
さらに引き続くＳＴ２−ＲＥＱ−２に対するパイプラインの動作は、さらに１サイクル遅れて開始されるものとする。この場合には、サイクル６においてアドレスマッチが検出され、ＦＣＤＲ１２の格納内容がリードされるが、この時先行するストア命令に対応するＳＴ２−ＲＥＱ−１の動作として行われるべきＦＣＤＲ１２の更新はまだ行われておらず、ＦＣＤＲ１２から読み出されたデータとストアデータとのマージを行っても、そのマージ結果を用いることによっては、正しいＥＣＣを生成することはできなくなってしまうという問題が生ずる。
【００４１】
図９は、このように同一アドレス、すなわち同一キャッシュラインに連続的にデータのストアが行われる場合の本実施形態におけるＥＣＣ生成方式の説明図である。図８で説明したように、このような連続的なストアに対応して、ＦＣＤＲ１２の内容をリードしてストアデータの書き込みを行うと、先行するストア命令に伴うＦＣＤＲ１２の格納内容の更新が行われないうちに、その内容を読み出してストアデータとのマージを行ってしまう可能性があるため、図９では先行するストア命令に対応してストア・フェッチ・データ・レジスタ（ＳＴＦＤＲ）２４に格納された、先行ストア命令に対応するストアデータがマージされた結果をマージ回路２３の入力側にフィードバックし、新たなストア命令に対応するストアデータとそのフィードバックデータとをマージして再びＳＴＳＤＲ２４に格納し、その格納内容を用いて新たなＥＣＣの生成を行うことによって、後続のストア命令に対しても正しいＥＣＣを生成することが可能となる。
【００４２】
（付記１）
ストア命令に対応するストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータをレジスタに格納し、
該ストアデータをキャッシュメモリに書き込み、
前記レジスタ格納内容と、該ストアデータとをマージし、
該マージ結果に対してエラー訂正コードを生成することを特徴とするエラー訂正コード生成方法。
（付記２）
前記ストア命令の後続のストア命令が前記キャッシュラインと同一のキャッシュラインへのデータのストア命令であるとき、
前記ストア命令に対応する前記マージの結果と後続ストア命令に対応するストアデータとをマージし、
該マージ結果を用いて、該後続ストア命令に対応するエラー訂正コードを生成することを特徴とする請求項１記載のエラー訂正コード生成方法。
（付記３）
前記キャッシュメモリが、ランダム・アクセス・メモリによって構成されることを特徴とする請求項１、または２記載のエラー訂正コード生成方法。
（付記４）
ストア命令に対応するストアデータが格納されるバッファと、
該ストアデータのキャッシュメモリへの書き込みに先立って、該ストアデータが書き込まれるべきキャッシュラインのデータが格納されるレジスタと、
該ストアデータと該レジスタの格納内容とをマージするマージ回路と、
該マージ結果に対してエラー訂正コードを生成するエラー訂正コード生成回路とを備えることを特徴とするキャッシュメモリ制御装置。
（付記５）
前記マージ回路は、
同一キャッシュラインにデータを書き込むべき連続ストア命令のうち、先行ストア命令に対して、前記レジスタの格納内容とストアデータとをマージし、
後続ストア命令に対して、先行ストア命令に対応して前記マージされたデータと該後続ストア命令に対応するストアデータとをマージすることを特徴とする請求項４記載のキャッシュメモリ制御装置。
（付記６）
前記キャッシュメモリがランダム・アクセス・メモリによって構成されることを特徴とする請求項４、または５記載のキャッシュメモリ制御装置。
【図面の簡単な説明】
【００４３】
【図１】本発明のエラー訂正コード生成方法の原理的な機能ブロック図である。
【図２】本発明のエラー訂正コード生成方式が適用されるＣＰＵの構成ブロック図である。
【図３】図２の一次データ・キャッシュメモリの詳細構成ブロック図である。
【図４】ストアバッファとフェッチ・データ・レジスタとの構成の説明図である。
【図５】ストア対象キャッシュラインのフェッチ・データ・レジスタへの登録の説明図である。
【図６】フェッチ・データ・レジスタ格納データとストアデータとのマージによるエラー訂正コード生成の説明図である。
【図７】エラー訂正コード生成までのタイムチャートである。
【図８】同一アドレスへのデータ連続ストア動作における問題点の説明図である。
【図９】同一アドレスへのデータ連続ストア動作における正しいエラー訂正コード生成方法の説明図である。
【図１０】エラー訂正コード生成方式の従来例の説明図である。
【符号の説明】
【００４４】
１      中央処理装置（ＣＰＵ）
２      命令ユニット（ＩＵ）
３      演算ユニット（ＥＵ）
４      一次データ・キャッシュメモリ
５      一次命令・キャッシュメモリ
６      二次キャッシュメモリ
１１      ストアバッファ（ＳＴＢ）
１２      フェッチ・データ・レジスタ（ＦＣＤＲ）
１３      アドレス選択部
１４      コントロールユニット
１５      エラー検出部
１６      ストアマージおよびＥＣＣ生成部
１７      エラー訂正コード格納用ランダム・アクセス・メモリ（ＥＣＣＲＡＭ）
１８      ＥＣＣチェック／訂正部
１９      ＥＣＣチェック／訂正およびパリティ生成部
２１      セレクタ
２２      中継用レジスタ
２３      マージ回路
２４      ストア・フェッチ・データ・レジスタ（ＳＴＦＤＲ）
２５      エラー訂正コード（ＥＣＣ）生成回路
【図１】
2008165449.tif 000003
【図２】
2008165449.tif 000004
【図３】
2008165449.tif 000005
【図４】
2008165449.tif 000006
【図５】
2008165449.tif 000007
【図６】
2008165449.tif 000008
【図７】
2008165449.tif 000009
【図８】
2008165449.tif 000010
【図９】
2008165449.tif 000011
【図１０】
2008165449.tif 000012