(57)【要約】【課題】  メモリデータ保護機能に用いる記憶領域を、メモリデータ保護機能を使用しないときにも有効に使用する。【解決手段】  ＥＣＣコードを記憶するＥＣＣコード部１０５−１〜１０５−８が、モード選択信号によって、メモリデータ保護機能の有効時にはデータＲＡＭ１０４−１〜１０４−８に記憶されるデータに対して誤り検出または誤り訂正を行うためのＥＣＣコードを記憶する記憶領域として機能し、メモリデータ保護機能の無効時にはデータＲＡＭ１０４−１〜１０４−８の追加ウェイとして機能するようにする。【選択図】  図１
2007041932.tif 000002
【特許請求の範囲】
【請求項１】
パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置において、
１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部と、
前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部と、
前記選択信号によって、前記メモリデータ保護機能の有効時には、前記データに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、前記メモリデータ保護機能の無効時には、前記データ記憶部の１以上の追加ウェイとして機能する記憶部と、
を有することを特徴とするキャッシュメモリ装置。
【請求項２】
前記タグ情報記憶部は、前記追加ウェイ数を含めたウェイ数を有し、前記メモリデータ保護機能の有効時には、前記追加ウェイに対応した前記タグ情報記憶部の前記タグ情報に基づいて前記追加ウェイを選択する信号を、前記選択信号によって無効にすることを特徴とする請求項１記載のキャッシュメモリ装置。
【請求項３】
前記記憶部は、前記データ記憶部のウェイ数に対応して設けられた前記メモリデータ保護用データの前記記憶領域のデータを、所定量マージすることで前記追加ウェイのデータとして出力することを特徴とする請求項１記載のキャッシュメモリ装置。
【請求項４】
前記選択信号によって、前記メモリデータ保護機能の有効時には、前記タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する他の記憶領域として機能し、前記メモリデータ保護機能の無効時には前記タグ情報記憶部の１以上の追加ウェイとして機能する、他の記憶部を更に有することを特徴とする請求項１記載のキャッシュメモリ装置。
【請求項５】
前記他の記憶部は、前記タグ情報記憶部のウェイ数に対応して設けられた前記メモリデータ保護用データを記憶する前記他の記憶領域のデータを、所定量マージすることで前記タグ情報記憶部の前記追加ウェイの前記タグ情報として出力することを特徴とする請求項４記載のキャッシュメモリ装置。
【請求項６】
パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置において、
１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部と、
前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部と、
前記選択信号によって、前記メモリデータ保護機能の有効時には、前記タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、前記メモリデータ保護機能の無効時には、前記タグ情報記憶部の１以上の追加ウェイとして機能する記憶部と、
を有することを特徴とするキャッシュメモリ装置。
【請求項７】
パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置を具備する半導体集積回路において、
１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部と、前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部と、前記選択信号によって、前記メモリデータ保護機能の有効時には、前記データに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、前記メモリデータ保護機能の無効時には、前記データ記憶部の１以上の追加ウェイとして機能する記憶部と、を有するキャッシュメモリ装置を具備することを特徴とする半導体集積回路。
【請求項８】
パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置を具備する半導体集積回路において、
１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部と、前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部と、前記選択信号によって、前記メモリデータ保護機能の有効時には、前記タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、前記メモリデータ保護機能の無効時には、前記タグ情報記憶部の１以上の追加ウェイとして機能する記憶部と、を有するキャッシュメモリ装置を具備することを特徴とする半導体集積回路。
【請求項９】
１以上のウェイで構成され、パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択するキャッシュメモリ装置のキャッシュ制御方法において、
前記メモリデータ保護機能の有効時には、メインメモリのデータの一部を記憶するデータ記憶部の前記データに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能する記憶部を、前記選択信号によって、前記メモリデータ保護機能の無効時には、前記データ記憶部の１以上の追加ウェイとして機能させることを特徴とするキャッシュ制御方法。
【請求項１０】
１以上のウェイで構成され、パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択するキャッシュメモリ装置のキャッシュ制御方法において、
前記メモリデータ保護機能の有効時には、前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部の前記タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能する記憶部を、前記選択信号によって、前記メモリデータ保護機能の無効時には、前記タグ情報記憶部の１以上の追加ウェイとして機能させることを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法に関し、特にパリティ機能またはＥＣＣ（Error Checking and Correcting）機能によるメモリデータ保護機能を有したキャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法に関する。
【背景技術】
【０００２】
高信頼性が要求されるコンピュータシステムにおいては、ＣＰＵ（Central Processing Unit）、キャッシュメモリ、メインメモリ、Ｉ／Ｏなどの、それぞれの構成要素に対して、高信頼性をサポートするための様々な技術が用いられている。
【０００３】
たとえば、キャッシュメモリでは、データの信頼性を高めるために、メモリの内容の正当性を保証する必要がある。そのための方法として、パリティによる誤り検出方法やＥＣＣによる誤り検出、誤り訂正方法が用いられている。
【０００４】
以下に従来のキャッシュメモリ装置の一例を示す。
図７は、データＲＡＭ（Random Access Memory）にＥＣＣ機能を用いた従来のキャッシュメモリ装置の一例の構成を示す図である。
【０００５】
ここでは、ｎ個のウェイ（記憶ブロック）ＷＡＹ０、ＷＡＹ１、…、ＷＡＹｎ−１により構成されたキャッシュメモリ装置８００ａを示している。また、ＣＰＵ（図示せず）がメインメモリ（図示せず）にアクセスするときのアドレスを図示している。キャッシュメモリ装置８００ａは、それぞれｎ個のタグＲＡＭ８０１−１、８０１−２、…、８０１−ｎ、比較回路８０２−１、８０２−２、…、８０２−ｎ、データＲＡＭ８０３−１、８０３−２、…、８０３−ｎ、ＥＣＣコード部８０４−１、８０４−２、…、８０４−ｎと、ウェイ選択信号に応じてウェイを選択するセレクタ８０５、８０６と、誤り検出／訂正部８０７を有している。
【０００６】
タグＲＡＭ８０１−１〜８０１−ｎは、タグ情報を記憶している。これらは、図示しないＣＰＵが指定するアドレスのうち、下位ビットのアドレス（インデックスアドレス）で指定されて読み出される。タグＲＡＭ８０１−１〜８０１−ｎからは、同一のインデックスアドレスに対して、ウェイごとに異なるタグ情報が出力される。
【０００７】
比較回路８０２−１〜８０２−ｎは、図示しないＣＰＵが指定するアドレスのうち、上位ビットのアドレス（タグアドレス）と、各タグＲＡＭ８０１−１〜８０１−ｎから読み出されるタグ情報との比較を行い、一致したウェイを選択するウェイ選択信号を出力する。
【０００８】
データＲＡＭ８０３−１〜８０３−ｎは、たとえば、図示しないメインメモリの一部のデータを記憶し、それぞれ、インデックスアドレスで指定されたデータを出力する。
ＥＣＣコード部８０４−１〜８０４−ｎは、それぞれ、データＲＡＭ８０３−１〜８０３−ｎに記憶されたデータに対するＥＣＣコードを記憶し、インデックスアドレスで指定されたＥＣＣコードを出力する。
【０００９】
セレクタ８０５は、ウェイ選択信号に応じて、選択されたウェイのデータＲＡＭ８０３−１〜８０３−ｎからのデータを選択して出力する。
セレクタ８０６は、ウェイ選択信号に応じて、選択されたウェイのＥＣＣコード部８０４−１〜８０４−ｎからのＥＣＣコードを選択して出力する。
【００１０】
誤り検出／訂正部８０７は、ＥＣＣコードを用いて、２ビットまでの誤り検出と、１ビットの誤り訂正を行う。
以下、従来のキャッシュメモリ装置８００ａの動作を説明する。
【００１１】
図示しないＣＰＵから図示しないメインメモリへのアクセスの際、タグＲＡＭ８０１−１〜８０１−ｎからは、インデックスアドレスにより指定されたタグ情報が読み出される。比較回路８０２−１〜８０２−ｎは、タグアドレスとタグＲＡＭ８０１−１〜８０１−ｎから読み出されたタグ情報とを比較して、一致したウェイを選択するウェイ選択信号を出力する。
【００１２】
一方、データＲＡＭ８０３−１〜８０３−ｎからは、インデックスアドレスにより指定されたデータが読み出される。また、ＥＣＣコード部８０４−１〜８０４−ｎからも同様にインデックスアドレスによって指定されたＥＣＣコードが読み出される。セレクタ８０５は、ウェイ選択信号により指定されたウェイのデータＲＡＭ８０３−１〜８０３−ｎから読み出されたデータを選択して、誤り検出／訂正部８０７に入力する。またセレクタ８０６は、ウェイ選択信号により指定されたウェイのＥＣＣコード部８０４−１〜８０４−ｎから読み出されたＥＣＣコードを選択して誤り検出／訂正部８０７に入力する。
【００１３】
たとえば、比較回路８０２−１〜８０２−ｎによる比較結果により、ＷＡＹ０のタグ情報が、入力されたタグアドレスと一致した場合には、セレクタ８０５ではＷＡＹ０のデータＲＡＭ８０３−１のデータが選択され、セレクタ８０６ではＷＡＹ０のＥＣＣコード部８０４−１のＥＣＣコードが選択され、誤り検出／訂正部８０７に入力される。
【００１４】
そして、誤り検出／訂正部８０７は、入力されたデータとそれに対応したＥＣＣコードを用いて２ビットまでのデータ誤りを検出するとともに、１ビットまでのデータ誤りを訂正してデータを出力する。
【００１５】
このように、従来のキャッシュメモリ装置８００ａでは、ＥＣＣコード部８０４−１〜８０４−ｎに記憶されたＥＣＣコードを用いて誤り検出及び誤り訂正を行うことで、高信頼性を実現していた。なお、ここではＥＣＣコードを用いた場合について説明したが、パリティ機能を用いる場合もほぼ同様であり、キャッシュメモリ装置内に、記憶するデータに対応したパリティチェックビットを保持する領域を有し、パリティチェックビットを用いた誤り検出が行われる。
【００１６】
ところで、システムの用途によっては、パリティ機能やＥＣＣ機能を用いたメモリデータ保護を必要としない場合がある。このような場合、メモリデータ保護機能を搭載しないキャッシュメモリ装置と、搭載するキャッシュメモリ装置とを個別に製造するのでは、納期やコストに問題が生じる。そのため、メモリデータ保護機能を搭載しておき、使用しない場合には制御信号などによりメモリデータ保護機能を無効にすることが行われていた（たとえば特許文献１、２参照。）。
【００１７】
図８は、メモリデータ保護機能の無効化が可能な従来のキャッシュメモリ装置である。
図７と同一の構成要素については同一符号を付し、説明を省略する。
キャッシュメモリ装置８００ｂは、モード選択信号に応じてセレクタ８０５の出力と、誤り検出／訂正部８０７の出力とのいずれかを選択するセレクタ８０８を有している。
【００１８】
このようなキャッシュメモリ装置８００ｂでは、ＥＣＣ機能を無効にしたい場合にはモード選択信号によって、セレクタ８０８にセレクタ８０５の出力を選択させ、ＥＣＣ機能を使用する場合には、誤り検出／訂正部８０７の誤り訂正結果を選択させ、出力させる。
【特許文献１】特開昭６４−７８４９８号公報
【特許文献２】特開平１−２２３７００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかし、単にパリティ機能やＥＣＣ機能によるメモリデータ保護機能を無効にするだけでは、パリティチェックビットやＥＣＣコードを記憶する領域のデータが使用されず、その分のデータの容量だけ記憶領域が無駄になってしまう問題があった。
【００２０】
本発明はこのような点に鑑みてなされたものであり、メモリデータ保護機能に用いる記憶領域を、メモリデータ保護機能を使用しないときにも有効に使用可能なキャッシュメモリ装置を提供することを目的とする。
【００２１】
また、本発明の他の目的は、メモリデータ保護機能に用いる記憶領域を、メモリデータ保護機能を使用しないときにも有効に使用可能なキャッシュメモリ装置を具備した半導体集積回路を提供することである。
【００２２】
また、本発明の他の目的は、メモリデータ保護機能に用いる記憶領域を、メモリデータ保護機能を使用しないときにも有効に使用可能なキャッシュ制御方法を提供することである。
【課題を解決するための手段】
【００２３】
本発明では上記問題を解決するために、パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置において、図１に示すように、１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部（データＲＡＭ１０４−１、１０４−２、…、１０４−８）と、ウェイごとに異なるタグ情報を記憶するタグ情報記憶部（タグＲＡＭ１０１−１、１０１−２、…、１０１−８、１０１−９）と、選択信号（モード選択信号）によって、メモリデータ保護機能の有効時にはデータに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データ（図１ではＥＣＣコード）を記憶する記憶領域として機能し、メモリデータ保護機能の無効時にはデータ記憶部の１以上の追加ウェイとして機能する記憶部（ＥＣＣコード部１０５−１、１０５−２、…、１０５−８）と、を有することを特徴とするキャッシュメモリ装置１００ａが提供される。
【００２４】
上記の構成によれば、データ記憶部は１以上のウェイで構成されておりメインメモリのデータの一部を記憶し、タグ情報記憶部はウェイごとに異なるタグ情報を記憶し、記憶部は、選択信号によって、メモリデータ保護機能の有効時には、データに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、メモリデータ保護機能の無効時には、データ記憶部の１以上の追加ウェイとして機能する。
【００２５】
また、パリティ機能またはＥＣＣ機能によるメモリデータ保護機能を有し、選択信号により前記メモリデータ保護機能の有効または無効のいずれかを選択可能なキャッシュメモリ装置において、１以上のウェイで構成され、メインメモリのデータの一部を記憶するデータ記憶部と、前記ウェイごとに異なるタグ情報を記憶するタグ情報記憶部と、前記選択信号によって、前記メモリデータ保護機能の有効時には前記タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、前記メモリデータ保護機能の無効時には前記タグ情報記憶部の１以上の追加ウェイとして機能する記憶部と、を有することを特徴とするキャッシュメモリ装置が提供される。
【００２６】
上記の構成によれば、データ記憶部は１以上のウェイで構成されておりメインメモリのデータの一部を記憶し、タグ情報記憶部はウェイごとに異なるタグ情報を記憶し、記憶部は、選択信号によって、メモリデータ保護機能の有効時には、タグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能し、メモリデータ保護機能の無効時には、タグ情報記憶部の１以上の追加ウェイとして機能する。
【発明の効果】
【００２７】
本発明では、メモリデータ保護機能の有効時にはデータ記憶部のデータに対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能する記憶部が、選択信号によって、メモリデータ保護機能の無効時には、データ記憶部の１以上の追加ウェイとして機能するようにしたので、メモリデータ保護機能を無効にする場合でも、メモリデータ保護用データの記憶領域を無駄にすることなく、データ記憶部の追加ウェイとして有効に使用することができる。これによって、キャッシュメモリ装置の性能向上を図ることができる。
【００２８】
また、メモリデータ保護機能の有効時には、タグ情報記憶部のタグ情報に対して誤り検出または誤り訂正を行うためのメモリデータ保護用データを記憶する記憶領域として機能する記憶部が、選択信号によって、メモリデータ保護機能の無効時には、タグ情報記憶部の１以上の追加ウェイとして機能するようにしたので、メモリデータ保護機能を無効にする場合でも、メモリデータ保護用データの記憶領域を無駄にすることなく、タグ情報記憶部の追加ウェイとして有効に使用することができる。これによって、キャッシュメモリ装置の性能向上を図ることができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図１は、第１の実施の形態のキャッシュメモリ装置の構成を示す図である。
また、図２は、キャッシュメモリ装置を搭載したＣＰＵと、メインメモリによるシステム構成の概略を示す図である。
【００３０】
図２に示すように、ＣＰＵ１０は、メインメモリ２０のデータの一部を記憶するキャッシュメモリ装置１００ａと、プロセッサコア２００を有している。これらは、たとえば、１チップの半導体集積回路に集積化されている。プロセッサコア２００からキャッシュメモリ装置１００ａに入力されているモード選択信号は、キャッシュメモリ装置１００ａのメモリデータ保護機能を有効か無効のいずれかに設定するための信号である。このモード選択信号は、ＣＰＵ１０の外部から入力するようにしてもよい。
【００３１】
なお、図２で示したキャッシュメモリ１００ａは１次キャッシュとして機能しているが、これに限定されるわけではなく、２次キャッシュや３次キャッシュとしてもよい。
第１の実施の形態のキャッシュメモリ装置１００ａは、図１に示すように、８ウェイセットアソシアティブ方式（メモリデータ保護機能有効時）であり、たとえば、キャッシュ容量は２５６ＫＢ（Ｂｙｔｅ）、ラインサイズは１２８Ｂである。また、メモリデータ保護機能としてＥＣＣ機能を搭載している。メモリデータ保護機能は、たとえばプロセッサコア２００から入力されるモード選択信号によって有効か無効かのいずれかに設定される。以下では、モード選択信号が“０”のときメモリデータ保護機能が有効、“１”のときメモリデータ保護機能が無効であるとする。
【００３２】
以下、キャッシュメモリ装置１００ａの構成について詳細に説明する。
キャッシュメモリ装置１００ａは、ウェイごとに異なるタグ情報を記憶するタグＲＡＭ１０１−１、１０１−２、…、１０１−８、１０１−９と、ＣＰＵ１０からメインメモリ２０へのアクセスの際に指定されるアドレスのうちの上位ビットのタグアドレスとタグ情報との比較を行う比較回路１０２−１、１０２−２、…、１０２−８、１０２−９と、一方の入力端子に比較回路１０２−９の出力を入力し、他方の入力端子にモード選択信号を入力するＡＮＤ回路１０３を有する。さらに、メインメモリ２０のデータの一部を記憶したデータＲＡＭ１０４−１、１０４−２、…、１０４−８と、メモリデータ保護機能有効時には誤り検出、誤り訂正を行うためのＥＣＣコードを記憶するＥＣＣコード部１０５−１、１０５−２、…、１０５−８と、ＥＣＣコード部１０５−１〜１０５−８の出力データをマージするデータマージ部１０６と、ウェイ選択信号に応じてウェイを選択するセレクタ１０７、１０８と、ＥＣＣコードを用いた誤り検出、誤り訂正を行う誤り検出／訂正部１０９と、モード選択信号に応じてセレクタ１０７の出力と、誤り検出／訂正部１０９の誤り訂正結果とのいずれかを選択するセレクタ１１０を有している。
【００３３】
タグＲＡＭ１０１−１〜１０１−９は、ウェイごとに異なるタグ情報を記憶している。これらは、ＣＰＵ１０からメインメモリ２０へのアクセスの際に指定されるアドレス（たとえば３２ビット）のうち、下位ビットのインデックスアドレス（たとえば、ａｄｄｒ［１４：７］の８ビット）によって読み出される。タグＲＡＭ１０１−１〜１０１−９からは、同一のインデックスアドレスに対して、ウェイごとに異なるタグ情報が出力される。
【００３４】
比較回路１０２−１〜１０２−９は、ＣＰＵ１０がメインメモリ２０にアクセスする際に指定するタグアドレス（たとえば、ａｄｄｒ［３１：１５］の１７ビット）と、タグＲＡＭ１０１−１〜１０１−９から読み出されたタグ情報とを比較する。そして一致したタグＲＡＭ１０１−１〜１０１−９のウェイを“Ｈｉｔ  ＷＡＹ”として、一致したウェイのデータを指定するためのウェイ選択信号を出力する。ただし、比較回路１０２−９の出力は、ＡＮＤ回路１０３の一方の入力端子に入力されており、他方の入力端子にはモード選択信号が入力される。ＡＮＤ回路１０３は、メモリデータ保護機能が無効の場合（モード選択信号が“１”の場合）には、タグアドレスと、インデックスアドレスに応じてタグＲＡＭ１０１−９から読み出されたタグ情報とが一致すると、追加ウェイ（ＷＡＹ８）を選択するウェイ選択信号を出力する。メモリデータ保護機能が有効の場合（モード選択信号が“０”の場合）には、ＡＮＤ回路１０３の出力は０に固定され、タグアドレスと、タグＲＡＭ１０１−９のタグ情報とが一致しても、ＷＡＹ８を選択する信号を出力しない。
【００３５】
データＲＡＭ１０４−１〜１０４−８は、メインメモリ２０の一部のデータを記憶し、それぞれ、インデックスアドレスで指定されたラインのデータ（たとえば１２８Ｂ）を出力する。
【００３６】
ＥＣＣコード部１０５−１〜１０５−８は、メモリデータ保護機能有効時には、データＲＡＭ１０４−１〜１０４−８に記憶されたデータに対応して、図示しないＥＣＣコード生成部にて生成されたＥＣＣコードを記憶し、インデックスアドレスで指定されたデータＲＡＭ１０４−１〜１０４−８のラインのデータに対応するＥＣＣコード（たとえば１６Ｂ）を出力する。
【００３７】
データマージ部１０６は、ＥＣＣコード部１０５−１〜１０５−８の出力データ（たとえば１６Ｂ）をマージして、たとえば１２８ＢのＷＡＹ８のデータとして出力する。
セレクタ１０７は、ウェイ選択信号に応じて、選択されたウェイのデータＲＡＭ１０４−１〜１０４−８または追加ウェイ（ＷＡＹ８）からのデータを選択して出力する。
【００３８】
セレクタ１０８は、ウェイ選択信号に応じて、選択されたウェイのＥＣＣコード部１０５−１〜１０５−８からのデータを選択して出力する。
誤り検出／訂正部１０９は、ＥＣＣコードを用いて、２ビットまでの誤り検出と、１ビットの誤り訂正を行う。
【００３９】
セレクタ１１０は、モード選択信号によって、メモリデータ保護機能の無効時にはセレクタ１０７の出力を選択し、メモリデータ保護機能有効時には誤り検出／訂正部１０９の誤り訂正結果を選択して出力する。
【００４０】
以下、図１、図２を用いて第１の実施の形態のキャッシュメモリ装置１００ａの動作を説明する。
まず、キャッシュメモリ装置１００ａのメモリデータ保護機能が有効の場合について説明する。
【００４１】
ＣＰＵ１０からメインメモリ２０へアクセスする場合、プロセッサコア２００によって指定されたアドレスがキャッシュメモリ装置１００ａに入力される。指定されたアドレスのうちのインデックスアドレスにより、タグＲＡＭ１０１−１〜１０１−９からタグ情報が読み出される。比較回路１０２−１〜１０２−９は、プロセッサコア２００によって指定されたアドレスのうちのタグアドレスと、タグＲＡＭ１０１−１〜１０１−９から読み出されたタグ情報とを比較して、一致したウェイを選択するウェイ選択信号を出力する。
【００４２】
ただし、メモリデータ保護機能が有効の場合には、モード選択信号によりＡＮＤ回路１０３の出力は０に固定されており、タグＲＡＭ１０１−９から読み出されたタグ情報がタグアドレスと一致しても、追加ウェイ（ＷＡＹ８）を選択するウェイ選択信号は出力されない。なお、一致するウェイがない場合には、メインメモリ２０にアクセスし、メインメモリ２０からデータの読み出しなどを行う。
【００４３】
一方、データＲＡＭ１０４−１〜１０４−８からは、インデックスアドレスにより指定されたデータが読み出される。また、ＥＣＣコード部１０５−１〜１０５−８からも同様にインデックスアドレスによって指定されたＥＣＣコードが読み出される。セレクタ１０７は、ウェイ選択信号により指定されたウェイのデータＲＡＭ１０４−１〜１０４−８から読み出されたデータを出力し、誤り検出／訂正部１０９およびセレクタ１１０に入力する。なお、このときＥＣＣコード部１０５−１〜１０５−８から読み出されたデータはデータマージ部１０６によってマージされ、追加ウェイ（ＷＡＹ８）のデータとしてセレクタ１０７に入力されるが、前述したようにモード選択信号によりＡＮＤ回路１０３の出力は固定されているため、ＷＡＹ８を選択するウェイ選択信号は出力されない。そのため、セレクタ１０７においてマージされたデータは選択されない。一方、セレクタ１０８は、ウェイ選択信号により指定されたウェイのＥＣＣコード部１０５−１〜１０５−８から読み出されたＥＣＣコードを選択して、誤り検出／訂正部１０９に入力する。
【００４４】
たとえば、比較回路１０２−１〜１０２−８による比較結果により、ＷＡＹ０のタグ情報がタグアドレスと一致した場合には、セレクタ１０７ではＷＡＹ０のデータＲＡＭ１０４−１の１２８Ｂデータが選択され、セレクタ１０８ではＷＡＹ０のＥＣＣコード部１０５−１の１６ＢのＥＣＣコードが選択され誤り検出／訂正部１０９に入力される。
【００４５】
そして、誤り検出／訂正部１０９は、入力されたデータとそれに対応したＥＣＣコードを用いて２ビットまでのデータ誤りを検出するとともに、１ビットのデータ誤りを訂正して、たとえば１２８Ｂの出力データをセレクタ１１０に入力する。
【００４６】
メモリデータ保護機能が有効な場合、セレクタ１１０は、モード選択信号により、誤り検出／訂正部１０９からの誤り訂正結果のデータを選択して出力する。
このようにしてキャッシュメモリ装置１００ａは、メモリデータ保護機能有効時には高信頼性が実現できる。
【００４７】
つぎに、キャッシュメモリ装置１００ａのメモリデータ保護機能が無効の場合について説明する。
プロセッサコア２００によって指定されたアドレスがキャッシュメモリ装置１００ａに入力されると、インデックスアドレスにより、タグＲＡＭ１０１−１〜１０１−９からタグ情報が読み出される。比較回路１０２−１〜１０２−９は、タグアドレスと、タグＲＡＭ１０１−１〜１０１−９から読み出されたタグ情報とを比較して、一致したウェイを選択するウェイ選択信号を出力する。
【００４８】
このとき、メモリデータ保護機能が有効の場合と異なり、モード選択信号は１であり、ＡＮＤ回路１０３の出力は比較回路１０２−９の出力によって異なるようになる。そして、タグＲＡＭ１０１−９のタグ情報がタグアドレスと一致した場合、ＡＮＤ回路１０３からは、追加ウェイ（ＷＡＹ８）を選択するウェイ選択信号が出力される。
【００４９】
一方、データＲＡＭ１０４−１〜１０４−８からは、インデックスアドレスにより指定されたデータが読み出される。また、ＥＣＣコード部１０５−１〜１０５−８からも同様に、インデックスアドレスによって指定されたデータが読み出される。セレクタ１０７は、ウェイ選択信号により指定されたウェイのデータＲＡＭ１０４−１〜１０４−８から読み出されたデータを出力し、誤り検出／訂正部１０９およびセレクタ１１０に入力する。ＷＡＹ８を選択するウェイ選択信号が出力された場合には、セレクタ１０７は、データマージ部１０６にてマージされた追加ウェイのデータを選択する。
【００５０】
また、セレクタ１０８は、ウェイ選択信号により指定されたウェイのＥＣＣコード部１０５−１〜１０５−８から読み出されたデータを誤り検出／訂正部１０９に入力するが、メモリデータ保護機能が無効の場合、セレクタ１１０はモード選択信号により、誤り検出／訂正部１０９の出力は選択せず、セレクタ１０７の出力を選択して出力する。このように、メモリデータ保護機能が無効のときには、ＥＣＣコード部１０５−１〜１０５−８には、データＲＡＭ１０４−１〜１０４−８と同様に、１つのウェイとしてデータを記憶できることになる。このとき、キャッシュメモリ装置１００ａは、たとえば、キャッシュ容量２８８ＫＢ、ラインサイズ１２８Ｂ、９ウェイのセットアソシアティブ方式の構成で動作する。
【００５１】
以上のように、第１の実施の形態のキャッシュメモリ装置１００ａでは、メモリデータ保護機能を無効にする場合でも、ＥＣＣコード部１０５−１〜１０５−８を無駄にすることなく、データＲＡＭ１０４−１〜１０４−８の追加ウェイとして有効に使用することができる。これによって、キャッシュメモリの性能向上を図ることができる。
【００５２】
なお、図１で示したキャッシュメモリ装置１００ａでは、メモリデータ保護機能としてＥＣＣ機能を搭載した場合について説明したが、ＥＣＣ機能の代わりにパリティ機能を搭載するようにしてもよい。
【００５３】
図３は、パリティ機能を搭載した第１の実施の形態のキャッシュメモリ装置の構成を示す図である。
タグＲＡＭ部分については、図１と同一であるので図示を省略している。また、同一構成要素については同一符号を付している。
【００５４】
パリティ機能によるメモリデータ保護機能を搭載したキャッシュメモリ装置１００ｂは、図１のＥＣＣコード部１０５−１〜１０５−８の代わりに、それぞれのウェイのデータＲＡＭ１０４−１〜１０４−８に対応したパリティチェックビットを記憶するパリティチェックビット部１１１−１、１１１−２、…、１１１−８を有する。またデータマージ部１１２は、パリティチェックビット部１１１−１〜１１１−８からインデックスアドレスで指定されて読み出されたデータをマージして、追加ウェイのデータとしてセレクタ１０７に入力する。また、セレクタ１１３は、ウェイ選択信号に応じて、選択されたウェイのパリティチェックビット部１１１−１〜１１１−８のパリティチェックビットを誤り検出部１１４に入力する。
【００５５】
メモリデータ保護機能が有効時には、前述したようにウェイ選択信号により、追加ウェイのデータ（データマージ部１１２の出力データ）は選択されない。そのため、ＷＡＹ７までのデータＲＡＭ１０４−１〜１０４−８のデータのいずれかが選択される。さらに選択されたウェイのパリティチェックビットを用い、誤り検出部１１４にてパリティエラーが検出される。
【００５６】
メモリデータ保護機能が無効時には、前述したようにウェイ選択信号により、追加ウェイのタグ情報がタグアドレスと一致した場合、セレクタ１０７は追加ウェイのデータ（データマージ部１１２の出力データ）を選択して出力する。
【００５７】
このように、メモリデータ保護機能を無効にする場合でも、パリティチェックビット部１１１−１〜１１１−８を無駄にすることなく、データＲＡＭ１０４−１〜１０４−８の追加ウェイとして有効に使用することができる。これによって、キャッシュメモリの性能向上を図ることができる。
【００５８】
次に、第２の実施の形態のキャッシュメモリ装置を説明する。
図４は、第２の実施の形態のキャッシュメモリ装置の構成を示す図である。
第１の実施の形態のキャッシュメモリ装置１００ａと同一の構成要素については同一符号を付しており、説明を省略する。
【００５９】
第２の実施の形態のキャッシュメモリ装置３００ａは、タグＲＡＭのデータを保護するためのメモリデータ保護機能（ここではＥＣＣ機能）をさらに搭載していることが第１の実施の形態のキャッシュメモリ装置１００ａと異なる。
【００６０】
ＥＣＣコード部１２０−１、１２０−２、…、１２０−８は、メモリデータ保護機能有効時にはタグＲＡＭ１０１−１〜１０１−８に記憶されているデータに対応したＥＣＣコードを記憶し、インデックスアドレスで指定されたＥＣＣコードを読み出す。
【００６１】
データマージ部１２１は、ＥＣＣコード部１２０−１〜１２０−８に記憶されたデータをマージして、タグＲＡＭ１０１−１〜１０１−８の追加ウェイのタグ情報として出力する。
【００６２】
誤り検出／訂正部１２２は、ＥＣＣコード部１２０−１〜１２０−８から出力されるＥＣＣコードをもとに、タグＲＡＭ１０１−１〜１０１−８に記憶されているタグ情報の誤り検出、誤り訂正を行う。
【００６３】
ウェイ選択制御部１２３は、以下のような構成となっている。
図５は、第２の実施の形態のキャッシュメモリ装置におけるウェイ選択制御部の構成を示す図である。
【００６４】
ウェイ選択制御部１２３は、モード選択信号に応じて、タグＲＡＭ１０１−１〜１０１−８からのタグ情報と、誤り検出／訂正部１２２による誤り訂正後のタグ情報との、いずれかを選択するセレクタ１２３ａ−１、１２３ａ−２、…、１２３ａ−８と、タグアドレスとタグ情報との比較を行う比較回路１２３ｂ−１、１２３ｂ−２、…、１２３ｂ−８、１２３ｂ−９と、一方の入力端子に比較回路１２３ｂ−９の出力を入力し、他方の入力端子にモード選択信号を入力するＡＮＤ回路１２３ｃとを有する。比較回路１２３ｂ−１〜１２３ｂ−９と、ＡＮＤ回路１２３ｃは、それぞれ、図１の比較回路１０２−１〜１０２−９と、ＡＮＤ回路１０３に対応している。
【００６５】
以下、図４、図５で示した第２の実施の形態のキャッシュメモリ装置３００ａの動作を説明する。
まず、キャッシュメモリ装置３００ａのメモリデータ保護機能が有効の場合について説明する。
【００６６】
第１の実施の形態のキャッシュメモリ装置１００ａと同様に、図２で示したようなＣＰＵ１０にキャッシュメモリ装置３００ａを搭載した場合、ＣＰＵ１０がメインメモリ２０へアクセスする際、プロセッサコア２００によって指定されたアドレスがキャッシュメモリ装置３００ａに入力される。
【００６７】
指定されたアドレスのうちのインデックスアドレスにより、タグＲＡＭ１０１−１〜１０１−８からタグ情報が読み出される。さらに、ＥＣＣコード部１２０−１〜１２０−８からはＥＣＣコードが読み出され、誤り検出／訂正部１２２にて、対応するウェイのタグ情報に対して２ビットまでの誤り検出と、１ビットの誤り訂正が行われる。
【００６８】
メモリデータ保護機能有効時には、セレクタ１２３ａ−１〜１２３ａ−８は、モード選択信号により、タグＲＡＭ１０１−１〜１０１−８からのタグ情報ではなく、誤り検出／訂正部１２２にて誤り訂正が行われたタグ情報を選択して出力する。比較回路１２３ｂ−１〜１２３ｂ−８は、セレクタ１２３ａ−１〜１２３ａ−８の出力（誤り訂正後のタグ情報）とタグアドレスとを比較して、一致したウェイのデータを選択するためのウェイ選択信号を出力する。なお、比較回路１２３ｂ−９には、タグＲＡＭ１０１−１〜１０１−８の追加ウェイのタグ情報として、データマージ部１２１によりマージされたＥＣＣコード部１２０−１〜１２０−８のデータが入力されている。しかし、比較回路１２３ｂ−９の出力を一方の入力端子に入力するＡＮＤ回路１２３ｃにおいて、他方の入力端子にメモリデータ保護機能が有効である旨のモード選択信号（“０”）が入力されており、ＡＮＤ回路１２３ｃの出力は０に固定されている。そのため、追加ウェイを選択するウェイ選択信号は出力されない。
【００６９】
一方、メモリデータ保護機能無効時には、セレクタ１２３ａ−１〜１２３ａ−８は、モード選択信号により、タグＲＡＭ１０１−１〜１０１−８からのタグ情報をそのまま出力する。比較回路１２３ｂ−１〜１２３ｂ−８は、セレクタ１２３ａ−１〜１２３ａ−８の出力（タグ情報）とタグアドレスとを比較して、一致したウェイのデータ（データＲＡＭ１０４−１〜１０４−８に記憶されたデータ）を選択するためのウェイ選択信号を出力する。このときＡＮＤ回路１２３ｃの他方の入力端子には、メモリデータ保護機能が無効である旨のモード選択信号（“１”）が入力されているため、追加ウェイのタグ情報がタグアドレスと一致した場合、ＡＮＤ回路１２３ｃは追加ウェイ（ＷＡＹ８）を選択する旨のウェイ選択信号を出力する。
【００７０】
データＲＡＭ１０４−１〜１０４−８、ＥＣＣコード部１０５−１〜１０５−８のデータは、上記のように生成されたウェイ選択信号によりセレクタ１０７またはセレクタ１０８から読み出される。このときの動作については第１の実施の形態のキャッシュメモリ装置１００ａの動作と同様であるので説明を省略する。
【００７１】
以上のように、第２の実施の形態のキャッシュメモリ装置３００ａでは、メモリデータ保護機能を無効にする場合でも、ＥＣＣコード部１２０−１〜１２０−８を無駄にすることなく、タグＲＡＭ１０１−１〜１０１−８の追加ウェイとしてタグ情報を記憶でき、有効に使用することができる。これによって、キャッシュメモリ装置の性能向上を図ることができる。
【００７２】
なお、図４、図５で示したキャッシュメモリ装置３００ａでは、メモリデータ保護機能としてＥＣＣ機能を搭載した場合について説明したが、ＥＣＣ機能の代わりにパリティ機能を搭載するようにしてもよい。
【００７３】
図６は、パリティ機能を搭載した第２の実施の形態のキャッシュメモリ装置の構成を示す図である。
データＲＡＭ部分については、図４と同一であるので図示を省略している。また、同一構成要素については同一符号を付している。
【００７４】
パリティ機能によるメモリデータ保護機能を搭載したキャッシュメモリ装置３００ｂは、図４、図５のＥＣＣコード部１２０−１〜１２０−８の代わりに、それぞれのウェイのタグＲＡＭ１０１−１〜１０１−８に対応したパリティチェックビットを記憶するパリティチェックビット部１３０−１、１３０−２、…、１３０−８を有する。また、データマージ部１３１は、パリティチェックビット部１３０−１〜１３０−８からインデックスアドレスで指定されて読み出されたデータをマージして、それをタグＲＡＭ１０１−１〜１０１−８の追加ウェイのタグ情報として比較回路１２３ｂ−９に入力する。誤り検出部１３２は、タグＲＡＭ１０１−１〜１０１−８のタグ情報と、パリティチェックビット部１３０−１〜１３０−８から読み出されるパリティチェックビットを用いて、ウェイごとにパリティエラーを検出する。
【００７５】
なお、前述したように、メモリデータ保護機能が有効時には、モード選択信号によりＡＮＤ回路１２３ｃの出力が固定されているので、追加ウェイのタグ情報（データマージ部１３１の出力データ）がタグアドレスと一致した場合でも、追加ウェイを選択するウェイ選択信号は出力されない。そのため、ＷＡＹ０〜ＷＡＹ７のいずれかを選択するウェイ選択信号が生成される。
【００７６】
一方、メモリデータ保護機能が無効時には、追加ウェイのタグ情報がタグアドレスと一致した場合には、ＡＮＤ回路１２３ｃからは、追加ウェイのデータ（ＥＣＣコード部１０５−１〜１０５−８のデータをマージしたデータ）を選択するためのウェイ選択信号が出力される。
【００７７】
図４で示したデータＲＡＭ１０４−１〜１０４−８、ＥＣＣコード部１０５−１〜１０５−８のデータは、上記のように生成されたウェイ選択信号によりセレクタ１０７またはセレクタ１０８から読み出される。このときの動作については第１の実施の形態のキャッシュメモリ装置１００ａの動作と同様であるので説明を省略する。
【００７８】
このように、メモリデータ保護機能を無効にする場合でも、パリティチェックビット部１３０−１〜１３０−８を無駄にすることなく、タグＲＡＭ１０１−１〜１０１−８の追加ウェイとして有効に使用することができる。これによって、キャッシュメモリの性能向上を図ることができる。
【００７９】
なお、第２の実施の形態のキャッシュメモリ装置３００ａでは、データＲＡＭ１０４−１〜１０４−８側は、ＥＣＣ機能を搭載している場合について示しているが、パリティ機能を用いてもよい。
【００８０】
また、以上説明してきた第１および第２のキャッシュメモリ装置１００ａ、１００ｂ、３００ａ、３００ｂでは、８ウェイのセットアソシアティブ方式（メモリデータ保護機能有効時）の場合について説明したが、ダイレクトマップ方式（１ウェイセットアソシアティブ方式）、またはフルアソシアティブ方式としてもよい。また、ウェイ数もこの数に限定されるものではない。
【００８１】
また、上記では、ＥＣＣコード部またはパリティチェックビット部を用いて追加するデータＲＡＭまたはタグＲＡＭのウェイを１つのみとしたが、２つ以上としてもよい。その場合、たとえば、図１を用いて説明すると、データマージ部１０６が複数搭載され、マージされたデータが追加ウェイ数分、セレクタ１０７に入力される。なお、図１の場合、タグＲＡＭ１０１−９、比較回路１０２−９、ＡＮＤ回路１０３も、追加ウェイ数分搭載されることになる。
【００８２】
また、上記では、タグＲＡＭ部分のみにメモリデータ保護機能を搭載する場合について説明を省略したが、データＲＡＭ部分にはメモリデータ保護機能を搭載せずに、タグＲＡＭ部分のみにメモリデータ保護機能を搭載するようにしてもよい。なお、その場合、タグＲＡＭの追加ウェイ数に対応して、メモリデータ保護機能が無効時に読み出し可能なデータＲＡＭが追加されることになる。
【図面の簡単な説明】
【００８３】
【図１】第１の実施の形態のキャッシュメモリ装置の構成を示す図である。
【図２】キャッシュメモリ装置を搭載したＣＰＵと、メインメモリによるシステム構成の概略を示す図である。
【図３】パリティ機能を搭載した第１の実施の形態のキャッシュメモリ装置の構成を示す図である。
【図４】第２の実施の形態のキャッシュメモリ装置の構成を示す図である。
【図５】第２の実施の形態のキャッシュメモリ装置におけるウェイ選択制御部の構成を示す図である。
【図６】パリティ機能を搭載した第２の実施の形態のキャッシュメモリ装置の構成を示す図である。
【図７】データＲＡＭにＥＣＣ機能を用いた従来のキャッシュメモリ装置の一例の構成を示す図である。
【図８】メモリデータ保護機能の無効化が可能な従来のキャッシュメモリ装置である。
【符号の説明】
【００８４】
１００ａ  キャッシュメモリ装置
１０１−１、１０１−２、…、１０１−８、１０１−９  タグＲＡＭ
１０２−１、１０２−２、…、１０２−８、１０２−９  比較回路
１０３  ＡＮＤ回路
１０４−１、１０４−２、…、１０４−８  データＲＡＭ
１０５−１、１０５−２、…、１０５−８  ＥＣＣコード部
１０６  データマージ部
１０７、１０８、１１０  セレクタ
１０９  誤り検出／訂正部
【図１】
2007041932.tif 000003
【図２】
2007041932.tif 000004
【図３】
2007041932.tif 000005
【図４】
2007041932.tif 000006
【図５】
2007041932.tif 000007
【図６】
2007041932.tif 000008
【図７】
2007041932.tif 000009
【図８】
2007041932.tif 000010