JPWO2005010760A1 - Cam装置およびcam制御方法 - Google Patents

Cam装置およびcam制御方法 Download PDF

Info

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
Application number
JP2005504585A
Other languages
English (en)
Other versions
JP4260805B2 (ja
Inventor
千葉 琢麻
琢麻 千葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2005010760A1 publication Critical patent/JPWO2005010760A1/ja
Application granted granted Critical
Publication of JP4260805B2 publication Critical patent/JP4260805B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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

アドレスに対応する複数のタグを複数のエントリに、パリティビットおよび該パリティビットを反転させた反転ビットを記憶するタグ部(12a)と、複数のエントリに対応させて複数のデータを複数のエントリに記憶するデータ部(12b)と、検索用アドレスとタグ部(12a)の各エントリとを比較する比較器(200〜2031)と、比較結果で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、マルチヒットの発生原因を判定する判定部(112)とを備えている。

Description

本発明は、半導体メモリの一つであるCAM(Content Addresable Memory:内容参照可能メモリ)の制御を行うためのCAM装置およびCAM制御方法に関するものであり、特に、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるCAM装置およびCAM制御方法に関するものである。
第17図は、従来のキャッシュメモリ装置11の適用例の構成を示すブロック図である。この図に示したキャッシュメモリ装置11は、CPU10とメインメモリ13との間の速度差を埋めるための記憶装置であり、例えば、CAM装置である。ここで、CAMは、メモリ領域に記憶されているデータの位置をアドレスで示すのではなく、内容で示すメモリである。
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>(データ)としてそれぞれ記憶される。
比較器20〜2031は、タグ部12aのエントリ0〜31に対応して設けられており、CPU10(第17図参照)から出力される64ビット構成のACCS_ADRS<63:0>(検索アドレス)と、エントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)とを比較し、一致した場合、TAG_HIT(タグヒット)を出力する。
ここで、比較器20〜2031においては、正常動作で、いずれか一つの比較器から一つのTAG_HIT(タグヒット)が出力される。
しかしながら、タグ部12aの複数のエントリに同一のTAG<63:0>(タグ)が記憶されている場合には、複数の比較器からTAG_HIT(タグヒット)が出力され、マルチヒットエラーとされる。このマルチヒットエラーが発生した場合、比較器20〜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にそれぞれ対応させてパリティチェック部51〜5131を設けて、エントリ毎にパリティチェックを実行している。
しかしながら、キャッシュメモリ装置50においては、64ビットのパリティチェックを32エントリ分行うためのパリティチェック部51〜5131について、回路規模が大きく、構成が複雑になるという問題がある。
特開平8−95856号公報 本発明は、上記に鑑みてなされたもので、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるCAM装置およびCAM制御方法を提供することを目的としている。
上記目的を達成するために、本発明は、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶手段と、検索用アドレスと各エントリのタグとを比較する比較手段と、前記比較手段で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定手段と、を備えたことを特徴とする。
また、本発明は、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶工程と、検索用アドレスと各エントリのタグとを比較する比較工程と、前記比較工程で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定工程と、を含むことを特徴とする。
かかる発明によれば、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させ、検索用アドレスと各エントリのタグとを比較し、複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、マルチヒットの発生原因を判定することとしたので、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
第1図は、実施の形態1の構成を示すブロック図であり、第2図は、第1図に示したキャッシュメモリ装置101の構成を示す図であり、第3図は、同実施の形態1におけるTAG<63:0>(タグ)のフォーマットを示す図であり、第4図は、同実施の形態1の動作例1を説明する図であり、第5図は、同実施の形態1の動作例2を説明する図であり、第6図は、実施の形態1の動作例3を説明する図であり、第7図は、実施の形態2の構成を示すブロック図であり、第8図は、第7図に示したキャッシュメモリ装置201の構成を示す図であり、第9図は、第8図に示した比較器210の構成を示す図であり、第10図は、マスク制御ビットとマスクビットとの対応関係を表す図であり、第11図は、第8図に示したマスクオールゼロ部220の構成を示す図であり、第12図は、第11図に示したTAG<63:0>の構成を示す図であり、第13図は、実施の形態1の問題点を説明する図であり、第14図は、実施の形態2の動作例1を説明する図であり、第15図は、実施の形態2の動作例2を説明する図であり、第16図は、実施の形態2の変形例の構成を示す図であり、第17図は、従来のキャッシュメモリ装置11の適用例の構成を示すブロック図であり、第18図は、第17図に示したメインメモリ13を示す図であり、第19図は、従来のキャッシュメモリ装置11の構成を示すブロック図であり、第20図は、従来のキャッシュメモリ装置40の構成を示す図であり、第21図は、従来のキャッシュメモリ装置50の構成を示す図である。
以下、図面を参照して本発明にかかる実施の形態1および2について詳細に説明する。
(実施の形態1)
第1図は、本発明にかかる実施の形態1の構成を示すブロック図である。この図において、第17図の各部に対応する部分には同一の符号を付け、その説明を省略する。第1図においては、第17図に示したキャッシュメモリ装置11に代えて、キャッシュメモリ装置101が設けられている。
キャッシュメモリ装置101は、例えば、CAM装置であり、キャッシュアクセス機能の他に、マルチヒットが発生した場合の原因を一意に特定する機能等を備えている。
第2図は、第1図に示したキャッシュメモリ装置101の構成を示す図である。この図において、第21図に対応する部分には同一の符号を付け、その説明を省略する。
同図においては、第21図に示したパリティチェック部51〜5131に代えて、アンド回路110〜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図に戻り、アンド回路110〜11031は、タグ部12aのエントリ0〜31に対応して設けられており、比較器20〜2031からのTAG_HIT(タグヒット)と、エントリ0〜31に記憶されたTAG<63:0>(第3図参照)とのアンドをとる回路である。
オア回路111は、アンド回路110〜11031の各出力のオアをとる回路である。判定部112は、オア回路111の出力に基づいて、MULTI_HIT(マルチヒット)が発生した場合の原因を判定する。この判定部112の動作の詳細については、後述する。
上記構成において、CPU10(第1図参照)から第2図に示した比較器20〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器20〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第4図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器20および比較器20からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路110およびアンド回路110からは、実施の形態1の動作例1として、第4図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路110からは、「00000010−10」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路110からも、「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図に示した比較器20〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器20〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第5図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器20および比較器20からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路110およびアンド回路110からは、第5図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路110からは、「00000110−01」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路110からは、「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図に示した比較器20〜2031にACCS_ADRS<63:0>(検索アドレス)が入力されると、比較器20〜2031のそれぞれは、タグ部12aのエントリ0〜31に記憶されている各TAG<63:0>(第3図参照)と比較する。
この場合、第6図に示したエントリ0および1に記憶されたTAG<63:0>が、共に、ACCS_ADRS<63:0>(検索アドレス)と一致しているとすると、比較器20および比較器20からは、TAG_HIT(タグヒット)およびMULTI_HIT(マルチヒット)が出力される。
これにより、アンド回路110およびアンド回路110からは、第6図に示したエントリ0および1に記憶されたTAG<63:0>がそれぞれ出力される。
ここで、TAG<63:56>、PB、RBに着目すると、エントリ0に対応するアンド回路110からは、「00000010−01」がオア回路111に出力される。
一方、エントリ1に対応するアンド回路110からは、「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図に示した比較器20〜2031に代えて、比較器210〜21031が設けられているとともに、マスクオールゼロ部220〜22031が新たに設けられている。
比較器210〜21031は、タグ部12aのエントリ0〜31に対応して設けられており、CPU10(第17図参照)から出力される64ビット構成のACCS_ADRS<63:0>(検索アドレス)と、エントリ0〜31にそれぞれ記憶されたTAG<63:0>(タグ)とを比較し、一致した場合、TAG_HIT(タグヒット)を出力する。
但し、比較器210〜21031は、TAG<63:0>(タグ)のうち、予め指定された範囲のビットにマスクをかけたものと、ACCS_ADRS<63:0>(検索アドレス)とを比較する機能を備えている。
第9図は、第8図に示した比較器210の構成を示す図である。同図において、タグ部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図に示した他の比較器210〜21031も、比較器210と同様の構成とされている。
第8図に戻り、マスクオールゼロ部220〜22031は、タグ部12aのエントリ0〜31に対応して設けられており、比較器210〜21031でマスクがかけられたビットをオールゼロにする機能を備えている。
第11図は、第8図に示したマスクオールゼロ部220の構成を示すブロック図である。同図において、第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で反転されたものとのアンドをとる。マスクオールゼロ部220からは、入力の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により、比較器210で網掛けのビット(TAG<15:13>、PB、RB)がマスクされたものとする。マスクビットは、ACCS_ADRS<63:0>(検索アドレス)との比較対象から外される。
また、タグ部12aのエントリ1においては、TAG<21:13>、PB、RBに、「001−10」、「100−10」、「000−01」が格納されており、マスク制御ビットSIZE=10により、比較器210で網掛けのビット(TAG<18:16>、PB、RB、TAG<15:13>、PB、RB)がマスクされたものとする。
ここで、「00101011」からなるACCS_ADRS<21:13>を含むACCS_ADRS<63:0>(検索アドレス)が、第8図に示した比較器210〜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も含む)がマスクオールゼロ部220でオールゼロとされる。一方、エントリ1のTAG<18:16>およびTAG<15:13>(網掛け部分のマスクビット、PB、RBも含む)も、マスクオールゼロ部220によりオールゼロとされる。
つぎに、両者のオアが採られ、判定部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も含む)は、マスクオールゼロ部220でオールゼロとされる。一方、エントリ1のTAG<18:16>およびTAG<15:13>(網掛け部分のマスクビット、PB、RBも含む)も、マスクオールゼロ部220によりオールゼロとされる。
つぎに、両者のオアが採られ、判定部112では、TAG<18:16>についてパリティビットPBが異常、反転ビットRBが正常であるため、パリティエラーがマルチヒットの原因と判定される。なお、PB=RB=0の場合には、マスク制御が行われたことを表しており、当該ブロック(この場合、TAG<15:13>)にエラーが無いと判定される。
以上説明したように、実施の形態2によれば、ビットにマスクをかける場合であっても、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができる。
なお、実施の形態2においては、第8図に示したマスクオールゼロ部220〜22031を、タグ部12aにTAG<63:0>を格納する直前に接続し、タグ部12aに格納されるTAG自体をゼロにしてもよい。
また、実施の形態2においては、第8図に示したマスクオールゼロ部220〜22031に代えて、32個のマスクオールワン部(図示略)を設けて、マスクビットをオール1にして、アンド回路110〜11031の直前で反転回路により反転させても、同様の効果を奏する。
また、実施の形態2においては、第16図に示したように、データ部12bのエントリ0〜31のそれぞれに記憶されたDATA<63:0>のマスク制御ビット(SIZE<1:0>、G)や有効ビットV等について、排他的論理和回路300〜303によりパリティチェックを行い、信頼性を高める構成としてもよい。同図において、Pはパリティビットを表す。PEはパリティエラーを表す。
以上本発明にかかる実施の形態1および2について図面を参照して詳述してきたが、具体的な構成例はこれら実施の形態1および2に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
以上説明したように、本発明によれば、アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させ、検索用アドレスと各エントリのタグとを比較し、複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、マルチヒットの発生原因を判定することとしたので、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
また、本発明によれば、タグの一部にマスクをかけ、マスク部分を比較対象から除外し、マスク部分をオール0またはオール1とすることとしたので、ビットにマスクをかける場合であっても、小規模かつ簡易な構成でマルチヒット発生の原因を一意に特定することができるという効果を奏する。
また、本発明によれば、データに含まれるマスク制御データに基づいて、マスクをかけるとともに、マスク制御データの誤りをチェックすることとしたので、信頼性を高めることができるという効果を奏する。
以上のように、本発明にかかるCAM装置およびCAM制御方法は、CAMにおけるマルチヒットの発生原因の判定に対して有用である。

Claims (6)

  1. アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶手段と、
    検索用アドレスと各エントリのタグとを比較する比較手段と、
    前記比較手段で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定手段と、
    を備えたことを特徴とするCAM装置。
  2. 前記タグの一部にマスクをかけ、マスク部分を前記比較手段の比較対象から除外するマスク手段と、前記マスク部分をオール0またはオール1とするマスク部分変更手段と、を備えたことを特徴とする請求の範囲第1項に記載のCAM装置。
  3. 前記マスク手段は、前記データ記憶手段に記憶されているデータに含まれるマスク制御データに基づいて、マスクをかけるとともに、前記マスク制御データの誤りをチェックすることを特徴とする請求の範囲第2項に記載のCAM装置。
  4. アドレスに対応する複数のタグと、各タグのパリティビットと、該パリティビットを反転させた反転ビットとを複数のエントリに記憶させるタグ記憶工程と、
    検索用アドレスと各エントリのタグとを比較する比較工程と、
    前記比較工程で複数一致であるマルチヒットが発生した場合、当該複数のエントリの記憶内容のオアをとり、オア後のパリティビットおよび反転ビットに基づいて、前記マルチヒットの発生原因を判定する判定工程と、
    を含むことを特徴とするCAM制御方法。
  5. 前記タグの一部にマスクをかけ、マスク部分を前記比較手段の比較対象から除外するマスク工程と、前記マスク部分をオール0またはオール1とするマスク部分変更工程と、を含むことを特徴とする請求の範囲第4項に記載のCAM制御方法。
  6. 前記マスク工程では、前記データ記憶手段に記憶されているデータに含まれるマスク制御データに基づいて、マスクをかけるとともに、前記マスク制御データの誤りをチェックすることを特徴とする請求の範囲第5項に記載のCAM制御方法。
JP2005504585A 2003-07-29 2003-07-29 Cam装置およびcam制御方法 Expired - Fee Related JP4260805B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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