"データ要素列の第1の部分データ要素列を、当該データ要素列の第2の部分データ要素列の位置に基づいて処理する装置であって、前記データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、当該データ要素列における当該各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、当該検索データ要素に一致する一致データ要素を当該複数のデータ要素の1つとして記憶していれば、当該一致データ要素が記憶されているアドレスを出力する連想メモリと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与え、当該連想メモリから出力された前記アドレスを出力する第1のパスと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与えることなく出力する第2のパスと、前記第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、前記第1のパスが当該特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、当該検索データ要素に一致する一致データ要素に誤りが発生していなければ、前記第1のパスから出力された前記アドレスに応じて決まる前記第2の部分データ要素列の位置を用いて当該第1の部分データ要素列を処理し、当該検索データ要素に一致する一致データ要素に誤りが発生していれば、前記第2のパスから出力された当該特定のデータ要素を用いて当該第1の部分データ要素列を処理する処理部とを含む、装置。前記第2のパスは、前記第1のパスから前記アドレスが出力されるのと同期して前記データ要素を出力するようなパイプライン構成を有する、請求項1の装置。データ要素列の第1の部分データ要素列を、当該データ要素列の第2の部分データ要素列の位置及び長さの情報で置換することにより、当該データ要素列を圧縮する装置であって、前記データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、当該データ要素列における当該各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、当該検索データ要素に一致する一致データ要素を当該複数のデータ要素の1つとして記憶していれば、当該一致データ要素が記憶されているアドレスを出力する連想メモリと、前記検索データ要素が前記連想メモリに与えられた場合に、それまでに与えられた検索データ要素の列に一致する一致データ要素の列が当該連想メモリに記憶されていれば、当該連想メモリから出力される前記アドレスに基づいて、当該一致データ要素の列が記憶されていることを示す列存在情報と、当該一致データ要素の列が記憶されているアドレスを示す列アドレス情報とを生成する生成回路と、入力されたデータ要素を前記検索データ要素として前記連想メモリに与え、前記生成回路により生成された前記列存在情報と前記列アドレス情報とを出力する第1のパスと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与えることなく出力する第2のパスと、前記第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、前記第1のパスが当該特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、当該検索データ要素に一致する一致データ要素に誤りが発生していないことを1つの条件として、当該第1の部分データ要素列を、前記第1のパスからの当該列存在情報の連続出力回数と前記第1のパスから出力された前記列アドレス情報とに応じて決まる前記第2の部分データ要素列の位置及び長さの情報で置換する処理を行い、当該検索データ要素に一致する一致データ要素に誤りが発生していれば、前記第2のパスから出力された当該特定のデータ要素を用いて、当該第1の部分データ要素列を部分的に非圧縮とする処理を行う処理部とを含む、装置。前記処理部は、前記第1のパスが前記特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、前記1つの条件に加え、前記第1のパスからの前記列存在情報の連続出力回数が所定数を超えたことを更に1つの条件として、当該連続出力回数と前記第1のパスから出力された前記列アドレス情報とに応じて決まる前記第2の部分データ要素列の位置及び長さの情報で置換する処理を行う、請求項3の装置。前記処理部は、前記第1のパスが前記特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、前記第1のパスからの前記列存在情報の連続出力回数が所定数を超えなかったならば、前記第2のパスから出力された当該特定のデータ要素を用いて、当該第1の部分データ要素列を部分的に非圧縮とする処理を行う、請求項3又は請求項4の装置。前記第2のパスは、前記第1のパスから前記列存在情報と前記列アドレス情報とが出力されるのと同期して前記データ要素を出力するようなパイプライン構成を有する、請求項3乃至請求項5の何れかの装置。データ要素列の第1の部分データ要素列を、当該データ要素列の第2の部分データ要素列の位置及び長さの情報で置換することにより、当該データ要素列を圧縮する装置であって、前記データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素と当該各データ要素に対応するパリティ要素とを、当該データ要素列における当該各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、当該検索データ要素に一致する一致データ要素を当該複数のデータ要素の1つとして記憶していれば、当該一致データ要素が記憶されているアドレスを出力する連想メモリと、前記検索データ要素が前記連想メモリに与えられた場合に、それまでに与えられた検索データ要素の列に一致する一致データ要素の列が当該連想メモリに記憶されていれば、当該連想メモリから出力される前記アドレスに基づいて、当該一致データ要素の列が記憶されていることを示す列存在情報と、当該一致データ要素の列が記憶されているアドレスを示す列アドレス情報とを生成する生成回路と、前記検索データ要素が前記連想メモリに与えられた場合に、当該検索データ要素に一致する一致データ要素が前記連想メモリに記憶されていれば、当該一致データ要素が記憶されているアドレスに記憶された前記パリティ要素の値が、当該検索データ要素から生成されるかどうかを判定する判定回路と、入力されたデータ要素を前記検索データ要素として前記連想メモリに与え、前記生成回路により生成された前記列存在情報と前記列アドレス情報とを出力する第1のパスと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与えることなく出力する第2のパスと、前記第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、前記第1のパスが当該特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、前記判定回路により前記パリティ要素の値が生成されると判定されたという条件、及び、前記第1のパスからの前記列存在情報の連続出力回数が所定数を超えたという条件の両方が満たされれば、当該第1の部分データ要素列を、当該連続出力回数と前記第1のパスから出力された前記列アドレス情報とに応じて決まる前記第2の部分データ要素列の位置及び長さの情報で置換する処理を行い、前記判定回路により前記パリティ要素の値が生成されないと判定されたという条件、及び、前記第1のパスからの前記列存在情報の連続出力回数が前記所定数を超えなかったという条件の少なくともいずれか一方が満たされれば、前記第2のパスから出力された当該特定のデータ要素を用いて、当該第1の部分データ要素列の当該特定のデータ要素の部分を非圧縮とする処理を行う処理部とを含む、装置。データ要素列の第1の部分データ要素列を、当該データ要素列の第2の部分データ要素列の位置に基づいて処理する方法であって、前記データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、当該データ要素列における当該各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、当該検索データ要素に一致する一致データ要素を当該複数のデータ要素の1つとして記憶していれば、当該一致データ要素が記憶されているアドレスを出力する連想メモリと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与え、当該連想メモリから出力された前記アドレスを出力する第1のパスと、入力されたデータ要素を前記検索データ要素として前記連想メモリに与えることなく出力する第2のパスとを含み、前記第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、前記第1のパスが当該特定のデータ要素を前記検索データ要素として前記連想メモリに与えた場合に、当該検索データ要素に一致する一致データ要素に誤りが発生しているかどうかを判定するステップと、前記一致データ要素に誤りが発生していないと判定されれば、前記第1のパスから出力された前記アドレスを用いて前記第1の部分データ要素列を処理し、前記一致データ要素に誤りが発生していると判定されれば、前記第2のパスから出力された当該特定のデータ要素を用いて前記第1の部分データ要素列を処理するステップとを含む、方法。例えば特許文献4に記載したようなCAMにおいて、あるパケットの圧縮中にパリティエラーが発生したとしても、そのパケットの処理を継続できることが望まれる。そして、このことは、一般に、CAMを用いた処理を行うに当たって、CAMに記憶されたデータに誤りが発生した場合にも望まれることである。本発明の目的は、CAMに記憶されたデータに誤りが発生していなければCAMを用いて行う処理を、CAMに記憶されたデータに誤りが発生しても継続できるようにすることにある。かかる目的のもと、本発明は、データ要素列の第1の部分データ要素列を、データ要素列の第2の部分データ要素列の位置に基づいて処理する装置であって、データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、データ要素列における各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、検索データ要素に一致する一致データ要素を複数のデータ要素の1つとして記憶していれば、一致データ要素が記憶されているアドレスを出力する連想メモリと、入力されたデータ要素を検索データ要素として連想メモリに与え、連想メモリから出力されたアドレスを出力する第1のパスと、入力されたデータ要素を検索データ要素として連想メモリに与えることなく出力する第2のパスと、第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、検索データ要素に一致する一致データ要素に誤りが発生していなければ、第1のパスから出力されたアドレスに応じて決まる第2の部分データ要素列の位置を用いて第1の部分データ要素列を処理し、検索データ要素に一致する一致データ要素に誤りが発生していれば、第2のパスから出力された特定のデータ要素を用いて第1の部分データ要素列を処理する処理部とを含む、装置を提供する。ここで、第2のパスは、第1のパスからアドレスが出力されるのと同期してデータ要素を出力するようなパイプライン構成を有する、ものであってよい。また、本発明は、データ要素列の第1の部分データ要素列を、データ要素列の第2の部分データ要素列の位置及び長さの情報で置換することにより、データ要素列を圧縮する装置であって、データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、データ要素列における各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、検索データ要素に一致する一致データ要素を複数のデータ要素の1つとして記憶していれば、一致データ要素が記憶されているアドレスを出力する連想メモリと、検索データ要素が連想メモリに与えられた場合に、それまでに与えられた検索データ要素の列に一致する一致データ要素の列が連想メモリに記憶されていれば、連想メモリから出力されるアドレスに基づいて、一致データ要素の列が記憶されていることを示す列存在情報と、一致データ要素の列が記憶されているアドレスを示す列アドレス情報とを生成する生成回路と、入力されたデータ要素を検索データ要素として連想メモリに与え、生成回路により生成された列存在情報と列アドレス情報とを出力する第1のパスと、入力されたデータ要素を検索データ要素として連想メモリに与えることなく出力する第2のパスと、第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、検索データ要素に一致する一致データ要素に誤りが発生していないことを1つの条件として、第1の部分データ要素列を、第1のパスからの列存在情報の連続出力回数と第1のパスから出力された列アドレス情報とに応じて決まる第2の部分データ要素列の位置及び長さの情報で置換する処理を行い、検索データ要素に一致する一致データ要素に誤りが発生していれば、第2のパスから出力された特定のデータ要素を用いて、第1の部分データ要素列を部分的に非圧縮とする処理を行う処理部とを含む、装置も提供する。ここで、処理部は、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、1つの条件に加え、第1のパスからの列存在情報の連続出力回数が所定数を超えたことを更に1つの条件として、連続出力回数と第1のパスから出力された列アドレス情報とに応じて決まる第2の部分データ要素列の位置及び長さの情報で置換する処理を行う、ものであってよい。また、処理部は、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、第1のパスからの列存在情報の連続出力回数が所定数を超えなかったならば、第2のパスから出力された特定のデータ要素を用いて、第1の部分データ要素列を部分的に非圧縮とする処理を行う、ものであってよい。また、第2のパスは、第1のパスから列存在情報と列アドレス情報とが出力されるのと同期してデータ要素を出力するようなパイプライン構成を有する、ものであってよい。更に、本発明は、データ要素列の第1の部分データ要素列を、データ要素列の第2の部分データ要素列の位置及び長さの情報で置換することにより、データ要素列を圧縮する装置であって、データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素と各データ要素に対応するパリティ要素とを、データ要素列における各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、検索データ要素に一致する一致データ要素を複数のデータ要素の1つとして記憶していれば、一致データ要素が記憶されているアドレスを出力する連想メモリと、検索データ要素が連想メモリに与えられた場合に、それまでに与えられた検索データ要素の列に一致する一致データ要素の列が連想メモリに記憶されていれば、連想メモリから出力されるアドレスに基づいて、一致データ要素の列が記憶されていることを示す列存在情報と、一致データ要素の列が記憶されているアドレスを示す列アドレス情報とを生成する生成回路と、検索データ要素が連想メモリに与えられた場合に、検索データ要素に一致する一致データ要素が連想メモリに記憶されていれば、一致データ要素が記憶されているアドレスに記憶されたパリティ要素の値が、検索データ要素から生成されるかどうかを判定する判定回路と、入力されたデータ要素を検索データ要素として連想メモリに与え、生成回路により生成された列存在情報と列アドレス情報とを出力する第1のパスと、入力されたデータ要素を検索データ要素として連想メモリに与えることなく出力する第2のパスと、第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、判定回路によりパリティ要素の値が生成されると判定されたという条件、及び、第1のパスからの列存在情報の連続出力回数が所定数を超えたという条件の両方が満たされれば、第1の部分データ要素列を、連続出力回数と第1のパスから出力された列アドレス情報とに応じて決まる第2の部分データ要素列の位置及び長さの情報で置換する処理を行い、判定回路によりパリティ要素の値が生成されないと判定されたという条件、及び、第1のパスからの列存在情報の連続出力回数が所定数を超えなかったという条件の少なくともいずれか一方が満たされれば、第2のパスから出力された特定のデータ要素を用いて、第1の部分データ要素列の特定のデータ要素の部分を非圧縮とする処理を行う処理部とを含む、装置も提供する。更にまた、本発明は、データ要素列の第1の部分データ要素列を、データ要素列の第2の部分データ要素列の位置に基づいて処理する方法であって、データ要素列の少なくとも一部を構成する複数のデータ要素の各データ要素を、データ要素列における各データ要素の位置に応じたアドレスに記憶し、検索データ要素が与えられた場合に、検索データ要素に一致する一致データ要素を複数のデータ要素の1つとして記憶していれば、一致データ要素が記憶されているアドレスを出力する連想メモリと、入力されたデータ要素を検索データ要素として連想メモリに与え、連想メモリから出力されたアドレスを出力する第1のパスと、入力されたデータ要素を検索データ要素として連想メモリに与えることなく出力する第2のパスとを含み、第1の部分データ要素列に含まれる特定のデータ要素の入力に応じて、第1のパスが特定のデータ要素を検索データ要素として連想メモリに与えた場合に、検索データ要素に一致する一致データ要素に誤りが発生しているかどうかを判定するステップと、一致データ要素に誤りが発生していないと判定されれば、第1のパスから出力されたアドレスを用いて第1の部分データ要素列を処理し、一致データ要素に誤りが発生していると判定されれば、第2のパスから出力された特定のデータ要素を用いて第1の部分データ要素列を処理するステップとを含む、方法も提供する。本発明によれば、CAMに記憶されたデータに誤りが発生していなければCAMを用いて行う処理を、CAMに記憶されたデータに誤りが発生しても継続できる。以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。図1は、本実施の形態が適用されるマイクロコンピュータ10の構成一部を示す。マイクロコンピュータ10は、CPU12、ROM14、RAM16を備えており、これらはアドレスバス、データバス、コントロールバス等からなるバス18を介して互いに接続されている。また、マイクロコンピュータ10は、本実施の形態における複数の繰り返しデータ検索装置20a、20b、...を備えており、これらは、繰り返しデータ検索装置の作動を制御するデータ圧縮コントローラ22を介してバス18に接続されている。尚、繰り返しデータ検索装置20a、20b、...は各々同一の構成であり、本実施の形態ではP1個の繰り返しデータ検索装置が設けられている。以下ではP1個の繰り返しデータ検索装置を繰り返しデータ検索装置20と総称してその構成を説明すると共に、個々の繰り返しデータ検索装置についてはブロック0~ブロックPと称して区別する。図2は、本実施の形態における繰り返しデータ検索装置20の一部を構成する繰り返しデータ検索回路21を示した図である。繰り返しデータ検索回路21は、図に○で示す多数の連想メモリセル以下、連想メモリをCAMという28がマトリクス状に配置されて構成されたCAMセルアレイ26を備えている。CAMセルアレイ26にはN1本のワード線WL0~WLN、N1本のマッチ線MATCH0~MATCHN、M1組のビット線対BL0BL0~BLMBLMが各々マトリクス状に配置されており、各CAMセル28は、ワード線WL0~WLNの何れか、マッチ線MATCH0~MATCHNの何れか、及び、ビット線対BL0BL0~BLMBLMの何れかに各々接続されている。多数のCAMセル28は、各々同一の構成を有している。図3に示すように、CAMセル28は、互いの入力端と出力端とが接続された2個のNOT回路30、32を備えている。このNOT回路30、32のループが、1ビットのデータを記憶する記憶回路SRAM型を構成する。NOT回路30の出力端はN-MOSFET34のソースに、NOT回路32の出力端は同じくN-MOSFET36のソースに各々接続されており、N-MOSFET34、36のゲートは各々ワード線WLに接続されている。また、N-MOSFET34、36のドレインは各々ビット線BLBLに接続されている。ここで、CAMセル28に1ビットのデータを書き込む場合には、ワード線WLはハイレベルとされ、ビット線BLは書き込むデータDに対応したレベルDが1の場合はハイレベル、0の場合はローレベルとされ、ビット線BLはビット線BLのレベルに対して反転したレベルビット線BLがハイレベルの場合はローレベル、ビット線BLがローレベルの場合はハイレベルとされる。これにより、N-MOSFET34、36がオンし、ビット線BL又はBLを介して供給されたデータがNOT回路30、32のループに保持される。また、NOT回路30の出力端はN-MOSFET38のゲートに、NOT回路32の出力端はN-MOSFET40のゲートに各々接続されている。尚、NOT回路32からはデータDを反転したデータQ’が出力され、NOT回路30からはデータQ’を反転したデータQ=Dが出力される。N-MOSFET38、40のドレインは各々ビット線BLBLに接続されており、ソースはN-MOSFET42のゲートに接続されている。N-MOSFET42のドレインはマッチ線MATCHに接続され、ソースは接地されている。尚、本実施の形態では、同一のワード線及びマッチ線に、一例としてM1個のCAMセル28を接続しており、同一のワード線及びマッチ線に接続された複数のCAMセル28以下、これらをCAMセル列というにM1ビットのデータを記憶できるようにしている。また、CAMセルアレイ26では、CAMセル列毎にアドレスが付与されている。また、CAMセルアレイ26には、図に太線の○で示すN1個のパリティメモリセル24も1列に配置されている。CAMセルアレイ26にはN1本の読出しパリティ線RPL0~RPLN、1組の書込みパリティ線対WPLWPLも配置されており、各パリティメモリセル24は、ワード線WL0~WLNの何れか、及び、読出しパリティ線RPL0~RPLNの何れかに各々接続され、書込みパリティ線対WPLWPLに接続されている。N1個のパリティメモリセル24は、各々同一の構成を有している。図4に示すように、パリティメモリセル24の構成は、図3のCAMセル28の構成とほぼ同一である。但し、パリティメモリセル24は、CAMセル28に含まれるN-MOSFET38、40、42を有しておらず、NOT回路30、32のループに保持されるデータがそのまま読み出されるように、NOT回路30の出力端は読出しパリティ線RPLに接続されている。尚、CAMセルアレイ26では、各パリティメモリセル24にもアドレスが付与されている。再び図2を参照すると、繰り返しデータ検索回路21はタイミングコントローラ50を備えている。タイミングコントローラ50はデータ圧縮コントローラ22に接続されている。データ圧縮コントローラ22からタイミングコントローラ50に検索指示SEARCHが入力されると、繰り返しデータ検索回路21は、入力された検索データをCAMセルアレイ26の各CAMセル列に記憶されたデータと比較し、次に検索データをCAMセルアレイ26の何れかのCAMセル列に書き込むことを繰り返す検索モードを実行する。タイミングコントローラ50にはデータ圧縮コントローラ22からシステムクロックCLOCKが入力され、システムクロックCLOCKと同期したクロックSRを生成し出力する。クロックSRはタイミングコントローラ50に接続された書込みバッファ56に出力される。書込みバッファ56はデータ圧縮コントローラ22に接続されており、コントーラ22から検索データが順次入力される。書込みバッファ56にはビット線対BL0BL0~BLMBLMが各々接続されており、入力された検索データを保持すると共に、タイミングコントローラ50から入力されたクロックSRに同期したタイミングで、保持している検索データの値に応じてビット線対BL0BL0~BLMBLMのレベルを変化させるビット線対を駆動する。書込みバッファ56が所定の検索データに応じて各ビット線対を駆動している間に、各CAMセル列に記憶されたデータとその所定の検索データとの比較、及び、所定のCAMセル列への所定の検索データの書込みが行われる。また、書込みバッファ56にはパリティ生成器54が接続されており、書込みバッファ56からパリティ生成器54に検索データが順次入力される。パリティ生成器54には書込みパリティ線対WPLWPLが接続されており、入力された検索データに基づいてパリティビットを算出すると共に、タイミングコントローラ50から入力されたクロックSRに同期したタイミングで、算出したパリティビットに応じて書込みパリティ線対WPLWPLのレベルを変化させるビット線対を駆動する。パリティ生成器54がパリティビットに応じてビット線対を駆動している間に、所定のパリティメモリセル24へのパリティビットの書込みが行われる。また、パリティ生成器54には検索パリティ線SPLも接続されており、算出したパリティビットに応じて検索パリティ線SPLのレベルを変化させる。タイミングコントローラ50にはアドレスデコーダ52も接続されており、クロックSRはアドレスデコーダ52にも出力される。アドレスデコーダ52はデータ圧縮コントローラ22に接続されており、データ圧縮コントローラ22から検索データの書込みを行うCAMセル列のアドレス書込みアドレスWADRが指定される。アドレスデコーダ52にはワード線WL0~WLNが接続されており、クロックSRと同期したタイミングで、より詳しくは書込みバッファ56が所定の検索データに応じて各ビット線対を駆動している期間内で、かつ、各CAMセル列に記憶されたデータと所定の検索データとの比較が行われた後に、指定された書込みアドレスWADRに対応するワード線をアサートしイネーブルとし、所定の検索データを指定されたアドレスに対応するCAMセル列に書き込むと共に、その所定の検索データから算出したパリティビットを指定されたアドレスに対応するパリティメモリセル24に書き込む。また、タイミングコントローラ50には、各々マッチ線MATCH0~MATCHNに接続されたN1個のマッチ線コントローラ580~58Nも各々接続されており、クロックSRはマッチ線コントローラ580~58Nの各々にも出力される。マッチ線コントローラ580~58Nは、入力されたクロックSRに基づき各CAMセル列に記憶されたデータと検索データとの比較に先立ってマッチ線MATCH0~MATCHNをハイレベルにチャージプリチャージする。このマッチ線コントローラ580~58Nによるマッチ線のプリチャージは、書込みバッファ56が所定の検索データに応じた各ビット線対の駆動を終了してから、次の検索データに応じた各ビット線対の駆動を開始するまでの期間内に行われる。また、マッチ線MATCH0~MATCHNは、比較結果制御回路60に各々接続されている。図5に示すように、比較結果制御回路60は、ラッチ620~62N、信号生成回路640~64N、ラッチ660~66Nを備えている。尚、図5では、マッチ線コントローラ580~58Nの図示を省略している。また、図5では信号生成回路640~64Nのうち、マッチ線MATCH1に接続された信号生成回路641についてのみ具体的な構成を示しているが、他の信号生成回路も各々同一の構成であり、以下では比較結果制御回路60のうちマッチ線MATCH1に対応する回路部分についてのみ説明する。マッチ線MATCH1はラッチ621の入力端に接続されており、ラッチ621の出力端は信号生成回路641のAND回路681、701に各々2個設けられた入力端の一方に各々接続されている。AND回路681の2個の入力端の他方にはOR回路721の出力端が接続されており、OR回路721の2個の入力端の一方、及び、AND回路701の2個の入力端の他方は、前段のラッチ660の出力端に各々接続されている。AND回路681の出力端はラッチ661の入力端に接続されており、ラッチ661の出力端は前記と同様に、次段の信号生成回路642の図示しないOR回路722及びAND回路702の入力端に各々接続されている。また、ラッチ661の出力端は第1プライオリティエンコーダ74の入力端にも接続されている。更に、AND回路701の出力端はOR回路78の1個の入力端に接続されており、OR回路78の他の入力端には図示しないAND回路700、702~70Nの出力端が接続されている。OR回路78の出力端はOR回路80の1個の入力端に接続されており、OR回路80の他の入力端には、他の繰り返しデータ検索回路21のOR回路78の出力端が接続されている。OR回路80の出力端は、信号生成回路640~64NのOR回路720~72Nの入力端に図示しないインバータを介して接続されておりOR回路721のみ図示、OR回路720~72Nには、OR回路80から出力されたフィードバック信号ORFBが反転されて入力される。また、OR回路80から出力されたフィードバック信号ORFBはデータ圧縮コントローラ22にも出力される図2も参照。尚、図5にはブロック0の繰り返しデータ検索回路21の比較結果制御回路60を示しており、信号生成回路640のOR回路720の2個の入力端の一方は、ブロックPの比較結果制御回路60のラッチ66Nの出力端に接続されている。また、ブロック0の比較結果制御回路60のラッチ66Nの出力端は、ブロック1の比較結果制御回路60のOR回路720の2個の入力端の一方に接続されている図2も参照。第1プライオリティエンコーダ74の出力端は第2プライオリティエンコーダ76の入力端に接続されている。第1プライオリティエンコーダ74は、比較結果制御回路60の660~66Nから各々入力された信号のうち検索動作を行った後に入力信号がハイレベルとなっている信号に対応するアドレスをエンコードして一致アドレスMADR0として第2プライオリティエンコーダ76に出力すると共に、ラッチ660~66Nから各々入力された信号の論理和を一致信号MSIG0として第2プライオリティエンコーダ76に出力する。尚、ラッチ660~66Nから入力された信号のうちの複数の信号がハイレベルであった場合には、一致アドレスMADR0として、予め定められた基準に従って優先順位の高い連想メモリセル列のアドレス、例えば、最も低いアドレス、又は、その時点の書込みアドレスWADRに最も近いアドレスを出力する。尚、後者のアドレスを出力するのは、圧縮に用いる距離情報が小さくてすむので、結果として圧縮率が高くなるという理由による。また、第2プライオリティエンコーダ76の入力端には、他の繰り返しデータ検索回路21の第1プライオリティエンコーダ74から出力された一致アドレスMADR及び一致信号MSIGも入力される。第2プライオリティエンコーダ76の出力端はデータ圧縮コントローラ22に接続されている。第2プライオリティエンコーダ76は第1プライオリティエンコーダ74とほぼ同様の構成であり、複数の第1プライオリティエンコーダ74から各々入力されたアドレスMADR0~MADRPのうち、MSIG0~MSIGPがハイレベルであるものの中から予め定められた基準に従い優先順位の高いアドレス、例えば、最も低いアドレスにそのブロックのアドレス複数の繰り返しデータ検索装置に各々付与されたアドレスを付加したアドレス、又は、その時点の書込みアドレスWADRに最も近いアドレスを一致アドレスMADRとしてデータ圧縮コントローラ22に出力すると共に、複数の第1プライオリティエンコーダ74から各々入力された一致信号MSIG0~MSIGPの論理和を表す信号を一致信号MSIGとしてデータ圧縮コントローラ22に出力する。また、比較結果制御回路60は、EXOR回路820~82N、NAND回路840~84Nも備えている。以下ではこれらの回路のうち読出しパリティ線RPL1に対応する回路部分についてのみ説明する。読出しパリティ線RPL1はEXOR回路821の2個の入力端の一方に接続されており、EXOR回路821の2個の入力端の他方には検索パリティ線SPLが接続されている。EXOR回路821の出力端はNAND回路841の2個の入力端の一方に接続されており、NAND回路841の2個の入力端の他方はラッチ621の出力端に接続されている。また、NAND回路841の出力端はOR回路86の1個の入力端にインバータを介して接続されており、OR回路86の他の入力端にはNAND回路840、842~84Nの出力端がインバータを介して接続されている。OR回路86の出力端はOR回路88の1個の入力端に接続されており、OR回路88の他の入力端には、他の繰り返しデータ検索回路21のOR回路86の出力端が接続されている。OR回路88から出力されたパリティエラー信号PEはデータ圧縮コントローラ22に出力される図2も参照。次に、本実施の形態の作用として、まず、繰り返しデータ検索回路21における比較動作について説明する。被圧縮データ元データの圧縮を行う場合、データ圧縮コントローラ22は後述するように元データから所定ビット長の単位データを検索データとして順次取り出し、検索指示SEARCH、書込みアドレスWADRと共に繰り返しデータ検索回路21に順次出力する。検索指示SEARCHが入力されると、繰り返しデータ検索回路21ではタイミングコントローラ50から書込みバッファ56、アドレスデコーダ52及びマッチ線コントローラ580~58NにクロックSRが出力され、マッチ線コントローラ58ではCAMセルアレイ26における比較動作に先立ってマッチ線MATCH0~MATCHNのプリチャージを行い、書込みバッファ56では入力された検索データを保持すると共に、検索データに応じてビット線対BL0BL0~BLMBLMを駆動する。CAMセルアレイ26の各CAMセル28では、NOT回路30から出力されるデータQが1ハイレベルであればN-MOSFET38がオンしており、NOT回路32から出力されるデータQ’が1であればN-MOSFET40がオンしている。従って、NOT回路30、32のループに保持されているデータQQ’とビット線対BLBLを介して供給されるデータDDとが一致している場合にはN-MOSFET42はオンしないが、不一致の場合にはN-MOSFET38、40のうちオンしている方のN-MOSFETのドレインからソースに電流が流れ、N-MOSFET42がオンする。これにより、プリチャージされたマッチ線MATCHのレベルはローレベルに低下されるディスチャージ。上記のデータの比較はCAMセル28の各々で同時に行なわれる。ところで、1本のマッチ線MATCHには複数のCAMセル28CAMセル列が接続されているので、クロックSRの1周期のほぼ前半で、CAMセル列に記憶されている文字データと入力された文字データとを比較する比較動作が完了し、各マッチ線は、接続されている全てのCAMセル28でN-MOSFET42がオンしなかった場合、即ちCAMセル列に記憶されている文字データと書込みバッファ56に入力された文字データとが一致していた場合にのみハイレベルの状態で維持され、不一致であった場合にはローレベルとされることになる。クロックSRの1周期の後半には、入力された書込みアドレスWADRに対応するCAMセル列のワード線がアドレスデコーダ52によりアサートされイネーブルとされ、そのCAMセル列に検索データが書き込まれる。そして、CAMセル列への検索データの書込みが終了しワード線がローレベルにされると共に書込みバッファ56による各ビット線対の駆動が停止されると、マッチ線コントローラ58により各マッチ線のプリチャージが再び行われる。以上の動作比較動作はクロックSRの1周期の間に行われ、データ圧縮コントローラ22からの検索データ、検索指示SEARCH、書込みアドレスWADRの入力に同期して繰り返される。また、このとき、繰り返しデータ検索回路21は、各CAMセル列に記憶されている文字データのパリティチェックも行うので、パリティチェック動作についても説明する。EXOR回路82は、パリティ生成器54から出力された検索パリティ線SPLのレベルと、パリティメモリセル24から出力された読出しパリティ線RPLのレベルとを比較し、一致する場合にはローレベルの信号を出力し、不一致の場合にはハイレベルの信号を出力する。ラッチ62から出力された信号がハイレベルにされ、データの一致を示し、かつ、EXOR回路82から出力された信号がローレベルにされ、パリティビットの一致を示す場合、又は、ラッチ62から出力された信号がローレベルにされ、データの不一致を示す場合、NAND回路84は、ハイレベルの信号を出力する。一方、ラッチ62から出力された信号がハイレベルにされ、データの一致を示し、かつ、EXOR回路82から出力された信号がハイレベルにされ、パリティビットの不一致を示す場合、NAND回路84は、ローレベルの信号を出力する。そして、NAND回路840~84Nから出力される信号の少なくとも1つがローレベルである場合に、OR回路86は、ハイレベルの信号を出力し、OR回路88は、パリティエラー信号PEをデータ圧縮コントローラ22に出力する。尚、上記説明において、文字データはデータ要素の一例であり、パリティビットはパリティ要素の一例である。また、ORFBが1である場合の信号は、検索データ要素の列に一致する一致データ要素の列が記憶されていることを示す列存在情報の一例であり、MADRは、検索データ要素の列に一致する一致データ要素の列が記憶されているアドレスを示す列アドレス情報の一例であり、信号生成回路64、ラッチ66、第1プライオリティエンコーダ74、第2プライオリティエンコーダ76、OR回路78、OR回路80からなる部分は生成回路の一例である。更に、ラッチ62、EXOR回路82、NAND回路84、OR回路86、OR回路88からなる部分は判定回路の一例である。次に、比較結果制御回路60の動作について、図6を参照して説明する。尚、図6では元データがテキストデータであり、アドレス0~5のCAMセル列に既にABABBCの文字データ列が順に記憶されており、かつ、検索データとしてABBBC...の順に文字データが入力された場合を例として示しており、ラッチ620~625をML0~ML5、ラッチ660~665をPS0~PS5と称している。また、以下では他の繰り返しデータ検索装置においては比較動作の結果が連続して不一致となっているものとする。図6aに示すように、検索データとして、まずAの文字データが入力されると、アドレス0及び2のCAMセル列図6では太枠で示すで比較結果が一致となり、マッチ線MATCH0~MATCH5のうちマッチ線MATCH0及びMATCH2以外はローレベルにディスチャージされ、マッチ線MATCH0及びMATCH2のみがハイレベルのまま維持される。各マッチ線MATCH0~MATCH5のレベルは比較結果制御回路60のラッチML0~ML5に各々保持された後に、次の周期で信号生成回路640~645に各々出力される。図6aに示すように、このときはラッチPS0~PS5に保持されているレベルがローレベル図6では0:図示していないラッチPS6~PSN、及び、他のブロックのラッチPS0~PSNについても同様とするであるので、AND回路700~705から出力される信号は何れもローレベルとなり、OR回路78から出力されるフィードバック信号ORFB0及びOR回路80から出力されるフィードバック信号ORFBもローレベルとなる。このように本実施の形態では、1文字のみ一致したのみ、即ち1回の比較動作で比較結果が一致となったCAMセル列があったのみではフィードバック信号ORFBはハイレベルとはならない。またフィードバック信号ORFBがローレベルであるので、OR回路720~725の出力は何れもハイレベルとなり、ラッチML0~ML5から出力された信号のレベルはラッチPS0~PS5にそのまま保持される図6b参照。図6bに示すように、次の検索データとしてBの文字データが入力されると、アドレス1、3、4のCAMセル列で比較結果が一致となり、各マッチ線のレベルマッチ線MATCH135のみがハイレベルはラッチML0~ML5に各々保持される。そして次の周期では、ラッチML1、ML3、ML5の出力が各々ハイレベルになると共に、ラッチPS0、PS2即ちラッチML1、ML3の前段のラッチPSの出力が各々ハイレベルとなるので、図6bに示すようにAND回路701、703から出力される信号がハイレベルとなり、OR回路78から出力されるフィードバック信号ORFB0、OR回路80から出力されるフィードバック信号ORFBが各々ハイレベルになる。このように、フィードバック信号ORFBは2文字以上連続して一致した場合、即ち続けて入力された複数の検索データからなるデータ列がCAMセルアレイ26に記憶されていた場合にのみハイレベルとなる。尚、第1プライオリティエンコーダ74が一致アドレスMADR0として最も低いアドレスを出力するものであるとすると、一致アドレスMADR0はPS0に対応するアドレス0となる。また、第2プライオリティエンコーダ76から出力される一致アドレスMADRについては、他の繰り返しデータ検索装置から入力される一致アドレスの値にも依存するが、他の繰り返しデータ検索装置でデータが一致していない場合には、一致アドレスMADRの下位側のビットの値は一致アドレスMADR0の値に等しくなる。また一致アドレスMADRの上位側のビットの値は、一致したエンコーダブロックのアドレス複数の繰り返しデータ検索装置の各々に付与されたアドレスとなるが、この場合はアドレス0のブロックなので全て0となる。図6cに示すように、次の検索データとしてBの文字データが入力されると、前回と同じマッチ線がハイレベルとなり、各マッチ線のレベルがラッチML0~ML5に各々一旦保持された後に、信号生成回路640~645に各々出力される。このときには、出力がハイレベルとなるラッチML1、ML3、ML4のうち前段のラッチPSの出力もハイレベルであるラッチはラッチML4のみであるので、AND回路701、703、704から出力される信号のうちAND回路704から出力される信号のみがハイレベルとなる。従って、OR回路78から出力されるフィードバック信号ORFB0はハイレベルで維持され、一致アドレスMADR0はPS4に対応するアドレス4となる。また、フィードバック信号ORFBがハイレベルで維持されるので、現在のサイクルをmとすると、アドレスnのラッチPSには、アドレスnのラッチMLの出力MLと、前段のラッチPSの出力PSとの論理積に相当する信号が出力される。この結果、ラッチPS4のみハイレベルを保持することになる。続いて図6dに示すように、次の検索データとしてBの文字データが入力される。この場合、ラッチML0~ML5に各々一旦保持された後に信号生成回路640~645に各々入力される各マッチ線のレベルは前回と同じであるが、ハイレベルの信号を出力するラッチML1、ML3、ML4の何れについても、前段のラッチPSから出力される信号がローレベルであるので、AND回路700~705から出力される信号は何れもローレベルとなり、フィードバック信号ORFB0及びフィードバック信号ORFBもローレベルとなる。またフィードバック信号ORFBがローレベルになると、各信号生成回路640~645のOR回路720~725の出力信号が各々ハイレベルとなるので、ラッチML1~ML5から出力された信号のレベルはラッチPS0~PS5にそのまま保持される。更に、図6eに示すように次の検索データとしてCの文字データが入力されるとマッチ線MATCH5のみがハイレベルとなり、各マッチ線のレベルがラッチML0~ML5に各々一旦保持された後に、信号生成回路640~645に各々出力される。このときには、ラッチML5からのみハイレベルの信号が出力され、前段のラッチPS4からもハイレベルの信号が出力されるので、AND回路700~705から出力される信号のうちAND回路705から出力される信号のみがハイレベルとなる。従って、OR回路78から出力されるフィードバック信号ORFB0はハイレベルで維持され、一致アドレスMADR0はPS1に対応するアドレス1となる。このように、繰り返しデータ検索回路21は、1クロックで1文字の一致を検索でき、他の方法に比べ圧倒的に高速な文字列検索を可能にするものである。具体的には、1文字入力されるごとに、入力された文字をCAMセルアレイ26内の全ての文字と同時に比較できるので、高速な検索が可能となっている。ここで、繰り返しデータ検索回路21において、パリティエラーが発生した場合について考える。図7は、繰り返しデータ検索回路21による繰り返しデータ検索動作でパリティエラーが発生した場合について示したものである。まず、CAMセルアレイ26にIBMisIBまでの文字列が順次格納されたとする。また、CAMセルアレイ26には各文字に対応するパリティビットpで表すも格納されているとする。尚、図において、CAMセルアレイ26の左側に記載した数字は、CAMの各セル列のアドレスを示しており、ワード線WLNマッチ線MATCHN、読出しパリティ線RPLNのNの値に対応する。この状態で、繰り返しデータ検索回路21は、続く文字列IBMiが書込みバッファ56に1文字ずつ入力されると、CAMセルアレイ26に格納された文字列と順次比較を行う。即ち、1文字目のIが書込みバッファ56に入力されると、アドレス0の文字データがこれと一致するので、マッチ線MATCH0をハイレベルの状態で維持する。また、2文字目のBが書込みバッファ56に入力されると、アドレス1の文字データがこれと一致するので、マッチ線MATCH1をハイレベルの状態で維持する。更に、3文字目のMが書込みバッファ56に入力されると、アドレス2の文字データがこれと一致するので、マッチ線MATCH2をハイレベルの状態で維持する。その後、4文字目のiが書込みバッファ56に入力された時点で、マッチ線MATCH3はハイレベルの状態で維持されるものの、パリティエラーが検出されたとする図中、×で示す。その原因としては、例えば、本来別の文字であったものが、ノイズによるビットフリップ等により、文字iと同じビットの並びになってしまったことが考えられる。これにより、このときの文字iとの一致は信頼できなくなる。つまり、CAMセルアレイ26のデータは信頼性が保証できなくなる。従って、これ以上処理することができなくなり、この時点で繰り返しデータ検索回路21の処理を中断する必要がある。この場合、通常は、最初から全てをやり直すという方法が採られる。つまり、パリティエラーが起きたことをデータ供給元に伝え、再度データを最初から流してもらう。このとき、ノイズ等により一時的にパリティエラーが発生したのであれば、再度データを流してもらうことにより、エラーを回復することが可能である。しかしながら、CAMセルアレイ26のビットの破損等により、一時的ではなく、恒久的にパリティエラーが発生する場合は、CAMセルアレイ26の故障であって、回復は不能となる。このようにパリティエラーが発生した場合に最初からやり直す場合の構成について説明する。図8は、この場合の繰り返しデータ検索装置20及びデータ圧縮コントローラ22の構成例一部を示した図である。図示するように、繰り返しデータ検索装置20は、図2~図6で述べた繰り返しデータ検索回路21を含む。また、データ圧縮コントローラ22は、繰り返しデータ検索回路21から出力された文字データ文字コードを保持するフリップフロップ90と、繰り返しデータ検索回路21から出力された一致アドレス図2のMADRを保持するフリップフロップ92と、繰り返しデータ検索回路21から文字列一致信号図2のORFBが連続して出力された回数をカウントするカウンタ94と、繰り返しデータ検索回路21から出力されたパリティエラー信号図2のPEを保持するフリップフロップ96とを含む。更に、データ圧縮コントローラ22は、カウンタ94のカウント結果に基づき、フリップフロップ90が保持する文字データ、及び、フリップフロップ92が保持する一致アドレスとカウンタ94のカウント結果のセットの何れかを選択して出力するセレクタ98も含む。次に、この構成例における繰り返しデータ検索装置20及びデータ圧縮コントローラ22の動作について説明する。まず、繰り返しデータ検索回路21に1バイト単位で文字データが入力される。尚、図には明記していないが、この文字データの入力元はデータ圧縮コントローラ22である。繰り返しデータ検索回路21は、入力された文字データをCAMに順次書き込むと共に、それまでに書き込まれた全ての文字データと比較し、一致する文字データが存在すれば、文字列一致信号として1を出力する。但し、この文字列一致信号として、単に1文字が一致しただけでは1は出力せず、2文字以上連続して一致した場合に1を出力する。そして、文字列が一致している間は1を出力し続ける。つまり、文字列一致信号として、1クロック分1が出力され、すぐ次のクロックで0に落ちた場合、これは2文字一致を表す。また、文字列一致信号として、2クロック分1が出力され、次のクロックで0に落ちた場合、これは3文字一致を表す。以下同様に、Kクロック分1が出力され、次のクロックで0に落ちた場合、これはK1文字の一致を表す。従って、データ圧縮コントローラ22は、文字列一致信号をカウンタ94によりカウントすることで、何文字一致したかを検出することができる。また、繰り返しデータ検索回路21は、文字データの一致があったCAMのアドレスを一致アドレスとして出力し、フリップフロップ92がこれを保持する。更に、繰り返しデータ検索回路21は、文字データの一致があってもなくても、入力された文字データを出力し、フリップフロップ90がこれを保持する。尚、この文字データは、文字データの一致がなかった場合に非圧縮のデータとして必要となるものである。これにより、セレクタ98は、文字データの一致がなかった場合は、フリップフロップ90にて保持された文字データを出力し、文字データの一致があった場合は、フリップフロップ92にて保持された一致アドレス及びカウンタ94でカウントされた回数文字データの連続一致数を出力する。但し、この構成例において、繰り返しデータ検索回路21内でパリティエラーが発生した場合、繰り返しデータ検索回路21はパリティエラー信号として1をデータ圧縮コントローラ22に出力する。これにより、データ圧縮コントローラ22は、文字列一致信号及び文字コードが信頼できないことを認識する。この場合は圧縮処理を継続することができないため、圧縮対象データを流し直すことになる。そこで、本実施の形態では、繰り返しデータ検索回路21内でパリティエラーが発生した場合、繰り返しデータ検索回路21の処理を一旦中断しても、圧縮データの信頼性を確保できるようにする。図9は、本実施の形態における繰り返しデータ検索装置20及びデータ圧縮コントローラ22の構成例一部を示した図である。図示するように、繰り返しデータ検索装置20は、図8の構成に加え、フリップフロップ1001、1002、1003、1004を含む。また、データ圧縮コントローラ22は、図8のフリップフロップ90に代えて、フリップフロップ1004から出力された文字データを保持するフリップフロップ102を含み、加えて、カウンタ94のカウント結果及びフリップフロップ96からのパリティエラー信号に基づいてセレクタ98に出力する信号を生成する信号生成回路104を含む。本実施の形態では、処理部の一例として、データ圧縮コントローラ22を設けている。ところで、図において、圧縮データパスは、第1のパスの一例であり、繰り返しデータ検索回路21の検索結果による圧縮を行うためのパスである。一方、非圧縮データパスは、第2のパスの一例であり、入力された文字データをそのまま流すパスである。つまり、本実施の形態では、2つのパスを設けることで、繰り返しデータ検索装置20をリダンダントな構成としている。次に、本実施の形態における繰り返しデータ検索装置20及びデータ圧縮コントローラ22の動作について説明する。繰り返しデータ検索回路21が一致アドレス及び文字列一致信号を出力し、フリップフロップ92が一致アドレスを保持し、カウンタ94が連続一致回数をカウントするところまでは、図8と同様である。但し、本実施の形態では、図8のように繰り返しデータ検索回路21内を通った文字データではなく、繰り返しデータ検索回路21の外に設けられたフリップフロップ1001、1002、1003、1004を通った文字データが、フリップフロップ102に保持される。そして、繰り返しデータ検索回路21内でパリティエラーが発生し、繰り返しデータ検索回路21がパリティエラー信号を出力した場合、信号生成回路104は、非圧縮データパスのデータを選択することを指示する信号をセレクタ98に出力する。これにより、セレクタ98は、フリップフロップ102に保持された文字データを選択し、データ圧縮コントローラ22の処理部分に出力する。一方、繰り返しデータ検索回路21内でパリティエラーが発生しておらず、繰り返しデータ検索回路21がパリティエラー信号を出力していない場合、信号生成回路104は、連続して一致した文字数が2以下であれば、非圧縮データパスのデータを選択することを指示する信号をセレクタ98に出力する。これにより、セレクタ98は、フリップフロップ102に保持された文字データを選択し、データ圧縮コントローラ22の処理部分に出力する。また、連続して一致した文字数が3以上であれば、圧縮データパスのデータを選択することを指示する信号をセレクタ98に出力する。これにより、セレクタ98は、フリップフロップ92に保持された文字データとカウンタ94のカウント結果とのセットを選択し、データ圧縮コントローラ22の処理部分に出力する。尚、連続して一致した文字数が2以下の場合に非圧縮データパスのデータを選択し、3以上の場合に圧縮データパスのデータを選択するようにしたのは、連続して一致した文字数が2以下の場合に一致文字列の位置と長さを用いて圧縮しても圧縮効果が得られないためである。図7の例の場合、最初のIBMまではパリティエラーが発生していないので、繰り返しデータ検索回路21は正常に動作しており、セレクタ97はIBMの3文字が一致したとして0,3というデータを出力する。その後、パリティエラーが発生したため、セレクタ98は、4文字目として文字データiをそのまま出力する。つまり、出力されるデータは、順に、0,3、iとなる。一方、繰り返しデータ検索回路21内でパリティエラーが発生していない場合は、IBMiまで4文字が一致したことになるので、セレクタ98は、0,4を出力する。本実施の形態では、このような構成を採用したことにより、圧縮データパスでパリティエラーが発生したとしても、非圧縮データパスに元データが残っているため、データが消えてしまうことはない。従って、パリティエラーが発生した場合、圧縮されたデータは無効となるので、圧縮率は下がることになるが、処理が中断されることはなく、正しいデータが出力されるという効果がある。尚、図9の圧縮データパスにある繰り返しデータ検索回路21は、文字データが1クロックごとに1文字1バイトずつ入力され、入力された文字データが4段のパイプラインで処理される構成となっている。即ち、1クロック目で文字データがCAMセルアレイ26に書き込まれ、2クロック目で文字データの一致がラッチ62に保持され、3クロック目でその文字データの直前までの文字列の一致がラッチ66に保持され、4クロック目で一致アドレスがフリップフロップ92に保持される。そのため、一致アドレス及び文字列一致信号は、文字データが入力されてから4クロック後に出力されることになる。従って、非圧縮データパスも、フリップフロップ1001、1002、1003、1004という4段のパイプライン構成として、圧縮データパスと段数を合わせる必要がある。但し、この段数は、あくまで一例であり、圧縮データパスの段数がK段であれば、非圧縮データパスの段数もK段とする必要がある。次に、本実施の形態におけるデータ圧縮コントローラ22の動作について説明する。図10-1及び図10-2は、データ圧縮コントローラ22における処理を示したフローチャートである。尚、この処理は、データ圧縮コントローラ22にバス18を介して圧縮すべきデータ元データが転送され、CPU12から元データの圧縮が指示されると実行される。データ圧縮コントローラ22は、まず、繰り返しデータ検索装置20の比較結果制御回路60のラッチ620~62N、ラッチ660~66Nを各々リセットするステップ200。次に、一致長MLENを1に、書込みアドレスWADRを0に各々初期設定するステップ202。そして、繰り返しデータ検索装置20への元データの出力が終了したか否か判定するステップ204。判定が否定された場合には、元データから先頭の1文字に対応する文字C0のデータを検索データとして取り出し、繰り返しデータ検索装置20に検索指示SEARCH、書込みアドレスWADRと共に出力するステップ206。これにより、繰り返しデータ検索装置20では、文字C0のデータが非圧縮データパスに渡されると共に、圧縮データパスに渡されて前述した検索動作が行われる。次に、データ圧縮コントローラ22は、パリティエラー信号PEがハイレベルになったか否かを判定するステップ207。パリティエラー信号PEがハイレベルになっており、判定が肯定された場合の処理は後述する。パリティエラー信号PEがローレベルになっており、判定が否定された場合、データ圧縮コントローラ22は、繰り返しデータ検索装置20から出力される文字列一致信号ORFBがハイレベルになったか否か判定するステップ208。このときには、先のステップ200で各ラッチ62及び各ラッチ66をリセットしたことに伴って文字列一致信号ORFBはローレベルで維持されるので、判定が否定されてステップ210へ移行する。そこで、データ圧縮コントローラ22は、今回の比較動作が所定の元データに対する第1回目の比較動作であるか否か判定しステップ210、判定が肯定された場合はステップ212で圧縮データの出力処理を行うことなくステップ214へ移行する。前述したように文字列一致信号ORFBは2文字以上連続して一致しないとハイレベルにならないため、比較結果不一致が続いている場合は後述するように圧縮データとして前回検索した文字を出力する。従って、この時点では圧縮データとして出力すべきデータがないためステップ212を実行しない。その後、データ圧縮コントローラ22は、一致長MLENに1を代入しステップ214、ステップ218へ移行する。そして、前々回検索文字C2に前回検索文字C1のデータを、前回検索文字C1に今回の文字C0のデータを、各々設定しステップ218、現在の書込みアドレスWADR第1回目の比較動作では0に対応するCAMセル列に文字C0のデータを書き込むステップ220。この書込み処理は、実際にはアドレスデコーダ52によって書込みアドレスWADRに対応するCAMセル列のワード線をアサートするイネーブルにすることにより行われる。また、データ圧縮コントローラ22は、次の書込みアドレスWADRとして、書込みアドレスWADRに1を加算し従って文字データはCAMセル列のアドレスの昇順に書き込まれる、CAMセルアレイ26のサイズN1で除した余りを設定するステップ222。これにより全てのCAMセル列にデータを書き込んだ後は、アドレス0のCAMセル列にデータが書き込まれるので、CAMセルアレイ26が所謂リングバッファとして用いられ、CAMセルアレイ26のオーバフロー等が発生することはない。ステップ222の処理を行った後はステップ204へ戻る。ステップ204の判定が否定された場合にはステップ206以降の処理を再度実行するが、ステップ206では前回検索文字C1に続く文字C0のデータが検索データとして元データから取り出され、検索指示SEARCH、書込みアドレスWADRと共に繰り返しデータ検索装置20へ出力される。そしてステップ208の判定が否定された場合はステップ210へ移行し、この判定が否定されることによりステップ212の圧縮データ出力処理が行われる。図11に示すように、データ圧縮コントローラ22は、この圧縮データ出力処理で、一致長MLENが0か否か判定するステップ229。前回のパリティエラー信号PEがハイレベルであった場合は、後述する処理によりそれまでの全てのデータが出力され一致長MLENが0になっているので、圧縮データとしてデータを出力することなく、図10-1のフローチャートのステップ214へ移行する。ステップ229で判定が否定された場合、データ圧縮コントローラ22は、一致長MLENが2か否か判定するステップ230。前回の比較結果は一致であるが、前々回の比較結果が一致でない場合は判定が肯定され、圧縮データとして、前々回検索文字C2のデータを出力しステップ236、次いで前回検索文字C1のデータを出力しステップ238、その後に図10-1のフローチャートのステップ214へ移行する。ステップ230で判定が否定された場合、データ圧縮コントローラ22は、一致長MLENが1か否かを判定するステップ232。前回の比較結果が一致でない場合は判定が肯定され、圧縮データとして前回検索文字C1のデータを出力しステップ238、その後に図10-1のフローチャートのステップ214へ移行する。ところで、図10-1のフローチャートにおいてステップ208の判定が肯定された場合には、一致長MLENをカウントアップしステップ216、その後にステップ218へ移行する。従って、文字列一致信号ORFBがハイレベルとなっている間は圧縮データの出力は行われない。また、前回の比較動作でハイレベルとなっていた文字列一致信号ORFBがローレベルに変化してステップ210の判定が否定された場合は、2文字以上の長さの繰り返し文字列の末尾が検出された場合であるので、ステップ212で圧縮データ出力処理が行われる。このときは、前回及び前々回の比較結果が共に一致であれば、先に説明したステップ216で一致長MLENがカウントアップされて3以上になっているので、ステップ229、ステップ230及びステップ232の判定が共に否定され、ステップ234へ移行する。そこで、データ圧縮コントローラ22は、繰り返し文字列を圧縮するための圧縮コードを求める。本実施の形態では、繰り返し文字列と同一の文字列の位置を指し示すポインタを表す第1のコードと、繰り返し文字列の長さを表す第2のコードとで構成された圧縮コードを用いており、第1のコードとして一致アドレスMADRと一致長MLENとの差に1を加えた値MADR-MLEN1を、第2のコードとして一致長MLENを各々設定し、出力するステップ234。これにより、データ圧縮コントローラ22から出力される圧縮データの長さは、元データよりも短くなる。尚、この圧縮コードを出力するにあたり、圧縮した文字列を復元する際に圧縮コードと文字データとを区別できるようにするために、データ圧縮コントローラ22は文字データと圧縮コードとの間に区切りを表すコードも挿入する。このように、繰り返し文字列が発見される毎にステップ234が実行され、発見された繰り返し文字列が圧縮コードに変換されて出力されることにより、元データの冗長性が取り除かれ、元データが圧縮データに圧縮されることになる。また、図10-1のフローチャートのステップ207の判定が肯定された場合は、図10-2のフローチャートのステップ240へ移行し、この判定が否定されることによりステップ242の圧縮データ出力処理が行われる。この圧縮データ出力処理については、図11のフローチャートを参照して既に述べたので説明を省略する。パリティエラー信号PEがハイレベルになった場合は、文字列一致信号ORFBが信頼できないので、この時点で、繰り返しデータ検索装置20の非圧縮データパス経由で得た文字C0を出力するステップ244。そして、一致長MLENに0を代入してステップ246、図10-1のフローチャートのステップ218へ移行し、その後は上記処理を継続する。上述の処理を繰り返し、元データからの文字Cのデータの取り出し位置が元データの末尾に到達するとステップ204の判定が肯定され、データ圧縮コントローラ22は、圧縮データ出力処理を再び行うステップ224。このとき、一致長MLENの値が3以上であれば、ステップ234で圧縮コードの出力が行われるが、一致長MLENの値が2の場合には、ステップ236及びステップ238で圧縮データとして前々回検索文字C2のデータ及び前回検索文字C1のデータを、一致長MLENの値が1の場合には、ステップ238で圧縮データとして前回検索文字C1のデータを、それぞれ出力し、処理を終了する。尚、この動作例では、圧縮コードのうち第1のコードとして、繰り返し文字列と同一の文字列の位置を指し示すポインタを用いたが、前述した例に従い、繰り返し文字列と同一の文字列の位置と繰り返し文字列の位置との距離を用いてもよい。この場合、WADRから上記繰り返し文字列と同一の文字列の位置を減算して得られた値を第1のコードとすればよい。以上、本発明の実施の形態について説明した。このように、本実施の形態では、繰り返しデータ検索装置20内に、入力された文字データをそのまま流す非圧縮データパスと、入力された文字データに連続して一致するCAM内の文字列の位置及び長さを出力する圧縮データパスとを設け、CAMにパリティエラーが発生すると、非圧縮データパスからの文字データを用いるようにした。これにより、CAM内の文字データにパリティエラーが発生しても、文字データを用いた処理を中断することなく継続できるようになる。また、パリティエラーが発生するケースをまとめると、以下のようになる。ケース1:一時的な場合これは、宇宙線、ノイズ等の影響で偶発的に一度だけ起きる場合である。この場合は、再度データを読み出せば、エラーは発生しない。ケース2:セルが故障した場合通常、CAM等のメモリセルは、工場出荷時にテストされているので、最初から壊れて出荷されることは殆どない。従って、動作中に故障した場合がこれにあたる。本実施の形態は、ケース1、ケース2の両方において有効である。ケース1は、一時的なものなので、一時的に圧縮率が下がるだけである。ケース2は、故障したセルがヒットしたときは常に圧縮率が下がることになる。しかしながら、本実施の形態によれば、何れの場合も、データ自体が壊れるわけではないので、問題にはならない。尚、本実施の形態では、文字列のある部分を別の部分の位置及び長さの情報で置換することにより文字列を圧縮することを前提にしたが、文字列のある部分を別の部分の位置に基づいて処理することを前提にしてもよい。その場合、圧縮データパスを、CAMセルアレイ26の文字データが入力される部分からその文字データに一致する文字データのアドレスが出力される部分までのパスとし、非圧縮データパスを、圧縮データパスからアドレスが出力されるのと同期して文字データを出力するようなパイプライン構成を有するパスとしてもよい。また、本実施の形態では、パリティビットをCAMセルアレイ26に記憶したが、CAMセルアレイ26以外の別のメモリに記憶してもよい。また、CAMセルアレイ26に記憶されたデータに発生する誤りとして、パリティエラーを挙げたが、パリティエラー以外の誤りが発生する場合であっても本発明は同様に適用可能である。以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。"