JP4159896B2 - Associative memory - Google Patents
Associative memory Download PDFInfo
- Publication number
- JP4159896B2 JP4159896B2 JP2003037908A JP2003037908A JP4159896B2 JP 4159896 B2 JP4159896 B2 JP 4159896B2 JP 2003037908 A JP2003037908 A JP 2003037908A JP 2003037908 A JP2003037908 A JP 2003037908A JP 4159896 B2 JP4159896 B2 JP 4159896B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- signal
- error detection
- cell
- cam
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、被検索データのエラー検出機能を持つ連想メモリに関するものである。
【0002】
【従来の技術】
図3は、従来の連想メモリの一例の構成概略図である。連想メモリ(以下、CAMという)は、メモリアレイに含まれる複数のCAMワードのそれぞれに記憶されているデータ(以下、被検索データという)と検索キーデータとの一致検索を全CAMワードについて同時に行い、その検索結果となる一致フラグ等の情報を出力するものである。図3は、説明を簡単にするために、CAMのメモリアレイに含まれる1ワードのCAMワード40だけを示したものである。
【0003】
CAMワード40は、検索対象のデータを記憶し、検索対象のデータと検索キーデータとを比較して、その比較結果を出力するNビット(図中左側から順に、ビット(N−1)、ビット(N−2)、…、ビット(0)とする)のデータ記憶/比較部12と、データ記憶/比較部12に記憶されているデータが検索対象となる有効なものなのか、検索対象とならない無効なものなのかを示す有効フラグを記憶する1ビットの有効フラグ記憶部16と、データ記憶/比較部12に記憶されているデータと検索キーデータとの検索結果となる一致フラグを保持する等の機能を備えるワードロジック(論理回路部)22とを備えている。
【0004】
データ記憶/比較部12は、それぞれ検索対象となる1ビットのデータを記憶するメモリセル(以下、データセルという)24と、このデータセル24に記憶されているデータとこれに対応する検索キーデータとを比較して、その比較結果を出力する比較回路26とを備えている。また、有効フラグ記憶部16は、有効フラグを記憶する1ビットのメモリセル(以下、フラグセルという)28を備えている。
【0005】
データ記憶/比較部12のデータセル24および有効フラグ記憶部16のフラグセル28には、これらのデータセル24およびフラグセル28に対してデータの書き込みおよび読み出しを行うためのデータ線Dとその反転データ線D ̄がそれぞれ接続されている。また、これらのデータセル24およびフラグセル28には、データの書き込みおよび読み出しを行うタイミングを制御するワード線WLが共通に接続されている。
【0006】
データ記憶/比較部12の比較回路26には、それぞれ対応する検索キーデータを供給するための検索線Kとその反転検索線K ̄が接続されている。また、それぞれの比較回路26には、対応するデータセル24に記憶されているデータが入力され、全ての比較回路26の出力が一致線MLに共通に接続されている。一致線MLはワードロジック22に接続され、ワードロジック22からは、一致フラグ等の情報が出力されている。
【0007】
このCAMでは、一致検索を行うに先立って、ワード線WLの制御により、それぞれ対応するデータ線Dとその反転データ線D ̄を介して、データ記憶/比較部12のデータセル24に検索対象のデータが書き込まれている。また同時に、フラグセル28には、対応するデータ線Dとその反転データ線D ̄を介して、このCAMワード40のデータセル24に記憶されているデータが検索対象となる有効なものであることを示す有効フラグが書き込まれている。
【0008】
なお、データセル24に検索対象となるデータが記憶されていないCAMワードのフラグセル28には、このCAMワードのデータセル24に記憶されているデータが検索対象とならない無効なものであることを示すフラグが書き込まれている。この有効フラグは、一致検索の結果の一致フラグが有効なものであるか、無効なものであるかを指示する信号として用いられる。
【0009】
検索の際には、それぞれ対応する検索線Kとその反転検索線K ̄を介して、データ記憶/比較部12の比較回路26に検索キーデータが与えられ、それぞれの比較回路26において、対応するデータセル24に記憶されているデータと検索キーデータとの比較が行われる。
【0010】
その結果、各データセル24に記憶されているデータとこれに対応する検索キーデータとがそれぞれのデータ記憶/比較部12において全て一致すれば、一致したことを示す信号が一致線ML上に出力される。これに対し、データセル24に記憶されているデータのうちの1ビットでも検索キーデータと一致していなければ、不一致であることを示す信号が一致線ML上に出力され、ワードロジック22に保持されて処理される。
【0011】
ところで、半導体メモリでは、メモリセル自体に物理的な故障がなくても、外来放射線等により、メモリセルに記憶されているデータが使用中に破壊されるソフトエラーと呼ばれる現象が発生することが知られている。このため、半導体メモリの内部において、記憶データにエラーが発生したことを検出したり、実際にエラーが発生した時に、エラーが発生したメモリセルの内容を訂正するための技術が求められている。
【0012】
例えば、ランダムアクセスメモリ(以下、RAMという)では、メモリセルに書き込まれたデータを読み出す時に、エラーが発生しているかどうかを検出する手法を用いて、エラーの検出や訂正を行うための工夫が施されているものがある。
【0013】
CAMにおいても高集積化が進むに従って、同様の問題が発生するようになってきている。しかし、CAMの場合、CAMセルに書き込まれたデータは検索動作時に用いられるため、データの読み出しが必ずしも行われない可能性がある。従って、CAMの場合、RAMで行われているように、データの読み出し時にエラーが発生しているかどうかを検出するという方法を適用することができない。
【0014】
この問題に対し、特許文献1,2などの技術が提案されている。特許文献1は、RAMのエラー検出と同様に、RAMにデータを記憶する時同時にエラー検出用符号も記憶しておき、検索をしてデータが一致すれば、その時にエラー検出用符号も確認して、エラーが発生しているかどうかを確認するという方法をとっている。特許文献2はエラー訂正全般についての技術であるが、CAMに適用可能な方法として引用文献1と同様の方法が開示されている。
【0015】
しかし、これらの従来技術では、どちらも検索をして一致した時に、一致したデータが本当に正しい一致かどうかということを検出しているため、データが壊れていることにより、本来なら一致すべきデータが一致していないという状態を検出することができないという問題点がある。
【0016】
また、従来の方法だと、検索して一致した時にエラー検出を行うので、一致しなければエラー検出がされず、一致が検出されなかったデータについてはエラー検出の機会が非常に少なくなる。従って、前述のソフトエラーのように、時間の経過と共に次第にエラーが増加する場合、エラー検出の機会が少ないと時間の経過と共にエラーが増加し、ますます検出が困難になるという問題点があった。
【0017】
【特許文献1】
特開平9−22595号公報
【特許文献2】
米国特許出願公開第2002/0152442号明細書
【0018】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、データの読み出しや検索動作の実行、検索結果の一致不一致に係わらず、全てのCAMワードの被検索データのエラーを同時に検出することができる連想メモリを提供することにある。
【0019】
【課題を解決するための手段】
上記目的を達成するために、本発明は、各々のCAMワードが被検索データのエラー検出機能を持つ連想メモリであって、
各々の前記CAMワードは、被検索データを記憶するとともに、当該被検索データと検索キーデータとを比較してその比較結果を出力する、少なくとも1つのデータ記憶/比較部と、エラー検出用符号を記憶するエラー検出用符号記憶部と、エラー検出部とを備え、
前記データ記憶/比較部および前記エラー検出用符号記憶部は、それぞれ対応するスイッチを介して転送線に接続され、
全ての前記CAMワードのエラー検出部は、前記スイッチを順次オンすることによって、前記転送線を介して順次入力される、前記データ記憶/比較部に記憶された被検索データおよび前記エラー検出用符号記憶部に記憶されたエラー検出用符号を用いて、前記データ記憶/比較部に記憶された被検索データの中にエラーが存在するかどうかを同時に検出することを特徴とする連想メモリを提供するものである。
ここで、各々の前記CAMワードは、複数の前記データ記憶/比較部を含み、各々の前記データ記憶/比較部は、それぞれ対応するスイッチを介して前記転送線に接続されていることが好ましい。
【0020】
【発明の実施の形態】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の連想メモリを詳細に説明する。
【0021】
図1は、本発明の連想メモリの一実施形態の構成概略図である。同図に示す連想メモリ(以下、CAMという)は、被検索データのエラーを検出する機能を備えるものである。同図には、図3に示す従来のCAMとの対比が容易となるように、同じくCAMのメモリアレイに含まれる1ワードのCAMワード10だけを示してある。なお、CAMのメモリアレイは、実際には1ワードもしくは複数ワードのCAMワード10を含む。
【0022】
本実施形態のCAMワード10は、Nビットのデータ記憶/比較部12と、1ビットのパリティ符号記憶部14と、1ビットの有効フラグ記憶部16と、スイッチ18と、エラー検出部(誤り検出部)20と、ワードロジック22とを備えている。なお、データ記憶/比較部12、有効フラグ記憶部16、ワードロジック22は、図3に示すCAMワード40と全く同じであるから、ここでは同一の構成要素に同一符号を付して、その詳細な説明を省略する。
【0023】
すなわち、データ記憶/比較部12は、データセル24および比較回路26を備え、有効フラグ記憶部16は、フラグセル28を備えている。
【0024】
パリティ符号記憶部14は、パリティ符号を記憶する1ビットのメモリセル(以下、パリティセルという)27を備えている。パリティセル27には、このパリティセル27に対してデータの書き込みおよび読み出しを行うためのデータ線Dとその反転データ線D ̄が接続されている。また、パリティセル27には、データの書き込みおよび読み出しを行うタイミングを制御する、データセル24やフラグセル28と共通のワード線WLが接続されている。
【0025】
ここで、パリティ符号pは、パリティ符号計算手段(図示省略)により下記式(1)に従って算出され、データセル24に検索対象のデータ、およびフラグセル28に有効フラグが書き込まれるのと同時に、パリティセル27にパリティ符号が書き込まれる。
p=ビット(N−1) XOR ビット(N−2) XOR … XOR ビット(0) … (1)
ビット(N−1)、ビット(N−2)、…、ビット(0)は、それぞれ対応するビットのデータセル24のデータである。なお、パリティ符号計算手段は、CAMの内部または外部のどちらに設けられていても良い。
【0026】
スイッチ18は、データセル24、パリティセル27およびフラグセル28のそれぞれに対して1つずつ設けられている。それぞれのスイッチ18には、対応するデータセル24、パリティセル27およびフラグセル28に記憶されているデータが入力され、全てのスイッチ18の出力は転送線TLに共通に接続されている。また、それぞれのスイッチ18には、当該スイッチのオンオフを制御する転送制御線Cが接続されている。
【0027】
スイッチ18は、本実施形態の場合、転送制御線Cにハイレベルが与えられるとオンし、データセル24に記憶されているデータ、パリティセル27に記憶されているパリティ符号、およびフラグセル28に記憶されている有効フラグのうちの1つが転送線TL上に出力される。なお、スイッチ18は、本実施形態の場合、ビット(N−1)、ビット(N−2)、…、ビット(0)のデータセル24、パリティセル27およびフラグセル28に対応するスイッチ18の順に順次オンされる。
【0028】
エラー検出部20は、本実施形態の場合、パリティセル27に記憶される1ビットのパリティ符号に基づいて、データセル24に記憶されているデータにエラー(誤り)が含まれているかどうかを検出するものであり、XORゲート29と、セレクタ(SEL)30と、フリップフロップ(FF)32と、2つのANDゲート34,36とを備えている。なお、フリップフロップ32は、図示していない信号CLOCKに同期して動作する。
【0029】
XORゲート29には、転送線TLおよびフリップフロップ32の出力が入力されている。また、セレクタ30の2つのデータ入力端子には、XORゲート29の出力およびフリップフロップ32の出力が入力され、その選択制御入力端子には信号CALCが入力されている。フリップフロップ32のデータ入力端子にはセレクタ30のデータ出力が入力され、そのクリア入力端子には信号CLEARが入力されている。また、ANDゲート34には転送線TLおよび信号CHECKが入力され、ANDゲート36にはフリップフロップ32のデータ出力およびANDゲート34の出力が入力され、ANDゲート36からはエラー信号ERRORが出力されている。
【0030】
エラー検出部20において、XORゲート29、セレクタ30およびフリップフロップ32は、シンドロームs(フリップフロップ32の出力であり、最終的にエラーの有無を検出し、そのエラー検出結果となる信号ERRORを発生するまでの途中の値を保持する信号)を計算する線型フィードバックシフトレジスタを構成する。
【0031】
ここで、シンドロームsは、この線型フィードバックシフトレジスタにより下記式(2)に従って算出される。
s=ビット(N−1) XOR ビット(N−2) XOR … XOR ビット(0) XOR パリティ符号p … (2)
ビット(N−1)、ビット(N−2)、…、ビット(0)は、上記式(1)の場合と同様に、それぞれ対応するビットのデータセル24のデータである。本実施形態の場合、シンドロームsがローレベルであれば、データにエラーが存在しないことを意味し、ハイレベルであれば、データの中に1ビット(奇数ビット)のエラーが存在していることを意味する。
【0032】
また、信号CLEARは、フリップフロップ32を初期化する信号である。本実施形態の場合、信号CLEARにハイレベルが与えられると、シンドロームsはローレベルにクリアされる。
【0033】
また、信号CALCは、転送線TLを介して入力される信号を、シンドロームsを計算するために使用するかどうかを指示する信号である。本実施形態の場合、信号CALCがローレベルの期間は、現在のシンドロームsがセレクタ30から出力され、シンドロームsの値は保持される。一方、信号CALCがハイレベルの期間は、XORゲート29の出力、すなわち現在のシンドロームsと転送線TLを介して入力される信号(ビット(N−1)、ビット(N−2)、…、ビット(0)のデータおよびパリティ符号)との排他的論理和がセレクタ30から出力され、シンドロームsの値が更新される。
【0034】
信号CHECKは、計算されたシンドロームsの値を用いて、信号ERRORを出力することを指示する信号である。本実施形態の場合、信号CHECKがローレベルの期間は、ANDゲート34,36の出力はローレベル、すなわち信号ERRORはローレベルとなる。一方。信号CHECKがハイレベルになると、転送線TLを介して入力される信号(有効フラグ)とシンドロームsとの論理積がとられ、その結果が信号ERRORとして出力される。すなわち、有効フラグがローレベルの場合、このCAMワード10のデータセル24には検索対象となる有効なデータが記憶されていないので、信号ERRORはローレベルとなる。一方、有効フラグがハイレベルであれば、シンドロームsの値が信号ERRORとして出力される。
【0035】
次に、図1に示すCAMの動作を説明する。
図1に示すCAMの検索時の動作は、図3に示すCAMと全く同じであるから、ここではその繰り返しの説明は省略し、以下、図2に示すタイミングチャートを参照しながら、エラー検出を行う場合のCAMの動作を説明する。なお、CAMワード10のデータセル24、パリティセル27およびフラグセル28には、それぞれ検索対象のデータ、パリティ符号、およびデータセル24に記憶されているデータが検索対象となる有効なものであることを示す有効フラグがそれぞれ記憶されているものとする。
【0036】
ここで、図2において、信号C(N−1)、信号C(N−2)、…、信号C(0)は、それぞれデータセル24のビット(N−1)、ビット(N−2)、…、ビット(0)に対応するスイッチ18に接続されている転送制御信号Cである。同様に、信号C(パリティ符号)は、パリティセル27に対応するスイッチ18に接続されている転送制御信号Cであり、信号C(有効フラグ)は、フラグセル28に対応するスイッチ18に接続されている転送制御信号Cである。
【0037】
エラーの検出を行う場合、図2のタイミングチャートに示すように、まず、信号CLOCKの立ち上がりに同期して、信号CLEARにハイレベルが与えられる。この時、信号CALC、信号CHECK、信号C(N−1)、信号C(N−2)、…、信号C(0)、信号C(パリティ符号)、信号C(有効フラグ)は全てローレベルとされる。
【0038】
これにより、信号CLEARのローレベルに応じてフリップフロップ32が初期化され、そのデータ出力端子から出力されるシンドロームsがローレベルとなる。また、信号CALCのローレベルに応じて、セレクタ30からはフリップフロップ32から出力されるシンドロームsが選択的に出力され、シンドロームsの値が保持される。また、信号CHECKのローレベルに応じてANDゲート34の出力信号はローレベルとなり、ANDゲート36の出力、すなわち信号ERRORもローレベルとなる。
【0039】
続いて、次の信号CLOCKの立ち上がりに同期して、信号CLEARがローレベルとされるのと同時に、信号C(N−1)が1クロック時間ハイレベルとされる。これ以後同様に、信号CLOCKの立ち上がりに同期して、信号C(N−2)、…、信号C(0)、信号C(パリティ符号)がこの順に順次1クロック時間ハイレベルとされる。また、信号CALCも、信号C(N−1)、信号C(N−2)、…、信号C(0)、信号C(パリティ符号)がこの順に順次ハイレベルとされる間、すなわち(N+1)クロック時間の間ハイレベルとされる。
【0040】
これにより、信号CLEARのローレベルに応じてフリップフロップ32の初期化が終了する。その後、信号C(N−1)のハイレベルに応じて、ビット(N−1)のデータセル24に対応するスイッチ18がオンし、転送線TLを介して、ビット(N−1)のデータセル24に記憶されているデータがXORゲート29に入力される。エラー検出部20では、XORゲート29により、ビット(N−1)のデータセル24に記憶されているデータとフリップフロップ32から出力されるシンドロームsとの排他的論理和がとられ、このXORゲート29の出力が信号CALCのハイレベルに応じてセレクタ30から出力され、フリップフロップ32に保持される。
【0041】
以下同様に、信号C(N−2)、…、信号C(0)、信号C(パリティ符号)のハイレベルに応じて、転送線TLを介して、データセル24のビット(N−2)のデータ、…、データセル24のビット(0)のデータ、パリティセル27のパリティ符号がこの順に順次XORゲート29に入力され、シンドロームsとの排他的論理和がとられて順次シンドロームsの値が更新され、最終的に上記式(2)で示されるシンドロームsの値が計算される。
【0042】
続いて、次の信号CLOCKの立ち上がりに同期して、信号CALCがローレベルとされるのと同時に、信号CHECKおよび信号C(有効フラグ)が1クロック時間ハイレベルとされる。
【0043】
これにより、信号CALCのローレベルに応じてシンドロームsの値が確定する。また、信号C(有効フラグ)のハイレベルに応じて、フラグセル28に対応するスイッチ18がオンし、転送線TLを介して、フラグセル28に記憶されている有効フラグがANDゲート34に入力される。エラー検出部20では、ANDゲート34により、信号CHECKと有効フラグとの論理積がとられ、続いて、ANDゲート36により、ANDゲート34の出力とシンドロームsとの論理積がとられ、信号ERRORが出力される。
【0044】
ここで、有効フラグがハイレベル、すなわちデータセル24に記憶されているデータが検索対象となる有効なものである場合には、ANDゲート34の出力はハイレベルとなり、ANDゲート36から信号ERRORとして最終的なシンドロームsの値が出力される。信号ERRORがハイレベルであれば、データセル24に記憶されているNビットのデータの中に、1ビット(奇数ビット)のエラーが存在することを意味する。一方、有効フラグがローレベルの場合、ANDゲート34の出力はローレベルとなり、ANDゲート36の出力、すなわち信号ERRORもローレベルとなる。すなわち、信号ERRORは、有効フラグがハイレベルの場合にのみ意味のある値が出力される。
【0045】
以上のエラー検出の動作は、データセル24に記憶されているデータの読み出しや検索動作の実行、検索結果の一致不一致に係わらず、任意の時に行うことが可能である。また、図示例では、1ワードのCAMワードだけを示して説明したが、CAMのメモリアレイに複数ワードのCAMワードが含まれている場合も、上記と同様にして、全てのCAMワードのエラーを同時に検出することができる。また、エラーの検出結果を利用して、エラー訂正を行うことも可能である。
【0046】
なお、エラー検出方法はパリティ符号に限定されるわけではない。例えば、ハミング符号やBCH符号等の従来公知のエラー検出方法がいずれも適用可能である。すなわち、本発明を適用するCAMの各ワードは、適用するエラー検出方法に対応したエラー検出用符号を記憶するエラー検出用符号記憶部と、エラー検出部とを備えていればよい。
【0047】
エラー検出用符号は、1ビットに限定されるわけではなく、ハミング符号、BCH符号のように複数ビットのエラー検出用符号を使用してもよい。例えば、ハミング符号を適用すれば、エラーの検出に加え、1ビットのエラー訂正を行うことができる。また、BCH符号を適用すれば2ビットまでのエラー訂正も可能である。また、CAMのメモリアレイに含まれる全てのCAMワードのデータセルに記憶されるデータを常に検索対象となる有効なデータとすれば、有効フラグは必須の要件ではない。
【0048】
本発明は、基本的に以上のようなものである。
以上、本発明の連想メモリについて詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【0049】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリは、転送線を介して順次入力される、データ記憶/比較部に記憶された被検索データおよびエラー検出用符号記憶部に記憶されたエラー検出用符号を用いて、データ記憶/比較部に記憶された被検索データの中にエラーが存在するかどうかを検出するようにしたものである。
これにより、本発明の連想メモリによれば、CAMワードに記憶されているデータの読み出しや検索動作の実行、検索結果の一致不一致に係わらず、任意の時に全てのCAMワードにおいて同時に、被検索データのエラーの有無の検出を行うことができる。
【図面の簡単な説明】
【図1】 本発明の連想メモリの一実施形態の構成概略図である。
【図2】 図1に示す連想メモリの動作を表す一実施形態のタイミングチャートである。
【図3】 従来の連想メモリの一例の構成概略図である。
【符号の説明】
10,40 CAMワード
12 データ記憶/比較部
14 パリティ符号記憶部
16 有効フラグ記憶部
18 スイッチ
20 エラー検出部
22 ワードロジック
24 データセル
26 比較回路
27 パリティセル
28 フラグセル
29 XORゲート
30 セレクタ
32 フリップフロップ
34,36 ANDゲート[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an associative memory having a function of detecting an error of data to be searched.
[0002]
[Prior art]
FIG. 3 is a schematic configuration diagram of an example of a conventional content addressable memory. The associative memory (hereinafter referred to as “CAM”) performs a coincidence search between data stored in each of a plurality of CAM words included in the memory array (hereinafter referred to as “data to be searched”) and search key data simultaneously for all CAM words. , Information such as a match flag which is the search result is output. FIG. 3 shows only one
[0003]
The
[0004]
The data storage /
[0005]
The
[0006]
The
[0007]
In this CAM, prior to performing a match search, under the control of the word line WL, the
[0008]
The
[0009]
In the search, the search key data is given to the
[0010]
As a result, if the data stored in each
[0011]
By the way, in a semiconductor memory, even if there is no physical failure in the memory cell itself, it is known that a phenomenon called soft error occurs in which data stored in the memory cell is destroyed during use due to external radiation or the like. It has been. Therefore, there is a need for a technique for detecting the occurrence of an error in stored data within the semiconductor memory or correcting the contents of the memory cell in which the error has occurred when the error actually occurs.
[0012]
For example, in a random access memory (hereinafter referred to as RAM), there is a device for detecting and correcting an error by using a technique for detecting whether or not an error has occurred when reading data written in a memory cell. Some have been given.
[0013]
In CAM, a similar problem has come to occur as the degree of integration increases. However, in the case of CAM, since data written in the CAM cell is used during a search operation, there is a possibility that data reading is not necessarily performed. Therefore, in the case of CAM, the method of detecting whether or not an error has occurred at the time of reading data as in the RAM cannot be applied.
[0014]
For this problem, techniques such as
[0015]
However, in both of these conventional techniques, when both are matched by searching, it is detected whether the matched data is really correct or not. There is a problem that it is impossible to detect a state where the two do not match.
[0016]
Further, according to the conventional method, error detection is performed when a match is found, so that an error detection is not performed if there is no match, and there is very little chance of error detection for data for which no match is detected. Therefore, as in the case of the soft error described above, when errors gradually increase over time, there are problems that if the number of error detection opportunities is small, errors increase over time and detection becomes increasingly difficult. .
[0017]
[Patent Document 1]
JP 9-22595 A [Patent Document 2]
US Patent Application Publication No. 2002/0152442
[Problems to be solved by the invention]
An object of the present invention is to solve the problems based on the prior art and to simultaneously detect errors in data to be searched for all CAM words regardless of data reading, search operation execution, or search result match / mismatch. The object is to provide an associative memory capable of
[0019]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides an associative memory in which each CAM word has an error detection function of searched data,
Each of the CAM words stores search target data, compares the search target data with the search key data, and outputs the comparison result, and an error detection code. An error detection code storage unit for storing, and an error detection unit;
The data storage / comparison unit and the error detection code storage unit are each connected to a transfer line via a corresponding switch,
The error detection units of all the CAM words are sequentially input via the transfer line by sequentially turning on the switches, and the data to be searched and the error detection code stored in the data storage / comparison unit Provided is an associative memory characterized in that it uses the error detection code stored in the storage unit to simultaneously detect whether or not there is an error in the searched data stored in the data storage / comparison unit. Is.
Here, each of the CAM words preferably includes a plurality of the data storage / comparison units, and each of the data storage / comparison units is preferably connected to the transfer line via a corresponding switch.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an associative memory of the present invention will be described in detail based on a preferred embodiment shown in the accompanying drawings.
[0021]
FIG. 1 is a schematic configuration diagram of an embodiment of an associative memory according to the present invention. The associative memory (hereinafter referred to as CAM) shown in the figure has a function of detecting an error in data to be searched. In the figure, only one
[0022]
The
[0023]
That is, the data storage /
[0024]
The parity
[0025]
Here, the parity code p is calculated according to the following formula (1) by a parity code calculation means (not shown), and the parity cell is simultaneously written with the data to be searched for in the
p = bit (N-1) XOR bit (N-2) XOR ... XOR bit (0) ... (1)
Bit (N−1), bit (N−2),..., Bit (0) are data of the
[0026]
One
[0027]
In this embodiment, the
[0028]
In this embodiment, the
[0029]
The
[0030]
In the
[0031]
Here, the syndrome s is calculated by the linear feedback shift register according to the following equation (2).
s = bit (N-1) XOR bit (N-2) XOR ... XOR bit (0) XOR parity code p (2)
Bit (N−1), bit (N−2),..., Bit (0) are the data of the
[0032]
The signal CLEAR is a signal that initializes the flip-
[0033]
The signal CALC is a signal for instructing whether or not the signal input via the transfer line TL is used for calculating the syndrome s. In the present embodiment, during the period when the signal CALC is at a low level, the current syndrome s is output from the
[0034]
The signal CHECK is an instruction to output the signal ERROR using the calculated value of the syndrome s. In the present embodiment, while the signal CHECK is at a low level, the outputs of the AND
[0035]
Next, the operation of the CAM shown in FIG. 1 will be described.
Since the operation at the time of searching the CAM shown in FIG. 1 is exactly the same as that of the CAM shown in FIG. 3, the repetitive description is omitted here, and error detection is performed with reference to the timing chart shown in FIG. The operation of CAM in the case of performing will be described. Note that the
[0036]
In FIG. 2, signal C (N−1), signal C (N−2),..., Signal C (0) are bit (N−1) and bit (N−2) of
[0037]
When error detection is performed, as shown in the timing chart of FIG. 2, first, a high level is given to the signal CLEAR in synchronization with the rise of the signal CLOCK. At this time, the signal CALC, the signal CHECK, the signal C (N-1), the signal C (N-2), ..., the signal C (0), the signal C (parity code), and the signal C (valid flag) are all at a low level. It is said.
[0038]
As a result, the flip-
[0039]
Subsequently, in synchronization with the rise of the next signal CLOCK, the signal CLEAR is set to the low level, and at the same time, the signal C (N−1) is set to the high level for one clock time. Thereafter, similarly, in synchronization with the rise of the signal CLOCK, the signal C (N−2),..., The signal C (0), and the signal C (parity code) are sequentially set to the high level for one clock time in this order. Further, the signal CALC is also in a state where the signal C (N−1), the signal C (N−2),..., The signal C (0), and the signal C (parity code) are sequentially set to the high level in this order, that is, (N + 1). ) High level during clock time.
[0040]
Thereby, the initialization of the flip-
[0041]
Similarly, the bit (N-2) of the
[0042]
Subsequently, in synchronization with the rise of the next signal CLOCK, the signal CALC is set to the low level, and at the same time, the signal CHECK and the signal C (valid flag) are set to the high level for one clock time.
[0043]
Thereby, the value of the syndrome s is determined according to the low level of the signal CALC. Further, the
[0044]
Here, when the valid flag is high level, that is, when the data stored in the
[0045]
The above error detection operation can be performed at any time regardless of the reading of data stored in the
[0046]
Note that the error detection method is not limited to the parity code. For example, any conventionally known error detection method such as a Hamming code or a BCH code can be applied. That is, each word of the CAM to which the present invention is applied only needs to include an error detection code storage unit that stores an error detection code corresponding to the error detection method to be applied, and an error detection unit.
[0047]
The error detection code is not limited to 1 bit, and a multi-bit error detection code such as a Hamming code or a BCH code may be used. For example, if a Hamming code is applied, 1-bit error correction can be performed in addition to error detection. If a BCH code is applied, error correction up to 2 bits is possible. If the data stored in the data cells of all the CAM words included in the CAM memory array is always valid data to be searched, the validity flag is not an essential requirement.
[0048]
The present invention is basically as described above.
The content addressable memory of the present invention has been described in detail above. However, the present invention is not limited to the above-described embodiment, and various improvements and modifications may be made without departing from the spirit of the present invention. .
[0049]
【The invention's effect】
As described above in detail, the associative memory of the present invention has the error detection stored in the data storage / comparison unit and the data to be searched and the error detection code storage unit sequentially input via the transfer line. This is to detect whether or not there is an error in the searched data stored in the data storage / comparison unit using the reference code.
Thus, according to the associative memory of the present invention, the data to be searched can be simultaneously read in all CAM words at any time regardless of reading of data stored in the CAM word, execution of search operation, and match / mismatch of search results. It is possible to detect the presence or absence of errors.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of an embodiment of an associative memory according to the present invention.
2 is a timing chart of an embodiment showing the operation of the content addressable memory shown in FIG. 1. FIG.
FIG. 3 is a schematic configuration diagram of an example of a conventional associative memory.
[Explanation of symbols]
10, 40
Claims (2)
各々の前記CAMワードは、被検索データを記憶するとともに、当該被検索データと検索キーデータとを比較してその比較結果を出力する、少なくとも1つのデータ記憶/比較部と、エラー検出用符号を記憶するエラー検出用符号記憶部と、エラー検出部とを備え、
前記データ記憶/比較部および前記エラー検出用符号記憶部は、それぞれ対応するスイッチを介して転送線に接続され、
全ての前記CAMワードのエラー検出部は、前記スイッチを順次オンすることによって、前記転送線を介して順次入力される、前記データ記憶/比較部に記憶された被検索データおよび前記エラー検出用符号記憶部に記憶されたエラー検出用符号を用いて、前記データ記憶/比較部に記憶された被検索データの中にエラーが存在するかどうかを同時に検出することを特徴とする連想メモリ。Each CAM word is an associative memory having an error detection function for data to be searched,
Each of the CAM words stores search target data, compares the search target data with the search key data, and outputs the comparison result, and an error detection code. An error detection code storage unit for storing, and an error detection unit;
The data storage / comparison unit and the error detection code storage unit are each connected to a transfer line via a corresponding switch,
The error detection units of all the CAM words are sequentially input via the transfer line by sequentially turning on the switches, and the data to be searched and the error detection code stored in the data storage / comparison unit An associative memory characterized by simultaneously detecting whether or not an error exists in data to be searched stored in the data storage / comparison unit by using an error detection code stored in the storage unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037908A JP4159896B2 (en) | 2003-02-17 | 2003-02-17 | Associative memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037908A JP4159896B2 (en) | 2003-02-17 | 2003-02-17 | Associative memory |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004247006A JP2004247006A (en) | 2004-09-02 |
JP2004247006A5 JP2004247006A5 (en) | 2006-03-30 |
JP4159896B2 true JP4159896B2 (en) | 2008-10-01 |
Family
ID=33022570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003037908A Expired - Fee Related JP4159896B2 (en) | 2003-02-17 | 2003-02-17 | Associative memory |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4159896B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5339544B2 (en) * | 2008-10-28 | 2013-11-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Parallel associative memory |
-
2003
- 2003-02-17 JP JP2003037908A patent/JP4159896B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004247006A (en) | 2004-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838808B2 (en) | Error-correcting code memory | |
KR101750662B1 (en) | Circuits, apparatuses, and methods for correcting data errors | |
US7681106B2 (en) | Error correction device and methods thereof | |
US6973613B2 (en) | Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure | |
US6976194B2 (en) | Memory/Transmission medium failure handling controller and method | |
US6996766B2 (en) | Error detection/correction code which detects and corrects a first failing component and optionally a second failing component | |
US20070226590A1 (en) | Semiconductor memory in which error correction is performed by on-chip error correction circuit | |
JP2006190425A (en) | Semiconductor memory device | |
US7949933B2 (en) | Semiconductor integrated circuit device | |
US11734111B2 (en) | Integrated circuit and method of operating same | |
US7231582B2 (en) | Method and system to encode and decode wide data words | |
EP4134825A2 (en) | Memory device and operating method thereof | |
US7124348B2 (en) | Data storage method with error correction | |
JP4793741B2 (en) | Error correction circuit and error correction method | |
EP0528234A2 (en) | Data processing system for generating data bits based on stored data | |
US6967882B1 (en) | Semiconductor memory including static memory | |
US7075851B2 (en) | Semiconductor memory device inputting/outputting data and parity data in burst operation | |
US8166356B2 (en) | Memory system and memory access method | |
JP4159896B2 (en) | Associative memory | |
WO2013132806A1 (en) | Nonvolatile logic integrated circuit and nonvolatile register error bit correction method | |
JPH10334697A (en) | Semiconductor storage device nd error correction method therefor | |
JP2000163320A (en) | Memory device with software error measure function and software error measure method | |
JP4921216B2 (en) | Memory control circuit, storage system, information processing apparatus, and memory control method | |
TW202109545A (en) | Memory apparatus and data accessing method thereof | |
CN112540866A (en) | Memory device and data access method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080401 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080530 |
|
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: 20080708 |
|
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: 20080716 |
|
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: 20110725 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130725 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |