(57)【特許請求の範囲】
【請求項１】
エラー検出機能を備えた内容アドレスメモリシステムであって、
入力されるデータにエラー訂正符号を付加するパリティ付加手段と、
前記エラー訂正符号を付加されたデータを保持するとともに、保持するデータを常時出力するデータ保持部と、
前記データ保持部の出力データに付加された前記エラー訂正符号を照合し、パリティエラーを検出したとき、パリティ照合結果信号を出力する、前記データ保持部各々に対応して設けられたパリティ照合手段とを備えることを特徴とする内容アドレスメモリシステム。
【請求項２】
請求項１記載の内容アドレスメモリシステムであって、
データ書き込み時以外に、前記パリティ照合手段において検出されたパリティ照合結果信号を取り込み、パリティエラー信号を出力するエラー信号出力手段をさらに備えることを特徴とする内容アドレスメモリシステム。
【請求項３】
請求項２記載の内容アドレスメモリシステムであって、
前記エラー信号出力手段から出力された前記パリティエラー信号により、前記レジスタアレイの前記パリティエラーが検出された前記データ保持部を書き込み禁止とする書き込み制御手段をさらに備えたことを特徴とする内容アドレスメモリシステム。
【請求項４】
請求項２または３記載の内容アドレスメモリシステムであって、
前記エラー信号出力手段から出力された前記パリティエラー信号により、前記レジスタアレイの前記パリティエラーが検出された前記データ保持部を検索対象外とする検索マスク手段をさらに備えたことを特徴とする内容アドレスメモリシステム。
【請求項５】
請求項２、３、または、４記載の内容アドレスメモリシステムであって、
前記レジスタアレイ内の有効なデータのみパリティチェックを行う対象選別手段をさらに備えたことを特徴とする内容アドレスメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、故障検出機能を備えた内容アドレスメモリ(以後、CAM：Content  Addressable Memoryと呼ぶ)システムに関する。
【０００２】
【従来の技術】
従来から、半導体メモリ素子を用いた装置の動作品質を確保するために、メモリ素子のビットエラーの検出が行われている。従来のRAM(Random Access Memory)およびROM(Read Only Memory)等においては、パリティチェックやECC(Error Correction Code)機構を用いて、このビットエラーの検知を行っている。
【０００３】
パリティチェックを用いた検知法では、データビットに１ビットのパリティビットを付加することで、データビットとパリティビット中のビットの値が'1'であるビットの数を、奇数若しくは偶数に統一してメモリアレイに書き込み、読み出し時にはデータビットとパリティビット中のビットの値が'１'であるビットの数をチェックすることにより誤りの検出している。
【０００４】
また、ECC機構を用いた検知法では、拡張ハミングコードを用いてデータビットよりチェックビットを生成し、データビットとチェックビットとをメモリアレイに書き込み、読み出し時にはメモリアレイから読み出したデータビットとチェックビットとによりシンドロームを生成し、このシンドロームより１ビットの誤り訂正及び2ビットの誤り検出を行う。これらのビットエラー検出方法については、既に数多く発明されており、一般的に広く用いられている。
【０００５】
ところで、CAMは、RAM、ROM等のように物理的な位置(アドレス)より内容(データ)を読み出す機能だけでなく、内容(データ)を入力として与え、それと同値なものがメモリアレイ上に存在するかの検索を行い、その一致した物理的な位置(アドレス)や検出信号を出力する機能をも有するものである。
CAMは、非同期転送モード(ATM：Asynchronous Transfer Mode)や、高速IP(Internet Protocol) 等のアドレス変換等に広く利用されるものであり、装置の品質を確保し、信頼性を高めるために、ビットエラーの検出は不可欠である。
【０００６】
【発明が解決しようとする課題】
しかし、上記のような特徴を持つCAMでは、メモリアレイ内でビットエラーが発生した場合、正しい内容のデータを入力しても、この入力したデータとビットエラーの発生したデータとは一致しないため、そもそも、その出力を得ることができない。従って、従来のパリティチェックやECC機構を用いた方法のように、アドレスを指定し、読み出したデータに対して演算し、チェックビットと照合することでエラーを検出する等の方法は、CAMのビットエラーの検出に用いることができない。
【０００７】
さらに、CAMでは、ビットエラーのあるデータが他の入力と誤って同値と判断され、一致信号やアドレスを誤検出することも有り得る。例えば、このビットエラーの発生が、ハード故障によるものであったとしても、ビットエラーと認識されないため、再び故障したアドレスに対して書き込みを実行してしまうことも有り得る。
【０００８】
上記のような機能を有するCAMのビットエラーを検出するために、全アドレスのデータを監視する方法が考えられる。全アドレスを監視するために、例えば、一旦メモリアレイに格納されたデータに関し、アドレス順に全データにアクセスして読み出し、パリティのチェックをするなどの方法が考えられている。しかしながら、この手法は、パリティチェック完了までに時間がかかりすぎるという問題があった。
本発明は上記事情を鑑みてなされたものであり、全アドレスのビットエラーの有無を効率的にチェックできる機能を備えたCAMシステムの提供を目的としたものである。
【０００９】
【課題を解決するための手段】
本発明は、メモリアレイ(レジスタアレイ)内の全て、またはチェック対象とした格納データ全てに対して、アドレスを指定することなく、パリティチェックを行うことができるCAMシステムを提供する。
【００１０】
本発明は、メモリアレイ(レジスタアレイ)内部の全アドレスの格納データに対し、その書き込み時にパリティチェックを行いビットエラー検出を行うCAMシステム、また、そのエラーが発生しているアドレスに対し、CAMシステム内部で、書き込み時にデータの再書き込みを禁止する制御（以後、書きこみ禁止処理と呼ぶ）や、データ検索時にそのエラーが発生しているアドレスを検出対象外としてマスクする制御（以後、検索マスク処理と呼ぶ）を行うCAMシステム、そして、パリティチェックを行う対象アドレスをCAMシステム内で判定し、そのアドレス内の格納データに対してのみパリティチェックを行う機能を備えたCAMシステムを提供する。
【００１１】
例えば、本発明は、エラー検出機能を備えた内容アドレスメモリシステムであって、入力されるデータにエラー訂正符号を付加するパリティ付加手段と、前記エラー訂正符号を付加されたデータを保持するとともに、保持するデータを常時出力するデータ保持部と、前記データ保持部の出力データに付加された前記エラー訂正符号を照合し、パリティエラーを検出したとき、パリティ照合結果信号を出力する、前記データ保持部各々に対応して設けられたパリティ照合手段とを備えることを特徴とする内容アドレスメモリシステムを提供する。
【００１２】
【発明の実施の形態】
図１は、第一の実施の形態におけるCAMシステムの構成を示す図である。本図に示すように、本実施の形態におけるCAMシステムは、nビット列入力データに対して1ビットのパリティを付加するパリティ付加部1と、mワード、(n+1)ビットの記憶領域を持つメモリアレイ(レジスタアレイ)であるデータ書き込み、読み出し、検索の制御機能を備えたCAMアレイ部2と、CAMアレイ部2の内部のmワード、(n+1)ビットの格納データ13aに対して、それぞれパリティチェックを行うパリティ照合部3とを備える。尚、パリティ照合部3は、装置構成によって、CAMアレイ部2の内部に備えることも可能である。
【００１３】
パリティ付加部1は、例えばnビットの固定ビット入力データ10aより、1ビットのパリティビット11aを演算し、それをnビットの固定ビット入力データ10aに合わせた(n+1)ビットのデータ12aとして、CAMアレイ部2へ入力する。CAMアレイ部2は、データ書き込み時にこの入力データ12aを所定のアドレスに書き込む。所定のアドレスに保持されたデータ13aはパリティ照合部3に入力され、照合結果がパリティ照合結果信号14aとして出力される。
【００１４】
CAMアレイ部2のメモリ内の構成を図2に示す。本図に示すように、CAMアレイ部2のメモリ内には、アドレス毎に対応したパリティビット1hとデータ2hとが格納されている。
【００１５】
パリティ照合部3の詳細な構成を図3に示す。本図に示すように、パリティ照合部3は、CAMアレイ部2に格納されているmワード、(n+1)ビットの内、全て又はチェック対象とするアドレスのデータ1j（図1におけるデータ13a）を入力として、それぞれmワード毎にパリティビットを除いたnビット2jに対してパリティ演算3jを実行し、その演算結果とパリティビットとを照合4jする。パリティ照合部3はこの照合結果をそれぞれmワード単位でmビットのパリティ照合結果信号5j（図1におけるパリティ照合結果信号14a）として出力することで、上流装置やCAMアレイ部2の内部に対して照合結果を通知する。上流装置やCAMアレイ部2は、その通知を受け、必要に応じて検索マスク処理や書き込み禁止処理を行う。
【００１６】
図4は、本実施の形態におけるCAMシステムの主要部の詳細を示す図である。
本実施の形態における、CAMシステムは、入力データに対して、1ビットのパリティを付加するパリティ付加部1と、レジスタアレイ及びその他制御回路を含むCAMアレイ部2とから成る。本実施の形態では、CAMアレイ部2内にレジスタアレイのアドレス毎(5ビット)にパリティチェックを行うパリティ照合部3が含まれるシステムを例にとり、説明する。  また、図１のnビットを８ビット、ｍワードを３２ワードとして説明する。
【００１７】
CAMアレイ部2は、パリティ付加部1でパリティビットを付加されたデータを保持するデータ保持部4aを少なくとも１つ有するレジスタアレイ部4と、パリティ照合部3とを備える。なお、本図において、データ保持部4aは、各データごとに９ビット分備えるものである。
【００１８】
本図に示すように、レジスタアレイ部4のデータ保持部4aは、自身が保持しているデータの内容が常時出力されるよう構成される。そして、レジスタアレイ部4の各データ保持部4aの出力は、パリティ照合部3に接続されている。つまり、データ保持部4aから常時出力されているデータは、そのままパリティ照合部3に入力され、そこで、パリティの照合が行われる。データ保持部4aの構成は、これに限られない。
【００１９】
本実施の形態におけるCAMシステムは、レジスタアレイ部4およびパリティ照合部3が上記のような構成であるため、入力データがレジスタアレイ部4に保持された時点で、保持されている全アドレスのデータに関し、パリティチェックを完了することができる。
【００２０】
本実施の形態におけるCAMシステムは、8ビットの入力データDI10b（図１における入力データ10a）、5ビットのアドレス信号ADI12b、8ビットの検索マスク信号MASK、クロックイネーブルCE、検索イネーブルAE、及び、リードライトイネーブルRWを入力信号とし、データ一致信号HIT、5ビットの一致アドレス信号ADO、8ビットのリードデータ信号DO、及び、各アドレス毎(5ビット)にパリティ照合結果を出力する32本のパリティエラー信号PERR20bを出力とする。
まず、8ビットの入力データDI10bに対し、パリティ付加部1にて1ビットのパリティビットを付加する。ここで、パリティ演算には、入力データの'1'の数が奇数になるようにパリティビットを付加する奇数パリティと、入力データの'1'の数が偶数になるようにパリティビットを付加する偶数パリティとがある。ここでは、奇数パリティを採用する。
【００２１】
図5に示すように、奇数パリティの場合のパリティビットは、入力データのビット0bit〜7bitについて全て排他的論理和(以下EX-ORと称す)を取り、それを反転した値となる。図6に、本パリティビットを得る回路構成を示す。この回路は、図6に示す通り、EX-OR素子1cを3段とNOT素子2cを1段とによって構成される。図4において、8ビットの入力データDI10bに、この回路により得られたパリティビットを付加したデータ信号11b （図1における入力データ12a）をCAMアレイ部2へ入力する。
【００２２】
また、図7は、パリティビットを照合するための回路構成を示す。照合は、各アドレスに格納されているデータのビット0bit〜7bitに対して、図6の演算回路と同構成の回路1dを用いてパリティビットを演算し、得られたパリティビットと各アドレスに格納されているデータのビット8bitとをEX-OR素子2dにて比較することで行う。図4において、本照合で、エラーが発生している場合、得られる値は'1'となるため、各アドレス毎にパリティ照合結果信号15b(図1のパリティ照合結果信号14a)が出力される。このパリティ照合結果信号15bは、後述する保持回路5の入力となる。
【００２３】
CAMは、CAMアレイ部2の指示されたアドレスにデータを書き込む書き込みモードと、CAMアレイ部2の指示されたアドレスからデータを読み出す読み出しモードと、与えられたデータと同値なものが保持されているCAMアレイ部2のアドレスを出力する検索モードとを備える。CAMアレイ部2において、書き込みモード、読み込みモード、検索モードは、それぞれ、入力信号クロックイネーブルCE, リードライトイネーブルRW, 検索イネーブルAEによって設定される。
【００２４】
書き込みモード時は、入力データ11bは、一旦保持14bされ、アドレス入力ADI12bを受け、さらに書込みイネーブル信号WREN21bが与えられると、アドレスデコーダ6よりデコード値13bが出力され、そのデコード値13bに従い、このアドレスに相当するレジスタアレイ部4に、書き込まれる。レジスタアレイ部4に格納されたデータは常にパリティ照合部3へ入力され、そこにおいて前述の図7に示すパリティビットの照合が行われる。
【００２５】
また、データ検索モード時は、入力データDI10bを保持した値23bとレジスタアレイ出力信号22bは、比較回路7に与えられ、検索イネーブル信号SREN26bが'1'で、検索マスク入力信号を保持した値24bが'1'であるとき、比較を実行する。一致が得られれば一致信号28bを後段のエンコード部8へ伝え、結果的には一致アドレス出力ADO27bとして上流装置へ伝えられる。ここで、比較回路7はSREN26bが'0'のときは比較回路停止(一致なしを出力)、検索マスク入力信号を保持した値24bが'1'のときは、そのビットに対応したデータを比較対象外とする操作を行う。
【００２６】
ここで、図4の構成においては、パリティチェックの演算タイミングは、保持回路5により決まる。即ち、保持回路5は、本図に示すように、書き込みイネーブル信号WREN16bの反転信号とクロックイネーブルCE17bとをAND演算18bした結果から生成されたパリティチェックイネーブル信号PCHKEN19bが'1'のときのみ、パリティ照合結果信号15bを取り込み、パリティエラー信号PERR20bを出力するよう構成されている。従って、書き込みモード以外であって、パリティ照合結果信号15bが検出されている場合、パリティエラー信号PERR20bは出力される。
【００２７】
そして、パリティチェックイネーブル信号PCHKEN19bが'0'のとき、即ち、書きこみモード時には、保持回路5は、パリティ照合結果信号15bを保持し続けるため、その間に演算されたパリティ照合結果信号15bは、保持回路５には取り込まれない。この制御によって、本実施の形態におけるCAMシステムでは、書き込みモード以外のときにパリティチェックの結果を得るという制御が可能となる。
以上の回路動作によって、本実施の形態におけるCAMシステムでは、書き込みモード以外のときに、パリティエラーを検出し、パリティエラー信号PERR20bにより上流装置へ通知することが可能となる。同時に、上流装置では、通知を受けたビットエラーが発生したアドレスに対して、書き込み禁止処理や検索マスク処理等を行うことが可能となる。
【００２８】
次に第二の実施の形態について説明する。第二の実施の形態は、パリティエラー信号PERR20bを用い、CAMシステムの内部で、パリティーエラーが発生しているアドレスに対し、書き込み禁止処理、および/または、検索マスク処理を行うなどの制御を実現するものである。
【００２９】
第一の実施の形態においては、CAMシステム内部では、書き込みの制御も検索のための比較回路の動作も、パリティエラーの発生にかかわらず、行われている。このため、第一の実施の形態では、パリティ照合部3においてパリティエラーの発生が検出されたアドレスに対する書き込み禁止処理、および/または、検索マスク処理は、上流装置で行わなければならない。
【００３０】
そこで、本実施の形態では、CAMシステム内部で、パリティエラーの発生が検出されたアドレスに対する書き込みを禁止処理、および/または、検索マスク処理を行うことを可能とする。
【００３１】
まず、パリティエラー発生時に、CAMシステム内部でパリティエラー発生アドレスに対して書き込み禁止処理を実行する方法について説明する。本実施の形態の特徴的な部分を図8に示す。その他の構成は前述の第一の実施の形態の図1から図4に示すものと同じである。
【００３２】
本実施の形態では、本図に示すように、パリティ照合部3においてパリティエラーが検出されたアドレスに対し書き込みを制御するため、書き込みイネーブル信号WREN21bとパリティエラー信号PERR20bの反転値とをAND素子3eに入力し、そのAND出力信号をレジスタアレイ部4への書込みイネーブル信号4eとする。
【００３３】
本構成によれば、パリティエラー信号PERR20bが出力されていないときのみ、レジスタアレイ部4への書き込みが可能となる。即ち、この書込みイネーブル信号4eを用い、パリティエラー発生時に、CAMシステム内部で、パリティエラーが発生したアドレスに対して書き込みを停止するという制御が可能となる。
【００３４】
尚、レジスタアレイ部4の内部で書き込み禁止処理を行う場合は、上流装置でもその禁止アドレスを認識する必要がある。本実施の形態においては、パリティエラー信号PERR20bを同時に上流装置に通知する構成であるため、上流装置は、そのパリティエラー信号により、知ることができる。
【００３５】
次に、パリティエラー発生時に、CAMシステム内部でパリティエラー発生アドレスに対して検索マスク処理を実行する方法について説明する。
【００３６】
本実施の形態では、図8に示すように、パリティ照合部3においてパリティエラーが検出されたアドレスに対し検索マスク処理をするため、比較回路7に与える検索マスク信号24bとパリティエラー信号PERR20bの反転値とをAND素子9eに入力し、そのAND出力信号を比較回路7に与える。
【００３７】
本構成によれば、パリティエラー信号PERR20bが出力されていないときのみ、レジスタアレイ出力信号22bと入力データ23bとの比較が可能となる。即ち、パリティエラー発生時に、ビットエラーのあるレジスタアレイ出力信号22bが、入力データ23bと誤って一致とみなされることを防ぎ、一致アドレスの誤検出を防止することができる。
【００３８】
以上に説明したように、本実施の形態では、上流装置の制御によらないで、CAMシステム内部で、パリティエラーの発生が検出されたアドレスに対する書き込みを禁止し、検索対象から外すという制御を行うことができる。
【００３９】
次に第三の実施の形態につき説明する。本実施の形態においては、実際に有効なデータが書き込まれたアドレスに対してだけ、パリティチェックを実行する。
【００４０】
前述の実施の形態では、パリティチェックを行う対象はレジスタアレイ部4に格納された全データであったが、実際には、未使用データ領域やハードエラーが発生し使用禁止としたアドレスに対して、パリティチェックを行わないよう制御が必要となる場合がある。本実施の形態では、これを実現するために、図9に示すように、書込みフラグ20gとして、レジスタアレイ部4に更に1ビット追加する。その他の構成は、第一の実施例または第二の実施例と同様である。
【００４１】
本実施の形態は、この書込みフラグ20gに、上流装置からデータの書き込みが行われた場合にのみ'1'を書き込むことで、これを手がかりに格納データが有効か無効かを判断するものである。上流装置からのこの制御の手順を図10のフローチャートに示す。
【００４２】
CAMシステムの電源投入後、上流装置は、最初にレジスタアレイ部4の全アドレスの初期化を行う(ステップ101)。これはまず書込みフラグ20gを'0'に初期化し、全てのデータを無効に設定することを意味する。
【００４３】
その後、上流装置は、書込みモードである場合、書き込み先のアドレスが、ハードエラーなどによりパリティエラーが発生し、その通知を受けたアドレスであった場合、書き込みを禁止するため、不要データ削除操作を行い(ステップ103)、書込みフラグ20gを'0'とし(ステップ104)、無効であることを記憶する。書き込み先のアドレスが、そのようなアドレスでなかった場合、通常の書き込み処理とし、書込みフラグ20gに対して'1'を書き込み(ステップ102)、有効なデータがレジスタアレイ部4に格納されたことを記憶する。
【００４４】
なお、上流装置は、読込みモード、検索モード時においては、このフラグの書き換えは行わない(ステップ105)。
【００４５】
次に、この書込みフラグ20gを用いた回路の動作について説明する。図11に10ビットのデータが格納されたレジスタアレイ部6gと、図7のパリティ照合回路にAND素子13gを追加したパリティ照合部7gとを示す。
【００４６】
図7を用いて説明したとおり、レジスタアレイ部4の1つのアドレスが格納されるデータの0〜7bit目までに対して奇数パリティ演算を行い、その結果8gと格納データの8bit目9gとをEX-OR演算する。本実施の形態においては、このEX-OR出力10gと格納データの9bit目11gとをAND13g演算し、その出力をパリティ照合結果信号12gとする。つまり、格納データの9bit目10gが無効データ0'である場合は、たとえ、EX-OR出力10gが'1'であっても'0'にマスクされるよう構成されている。つまり、本実施の形態においては、格納データの9bit目11gが有効データ1'である場合のみ、パリティエラーを示すパリティ照合結果信号12gは検出可能となる。
【００４７】
これにより、本実施の形態においては、未使用データ領域やハードエラーが発生し使用禁止としたアドレスを、パリティチェックの対象外とすることができる。
上記第一から第三の実施の形態によるビットエラー検出手段を備えたCAMシステムを用いることで、メモリアレイ(レジスタアレイ)上でビットエラーが発生した場合、その異常を本システム内部、若しくは外部の上流装置に対して通知することができ、またその異常を検知した際に、異常の発生したアドレスを書き込み禁止にし、検索マスクするなどの操作を行うことが可能となる。
【００４８】
上記第一から第三の実施の形態では、レジスタアレイの前段にパリティ付加部を設け、後段に各アドレスに対しパリティ照合部を設け、レジスタアレイでは、入力されたデータが常時後段のパリティ照合部に出力されるよう構成する。本構成により、入力されたデータは全てレジスタアレイに書き込まれた時点で、パリティ照合部においてパリティチェックを終えることができる。そして、パリティ照合部でエラーが検出されたアドレスのパリティエラー信号を用い、書き込み禁止処理や検索のマスク処理などを実行することができる。
以上の実施の形態において、レジスタアレイと論理素子等で構成したCAMシステムに適用した例で説明したが、本発明の構成は、例えば半導体メモリ内部に適用することも可能である。図12にその適用例を示す。
【００４９】
本図に示すように、ワード選択線1f、ライトビット選択線2f、および、リードビット選択線3fを備え、それらに接続されるメモリ素子4fの集合で構成されるメモリアレイにおいて、各アドレス毎に、リードビット選択線3fより、メモリ素子データを取り出し、それを図7と同等回路で構成されるパリティ照合部5fに入力し、パリティビットの照合を行う。パリティチェック結果は、各アドレス毎に出力する信号PERR(0,1,・・・n)6f、または、その各PERRの全てのOR論理をとったPERRO 7fで出力する。
【００５０】
本構成により、本半導体メモリは、各アドレスごとに、出力されたパリティチェック結果を得ることができ、その結果を用い、書き込み禁止、検索マスクなどの処理を行うことが可能となる。
【００５１】
【発明の効果】
全アドレスに格納されたデータのビットエラーの有無を効率的にチェックでき、また、エラー発生箇所に対処可能なCAMシステムを得ることができる。
【図面の簡単な説明】
【図１】図1は、第一の実施の形態の構成を示す図である。
【図２】図2は、第一の実施の形態のCAMアレイ部のメモリ内の構成を示す図である。
【図３】図3は、第一の実施の形態のパリティ照合部の構成を示す図である。
【図４】図4は、第一の実施本実施の形態のCAMシステムの主要部を示す図である。
【図５】図5は、パリティビット演算式を示すものである。
【図６】図6は、パリティ付加回路を示す図である。
【図７】図7は、パリティ照合回路を示す図である。
【図８】図8は、第二の実施の形態のCAMシステムの主要部を示す図である。
【図９】図9は、第三の実施の形態のメモリ内の構成を示す図である。
【図１０】図10は、第三の実施の形態の制御を表すフローチャートである。
【図１１】図11は、第三の実施の形態のCAMシステムの主要部を示す図である。
【図１２】図12は、本発明をメモリアレイへ適用した例を示す図である。
【符号の説明】
1：パリティ付加部、2：CAMアレイ部、3：パリティ照合部、4：レジスタアレイ部、5：保持回路、6：アドレスデコーダ、7：比較回路、8：エンコード部
【図１】
0004025575.tif 000002
【図２】
0004025575.tif 000003
【図３】
0004025575.tif 000004
【図４】
0004025575.tif 000005
【図５】
0004025575.tif 000006
【図６】
0004025575.tif 000007
【図７】
0004025575.tif 000008
【図８】
0004025575.tif 000009
【図９】
0004025575.tif 000010
【図１０】
0004025575.tif 000011
【図１１】
0004025575.tif 000012
【図１２】
0004025575.tif 000013