(57)【要約】【課題】  読み出したデータに誤りが発見されたキャッシュメモリのアドレスへのアクセスが、永続的に禁止されることのないキャッシュメモリ装置およびその管理方法を提供する。【解決手段】  キャッシュメモリ装置１は、キャッシュメモリ１１のキャッシュラインから読み出したデータのパリティチェックを行ってキャッシュメモリ１１のタグ部へパリティチェック結果を書き込むパリティチェック部１２と、テストモード時にキャッシュメモリ１１へ書き込むテストデータ生成部１３とを有し、キャッシュメモリ１１のタグ部へ書き込まれたパリティチェック結果に基づいてキャッシュメモリ１１のキャッシュラインへのアクセスの諾否が管理される。【選択図】  図１
2006120098.tif 000002
【特許請求の範囲】
【請求項１】
パリティビット付きのデータが書き込まれるキャッシュラインと、エラービット領域を
有して前記キャッシュラインのアドレスが格納されるタグ部とを備えるキャッシュメモリ
と、
前記キャッシュメモリから読み出されたキャッシュラインのパリティチェックを行い、前
記パリティチェックの結果を前記エラービット領域に書き込むパリティチェック部と、
テストモード時に前記キャッシュメモリへ書き込むパリティビット付きのテストデータを
生成するテストデータ生成部と
を具備し、
前記エラービット領域に書き込まれた前記パリティチェックの結果に基づいて前記キャッ
シュラインへのアクセスの諾否が管理されることを特徴とするキャッシュメモリ装置。
【請求項２】
前記テストモードが、前記テストデータ生成部に接続されるＣＰＵにより設定されるこ
とを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
前記テストモードが、前記テストデータ生成部に接続される外部端子により設定される
ことを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項４】
キャッシュメモリのキャッシュラインからパリティビット付きのデータを読み出してパ
リティチェックを行うステップと、
前記パリティチェックでパリティエラーの発生した前記キャッシュラインへのアクセスを
禁止するステップと、
テストモードを設定して前記パリティエラーの発生した前記キャッシュラインへパリティ
ビット付きのテストデータを書き込むステップと、
前記パリティエラーの発生した前記キャッシュラインから前記テストデータを読み出して
再度のパリティチェックを行うステップと、
前記再度のパリティチェックでパリティエラーの発生がなくなったときは、前記キャッシ
ュラインへのアクセスの禁止を解除するステップと
を有することを特徴とするキャッシュメモリ装置の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵとともに半導体集積回路に内蔵されるキャッシュメモリ装置およびそ
の管理方法に関する。
【背景技術】
【０００２】
マイクロプロセッサなどの半導体集積回路にＣＰＵとともにキャッシュメモリを内蔵す
ることが行われ、高速なメモリアクセスによりマイクロプロセッサなどの半導体集積回路
の動作速度向上に寄与している。
【０００３】
このようなキャッシュメモリには、ＣＰＵが実行する命令、あるいはＣＰＵが使用する
データなどが記憶される。したがって、半導体集積回路の不良や故障などにより、キャッ
シュメモリから読み出したデータに誤りがあると、ＣＰＵの動作が異常になり、最悪の場
合、暴走状態となる。
【０００４】
そこで、従来、キャッシュメモリから読み出したデータをチェックし、誤りが発見され
た場合には、その誤りの発生したデータが格納されていたアドレスへは永続的にアクセス
できないようにするすることが行われていた（例えば、特許文献１参照。）。
【０００５】
ところで、キャッシュメモリからの誤ったデータの読み出しは、半導体集積回路に恒久
的な不良や故障が生じたときのみならず、ノイズなどの偶発的な事象によりキャッシュメ
モリに誤ったデータが書き込まれた場合などにも起こり得る。しかし、上述した方法では
、ノイズなどの偶発的に発生した事象による場合でも、キャッシュメモリから読み出した
データに一旦誤りが発見されると、キャッシュメモリ自体には不良がなくても誤りが発見
されたたアドレスには永続的にアクセスできなくなり、キャッシュメモリの容量が減少す
るという問題があった。
【特許文献１】特開平７−１２１４３９号公報（第５ページ、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、キャッシュメモリから読み出したデータに誤りが発見された
ときでも、誤りが発見されたアドレスへのアクセスが永続的に禁止されることのないキャ
ッシュメモリ装置およびその管理方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、パリティビット付きのデータが書き込まれるキャッシュライ
ンと、エラービット領域を有して前記キャッシュラインのアドレスが格納されるタグ部と
を備えるキャッシュメモリと、前記キャッシュメモリから読み出されたキャッシュライン
のパリティチェックを行い、前記パリティチェックの結果を前記エラービット領域に書き
込むパリティチェック部と、テストモード時に前記キャッシュメモリへ書き込むパリティ
ビット付きのテストデータを生成するテストデータ生成部とを具備し、前記エラービット
領域に書き込まれた前記パリティチェックの結果に基づいて前記キャッシュラインへのア
クセスの諾否が管理されることを特徴とするキャッシュメモリ装置が提供される。
【０００８】
また、本発明の一態様によれば、キャッシュメモリのキャッシュラインからパリティビ
ット付きのデータを読み出してパリティチェックを行うステップと、前記パリティチェッ
クでパリティエラーの発生した前記キャッシュラインへのアクセスを禁止するステップと
、テストモードを設定して前記パリティエラーの発生した前記キャッシュラインへパリテ
ィビット付きのテストデータを書き込むステップと、前記パリティエラーの発生した前記
キャッシュラインから前記テストデータを読み出して再度のパリティチェックを行うステ
ップと、前記再度のパリティチェックでパリティエラーの発生がなくなったときは、前記
キャッシュラインへのアクセスの禁止を解除するステップとを有することを特徴とするキ
ャッシュメモリ装置の管理方法が提供される。
【発明の効果】
【０００９】
本発明によれば、パリティエラーが発生して一旦アクセスが禁止されたアドレスであっ
ても、そのパリティエラーが偶発的に発生したものであれば、一旦禁止されたアクセスを
改めて許可することができるので、キャッシュメモリの容量のむだな減少を防止すること
ができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１１】
図１は、本発明の第１の実施例に係るキャッシュメモリ装置の構成の例を示すブロック
図である。
【００１２】
キャッシュメモリ装置１は、キャッシュメモリ１１と、パリティチェック部１２と、テ
ストデータ生成部１３とを有する。
【００１３】
図２に、キャッシュメモリ１１の構成の例を示す。
【００１４】
本実施例のキャッシュメモリ１１も、一般的なキャッシュメモリと同様、キャッシュラ
イン１１Ａとタグ部１１Ｂで構成される。
【００１５】
キャッシュライン１１Ａは、本来のデータとこのデータに対するパリティチェックを行
うためのパリティビットＰが格納されている。
【００１６】
タグ部１１Ｂには、一般的なキャッシュメモリと同様、キャッシュライン１１Ａのアド
レスデータを格納するアドレスデータ領域と、キャッシュライン１１Ａが有効なデータを
持っているかどうかを示すバリッドビットＶを格納する領域を有する。
【００１７】
このほかに、タグ部１１Ｂは、後述するパリティチェック部１２におけるパリティチェ
ックの結果を示すエラービットＥを格納する領域を有する。
【００１８】
図１に戻って、パリティチェック部１２は、有効なデータを持っているキャッシュライ
ン１１ＡへＣＰＵ１００からのアクセスがあった場合、そのキャッシュライン１１Ａのデ
ータとパリティビットを読み出してパリティチェックを行う。そして、その結果をキャッ
シュメモリ１１のタグ部１１ＢへエラービットＥとして書き込む。
【００１９】
例えば、パリティチェック部１２でパリティエラーが検出された場合には、エラービッ
トＥとして‘１’を書き込み、パリティエラーが検出されなかった場合には、エラービッ
トＥとして‘０’を書き込む。
【００２０】
このエラービットＥは、キャッシュメモリ装置１へＣＰＵ１００からのアクセスがあっ
たときに、エラー判定情報としてＣＰＵ１００へ出力される。エラー判定情報がエラー検
出を示す場合には、ＣＰＵ１００は、キャッシュメモリ１１のエラーが検出されたアドレ
スへの以降のアクセスを禁止する。一方、エラー判定情報がエラー非検出を示す場合には
、ＣＰＵ１００からキャッシュメモリ１１へのアクセスが継続して許可される。
【００２１】
テストデータ生成部３は、ＣＰＵ１００からテストモードが設定されたときに、キャッ
シュメモリ１１のキャッシュライン１１Ａに与えるテストデータを生成する。このテスト
データ生成部３で生成されるテストデータは、例えば予めメモリなどに記憶された複数の
データのデータ群であってもよく、キャッシュライン１１Ａのパリティチェックを効率よ
く行うのに適したパリティティビット付きのデータのデータ群である。
【００２２】
ＣＰＵ１００は、キャッシュメモリ装置からのエラー判定情報がエラー検出を示す場合
、プログラム実行のアイドル期間など、ＣＰＵ１００が通常の動作を停止しているときに
テストモードを設定する。
【００２３】
このテストモードが設定されると、テストデータ生成部３はテストデータを生成する。
生成されたテストデータは、キャッシュメモリ１１のタグ部１１ＢのエラービットＥに例
えば‘１’というエラー発生を示すデータが書き込まれているアドレスのキャッシュライ
ン１１Ａに書き込まれる。キャッシュライン１１Ａに書き込まれたテストデータは、パリ
ティチェック部１２へ読み出され、改めてパリティチェックが行われる。
【００２４】
これにより、最初に行ったパリティチェックで検出されたパリティエラーが、偶発的に
発生したものかどうかを確認することができる。
【００２５】
もし、このパリティチェックでエラーが検出されなかったら、最初のパリティチェック
で発生したパリティエラーは偶発的なものと判断され、キャッシュメモリ１１のタグ部１
１ＢのエラービットＥを‘０’に書き換える。これにより、ＣＰＵ１００からのアクセス
の禁止が解除され、このキャッシュライン１１ＡへのＣＰＵ１００からのアクセスが復活
する。
【００２６】
次に、本実施例のキャッシュメモリ装置１のキャッシュメモリ１１へのアクセスの諾否
を管理する方法について説明する。
【００２７】
図３は、本実施例のキャッシュメモリ装置１のキャッシュメモリ１１へのアクセスの諾
否を管理する方法の例を示すフロー図である。
【００２８】
有効なデータを持っているキャッシュライン１１ＡへＣＰＵ１００からのアクセスがあ
ると、パリティチェック部１２はキャッシュライン１１Ａのデータとパリティビットを読
み出して（ステップＳ１）、パリティチェックを行い（ステップＳ２）、パリティエラー
が発生したかどうかの判定を行う（ステップＳ３）。
【００２９】
パリティエラーが発生しなかった場合（ＮＯ）は、キャッシュメモリ１１のタグ部１１
ＢのエラービットＥに‘０’を書き込む（ステップＳ４）。
【００３０】
キャッシュメモリ１１のタグ部１１Ｂは、このエラービットＥの値‘０’をエラー判定
情報としてＣＰＵ１００へ出力する。これを受けて、ＣＰＵ１００は、このキャッシュラ
イン１１Ａへのアクセスを許可し、通常の処理を続行する（ステップＳ５）。
【００３１】
一方、ステップＳ３の判定でパリティエラーが発生した場合（ＹＥＳ）は、キャッシュ
メモリ１１のタグ部１１ＢのエラービットＥに‘１’を書き込む（ステップＳ６）。
【００３２】
キャッシュメモリ１１のタグ部１１Ｂは、このエラービットＥの値‘１’をエラー判定
情報としてＣＰＵ１００へ出力する。これを受けて、ＣＰＵ１００は、このキャッシュラ
イン１１Ａへの以降のアクセスを禁止し、キャッシュ動作の対象から外す。
【００３３】
その後、ＣＰＵ１００がアイドル期間になったときなどにテストモードが設定されると
（ステップＳ７）、テストデータ生成部１３は、テストデータ（データ＋パリティビット
）の生成を行い（ステップＳ８）、パリティエラーが発生した（タグ部１１Ｂのエラービ
ットＥが‘１’である）キャッシュライン１１Ａへ、このテストデータを書き込む（ステ
ップＳ９）。
【００３４】
続いて、パリティチェック部１２が、キャッシュライン１１Ａからテストデータ（デー
タ＋パリティビット）を読み出して（ステップＳ１０）、パリティチェックを行い（ステ
ップＳ１１）、パリティエラーが発生したかどうかの判定を行う（ステップＳ１２）。
【００３５】
ここで、パリティエラーが発生しなかった場合（ＮＯ）は、ステップＳ２のパリティチ
ェックで発生したパリティエラーは、キャッシュメモリ１１の不良などによるものではな
く、ノイズなどの偶発的要因で発生したものと判断する。そこで、この場合は、キャッシ
ュメモリ１１のタグ部１１ＢのエラービットＥに‘０’を書き込む（ステップＳ４）。
【００３６】
キャッシュメモリ１１のタグ部１１Ｂは、このエラービットＥの値‘０’をエラー判定
情報としてＣＰＵ１００へ出力する。これを受けて、ＣＰＵ１００は、このキャッシュラ
イン１１Ａへのアクセスの禁止を解除し、キャッシュ動作の対象に復活させる。
【００３７】
一方、ステップＳ１２の判定でもパリティエラーが発生した場合（ＹＥＳ）は、このパ
リティエラーは、キャッシュメモリ１１の不良などにより発生したものと判断される。し
たがって、この場合は、このキャッシュラインへのアクセスの禁止を継続する。
【００３８】
このような本実施例のキャッシュメモリ装置およびその管理方法によれば、パリティエ
ラーが発生してアクセスが禁止されたキャッシュラインであっても、テストデータを用い
た再度のパリティチェックでパリティエラーが発生しなければ、アクセスの禁止を解除す
ることができる。これにより、偶発的原因によりパリティエラーが発生したキャッシュラ
インへのアクセスが永続的に禁止されることを防止することができ、キャッシュメモリの
容量のむだな減少を防止することができる。
【実施例２】
【００３９】
図４は、本発明の第２の実施例に係るキャッシュメモリ装置の構成の例を示すブロック
図である。
【００４０】
本実施例のキャッシュメモリ装置１０の構成は、基本的に第１の実施例のキャッシュメ
モリ装置１と同じである。そこで、図４において、図１に示した第１の実施例と同一の機
能を有するブロックには図１と同一の符号を付し、ここではその詳細な説明を省略する。
【００４１】
本実施例のキャッシュメモリ装置１０は、第１の実施例のキャッシュメモリ装置１にさ
らにテスト端子２０を設けたものである。
【００４２】
このテスト端子２０は、テストデータ生成部１３０に接続されてテストモードの設定に
使用される。これにより、テストデータ生成部１３０に対して、実施例１と同様のＣＰＵ
１００によるテストモードの設定のほかに、テスト端子２０によるテストモードの設定が
可能となる。
【００４３】
ユーザは、このテスト端子２０を用いて、任意の時間にテストデータ生成部１３０にテ
ストモードを設定できる。
【００４４】
本実施例のキャッシュメモリ装置１０へのアクセスの諾否を管理する方法も第１の実施
例のキャッシュメモリ装置１と同じであり、図３のフロー図に従って行うことができる。
ただし、ステップＳ７のテストモードの設定は、ＣＰＵ１００またはテスト端子２０によ
って行われる。
【００４５】
また、電源投入時にテスト端子２０を用いてテストモードを設定することにより、キャ
ッシュメモリ１１の機能確認をＣＰＵ１００の動作前に行うことができる。この場合、テ
スト端子２０でテストモードを設定してテストデータ生成部１３０で生成したテストデー
タをキャッシュメモリ１１へ与え、このテストデータをキャッシュライン１１Ａから読み
出してパリティチェック部１２でパリティチェックを行う。これにより、電源投入時にキ
ャッシュメモリ１１の機能確認を行うことができる。
【００４６】
このような本実施例のキャッシュメモリ装置によれば、キャッシュメモリのテストを任
意の時間に行うことができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の第１の実施例に係るキャッシュメモリ装置の構成の例を示すブロック図。
【図２】本発明の実施例に係るキャッシュメモリ装置に含まれるキャッシュメモリの構成の例を示す図。
【図３】本発明の第１の実施例に係るキャッシュメモリ装置の管理方法の例を示すフロー図。
【図４】本発明の第２の実施例に係るキャッシュメモリ装置の構成の例を示すブロック図。
【符号の説明】
【００４８】
１、１０  キャッシュメモリ装置
１１  キャッシュメモリ
１１Ａ  タグ部
１１Ｂ  キャッシュライン
１２  パリティチェック部
１３、１３０  テストデータ生成部
２０  テスト端子
【図１】
2006120098.tif 000003
【図２】
2006120098.tif 000004
【図３】
2006120098.tif 000005
【図４】
2006120098.tif 000006