(57)【要約】  書き込み処理部がブロック障害を検出した場合に、タグＲＡＭへのエントリデータとしてＥＣＣ保護領域外およびＥＣＣ保護領域外に縮退中である旨をあらわす所定のデータを書き込むとともに、読み出し処理部がタグＲＡＭのブロックからデータを読み出した際には、縮退状況判定部が、先に書き込み処理部が書き込んだ所定のデータにデータ誤りを加味したうえで縮退中／縮退なしの縮退状況判定をおこなうとともに、必要な場合にはウェイ縮退やフェータルエラーといったエラー判定をおこなうよう構成する。
2007097019.tif 000002
【特許請求の範囲】
【請求項１】
各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、
前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、
前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段と
を備えたことを特徴とするキャッシュメモリ装置。
【請求項２】
前記縮退情報書込手段は、
前記エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
前記縮退情報書込手段は、
前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項４】
前記縮退情報書込手段は、
前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする請求項２または３に記載のキャッシュメモリ装置。
【請求項５】
前記縮退状況判定手段は、
前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項６】
前記縮退状況判定工程は、
前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項７】
各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置におけるキャッシュ制御方法であって、
前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込工程と、
前記ブロックに対して前記縮退情報書込工程が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定工程と
を含んだことを特徴とするキャッシュ制御方法。
【請求項８】
前記縮退情報書込工程は、
前記エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする請求項７に記載のキャッシュ制御方法。
【請求項９】
前記縮退情報書込工程は、
前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする請求項８に記載のキャッシュ制御方法。
【請求項１０】
前記縮退情報書込工程は、
前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする請求項８または９に記載のキャッシュ制御方法。
【請求項１１】
前記縮退状況判定工程は、
前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする請求項８に記載のキャッシュ制御方法。
【請求項１２】
前記縮退状況判定工程は、
前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする請求項８に記載のキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置およびキャッシュ制御方法に関し、特に、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置およびキャッシュ制御方法に関する。
【背景技術】
【０００２】
従来から、ＣＰＵ（Central  Processing  Unit）などの処理装置とメモリなどの記憶装置との性能差を緩和するために用いられる小容量かつ高速なメモリであるキャッシュメモリが知られている。このキャッシュメモリでは、ブロック（Ｂｌｏｃｋ）と呼ばれる記憶単位をインデックス数分含んだウェイ（Ｗａｙ）を並列に設け、データアクセス時には各ウェイにまたがる同一インデックスのブロック（キャッシュライン）にアクセスすることが一般的におこなわれている。【０００３】
また、キャッシュメモリに格納されキャッシュデータのメインメモリ上における位置をあらわすタグ（Ｔａｇ）を記憶するためのタグＲＡＭ（Random  Access  Memory）を用意してＣＰＵに対してキャッシュデータのアドレス一覧を提供することもおこなわれている。そして、このタグＲＡＭにおいても上記したウェイおよびブロックを用いたデータ構造が採用されている。【０００４】
ところで、キャッシュメモリにおける記憶単位であるブロックには、メモリ障害などの影響によってアクセスエラーが頻発することがある。このような場合に、アクセスエラーが発生したブロックをそのまま使用すると重大な障害を誘発するおそれがあるので、該当するブロックの使用を中止する（縮退する）必要がある。【０００５】
この縮退方式の１つとしては、特定のブロックに障害が発生した場合、このブロックを含むウェイ自体を縮退するという方式がある。この方式によれば障害ブロックの縮退を簡易におこなうことができるものの、縮退対象となったウェイに含まれる全てのブロックが使用不能となってしまうのでキャッシュメモリの性能が低下してしまう。このため、特定のブロックに障害が発生した場合、このブロックのみを縮退させる縮退方式が種々提案されている（たとえば、特許文献１および特許文献２参照）。【０００６】
【特許文献１】特開昭６０−１０１６５６号公報
【特許文献２】特開平２−３０２８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１や特許文献２の技術を用いた場合、障害ブロックごとに縮退状況をあらわす縮退情報を保持する必要があり回路の物量が増えるという問題がある。特に、多数のブロックを含むウェイを数多く備える場合には、ブロック数は非常に多くなるので、それに伴って縮退情報を保持するための記憶回路がかさんでしまう。【０００８】
このため、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置をいかにして実現するかが大きな課題となっている。なお、かかる課題は、キャッシュメモリを備えた情報処理装置に共通して発生する課題である。【０００９】
本発明は、上述した従来技術の課題を解決するためになされたものであり、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置およびキャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段とを備えたことを特徴とする。【００１１】
また、本発明は、上記の発明において、前記縮退情報書込手段は、前記エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする。【００１２】
また、本発明は、上記の発明において、前記縮退情報書込手段は、前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする。【００１３】
また、本発明は、上記の発明において、前記縮退情報書込手段は、前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする。【００１４】
また、本発明は、各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置におけるキャッシュ制御方法であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込工程と、前記ブロックに対して前記縮退情報書込工程が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定工程とを含んだことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ブロックが縮退していることをあらわす縮退情報をこのブロックに対して書き込み、このブロックを読み出す際に、先に書き込んだ縮退情報の読み出し結果に基づいてブロックの縮退状況を判定するよう構成したので、ブロックへのエントリデータに縮退情報を格納することによって、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるという効果を奏する。【００１６】
また、本発明によれば、エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むよう構成したので、誤り訂正保護領域内における誤り訂正機能を利用することによって誤り訂正保護領域外における縮退情報のサイズを最小限に抑えることができるという効果を奏する。【００１７】
また、本発明によれば、第一の縮退情報として誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むよう構成したので、誤り訂正保護領域内における各項目をそのまま利用することによって、誤り訂正保護領域内に縮退情報格納用のあらたな領域を確保する必要がないという効果を奏する。【００１８】
また、本発明によれば、第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むよう構成したので、最小限の縮退情報を用いることによって、ブロックごとに必要な縮退情報の格納領域を抑制することができる。したがって、特に、多数のブロックを含むキャッシュメモリにおいて縮退情報の格納用領域を大幅に削減することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明に係るキャッシュ制御手法の概要を示す図である。
【図２】図２は、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部を示す図である。
【図３】図３は、タグＲＡＭ制御部の構成を示すブロック図である。
【図４】図４は、障害情報の一例を示す図である。
【図５】図５は、縮退状況判定の一例を示す図である。
【図６】図６は、ブロック縮退処理の処理手順を示すフローチャートである。
【符号の説明】
【００２０】
１０  タグＲＡＭ制御部
１１  制御部
１１ａ  書き込み処理部
１１ｂ  読み出し処理部
１１ｃ  縮退状況判定部
１２  記憶部
１２ａ  タグＲＡＭ
【発明を実施するための最良の形態】
【００２１】
以下に、添付図面を参照して、本発明に係るキャッシュ制御手法の好適な実施例を詳細に説明する。なお、以下では、本発明に係るキャッシュ制御手法を、複数のＣＰＵと接続されたシステムコントローラ（ＳＣ）内に設けられるタグＲＡＭ制御部に適用した場合について説明する。
【実施例】
【００２２】
まず、本発明に係るキャッシュ制御手法の概要について図１を用いて説明する。図１は、本発明に係るキャッシュ制御手法の概要を示す図である。なお、同図においては、タグＲＡＭにおけるデータ構造についても示しているので、ここでは、まず、タグＲＡＭにおけるデータ構造について説明する。また、図１では、１ＣＰＵ分のタグＲＡＭを示しており、たとえば、４ＣＰＵの場合には図１に示したタグＲＡＭが４セット（４ＣＰＵ分）存在することになる。【００２３】
同図に示すように、タグＲＡＭは、０〜１１の合計１２個のウェイ（ＷＡＹ）を備えている。そして、各ウェイは、それぞれ、２０４８個のブロック（ＢＬＯＣＫ）を含んでいる。ここで、ブロックとは、データエントリの単位であり、ＣＰＵがブロックを参照する際には、複数のウェイにおける同一のインデックス（ＩＮＤＥＸ）を有するブロック（キャッシュライン）をまとめてアクセスすることになる。たとえば、インデックスが「３」のブロックを参照する際には、ウェイ０〜ウェイ１１におけるインデックスが「３」のブロックを１２個同時にアクセスする。【００２４】
ところで、このように多数のブロックを含んだタグＲＡＭでは、ＲＡＭ内の所定位置における障害などの影響によって特定のブロックへのアクセス時にアクセスエラーが頻発することがある。このような場合に、エラーを起こしているブロックを放置すると重大な障害につながるおそれがあるため、このブロックを縮退させる必要がある。【００２５】
障害ブロックの縮退をおこなう場合、障害ブロックを含むウェイ自体を縮退させる方式をとると、縮退中である旨をあらわす縮退情報はウェイの数だけ（図１の場合であれば、１２個）で済むので縮退情報保持に必要なレジスタなどの回路の物量がかさむことはない。しかし、ウェイ自体を縮退させてしまうと、障害ではないブロックも使用不可となってしまうのでタグＲＡＭの性能が低下してしまう。【００２６】
一方、障害ブロックのみを縮退させる方式をとると、タグＲＡＭの性能低下を最低限に抑えることが可能であるが、上記した縮退情報はブロックの数だけ（図１の場合であれば、１２×２０４８＝２４５７６個）必要となるので、この縮退情報のサイズをいかに抑えるかが大きな課題となる。【００２７】
そこで、本発明に係るキャッシュ制御手法では、縮退対象ブロック（障害ブロック）を検出した場合に（図１の（１）参照）、ブロック縮退中である旨の状況をブロックに対するエントリデータに持たせることとした。さらに、エントリデータにおけるＥＣＣ（Error  Correcting  Code）保護領域内（たとえば、データの所在を示す物理アドレス）およびＥＣＣ保護領域外に縮退情報（縮退中である旨をあらわす情報）を書き込むことでブロック縮退を表現することとした（図１の（２）参照）。【００２８】
通常、ＥＣＣ保護領域外のみに縮退情報を書き込む場合には、いったん書き込んだデータを読み出す際のデータ誤りを２ビットエラーまで完全検出訂正しようとすると少なくとも５ビットのデータで縮退情報を構成する必要がある。一方、本発明に係るキャッシュ制御手法では、ＥＣＣ保護領域内に縮退中である旨をあらわすビットを書き込むこととしたので、ＥＣＣ保護領域内における誤り訂正結果を利用することができる。したがって、ＥＣＣ保護領域外における縮退情報を２ビットに抑えることが可能である。【００２９】
なお、ＥＣＣ保護領域内には、ブロックが正常である場合、データの所在を示す物理アドレスや、ＣＰＵからの参照状態を示すステータスといった正常時情報が書き込まれているが、ブロックに障害が発生した場合には、正常時情報を保持する必要はないので、このＥＣＣ保護領域内に縮退情報をあらわす所定のビットを書き込んでも構わない。【００３０】
次に、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部と他のデバイスとの関係について図２を用いて説明する。図２は、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部を示す図である。なお、本実施例においては、キャッシュ制御手法をシステムコントローラ（ＳＣ）内部のタグＲＡＭ制御部に適用した場合について説明するが、このタグＲＡＭ制御部自体を１つのキャッシュ制御装置として構成しても構わない。また、本発明に係るキャッシュ制御手法は、タグＲＡＭにおけるキャッシュ制御のみならず、さまざまなキャッシュメモリについてのキャッシュ制御にも適用することができる。【００３１】
図２に示した場合において、タグＲＡＭ制御部を含むシステムコントローラ（ＳＣ）は、４台のＣＰＵと接続されている。各ＣＰＵは、その内部にキャッシュメモリを有しており、キャッシュメモリ内におけるデータのインデックスとしてタグＲＡＭを備えているものとする。そして、タグＲＡＭ制御部は、４つのＣＰＵそれぞれのタグＲＡＭのコピーを保持している。【００３２】
たとえば、ＣＰＵ０が自ＣＰＵ内のキャッシュメモリに所望するデータを見つけられなかった場合には、ＣＰＵ０は、タグＲＡＭ制御部を参照することによって、他のＣＰＵ（ＣＰＵ１〜３）が所望データを有しているか否かを判定する。そして、他のＣＰＵが所望データを有していれば、該当するＣＰＵから所望データを取得することができる。なお、タグＲＡＭ制御部内のタグＲＡＭを参照しても所望データが見つからなかった場合には、システムコントローラ（ＳＣ）を介して接続されているメモリアクセスコントローラ（ＭＡＣ）に対して所望データの取得要求をおこなうことになる。【００３３】
次に、図２に示したタグＲＡＭ制御部の構成について図３を用いて説明する。図３は、タグＲＡＭ制御部１０の構成を示すブロック図である。同図に示すように、タグＲＡＭ制御部１０は、制御部１１と、記憶部１２とを備えている。そして、制御部１１は、書き込み処理部１１ａと、読み出し処理部１１ｂと、縮退状況判定部１１ｃとをさらに備えており、記憶部１２は各ＣＰＵに対応したタグＲＡＭ１２ａを備えている。【００３４】
制御部１１は、障害ブロックを検出した場合に、タグＲＡＭ１２ａの該当するブロックに対して所定の障害情報を書き込むとともに、該当するブロックを読み出す際には、読み出しデータに基づいてこのブロックについての縮退状況を判定する処理をおこなう処理部である。【００３５】
書き込み処理部１１ａは、ＣＰＵからのエントリデータをタグＲＡＭ１２ａの各ブロックに書き込むとともに、障害ブロックを検出した場合には、タグＲＡＭ１２ａの該当ブロックに対して所定の障害情報を書き込む処理をおこなう処理部である。ここで、この書き込み処理部１１ａが書き込む障害情報の例について図４を用いて説明しておく。図４は、障害情報の一例を示す図である。なお、同図の４１にはタグＲＡＭのエントリ構成を示しており、同図の４２には４１に示したエントリ構成が縮退時にとる状態を示している。【００３６】
図４の４１に示すように、タグＲＡＭエントリ構成は、ＥＣＣ保護領域外にあるフラグと、ＥＣＣ保護領域内にある物理アドレス（ＰＡ）およびステータス（ＳＴＳ）と、ＥＣＣとからなる。フラグは、２ビットからなる情報であり、「１１」であれば「縮退中」、「００」であれば「縮退なし」、「０１」あるいは「１０」であれば「未使用」、をそれぞれあらわしている。また、物理アドレスは、たとえば、２２ビットのデータであり、データの格納先をあらわすアドレスをあらわしている。【００３７】
ステータスは、たとえば、８ビットのデータであり、ＣＰＵにおけるタグ（ＴＡＧ）が示すデータの保持状態を示す。そして、この保持状態には、該当するデータを１つのＣＰＵが持っている、複数のＣＰＵが持っている、複数のＣＰＵが持っているがＣＰＵが持っているデータのほうが新しい、ＣＰＵは持っていない、の４つの状態が存在する。また、ＥＣＣは、たとえば、７ビットのデータであり、物理アドレスおよびステータスを保護するために用いられる。【００３８】
また、障害ブロック検出時には、図４の４１に示したタグＲＡＭエントリには、図４の４２に示したデータが書き込まれる。具体的には、フラグには「縮退中」をあらわす「１１」が、物理アドレスには実アドレスとして存在しない「全ビット１」が、ステータスには「ＣＰＵが有効なデータを持っていない状況」をあらわす「全ビット０」が、そして、ＥＣＣには「エラーなし」の情報が、それぞれ書き込まれる。【００３９】
このようにして、該当ブロックに対して縮退中である旨をあらわす縮退情報が書き込まれるが、書き込まれたデータを読み出す際には、データ誤りによって書き込み時と異なるデータが読み出される場合がある。しかし、後述するように、縮退状況判定部１１ｃが、このようなデータ誤りを加味したうえで縮退状況の判定をおこなうので、縮退状況を正確に把握することができる。【００４０】
図３に戻って、読み出し処理部１１ｂについて説明する。読み出し処理部１１ｂは、タグＲＡＭエントリ１２ａから読み出した読み出しデータをＣＰＵに対して渡すとともに、障害ブロックを読み出した場合には、読み出した情報を縮退状況判定部１１ｃに渡す処理をおこなう処理部である。【００４１】
縮退状況判定部１１ｃは、読み出し処理部１１ｂから受け取った読み出しデータに基づいて該当ブロックの縮退状況を判定するとともに、判定結果を外部のデバイスに対して通知する処理をおこなう処理部である。ここで、この縮退状況判定部１１ｃがおこなう判定処理の詳細について図５を用いて説明しておく。図５は、縮退状況判定の一例を示す図である。なお、同図に示す「ＣＥ」はコレクタブルエラー（データ誤りはあったが訂正済み）、「ＵＥ」はアンコレクタブルエラー（訂正不可能なデータ誤り）をそれぞれ示している。【００４２】
図５に示すように、縮退状況判定部１１ｃは、ＥＣＣ保護対象外にあるフラグ、ＥＣＣ保護対象内にある物理アドレスおよびステータスおよびＥＣＣ判定結果に基づいてブロック縮退判定と、縮退判定結果によっては必要となるエラー処理の選択をおこなう。【００４３】
図５の５１に示したのは、フラグが「００」の場合である。この場合、図４で説明したように、「００」は「縮退なし」をあらわしているが、書き込み処理部１１ａが「１１（縮退中」と書き込んだにもかかわらず、データ誤りによって２ビットとも反転する確率は非常に低いため、フラグが「００」であれば他の項目の状況にかかわらず縮退なしと判定する。【００４４】
図５の５２〜５５に示したのは、フラグが「１１」の場合である。この場合には、５１に示した場合とは異なり、物理アドレス、ステータスおよびＥＣＣ判定結果に基づいてブロック縮退あり／なしを判定する。そして、各項目の状態からみて読み出しデータに許容できないデータ誤りが含まれる場合（５４あるいは５５）には、それぞれ、ウェイ縮退やフェータルエラーといった判定をおこなったうえで該当するデバイスに対して縮退状況を通知することになる。【００４５】
図５の５６〜５９に示したのは、フラグが「０１」または「１０」の場合である。この場合には、５２〜５５に示した場合と同様に、物理アドレス、ステータスおよびＥＣＣ判定結果に基づいてブロック縮退あり／なしを判定する。そして、各項目の状態からみて読み出しデータに許容できないデータ誤りが含まれる場合（５７、５８および５９）には、それぞれ、ウェイ縮退やフェータルエラーといった判定をおこなったうえで該当するデバイスに対して縮退状況を通知することになる。【００４６】
図３の説明に戻って、記憶部１２について説明する。記憶部１２は、タグＲＡＭ１２ａを備えた記憶部であり、タグＲＡＭ１２ａは、スタティックＲＡＭ（ＳＲＡＭ）によって構成され、図１に示したウェイおよびブロックを含む。そして、このタグＲＡＭ１２ａは、タグＲＡＭ制御部１０を参照するＣＰＵの数量に応じたタグが用意され、各ＣＰＵ内のタグＲＡＭのコピーが保持される。【００４７】
次に、上記した障害情報を用いたブロック縮退処理の処理手順について図６を用いて説明する。図６は、ブロック縮退処理の処理手順を示すフローチャートである。同図に示すように、ＳＣ（システムコントローラ）がブロックエラーを検出すると（ステップＳ１０１）、ＣＰＵに対してブロック縮退要求を発行する（ステップＳ１０２）。このブロック縮退要求を受けたＣＰＵは、対象ブロックを縮退したと仮定した場合に、全ウェイの同一ブロックが縮退状態となるか否かを判定する（ステップＳ１０３）。【００４８】
そして、全ウェイの同一ブロックが縮退状態とはならないと判定した場合には（ステップＳ１０３，Ｎｏ）、該当ブロックを含むウェイにおける全データを主記憶装置に書き戻したうえで（ステップＳ１０４）、該当ブロックのフラグを立てる（図４の４２参照）処理をおこなう（ステップＳ１０５）。つづいて、ＣＰＵはＳＣに対して縮退通知を発行し（ステップＳ１０６）、この縮退通知を受けたＳＣはブロック縮退を実行して（ステップＳ１０７）処理を終了する。なお、ステップＳ１０３において、全ウェイの同一ブロックが縮退状態になると判定された場合には（ステップＳ１０３，Ｙｅｓ）、ＣＰＵはステップＳ１０４以降の処理をおこなうことなく処理を終了する。【００４９】
上述してきたように、本実施例では、書き込み処理部がブロック障害を検出した場合に、タグＲＡＭへのエントリデータとしてＥＣＣ保護領域外およびＥＣＣ保護領域外に縮退中である旨をあらわす所定のデータを書き込むとともに、読み出し処理部がタグＲＡＭのブロックからデータを読み出した際には、縮退状況判定部が、先に書き込み処理部が書き込んだ所定のデータにデータ誤りを加味したうえで縮退中／縮退なしの縮退状況判定をおこなうとともに、必要な場合にはウェイ縮退やフェータルエラーといったエラー判定をおこなうよう構成した。つまり、ＥＣＣ保護領域内に障害情報を書き込むことによってＥＣＣによる誤り訂正機能を利用することでＥＣＣ保護領域外における使用ビット数を最小限に抑えることができる。したがって、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができる。【００５０】
（付記１）各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段とを備えたことを特徴とするキャッシュメモリ装置。【００５１】
（付記２）前記縮退情報書込手段は、前記エントリデータにおける誤り訂正保護領域外に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする付記１に記載のキャッシュメモリ装置。【００５２】
（付記３）前記縮退情報書込手段は、前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする付記２に記載のキャッシュメモリ装置。【００５３】
（付記４）前記縮退情報書込手段は、前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする付記２または３に記載のキャッシュメモリ装置。【００５４】
（付記５）前記縮退状況判定手段は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする付記２に記載のキャッシュメモリ装置。【００５５】
（付記６）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする付記２に記載のキャッシュメモリ装置。【００５６】
（付記７）各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置におけるキャッシュ制御方法であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込工程と、前記ブロックに対して前記縮退情報書込工程が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定工程とを含んだことを特徴とするキャッシュ制御方法。【００５７】
（付記８）前記縮退情報書込工程は、前記エントリデータにおける誤り訂正保護領域外に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする付記７に記載のキャッシュ制御方法。【００５８】
（付記９）前記縮退情報書込工程は、前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする付記８に記載のキャッシュ制御方法。【００５９】
（付記１０）前記縮退情報書込工程は、前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする付記８または９に記載のキャッシュ制御方法。【００６０】
（付記１１）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする付記８に記載のキャッシュ制御方法。【００６１】
（付記１２）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする付記８に記載のキャッシュ制御方法。
【産業上の利用可能性】
【００６２】
以上のように、本発明に係るキャッシュ制御装置およびキャッシュ制御方法は、縮退情報の格納領域削減に有用であり、特に、ブロック単位の縮退をおこなうキャッシュメモリにおける縮退情報の格納領域削減に適している。
【図１】
2007097019.tif 000003
【図２】
2007097019.tif 000004
【図３】
2007097019.tif 000005
【図４】
2007097019.tif 000006
【図５】
2007097019.tif 000007
【図６】
2007097019.tif 000008
【手続補正書】
【提出日】平成20年4月30日(2008.4.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、
前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、
前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段と
を備えたことを特徴とするキャッシュメモリ装置。
【請求項２】
前記縮退情報書込手段は、
前記エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
前記縮退情報書込手段は、
前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする請求項２に記載のキャッシュメモリ装置。
【請求項４】
前記縮退情報書込手段は、
前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする請求項２または３に記載のキャッシュメモリ装置。
【請求項５】
各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置におけるキャッシュ制御方法であって、
前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込工程と、
前記ブロックに対して前記縮退情報書込工程が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定工程と
を含んだことを特徴とするキャッシュ制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置およびキャッシュ制御方法に関し、特に、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置およびキャッシュ制御方法に関する。
【背景技術】
【０００２】
従来から、ＣＰＵ（Central  Processing  Unit）などの処理装置とメモリなどの記憶装置との性能差を緩和するために用いられる小容量かつ高速なメモリであるキャッシュメモリが知られている。このキャッシュメモリでは、ブロック（Ｂｌｏｃｋ）と呼ばれる記憶単位をインデックス数分含んだウェイ（Ｗａｙ）を並列に設け、データアクセス時には各ウェイにまたがる同一インデックスのブロック（キャッシュライン）にアクセスすることが一般的におこなわれている。
【０００３】
また、キャッシュメモリに格納されキャッシュデータのメインメモリ上における位置をあらわすタグ（Ｔａｇ）を記憶するためのタグＲＡＭ（Random  Access  Memory）を用意してＣＰＵに対してキャッシュデータのアドレス一覧を提供することもおこなわれている。そして、このタグＲＡＭにおいても上記したウェイおよびブロックを用いたデータ構造が採用されている。
【０００４】
ところで、キャッシュメモリにおける記憶単位であるブロックには、メモリ障害などの影響によってアクセスエラーが頻発することがある。このような場合に、アクセスエラーが発生したブロックをそのまま使用すると重大な障害を誘発するおそれがあるので、該当するブロックの使用を中止する（縮退する）必要がある。
【０００５】
この縮退方式の１つとしては、特定のブロックに障害が発生した場合、このブロックを含むウェイ自体を縮退するという方式がある。この方式によれば障害ブロックの縮退を簡易におこなうことができるものの、縮退対象となったウェイに含まれる全てのブロックが使用不能となってしまうのでキャッシュメモリの性能が低下してしまう。このため、特定のブロックに障害が発生した場合、このブロックのみを縮退させる縮退方式が種々提案されている（たとえば、特許文献１および特許文献２参照）。
【０００６】
【特許文献１】特開昭６０−１０１６５６号公報
【特許文献２】特開平２−３０２８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１や特許文献２の技術を用いた場合、障害ブロックごとに縮退状況をあらわす縮退情報を保持する必要があり回路の物量が増えるという問題がある。特に、多数のブロックを含むウェイを数多く備える場合には、ブロック数は非常に多くなるので、それに伴って縮退情報を保持するための記憶回路がかさんでしまう。
【０００８】
このため、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置をいかにして実現するかが大きな課題となっている。なお、かかる課題は、キャッシュメモリを備えた情報処理装置に共通して発生する課題である。
【０００９】
本発明は、上述した従来技術の課題を解決するためになされたものであり、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるキャッシュ制御装置およびキャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段とを備える。
【発明の効果】
【００１１】
ブロックが縮退していることをあらわす縮退情報をこのブロックに対して書き込み、このブロックを読み出す際に、先に書き込んだ縮退情報の読み出し結果に基づいてブロックの縮退状況を判定するよう構成したので、ブロックへのエントリデータに縮退情報を格納することによって、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、添付図面を参照して、本発明に係るキャッシュ制御手法の好適な実施例を詳細に説明する。なお、以下では、本発明に係るキャッシュ制御手法を、複数のＣＰＵと接続されたシステムコントローラ（ＳＣ）内に設けられるタグＲＡＭ制御部に適用した場合について説明する。
【実施例】
【００１３】
まず、本発明に係るキャッシュ制御手法の概要について図１を用いて説明する。図１は、本発明に係るキャッシュ制御手法の概要を示す図である。なお、同図においては、タグＲＡＭにおけるデータ構造についても示しているので、ここでは、まず、タグＲＡＭにおけるデータ構造について説明する。また、図１では、１ＣＰＵ分のタグＲＡＭを示しており、たとえば、４ＣＰＵの場合には図１に示したタグＲＡＭが４セット（４ＣＰＵ分）存在することになる。
【００１４】
同図に示すように、タグＲＡＭは、０〜１１の合計１２個のウェイ（ＷＡＹ）を備えている。そして、各ウェイは、それぞれ、２０４８個のブロック（ＢＬＯＣＫ）を含んでいる。ここで、ブロックとは、データエントリの単位であり、ＣＰＵがブロックを参照する際には、複数のウェイにおける同一のインデックス（ＩＮＤＥＸ）を有するブロック（キャッシュライン）をまとめてアクセスすることになる。たとえば、インデックスが「３」のブロックを参照する際には、ウェイ０〜ウェイ１１におけるインデックスが「３」のブロックを１２個同時にアクセスする。
【００１５】
ところで、このように多数のブロックを含んだタグＲＡＭでは、ＲＡＭ内の所定位置における障害などの影響によって特定のブロックへのアクセス時にアクセスエラーが頻発することがある。このような場合に、エラーを起こしているブロックを放置すると重大な障害につながるおそれがあるため、このブロックを縮退させる必要がある。
【００１６】
障害ブロックの縮退をおこなう場合、障害ブロックを含むウェイ自体を縮退させる方式をとると、縮退中である旨をあらわす縮退情報はウェイの数だけ（図１の場合であれば、１２個）で済むので縮退情報保持に必要なレジスタなどの回路の物量がかさむことはない。しかし、ウェイ自体を縮退させてしまうと、障害ではないブロックも使用不可となってしまうのでタグＲＡＭの性能が低下してしまう。
【００１７】
一方、障害ブロックのみを縮退させる方式をとると、タグＲＡＭの性能低下を最低限に抑えることが可能であるが、上記した縮退情報はブロックの数だけ（図１の場合であれば、１２×２０４８＝２４５７６個）必要となるので、この縮退情報のサイズをいかに抑えるかが大きな課題となる。
【００１８】
そこで、本発明に係るキャッシュ制御手法では、縮退対象ブロック（障害ブロック）を検出した場合に（図１の（１）参照）、ブロック縮退中である旨の状況をブロックに対するエントリデータに持たせることとした。さらに、エントリデータにおけるＥＣＣ（Error  Correcting  Code）保護領域内（たとえば、データの所在を示す物理アドレス）およびＥＣＣ保護領域外に縮退情報（縮退中である旨をあらわす情報）を書き込むことでブロック縮退を表現することとした（図１の（２）参照）。
【００１９】
通常、ＥＣＣ保護領域外のみに縮退情報を書き込む場合には、いったん書き込んだデータを読み出す際のデータ誤りを２ビットエラーまで完全検出訂正しようとすると少なくとも５ビットのデータで縮退情報を構成する必要がある。一方、本発明に係るキャッシュ制御手法では、ＥＣＣ保護領域内に縮退中である旨をあらわすビットを書き込むこととしたので、ＥＣＣ保護領域内における誤り訂正結果を利用することができる。したがって、ＥＣＣ保護領域外における縮退情報を２ビットに抑えることが可能である。
【００２０】
なお、ＥＣＣ保護領域内には、ブロックが正常である場合、データの所在を示す物理アドレスや、ＣＰＵからの参照状態を示すステータスといった正常時情報が書き込まれているが、ブロックに障害が発生した場合には、正常時情報を保持する必要はないので、このＥＣＣ保護領域内に縮退情報をあらわす所定のビットを書き込んでも構わない。
【００２１】
次に、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部と他のデバイスとの関係について図２を用いて説明する。図２は、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部を示す図である。なお、本実施例においては、キャッシュ制御手法をシステムコントローラ（ＳＣ）内部のタグＲＡＭ制御部に適用した場合について説明するが、このタグＲＡＭ制御部自体を１つのキャッシュ制御装置として構成しても構わない。また、本発明に係るキャッシュ制御手法は、タグＲＡＭにおけるキャッシュ制御のみならず、さまざまなキャッシュメモリについてのキャッシュ制御にも適用することができる。
【００２２】
図２に示した場合において、タグＲＡＭ制御部を含むシステムコントローラ（ＳＣ）は、４台のＣＰＵと接続されている。各ＣＰＵは、その内部にキャッシュメモリを有しており、キャッシュメモリ内におけるデータのインデックスとしてタグＲＡＭを備えているものとする。そして、タグＲＡＭ制御部は、４つのＣＰＵそれぞれのタグＲＡＭのコピーを保持している。
【００２３】
たとえば、ＣＰＵ０が自ＣＰＵ内のキャッシュメモリに所望するデータを見つけられなかった場合には、ＣＰＵ０は、タグＲＡＭ制御部を参照することによって、他のＣＰＵ（ＣＰＵ１〜３）が所望データを有しているか否かを判定する。そして、他のＣＰＵが所望データを有していれば、該当するＣＰＵから所望データを取得することができる。なお、タグＲＡＭ制御部内のタグＲＡＭを参照しても所望データが見つからなかった場合には、システムコントローラ（ＳＣ）を介して接続されているメモリアクセスコントローラ（ＭＡＣ）に対して所望データの取得要求をおこなうことになる。
【００２４】
次に、図２に示したタグＲＡＭ制御部の構成について図３を用いて説明する。図３は、タグＲＡＭ制御部１０の構成を示すブロック図である。同図に示すように、タグＲＡＭ制御部１０は、制御部１１と、記憶部１２とを備えている。そして、制御部１１は、書き込み処理部１１ａと、読み出し処理部１１ｂと、縮退状況判定部１１ｃとをさらに備えており、記憶部１２は各ＣＰＵに対応したタグＲＡＭ１２ａを備えている。
【００２５】
制御部１１は、障害ブロックを検出した場合に、タグＲＡＭ１２ａの該当するブロックに対して所定の障害情報を書き込むとともに、該当するブロックを読み出す際には、読み出しデータに基づいてこのブロックについての縮退状況を判定する処理をおこなう処理部である。
【００２６】
書き込み処理部１１ａは、ＣＰＵからのエントリデータをタグＲＡＭ１２ａの各ブロックに書き込むとともに、障害ブロックを検出した場合には、タグＲＡＭ１２ａの該当ブロックに対して所定の障害情報を書き込む処理をおこなう処理部である。ここで、この書き込み処理部１１ａが書き込む障害情報の例について図４を用いて説明しておく。図４は、障害情報の一例を示す図である。なお、同図の４１にはタグＲＡＭのエントリ構成を示しており、同図の４２には４１に示したエントリ構成が縮退時にとる状態を示している。
【００２７】
図４の４１に示すように、タグＲＡＭエントリ構成は、ＥＣＣ保護領域外にあるフラグと、ＥＣＣ保護領域内にある物理アドレス（ＰＡ）およびステータス（ＳＴＳ）と、ＥＣＣとからなる。フラグは、２ビットからなる情報であり、「１１」であれば「縮退中」、「００」であれば「縮退なし」、「０１」あるいは「１０」であれば「未使用」、をそれぞれあらわしている。また、物理アドレスは、たとえば、２２ビットのデータであり、データの格納先をあらわすアドレスをあらわしている。
【００２８】
ステータスは、たとえば、８ビットのデータであり、ＣＰＵにおけるタグ（ＴＡＧ）が示すデータの保持状態を示す。そして、この保持状態には、該当するデータを１つのＣＰＵが持っている、複数のＣＰＵが持っている、複数のＣＰＵが持っているがＣＰＵが持っているデータのほうが新しい、ＣＰＵは持っていない、の４つの状態が存在する。また、ＥＣＣは、たとえば、７ビットのデータであり、物理アドレスおよびステータスを保護するために用いられる。
【００２９】
また、障害ブロック検出時には、図４の４１に示したタグＲＡＭエントリには、図４の４２に示したデータが書き込まれる。具体的には、フラグには「縮退中」をあらわす「１１」が、物理アドレスには実アドレスとして存在しない「全ビット１」が、ステータスには「ＣＰＵが有効なデータを持っていない状況」をあらわす「全ビット０」が、そして、ＥＣＣには「エラーなし」の情報が、それぞれ書き込まれる。
【００３０】
このようにして、該当ブロックに対して縮退中である旨をあらわす縮退情報が書き込まれるが、書き込まれたデータを読み出す際には、データ誤りによって書き込み時と異なるデータが読み出される場合がある。しかし、後述するように、縮退状況判定部１１ｃが、このようなデータ誤りを加味したうえで縮退状況の判定をおこなうので、縮退状況を正確に把握することができる。
【００３１】
図３に戻って、読み出し処理部１１ｂについて説明する。読み出し処理部１１ｂは、タグＲＡＭエントリ１２ａから読み出した読み出しデータをＣＰＵに対して渡すとともに、障害ブロックを読み出した場合には、読み出した情報を縮退状況判定部１１ｃに渡す処理をおこなう処理部である。
【００３２】
縮退状況判定部１１ｃは、読み出し処理部１１ｂから受け取った読み出しデータに基づいて該当ブロックの縮退状況を判定するとともに、判定結果を外部のデバイスに対して通知する処理をおこなう処理部である。ここで、この縮退状況判定部１１ｃがおこなう判定処理の詳細について図５を用いて説明しておく。図５は、縮退状況判定の一例を示す図である。なお、同図に示す「ＣＥ」はコレクタブルエラー（データ誤りはあったが訂正済み）、「ＵＥ」はアンコレクタブルエラー（訂正不可能なデータ誤り）をそれぞれ示している。
【００３３】
図５に示すように、縮退状況判定部１１ｃは、ＥＣＣ保護対象外にあるフラグ、ＥＣＣ保護対象内にある物理アドレスおよびステータスおよびＥＣＣ判定結果に基づいてブロック縮退判定と、縮退判定結果によっては必要となるエラー処理の選択をおこなう。
【００３４】
図５の５１に示したのは、フラグが「００」の場合である。この場合、図４で説明したように、「００」は「縮退なし」をあらわしているが、書き込み処理部１１ａが「１１（縮退中」と書き込んだにもかかわらず、データ誤りによって２ビットとも反転する確率は非常に低いため、フラグが「００」であれば他の項目の状況にかかわらず縮退なしと判定する。
【００３５】
図５の５２〜５５に示したのは、フラグが「１１」の場合である。この場合には、５１に示した場合とは異なり、物理アドレス、ステータスおよびＥＣＣ判定結果に基づいてブロック縮退あり／なしを判定する。そして、各項目の状態からみて読み出しデータに許容できないデータ誤りが含まれる場合（５４あるいは５５）には、それぞれ、ウェイ縮退やフェータルエラーといった判定をおこなったうえで該当するデバイスに対して縮退状況を通知することになる。
【００３６】
図５の５６〜５９に示したのは、フラグが「０１」または「１０」の場合である。この場合には、５２〜５５に示した場合と同様に、物理アドレス、ステータスおよびＥＣＣ判定結果に基づいてブロック縮退あり／なしを判定する。そして、各項目の状態からみて読み出しデータに許容できないデータ誤りが含まれる場合（５７、５８および５９）には、それぞれ、ウェイ縮退やフェータルエラーといった判定をおこなったうえで該当するデバイスに対して縮退状況を通知することになる。
【００３７】
図３の説明に戻って、記憶部１２について説明する。記憶部１２は、タグＲＡＭ１２ａを備えた記憶部であり、タグＲＡＭ１２ａは、スタティックＲＡＭ（ＳＲＡＭ）によって構成され、図１に示したウェイおよびブロックを含む。そして、このタグＲＡＭ１２ａは、タグＲＡＭ制御部１０を参照するＣＰＵの数量に応じたタグが用意され、各ＣＰＵ内のタグＲＡＭのコピーが保持される。
【００３８】
次に、上記した障害情報を用いたブロック縮退処理の処理手順について図６を用いて説明する。図６は、ブロック縮退処理の処理手順を示すフローチャートである。同図に示すように、ＳＣ（システムコントローラ）がブロックエラーを検出すると（ステップＳ１０１）、ＣＰＵに対してブロック縮退要求を発行する（ステップＳ１０２）。このブロック縮退要求を受けたＣＰＵは、対象ブロックを縮退したと仮定した場合に、全ウェイの同一ブロックが縮退状態となるか否かを判定する（ステップＳ１０３）。
【００３９】
そして、全ウェイの同一ブロックが縮退状態とはならないと判定した場合には（ステップＳ１０３，Ｎｏ）、該当ブロックを含むウェイにおける全データを主記憶装置に書き戻したうえで（ステップＳ１０４）、該当ブロックのフラグを立てる（図４の４２参照）処理をおこなう（ステップＳ１０５）。つづいて、ＣＰＵはＳＣに対して縮退通知を発行し（ステップＳ１０６）、この縮退通知を受けたＳＣはブロック縮退を実行して（ステップＳ１０７）処理を終了する。なお、ステップＳ１０３において、全ウェイの同一ブロックが縮退状態になると判定された場合には（ステップＳ１０３，Ｙｅｓ）、ＣＰＵはステップＳ１０４以降の処理をおこなうことなく処理を終了する。
【００４０】
上述してきたように、本実施例では、書き込み処理部がブロック障害を検出した場合に、タグＲＡＭへのエントリデータとしてＥＣＣ保護領域外およびＥＣＣ保護領域外に縮退中である旨をあらわす所定のデータを書き込むとともに、読み出し処理部がタグＲＡＭのブロックからデータを読み出した際には、縮退状況判定部が、先に書き込み処理部が書き込んだ所定のデータにデータ誤りを加味したうえで縮退中／縮退なしの縮退状況判定をおこなうとともに、必要な場合にはウェイ縮退やフェータルエラーといったエラー判定をおこなうよう構成した。つまり、ＥＣＣ保護領域内に障害情報を書き込むことによってＥＣＣによる誤り訂正機能を利用することでＥＣＣ保護領域外における使用ビット数を最小限に抑えることができる。したがって、ブロック単位の縮退をおこなう場合に、ブロック縮退に伴う縮退情報を削減することができる。
【００４１】
また、エントリデータにおける誤り訂正保護領域内に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むよう構成したので、誤り訂正保護領域内における誤り訂正機能を利用することによって誤り訂正保護領域外における縮退情報のサイズを最小限に抑えることができるという効果を奏する。
【００４２】
また、第一の縮退情報として誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むよう構成したので、誤り訂正保護領域内における各項目をそのまま利用することによって、誤り訂正保護領域内に縮退情報格納用のあらたな領域を確保する必要がないという効果を奏する。
【００４３】
また、第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むよう構成したので、最小限の縮退情報を用いることによって、ブロックごとに必要な縮退情報の格納領域を抑制することができる。したがって、特に、多数のブロックを含むキャッシュメモリにおいて縮退情報の格納用領域を大幅に削減することができるという効果を奏する。
【００４４】
（付記１）各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込手段と、前記ブロックに対して前記縮退情報書込手段が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定手段とを備えたことを特徴とするキャッシュメモリ装置。
【００４５】
（付記２）前記縮退情報書込手段は、前記エントリデータにおける誤り訂正保護領域外に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする付記１に記載のキャッシュメモリ装置。
【００４６】
（付記３）前記縮退情報書込手段は、前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする付記２に記載のキャッシュメモリ装置。
【００４７】
（付記４）前記縮退情報書込手段は、前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする付記２または３に記載のキャッシュメモリ装置。
【００４８】
（付記５）前記縮退状況判定手段は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする付記２に記載のキャッシュメモリ装置。
【００４９】
（付記６）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする付記２に記載のキャッシュメモリ装置。
【００５０】
（付記７）各エントリデータが格納されるブロックを複数含んでなるウェイを有するキャッシュメモリ装置におけるキャッシュ制御方法であって、前記ブロックが縮退していることをあらわす縮退情報を当該ブロックに対して書き込む縮退情報書込工程と、前記ブロックに対して前記縮退情報書込工程が書き込んだ前記縮退情報の読み出し結果に基づいて当該ブロックの縮退状況を判定する縮退状況判定工程とを含んだことを特徴とするキャッシュ制御方法。
【００５１】
（付記８）前記縮退情報書込工程は、前記エントリデータにおける誤り訂正保護領域外に縮退中である旨をあらわす第一の縮退情報を書き込むとともに誤り訂正保護領域外にも縮退中である旨をあらわす第二の縮退情報を書き込むことを特徴とする付記７に記載のキャッシュ制御方法。
【００５２】
（付記９）前記縮退情報書込工程は、前記第一の縮退情報として前記誤り訂正保護領域内に本来格納されるべきデータが通常とりえない値を書き込むことを特徴とする付記８に記載のキャッシュ制御方法。
【００５３】
（付記１０）前記縮退情報書込工程は、前記第二の縮退情報として縮退中である旨をあらわす２ビットの情報を書き込むことを特徴とする付記８または９に記載のキャッシュ制御方法。
【００５４】
（付記１１）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいて前記ブロックの縮退状況を判定することを特徴とする付記８に記載のキャッシュ制御方法。
【００５５】
（付記１２）前記縮退状況判定工程は、前記第一の縮退情報の読み出し結果、前記第一の縮退情報についての誤り訂正判定結果および前記第二の縮退情報の読み出し結果に基づいてブロック縮退、ウェイ縮退、あるいは、フェータルエラーのいずれかの判定をおこなうことを特徴とする付記８に記載のキャッシュ制御方法。
【産業上の利用可能性】
【００５６】
以上のように、本発明に係るキャッシュ制御装置およびキャッシュ制御方法は、縮退情報の格納領域削減に有用であり、特に、ブロック単位の縮退をおこなうキャッシュメモリにおける縮退情報の格納領域削減に適している。
【図面の簡単な説明】
【００５７】
【図１】図１は、本発明に係るキャッシュ制御手法の概要を示す図である。
【図２】図２は、本発明に係るキャッシュ制御手法を適用したタグＲＡＭ制御部を示す図である。
【図３】図３は、タグＲＡＭ制御部の構成を示すブロック図である。
【図４】図４は、障害情報の一例を示す図である。
【図５】図５は、縮退状況判定の一例を示す図である。
【図６】図６は、ブロック縮退処理の処理手順を示すフローチャートである。
【符号の説明】
【００５８】
１０  タグＲＡＭ制御部
１１  制御部
１１ａ  書き込み処理部
１１ｂ  読み出し処理部
１１ｃ  縮退状況判定部
１２  記憶部
１２ａ  タグＲＡＭ
【国際調査報告】
2007097019.tif 000009
2007097019.tif 000010
2007097019.tif 000011
2007097019.tif 000012