JPWO2005010760A1 - Cam装置およびcam制御方法 - Google Patents
Cam装置およびcam制御方法 Download PDFInfo
- Publication number
- JPWO2005010760A1 JPWO2005010760A1 JP2005504585A JP2005504585A JPWO2005010760A1 JP WO2005010760 A1 JPWO2005010760 A1 JP WO2005010760A1 JP 2005504585 A JP2005504585 A JP 2005504585A JP 2005504585 A JP2005504585 A JP 2005504585A JP WO2005010760 A1 JPWO2005010760 A1 JP WO2005010760A1
- Authority
- JP
- Japan
- Prior art keywords
- tag
- mask
- bit
- hit
- entries
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
CPU(Central Processing Unit)10は、キャッシュメモリ装置11またはメインメモリ13にアクセスすることで、データのリード/ライトを行う。
メインメモリ13は、大容量であってかつアクセス時間がキャッシュメモリ装置11に比して遅いという特性を備えている。このメインメモリ13には、第18図に示したように、CPU10で用いられるデータの全てが記憶されている。
すなわち、同図において、メインメモリ13には、64ビット構成の各アドレス<63:0>(0ビット〜63ビット)に対応付けて、64ビット構成の各データ<63:0>が記憶されている。
第17図に戻り、キャッシュメモリ装置11は、アクセス時間がメインメモリ13に比して短いという特性を備えている。
さらに、記憶容量の面から見れば、メインメモリ13の記憶容量は、キャッシュメモリ装置11の記憶容量よりも大きい。
第19図は、第17図に示したキャッシュメモリ装置11の構成を示す図である。同図において、タグ部12aには、メインメモリ13に記憶されているアドレス<63:0>(第18図参照)がTAG<63:0>(タグ)として最大32個まで記憶される。
一方、データ部12bには、タグ部12aに記憶されているTAG<63:0>(タグ)に対応するDATA<63:0>(データ)が最大32個まで記憶される。
具体的には、タグ部12aは、記憶場所としてのエントリ0〜31を有している。これらのエントリ0〜31には、メインメモリ13に記憶されているアドレス<63:0>(第18図参照)が、TAG<63:0>(タグ)としてそれぞれ記憶される。
一方、データ部12bも、タグ部12aと同様にして、記憶場所としてのエントリ0〜31を有している。タグ部12aのエントリ0〜31と、データ部12bのエントリ0〜31とは、対をなすようにそれぞれ対応している。
データ部12bのエントリ0〜31には、メインメモリ13に記憶されているデータ<63:0>(第18図参照)が、DATA<63:0>(データ)としてそれぞれ記憶される。
比較器200〜2031は、タグ部12aのエントリ0〜31に対応して設けられており、CPU10(第17図参照)から出力される64ビット構成のACCS_ADRS<63:0>(検索アドレス)と、エントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)とを比較し、一致した場合、TAG_HIT(タグヒット)を出力する。
ここで、比較器200〜2031においては、正常動作で、いずれか一つの比較器から一つのTAG_HIT(タグヒット)が出力される。
しかしながら、タグ部12aの複数のエントリに同一のTAG<63:0>(タグ)が記憶されている場合には、複数の比較器からTAG_HIT(タグヒット)が出力され、マルチヒットエラーとされる。このマルチヒットエラーが発生した場合、比較器200〜2031からは、MULTI_HIT(マルチヒット)が出力される。
セレクタ30は、データ部12bのエントリ0〜31にそれぞれ記憶されたDATA<63:0>(データ)のうち、TAG_HIT(タグヒット)に対応するエントリに記憶されたDATA<63:0>(データ)を選択し、出力する。
セレクタ30から出力されたDATA<63:0>(データ)は、ACCS_ADRS<63:0>(検索アドレス)に対応する検索結果であり、CPU10に入力される。
ここで、第19図においては、タグ部12aのエントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)について、ビット反転等によるエラーをチェックする必要がある。
第20図は、上記チェック機能として、パリティチェック機能を有するキャッシュメモリ装置40の構成を示す図である。この図において、第19図の各部に対応する部分に同一の符号を付ける。
第20図においては、セレクタ41およびパリティチェック部42が新たに設けられている。セレクタ41は、タグ部12aのエントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)のうち、TAG_HIT(タグヒット)に対応するエントリに記憶されたTAG<63:0>(タグ)を選択し、出力する。
パリティチェックとは、パリティビットを使って、データに誤り(ビット反転等)があるか否かをチェックすることをいう。パリティチェックにおいては、チェック対象の元データに、1の数が偶数になるように、パリティビット(0または1)が予め付加される。
また、パリティチェックにおいては、1の数が偶数である場合、エラー無しと判定され、1の数が奇数である場合、ビット反転等によるパリティエラーが発生したと判定される。
例えば、元データが「00101000」という8ビット構成である場合には、1の数が偶数であるため、0のパリティビットが付加され、「00101000」+「0」という9ビット構成とされる。
ここで、ビット反転等により、「00101000」+「0」が「10101000」+「0」とされた場合には、1の数が奇数(=3)とされ、パリティエラーが発生していると判定される。
また、元データが「00101100」という8ビット構成である場合には、1の数が奇数であるため、1のパリティビットが付加され、「00101100」+「1」という9ビット構成とされる。
ここで、ビット反転等により、「00101100」+「1」が「10101100」+「1」とされた場合には、1の数が奇数(=5)とされ、パリティエラーが発生していると判定される。
ここで、第20図に示したキャッシュメモリ装置40において、タグ部12aのエントリ0〜31には、TAG<63:0>(タグ)およびTAG_P<7:0>(パリティビット)が記憶されている。
パリティチェック部42は、セレクタ41で選択されたTAG<63:0>(タグ)についてパリティチェックを実行し、パリティチェックエラーが発生している場合、TAG_PE(パリティチェックエラー)を出力する。TAG_PE(パリティチェックエラー)が出力された場合、セレクタ30で選択されたDATA<63:0>(データ)は、無効とされる。
しかしながら、第20図に示したキャッシュメモリ装置40においては、MULTI_HIT(マルチヒット)が発生した場合、マルチヒットの原因(以下の第1の原因、第2の原因)を一意に特定することができないという問題がある。
すなわち、マルチヒットの第1の原因としては、単純にタグ部12aの複数のエントリに同一のTAG<63:0>(タグ)が記憶されて、MULTI_HIT(マルチヒット)となった場合が挙げられる。
また、第2の原因としては、タグ部12aの複数のエントリに別々のTAG<63:0>(タグ)が記憶されていたが、ビット反転等のエラーにより、両TAG<63:0>(タグ)が同一のTAG<63:0>(タグ)とされ、MULTI_HIT(マルチヒット)となった場合が挙げられる。
そこで、従来では、上述した問題点を解決すべく、第21図に示したキャッシュメモリ装置50のように、タグ部12aのエントリ0〜31にそれぞれ対応させてパリティチェック部510〜5131を設けて、エントリ毎にパリティチェックを実行している。
しかしながら、キャッシュメモリ装置50においては、64ビットのパリティチェックを32エントリ分行うためのパリティチェック部510〜5131について、回路規模が大きく、構成が複雑になるという問題がある。
また、本発明は、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶工程と、検索用アドレスと各エントリのタグとを比較する比較工程と、前記比較工程で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定工程と、を含むことを特徴とする。
かかる発明によれば、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させ、検索用アドレスと各エントリのタグとを比較し、複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、マルチヒットの発生原因を判定することとしたので、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
(実施の形態1)
第1図は、本発明にかかる実施の形態1の構成を示すブロック図である。この図において、第17図の各部に対応する部分には同一の符号を付け、その説明を省略する。第1図においては、第17図に示したキャッシュメモリ装置11に代えて、キャッシュメモリ装置101が設けられている。
キャッシュメモリ装置101は、例えば、CAM装置であり、キャッシュアクセス機能の他に、マルチヒットが発生した場合の原因を一意に特定する機能等を備えている。
第2図は、第1図に示したキャッシュメモリ装置101の構成を示す図である。この図において、第21図に対応する部分には同一の符号を付け、その説明を省略する。
同図においては、第21図に示したパリティチェック部510〜5131に代えて、アンド回路1100〜11031、オア回路111および判定部112が設けられている。
ここで、実施の形態1においては、第3図に示したフォーマットのTAG<63:0>(タグ)がタグ部12a(第2図参照)のエントリ0〜31に記憶されている。
第3図に示したTAG<63:0>(タグ)においては、TAG<63:56>、TAG<55:48>、TAG<47:40>、TAG<39:32>、TAG<31:24>、TAG<23:16>、TAG<15:8>およびTAG<7:0>という8ビット単位で区切られ、各8ビット単位にパリティビットPBおよび反転ビットRBが付加されている。
例えば、TAG<63:56>においては、56ビット目〜63ビット目という8ビットに対して、上述したパリティチェックにおけるパリティビットPBと、パリティビットPBを反転させた反転ビットRBが付加されている。他のTAGも同様である。
例えば、第4図に示したエントリ0(タグ部12a)には、TAG<63:56>としての「00000010」と、該TAG<63:56>に対応するパリティビットPBの「1」と、パリティビットPB(「1」)を反転させた反転ビットRBの「0」とが記憶されている。
また、エントリ1(タグ部12a)にも、TAG<63:56>としての「00000010」と、該TAG<63:56>に対応するパリティビットPBの「1」と、パリティビットPB(「1」)を反転させた反転ビットRBの「0」とが記憶されている。
第2図に戻り、アンド回路1100〜11031は、タグ部12aのエントリ0〜31に対応して設けられており、比較器200〜2031からのTAG_HIT(タグヒット)と、エントリ0〜31に記憶されたTAG<63:0>(第3図参照)とのアンドをとる回路である。
オア回路111は、アンド回路1100〜11031の各出力のオアをとる回路である。判定部112は、オア回路111の出力に基づいて、MULTI_HIT(マルチヒット)が発生した場合の原因を判定する。この判定部112の動作の詳細については、後述する。
上記構成において、CPU10(第1図参照)から第2図に示した比較器200〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器200〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第4図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器200および比較器201からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路1100およびアンド回路1101からは、実施の形態1の動作例1として、第4図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路1100からは、「00000010−10」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路1101からも、「00000010−10」がオア回路111に出力される。オア回路111では、「00000010−10」(エントリ0)と「00000010−10」(エントリ1)とのオアがとられ、「00000010−10」が判定部112へ出力される。
判定部112は、「00000010−10」についてパリティチェックを行う。この場合、判定部112は、「00000010−1*」(*は、反転ビットRB)において、1が偶数でパリティチェック結果が正常、反転ビットRB(=0)も正常(パリティビットPB(=1)の反転)であるため、マルチヒット発生の原因を、同一のTAG<63:0>が複数のエントリに重複記憶されているからである、と判定する。
また、実施の形態1の動作例2として、第5図に示したように、エントリ0(タグ部12a)に「00000110−01」、エントリ1(タグ部12a)に「00000010−10」が記憶されているものとする。
ここで、エラーにより、エントリ1のTAG<58>が「0」から「1」に反転したものとする。
この状態で、CPU10(第1図参照)から第2図に示した比較器200〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器200〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第5図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器200および比較器201からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路1100およびアンド回路1101からは、第5図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路1100からは、「00000110−01」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路1101からは、「00000110−10」がオア回路111に出力される。オア回路111では、「00000110−01」(エントリ0)と「00000110−10」(エントリ1)とのオアがとられ、「00000110−11」が判定部112へ出力される。
判定部112は、「00000110−11」についてパリティチェックを行う。この場合、判定部112は、「00000110−1*」(*は、反転ビットRB)において、1が奇数でパリティビットPBが異常、反転ビットRB(=1)も異常(パリティビットPB(=1)の反転ではない)であるため、マルチヒット発生の原因をパリティエラーと判定する。
また、実施の形態1の動作例3として、第6図に示したように、エントリ0(タグ部12a)に「00000110−01」、エントリ1(タグ部12a)に「00000010−10」が記憶されているものとする。
ここで、エラーにより、エントリ0のTAG<58>が「1」から「0」に反転したものとする。
この状態で、CPU10(第1図参照)から第2図に示した比較器200〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器200〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第6図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器200および比較器201からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路1100およびアンド回路1101からは、第6図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路1100からは、「00000010−01」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路1101からは、「00000010−10」がオア回路111に出力される。オア回路111では、「00000010−01」(エントリ0)と「00000010−10」(エントリ1)とのオアがとられ、「00000010−11」が判定部112へ出力される。
判定部112は、「00000010−11」についてパリティチェックを行う。この場合、判定部112は、「00000010−1*」(*は、反転ビットRB)においては、1が偶数でパリティビットPBが正常であるが、反転ビットRB(=1)が異常(パリティビットPB(=1)の反転ではない)であるため、マルチヒット発生の原因をパリティエラーと判定する。
以上説明したように、実施の形態1によれば、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができる。
(実施の形態2)
さて、前述した実施の形態1においては、タグ部12aのエントリ0〜31から出力されるTAG<63:0>の一部のビットにマスクをかける構成にもマルチヒット発生の原因を特定する機能を持たせることが可能である。以下では、この構成例を実施の形態2として説明する。
第7図は、本発明にかかる実施の形態2の構成を示すブロック図である。この図において、第1図の各部に対応する部分には同一の符号を付け、その説明を省略する。第7図においては、第1図に示したキャッシュメモリ装置101に代えて、キャッシュメモリ装置201が設けられている。
キャッシュメモリ装置201は、例えば、CAM装置であり、キャッシュメモリ装置101(第1図参照)と同様の機能を備え、TAG<63:0>(タグ)の一部にマスクがかけられる場合にも、マルチヒットエラーの発生原因を一意に特定する機能を備えている。
第8図は、第7図に示したキャッシュメモリ装置201の構成を示す図である。この図において、第2図の各部に対応する部分には同一の符号を付ける。
第8図においては、第2図に示した比較器200〜2031に代えて、比較器2100〜21031が設けられているとともに、マスクオールゼロ部2200〜22031が新たに設けられている。
比較器2100〜21031は、タグ部12aのエントリ0〜31に対応して設けられており、CPU10(第17図参照)から出力される64ビット構成のACCS_ADRS<63:0>(検索アドレス)と、エントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)とを比較し、一致した場合、TAG_HIT(タグヒット)を出力する。
但し、比較器2100〜21031は、TAG<63:0>(タグ)のうち、予め指定された範囲のビットにマスクをかけたものと、ACCS_ADRS<63:0>(検索アドレス)とを比較する機能を備えている。
第9図は、第8図に示した比較器2100の構成を示す図である。同図において、タグ部12a(第8図参照)のエントリ0には、TAG<63:0>が記憶されている。
このTAG<63:0>は、TAG<63:22>、TAG<21:19>、TAG<18:16>、TAG<15:13>、TAG<12:0>という単位で区切られ、各単位に、実施の形態1と同様にして、パリティビットPBおよび反転ビットRBが付加されている。なお、タグ部12aのエントリ1〜31にも、エントリ0と同様のフォーマットで、TAG<63:0>が記憶されている。
また、データ部12bのエントリ0には、DATA<63:0>が記憶されている。このDATA<63:0>には、有効ビットV、マスク制御ビットSIZE、マスク制御ビットGが含まれている。
有効ビットVは、DATA<63:0>(データ)の有効性(1:有効、0:無効)を表すビットである。マスク制御ビットSIZEおよびマスク制御ビットGは、第10図に示したように、TAG<63:0>にマスクをかける場合に、マスクビット(マスクされるビット)の範囲を指定するためのビットである。
同図に示したように、マスク制御ビットGが1の場合には、TAG<63:0>(第9図参照)のうち、TAG<12:0>がマスクされる。
マスク制御ビットSIZEが11の場合には、TAG<63:0>(第9図参照)のうち、TAG<21:13>がマスクされる。マスク制御ビットSIZEが10の場合には、TAG<63:0>(第9図参照)のうち、TAG<18:13>がマスクされる。
また、マスク制御ビットSIZEが01の場合には、TAG<63:0>(第9図参照)のうち、TAG<15:13>がマスクされる。
第9図に戻り、比較器211、212、213、214および215は、TAG<12:0>、TAG<15:13>、TAG<18:16>、TAG<21:19>およびTAG<63:22>と、ACCS_ADRS<63:0>(検索アドレス)の<12:0>、<15:13>、<18:16>、<21:19>および<63:22>とをそれぞれ比較する。
オア回路216は、比較器211の出力結果(TAG<12:0>)と、マスク制御ビットG(第10図参照)とのオアをとる。オア回路217は、比較器212の出力結果(TAG<15:13>)と、マスク範囲設定回路220の出力とのオアをとる。
オア回路218は、比較器213の出力結果(TAG<18:16>)と、マスク範囲設定回路220の出力とのオアをとる。オア回路219は、比較器214の出力結果(TAG<21:19>)と、マスク範囲設定回路220の出力とのオアをとる。
アンド回路221は、オア回路216〜219の出力および有効ビットVのアンドをとり、オール1である場合、TAG_HIT(タグヒット)を出力する。
なお、第8図に示した他の比較器2101〜21031も、比較器2100と同様の構成とされている。
第8図に戻り、マスクオールゼロ部2200〜22031は、タグ部12aのエントリ0〜31に対応して設けられており、比較器2100〜21031でマスクがかけられたビットをオールゼロにする機能を備えている。
第11図は、第8図に示したマスクオールゼロ部2200の構成を示すブロック図である。同図において、第9図の各部に対応する部分には同一の符号を付ける。
アンド回路221は、TAG<12:0>と、マスク制御ビットG(第10図参照)がノット回路228で反転されたものとのアンドをとる。
アンド回路222は、TAG<15:13>と、オア回路226の出力がノット回路229で反転されたものとのアンドをとる。
アンド回路223は、TAG<18:16>と、オア回路227の出力がノット回路230で反転されたものとのアンドをとる。
アンド回路224は、TAG<21:19>と、マスク範囲設定回路225の出力がノット回路231で反転されたものとのアンドをとる。マスクオールゼロ部2200からは、入力のTAG<63:0>のうちマスクされたビットがオールゼロとされたTAG<63:0>が出力される。
第12図は、第9図および第11図に示したTAG<63:0>の構成を示す図である。タグ部12aの各エントリには、同図に示したフォーマットのTAG<63:0>および各パリティビットPBおよび反転ビットRBが記憶されている。
以下では、TAG<63:0>のうち、TAG<21:19>、TAG<18:16>およびTAG<15:13>、パリティビットPB、反転ビットRBに着目して説明する。
ここで、第13図に示したように、タグ部12aのエントリ0においては、TAG<21:13>、PB、RBに、「001−10」、「010−10」、「000−01」が格納されており、マスク制御ビットSIZE=01により、比較器2101で網掛けのビット(TAG<15:13>、PB、RB)がマスクされたものとする。マスクビットは、ACCS_ADRS<63:0>(検索アドレス)との比較対象から外される。
また、タグ部12aのエントリ1においては、TAG<21:13>、PB、RBに、「001−10」、「100−10」、「000−01」が格納されており、マスク制御ビットSIZE=10により、比較器2101で網掛けのビット(TAG<18:16>、PB、RB、TAG<15:13>、PB、RB)がマスクされたものとする。
ここで、「00101011」からなるACCS_ADRS<21:13>を含むACCS_ADRS<63:0>(検索アドレス)が、第8図に示した比較器2100〜21031に入力されると、第13図に示したエントリ0およびエントリ1のTAG<63:0>(パリティビットPB、反転ビットRBを含む)がTAG_HIT(タグヒット)とされる。すなわち、マルチヒットとされる。
ここで、実施の形態1の場合には、第13図に示したように、両者のオアが採られる。しかしながら、TAG<18:16>のパリティビットPBが異常であるため、見かけ上パリティエラーと誤判定されてしまう。これを回避するために、実施の形態2では、第14図および第15図に示したように、TAG<63:0>のうち、マスクがかけられたビットをオール0にすることにより、上記誤判定を防止している。
第14図の場合には、エントリ0のTAG<15:13>(網掛け部分のマスクビット、PB、RBも含む)がマスクオールゼロ部2200でオールゼロとされる。一方、エントリ1のTAG<18:16>およびTAG<15:13>(網掛け部分のマスクビット、PB、RBも含む)も、マスクオールゼロ部2201によりオールゼロとされる。
つぎに、両者のオアが採られ、判定部112では、TAG<21:19>およびTAG<18:16>について、パリティビットPBが正常、反転ビットRBが正常であるため、マスクにより同一のTAG<63:0>が重複して存在したことが、マルチヒットの原因と判定される。
なお、PB=RB=0の場合には、マスク制御が行われたことを表しており、当該ブロック(この場合、TAG<15:13>)にエラーが無いと判定される。
一方、第15図に示したように、エラーによりビットが反転した場合には、パリティエラーがマルチヒットの原因と判定される。すなわち、同図においては、エントリ0のTAG<18:16>のうちTAG<18>がエラーにより0から1に反転したものとする。
そして、エントリ0のTAG<15:13>(網掛け部分のマスクビット,PB、RBも含む)は、マスクオールゼロ部2200でオールゼロとされる。一方、エントリ1のTAG<18:16>およびTAG<15:13>(網掛け部分のマスクビット、PB、RBも含む)も、マスクオールゼロ部2201によりオールゼロとされる。
つぎに、両者のオアが採られ、判定部112では、TAG<18:16>についてパリティビットPBが異常、反転ビットRBが正常であるため、パリティエラーがマルチヒットの原因と判定される。なお、PB=RB=0の場合には、マスク制御が行われたことを表しており、当該ブロック(この場合、TAG<15:13>)にエラーが無いと判定される。
以上説明したように、実施の形態2によれば、ビットにマスクをかける場合であっても、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができる。
なお、実施の形態2においては、第8図に示したマスクオールゼロ部2200〜22031を、タグ部12aにTAG<63:0>を格納する直前に接続し、タグ部12aに格納されるTAG自体をゼロにしてもよい。
また、実施の形態2においては、第8図に示したマスクオールゼロ部2200〜22031に代えて、32個のマスクオールワン部(図示略)を設けて、マスクビットをオール1にして、アンド回路1100〜11031の直前で反転回路により反転させても、同様の効果を奏する。
また、実施の形態2においては、第16図に示したように、データ部12bのエントリ0〜31のそれぞれに記憶されたDATA<63:0>のマスク制御ビット(SIZE<1:0>、G)や有効ビットV等について、排他的論理和回路300〜303によりパリティチェックを行い、信頼性を高める構成としてもよい。同図において、Pはパリティビットを表す。PEはパリティエラーを表す。
以上本発明にかかる実施の形態1および2について図面を参照して詳述してきたが、具体的な構成例はこれら実施の形態1および2に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
以上説明したように、本発明によれば、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させ、検索用アドレスと各エントリのタグとを比較し、複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、マルチヒットの発生原因を判定することとしたので、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
また、本発明によれば、タグの一部にマスクをかけ、マスク部分を比較対象から除外し、マスク部分をオール0またはオール1とすることとしたので、ビットにマスクをかける場合であっても、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
また、本発明によれば、データに含まれるマスク制御データに基づいて、マスクをかけるとともに、マスク制御データの誤りをチェックすることとしたので、信頼性を高めることができるという効果を奏する。
Claims (6)
- アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶手段と、
検索用アドレスと各エントリのタグとを比較する比較手段と、
前記比較手段で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定手段と、
を備えたことを特徴とするCAM装置。 - 前記タグの一部にマスクをかけ、マスク部分を前記比較手段の比較対象から除外するマスク手段と、前記マスク部分をオール0またはオール1とするマスク部分変更手段と、を備えたことを特徴とする請求の範囲第1項に記載のCAM装置。
- 前記マスク手段は、前記データ記憶手段に記憶されているデータに含まれるマスク制御データに基づいて、マスクをかけるとともに、前記マスク制御データの誤りをチェックすることを特徴とする請求の範囲第2項に記載のCAM装置。
- アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶工程と、
検索用アドレスと各エントリのタグとを比較する比較工程と、
前記比較工程で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定工程と、
を含むことを特徴とするCAM制御方法。 - 前記タグの一部にマスクをかけ、マスク部分を前記比較手段の比較対象から除外するマスク工程と、前記マスク部分をオール0またはオール1とするマスク部分変更工程と、を含むことを特徴とする請求の範囲第4項に記載のCAM制御方法。
- 前記マスク工程では、前記データ記憶手段に記憶されているデータに含まれるマスク制御データに基づいて、マスクをかけるとともに、前記マスク制御データの誤りをチェックすることを特徴とする請求の範囲第5項に記載のCAM制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/009596 WO2005010760A1 (ja) | 2003-07-29 | 2003-07-29 | Cam装置およびcam制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005010760A1 true JPWO2005010760A1 (ja) | 2006-09-14 |
JP4260805B2 JP4260805B2 (ja) | 2009-04-30 |
Family
ID=34090567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005504585A Expired - Fee Related JP4260805B2 (ja) | 2003-07-29 | 2003-07-29 | Cam装置およびcam制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7716416B2 (ja) |
JP (1) | JP4260805B2 (ja) |
WO (1) | WO2005010760A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9208095B2 (en) | 2006-12-15 | 2015-12-08 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
US7877537B2 (en) * | 2006-12-15 | 2011-01-25 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
US8533578B2 (en) * | 2010-06-11 | 2013-09-10 | Freescale Semiconductor, Inc. | Error detection in a content addressable memory (CAM) and method of operation |
US8645762B2 (en) * | 2010-12-08 | 2014-02-04 | Advanced Micro Devices, Inc. | Queue freeze on protocol error |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5792499A (en) | 1980-11-28 | 1982-06-09 | Toshiba Corp | Directory device |
JPS62212751A (ja) | 1986-03-14 | 1987-09-18 | Hitachi Ltd | デ−タ処理装置 |
US5434871A (en) * | 1992-11-17 | 1995-07-18 | Unisys Corporation | Continuous embedded parity checking for error detection in memory structures |
JP3160144B2 (ja) | 1994-03-08 | 2001-04-23 | 富士通株式会社 | キャッシュメモリ装置 |
US5509119A (en) * | 1994-09-23 | 1996-04-16 | Hewlett-Packard Company | Fast comparison method and apparatus for error corrected cache tags |
US6067656A (en) * | 1997-12-05 | 2000-05-23 | Intel Corporation | Method and apparatus for detecting soft errors in content addressable memory arrays |
US6480975B1 (en) * | 1998-02-17 | 2002-11-12 | International Business Machines Corporation | ECC mechanism for set associative cache array |
JP2000132460A (ja) * | 1998-10-21 | 2000-05-12 | Hitachi Ltd | 半導体集積回路装置 |
US6470437B1 (en) * | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US6606681B1 (en) * | 2001-02-23 | 2003-08-12 | Cisco Systems, Inc. | Optimized content addressable memory (CAM) |
US6816396B2 (en) * | 2003-04-01 | 2004-11-09 | International Business Machines Corporation | Apparatus for detecting multiple hits in a CAMRAM memory array |
-
2003
- 2003-07-29 WO PCT/JP2003/009596 patent/WO2005010760A1/ja active Application Filing
- 2003-07-29 JP JP2005504585A patent/JP4260805B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-27 US US11/340,848 patent/US7716416B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20070186035A1 (en) | 2007-08-09 |
JP4260805B2 (ja) | 2009-04-30 |
WO2005010760A1 (ja) | 2005-02-03 |
US7716416B2 (en) | 2010-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7526709B2 (en) | Error detection and correction in a CAM | |
US11216366B2 (en) | Security check systems and methods for memory allocations | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
JP2007133986A (ja) | 半導体記憶装置 | |
JP2004054935A (ja) | マスク可能な内容照合メモリにおけるビットエラーの検出方法および装置 | |
EP3678025B1 (en) | Computer code integrity checking | |
TW200537285A (en) | Methods and apparatuses for reducing burn in within semiconductor devices utilizing static random access memory (SRAM) | |
KR870001307B1 (ko) | 버퍼 기억장치의 단일 비트 에러처리시스템 | |
WO1996039661A1 (en) | Error detection and correction method and apparatus | |
KR100972807B1 (ko) | 에러 정정 코드 생성 방법 및 메모리 관리 장치 | |
KR980010790A (ko) | 불량 테그 메모리를 사용할 수 있는 캐쉬 메모리 | |
JP4260805B2 (ja) | Cam装置およびcam制御方法 | |
US9489255B2 (en) | Dynamic array masking | |
JP2004054936A (ja) | 内容照合メモリにおけるビットエラーの検出方法および装置 | |
US10250279B2 (en) | Circuits and methods for writing and reading data | |
JP4025575B2 (ja) | 内容アドレスメモリシステム | |
JPS6035694B2 (ja) | 主記憶保護方式 | |
JP4773343B2 (ja) | キャッシュメモリのためのエラーを認識する方法と装置,およびキャッシュメモリ | |
JPH10207786A (ja) | メモリシステム | |
JP2004334707A (ja) | メモリ検査装置およびメモリ検査方法 | |
JPH04243446A (ja) | キャッシュ登録制御装置 | |
JP2008065745A (ja) | 記憶装置 | |
JPH02144633A (ja) | コントロールストレージのエラー訂正装置 | |
US20070033452A1 (en) | Method and circuit arrangement for detecting errors in a data record | |
JPH01213733A (ja) | メモリ書込制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20090203 |
|
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: 20090204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
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: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |