JP4159896B2 - Associative memory - Google Patents

Associative memory Download PDF

Info

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
Application number
JP2003037908A
Other languages
Japanese (ja)
Other versions
JP2004247006A5 (en
JP2004247006A (en
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.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2003037908A priority Critical patent/JP4159896B2/en
Publication of JP2004247006A publication Critical patent/JP2004247006A/en
Publication of JP2004247006A5 publication Critical patent/JP2004247006A5/ja
Application granted granted Critical
Publication of JP4159896B2 publication Critical patent/JP4159896B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 CAM word 40 included in the CAM memory array for the sake of simplicity.
[0003]
The CAM word 40 stores data to be searched, compares the data to be searched with the search key data, and outputs the comparison result, N bits (in order from the left side in the figure, bit (N-1), bit (N-2),..., Bit (0)) and whether the data stored in the data storage / comparison unit 12 is a valid search target. A 1-bit valid flag storage unit 16 for storing a valid flag indicating whether it is invalid or not, and a match flag serving as a search result between the data stored in the data storage / comparison unit 12 and the search key data are held. And a word logic (logic circuit unit) 22 having the above functions.
[0004]
The data storage / comparison unit 12 includes a memory cell (hereinafter referred to as a data cell) 24 that stores 1-bit data to be searched, data stored in the data cell 24, and search key data corresponding thereto. And a comparison circuit 26 for outputting the comparison result. The valid flag storage unit 16 includes a 1-bit memory cell (hereinafter referred to as a flag cell) 28 that stores a valid flag.
[0005]
The data cell 24 of the data storage / comparison unit 12 and the flag cell 28 of the valid flag storage unit 16 include a data line D for writing and reading data to and from the data cell 24 and the flag cell 28 and its inverted data line. D ̄ is connected to each other. These data cells 24 and flag cells 28 are commonly connected to a word line WL that controls the timing of data writing and reading.
[0006]
The comparison circuit 26 of the data storage / comparison unit 12 is connected to a search line K for supplying corresponding search key data and its inverted search line K ̄. In addition, the data stored in the corresponding data cell 24 is input to each comparison circuit 26, and the outputs of all the comparison circuits 26 are commonly connected to the match line ML. The match line ML is connected to the word logic 22, and information such as a match flag is output from the word logic 22.
[0007]
In this CAM, prior to performing a match search, under the control of the word line WL, the data cell 24 of the data storage / comparison unit 12 is subjected to the search via the corresponding data line D and its inverted data line D ̄. Data is being written. At the same time, the flag cell 28 indicates that the data stored in the data cell 24 of the CAM word 40 is an effective search target via the corresponding data line D and its inverted data line D ̄. The valid flag shown is written.
[0008]
The flag cell 28 of the CAM word in which the data to be searched for is not stored in the data cell 24 indicates that the data stored in the data cell 24 of this CAM word is invalid and not to be searched. A flag is written. This valid flag is used as a signal indicating whether the match flag as a result of the match search is valid or invalid.
[0009]
In the search, the search key data is given to the comparison circuit 26 of the data storage / comparison unit 12 via the corresponding search line K and the inverted search line K ̄, and the corresponding comparison circuit 26 responds. The data stored in the data cell 24 is compared with the search key data.
[0010]
As a result, if the data stored in each data cell 24 and the corresponding search key data all match in each data storage / comparison unit 12, a signal indicating that they match is output on the match line ML. Is done. On the other hand, if even one bit of the data stored in the data cell 24 does not match the search key data, a signal indicating a mismatch is output on the match line ML and held in the word logic 22. To be processed.
[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 Patent Documents 1 and 2 have been proposed. Patent Document 1 stores an error detection code at the same time when data is stored in the RAM, as in the case of error detection of the RAM, and if the data matches after searching, the error detection code is also confirmed at that time. The method is to check if an error has occurred. Patent Document 2 is a technique related to error correction in general, but a method similar to that of Cited Document 1 is disclosed as a method applicable to CAM.
[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 CAM word 10 included in the memory array of the CAM is shown for easy comparison with the conventional CAM shown in FIG. The CAM memory array actually includes one word or a plurality of CAM words 10.
[0022]
The CAM word 10 of this embodiment includes an N-bit data storage / comparison unit 12, a 1-bit parity code storage unit 14, a 1-bit valid flag storage unit 16, a switch 18, and an error detection unit (error detection unit). Part) 20 and a word logic 22. The data storage / comparison unit 12, the valid flag storage unit 16, and the word logic 22 are exactly the same as the CAM word 40 shown in FIG. The detailed explanation is omitted.
[0023]
That is, the data storage / comparison unit 12 includes a data cell 24 and a comparison circuit 26, and the valid flag storage unit 16 includes a flag cell 28.
[0024]
The parity code storage unit 14 includes a 1-bit memory cell (hereinafter referred to as a parity cell) 27 that stores a parity code. The parity cell 27 is connected to a data line D for writing and reading data to and from the parity cell 27 and its inverted data line D ̄. The parity cell 27 is connected to a word line WL that is common to the data cell 24 and the flag cell 28 and controls the timing for writing and reading data.
[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 data cell 24 and the valid flag in the flag cell 28. 27 is written with a parity code.
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 data cell 24 of the corresponding bit. Note that the parity code calculation means may be provided either inside or outside the CAM.
[0026]
One switch 18 is provided for each of the data cell 24, the parity cell 27, and the flag cell 28. The data stored in the corresponding data cell 24, parity cell 27, and flag cell 28 are input to each switch 18, and the outputs of all the switches 18 are commonly connected to the transfer line TL. Each switch 18 is connected to a transfer control line C for controlling on / off of the switch.
[0027]
In this embodiment, the switch 18 is turned on when a high level is applied to the transfer control line C, and the data stored in the data cell 24, the parity code stored in the parity cell 27, and the flag cell 28 are stored. One of the enabled flags is output on the transfer line TL. In this embodiment, the switch 18 is in the order of the switch 18 corresponding to the bit (N-1), bit (N-2),..., Bit (0) data cell 24, parity cell 27, and flag cell 28. Turned on sequentially.
[0028]
In this embodiment, the error detection unit 20 detects whether or not the data stored in the data cell 24 includes an error (error) based on the 1-bit parity code stored in the parity cell 27. It comprises an XOR gate 29, a selector (SEL) 30, a flip-flop (FF) 32, and two AND gates 34 and 36. Note that the flip-flop 32 operates in synchronization with a signal CLOCK (not shown).
[0029]
The XOR gate 29 receives the output of the transfer line TL and the flip-flop 32. Further, the output of the XOR gate 29 and the output of the flip-flop 32 are input to the two data input terminals of the selector 30, and the signal CALC is input to the selection control input terminal thereof. The data output of the selector 30 is input to the data input terminal of the flip-flop 32, and the signal CLEAR is input to the clear input terminal. The AND gate 34 receives the transfer line TL and the signal CHECK, the AND gate 36 receives the data output of the flip-flop 32 and the output of the AND gate 34, and the AND gate 36 outputs the error signal ERROR. Yes.
[0030]
In the error detection unit 20, the XOR gate 29, the selector 30 and the flip-flop 32 detect the presence or absence of an error in the syndrome s (output of the flip-flop 32, and generate a signal ERROR as a result of the error detection. A linear feedback shift register is calculated that calculates a signal that holds a value halfway up to.
[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 data cell 24 of the corresponding bit, respectively, as in the case of the above equation (1). In the case of this embodiment, if the syndrome s is at a low level, it means that there is no error in the data, and if it is at a high level, there is an error of 1 bit (odd bit) in the data. Means.
[0032]
The signal CLEAR is a signal that initializes the flip-flop 32. In the present embodiment, when a high level is given to the signal CLEAR, the syndrome s is cleared to a low level.
[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 selector 30, and the value of the syndrome s is retained. On the other hand, during the period when the signal CALC is at the high level, the output of the XOR gate 29, that is, the signal (bit (N-1), bit (N-2),..., Input through the current syndrome s and the transfer line TL). The exclusive OR with the bit (0) data and the parity code) is output from the selector 30, and the value of the syndrome s is updated.
[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 gates 34 and 36 are at a low level, that is, the signal ERROR is at a low level. on the other hand. When the signal CHECK becomes a high level, a logical product of the signal (valid flag) input through the transfer line TL and the syndrome s is obtained, and the result is output as the signal ERROR. That is, when the valid flag is at a low level, no valid data to be searched is stored in the data cell 24 of the CAM word 10, so that the signal ERROR is at a low level. On the other hand, if the valid flag is at a high level, the value of syndrome s is output as signal ERROR.
[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 data cell 24, the parity cell 27, and the flag cell 28 of the CAM word 10 indicate that the search target data, the parity code, and the data stored in the data cell 24 are valid search targets. It is assumed that valid flags shown are stored respectively.
[0036]
In FIG. 2, signal C (N−1), signal C (N−2),..., Signal C (0) are bit (N−1) and bit (N−2) of data cell 24, respectively. ,... Is a transfer control signal C connected to the switch 18 corresponding to the bit (0). Similarly, the signal C (parity code) is a transfer control signal C connected to the switch 18 corresponding to the parity cell 27, and the signal C (valid flag) is connected to the switch 18 corresponding to the flag cell 28. Transfer control signal C.
[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-flop 32 is initialized according to the low level of the signal CLEAR, and the syndrome s output from the data output terminal becomes the low level. Further, according to the low level of the signal CALC, the syndrome s output from the flip-flop 32 is selectively output from the selector 30, and the value of the syndrome s is held. Further, the output signal of the AND gate 34 becomes low level according to the low level of the signal CHECK, and the output of the AND gate 36, that is, the signal ERROR becomes low level.
[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-flop 32 is completed according to the low level of the signal CLEAR. Thereafter, the switch 18 corresponding to the data cell 24 of the bit (N-1) is turned on according to the high level of the signal C (N-1), and the data of the bit (N-1) is transmitted via the transfer line TL. Data stored in the cell 24 is input to the XOR gate 29. In the error detection unit 20, the XOR gate 29 performs exclusive OR of the data stored in the data cell 24 of the bit (N−1) and the syndrome s output from the flip-flop 32, and this XOR gate. 29 is output from the selector 30 in response to the high level of the signal CALC and held in the flip-flop 32.
[0041]
Similarly, the bit (N-2) of the data cell 24 is transferred via the transfer line TL according to the high level of the signal C (N-2),..., The signal C (0), and the signal C (parity code). ,..., The bit (0) data of the data cell 24 and the parity code of the parity cell 27 are sequentially input to the XOR gate 29 in this order, and exclusive ORed with the syndrome s and sequentially the value of the syndrome s. Is updated, and finally the value of the syndrome s shown in the above equation (2) is calculated.
[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 switch 18 corresponding to the flag cell 28 is turned on according to the high level of the signal C (valid flag), and the valid flag stored in the flag cell 28 is input to the AND gate 34 via the transfer line TL. . In the error detection unit 20, the AND gate 34 performs a logical product of the signal CHECK and the valid flag, and the AND gate 36 then performs a logical product of the output of the AND gate 34 and the syndrome s to obtain the signal ERROR. Is output.
[0044]
Here, when the valid flag is high level, that is, when the data stored in the data cell 24 is valid to be searched, the output of the AND gate 34 becomes high level, and the AND gate 36 outputs the signal ERROR. The final value of syndrome s is output. If the signal ERROR is at a high level, it means that a 1-bit (odd bit) error exists in the N-bit data stored in the data cell 24. On the other hand, when the valid flag is at the low level, the output of the AND gate 34 is at the low level, and the output of the AND gate 36, that is, the signal ERROR is also at the low level. That is, the signal ERROR outputs a meaningful value only when the valid flag is at a high level.
[0045]
The above error detection operation can be performed at any time regardless of the reading of data stored in the data cell 24, the execution of the search operation, and the match / mismatch of the search results. In the illustrated example, only one CAM word is shown and described. However, when a CAM memory array includes a plurality of CAM words, errors in all the CAM words are detected in the same manner as described above. It can be detected at the same time. It is also possible to perform error correction using the error detection result.
[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 CAM word 12 Data storage / comparison unit 14 Parity code storage unit 16 Valid flag storage unit 18 Switch 20 Error detection unit 22 Word logic 24 Data cell 26 Comparison circuit 27 Parity cell 28 Flag cell 29 XOR gate 30 Selector 32 Flip-flop 34 36 AND gate

Claims (2)

各々のCAMワードが被検索データのエラー検出機能を持つ連想メモリであって、
各々の前記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.
各々の前記CAMワードは、複数の前記データ記憶/比較部を含み、各々の前記データ記憶/比較部は、それぞれ対応するスイッチを介して前記転送線に接続されていることを特徴とする請求項1記載の連想メモリ。  Each of the CAM words includes a plurality of the data storage / comparison units, and each of the data storage / comparison units is connected to the transfer line via a corresponding switch. 1. The associative memory according to 1.
JP2003037908A 2003-02-17 2003-02-17 Associative memory Expired - Fee Related JP4159896B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5339544B2 (en) * 2008-10-28 2013-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション Parallel associative memory

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