(57)【要約】【課題】  消費電力を抑えつつ高速なデータ圧縮処理を行うことができるデータ圧縮装置を提供する。【解決手段】  Ｎバイト処理用ＣＡＭセル列１１は、入力データレジスタ１０から供給されるＮバイトデータを１バイト単位で履歴する記憶手段列と、各記憶手段が履歴している各データと入力データレジスタ１０から供給されるＮ個の１バイトデータを一度に比較するためのコンパレータ列と、記憶手段毎に設けられ、コンパレータ列による比較結果（１サイクル前の一致状況も含む。）に応じて所定の一致状況を検出する一致状況検出手段を具備する。そして、Ｎバイト処理用ＣＡＭセル列１１に履歴されている登録データ列の何れかと被圧縮データのデータ列が一致すると、コード生成回路１５はそのデータ列の先頭のデータを履歴するＣＡＭセルのアドレスと一致長カウンタ１３のカウンタ値を成分とする圧縮コードを生成する。【選択図】  図１
2005260285.tif 000002
【特許請求の範囲】
【請求項１】
被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する前記被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する前記記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を前記圧縮コードに置き換えることで前記被圧縮データを圧縮するデータ圧縮装置であって、
前記記憶手段列に既に履歴されている各データと前記一定長のデータに分けられた前記一定数の前記被圧縮データとを同時に比較する比較手段列と、
前記被圧縮データを入力順に前記一定長のデータに分けて前記一定数ずつ同時に格納し前記記憶手段列と前記比較手段列に供給する格納手段と、
前記記憶手段列を構成する各記憶手段毎に設けられ、前記比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段と、
前記一致状況検出手段により検出された前記所定の一致状況に対応する前記記憶手段のアドレス情報を生成するアドレス生成手段と、
前記一致状況検出手段により検出された前記所定の一致状況に対応してカウンタ値を変化させる一致長カウンタ手段と、
前記アドレス情報と前記カウンタ値を基に前記圧縮コードを生成する圧縮コード生成手段と、
を具備することを特徴とするデータ圧縮装置。
【請求項２】
前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする請求項１もしくは２のいずれかに記載のデータ圧縮装置。
【請求項４】
前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項３記載のデータ圧縮装置。
【請求項５】
前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする請求項４記載のデータ圧縮装置。
【請求項６】
請求項１記載のデータ圧縮装置であって、前記一定長が１バイト長、前記一定数が２であり、前記格納手段は前記被圧縮データを入力順に１バイト長のデータに分けて２つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と前記比較手段列へ供給することを特徴とするデータ圧縮装置。
【請求項７】
請求項６記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とするデータ圧縮装置。
【請求項８】
前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項７記載のデータ圧縮装置。
【請求項９】
請求項７もしくは８のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とするデータ圧縮装置。
【請求項１０】
前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項９記載のデータ圧縮装置。
【請求項１１】
請求項１０記載のデータ圧縮装置であって、
前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、
を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とするデータ圧縮装置。
【請求項１２】
請求項１１記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用ＡＮＤ回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とするデータ圧縮装置。
【請求項１３】
請求項１１もしくは１２のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用ＡＮＤ回路、前記新規連続一致検出用ＡＮＤ回路、前記連続一致検出用ＡＮＤ回路、および前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とするデータ圧縮装置。
【請求項１４】
請求項１記載のデータ圧縮装置であって、
前記格納手段から前記一定数の前記一定長のデータが供給され、新規に履歴されるデータ列内での一致を検出する新規履歴データ一致検出手段を備え、
前記一致状況検出手段が、前記比較手段列の比較結果および前記新規履歴データ一致検出手段の検出結果に対応して前記所定の一致状況を検出する
ことを特徴とするデータ圧縮装置。
【請求項１５】
前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項１４記載のデータ圧縮装置。
【請求項１６】
前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする請求項１４もしくは１５のいずれかに記載のデータ圧縮装置。
【請求項１７】
前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項１６記載のデータ圧縮装置。
【請求項１８】
前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記新規履歴データ一致検出手段の検出結果と、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする請求項１７記載のデータ圧縮装置。
【請求項１９】
請求項１４記載のデータ圧縮装置であって、前記一定長が１バイト長、前記一定数が２であり、前記格納手段は前記被圧縮データを入力順に１バイト長のデータに分けて２つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と、前記比較手段列と、前記新規履歴データ一致検出手段へ供給することを特徴とするデータ圧縮装置。
【請求項２０】
請求項１９記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とするデータ圧縮装置。
【請求項２１】
前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項２０記載のデータ圧縮装置。
【請求項２２】
請求項２０もしくは２１のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とするデータ圧縮装置。
【請求項２３】
前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項２２記載のデータ圧縮装置。
【請求項２４】
請求項２３記載のデータ圧縮装置であって、
前記上位バイト記憶手段に対応する前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段と前記新規履歴データ一致検出手段とを選択して、新規に履歴されるデータ同士の一致が検出されると前記新規履歴データ一致検出手段の検出結果を出力し、検出されないときには前記下位バイト用比較手段の比較結果を出力する選択手段と、
前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、
前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、
を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段の出力のうちの何れかを選択して前記レジスタに格納し、
前記下位バイト記憶手段に対応する前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、
を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とするデータ圧縮装置。
【請求項２５】
請求項２４記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用ＡＮＤ回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とするデータ圧縮装置。
【請求項２６】
請求項２４もしくは２５のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用ＡＮＤ回路、前記新規連続一致検出用ＡＮＤ回路、前記連続一致検出用ＡＮＤ回路、前記上位バイト記憶手段に対応する前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段、および前記下位バイト記憶手段に対応する前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とするデータ圧縮装置。
【請求項２７】
請求項５もしくは１８のいずれかに記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ供給するクロック信号と前記レジスタへ格納する前記所定の一致状況を表す信号との論理積を出力するクロック供給制御用ＡＮＤ回路を含み、
前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用ＡＮＤ回路により前記所定の一致状況を表す信号の前記レジスタへの格納を有効にすることを特徴とするデータ圧縮装置。
【請求項２８】
請求項２７記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記所定の一致状況を表す信号を入力とする否定論理回路を含み、
前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とするデータ圧縮装置。
【請求項２９】
請求項１１乃至１３もしくは２４乃至２６のいずれかに記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ供給するクロック信号と前記レジスタへ格納する信号との論理積を出力するクロック供給制御用ＡＮＤ回路を含み、
前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用ＡＮＤ回路により前記レジスタへの信号の格納を有効にすることを特徴とするデータ圧縮装置。
【請求項３０】
請求項２９記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ格納する信号を入力とする否定論理回路を含み、
前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とするデータ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮装置に関する。
【背景技術】
【０００２】
従来より、ディジタル・データ記憶装置においてデータ送受信などのデータ転送を行う際にデータ圧縮を行うデータ圧縮装置が知られている。
従来のデータ圧縮装置は、例えば図１７に示すような構成となっている。
【０００３】
図１７において、１７０は１７バイトシフトレジスタ、１７１は５１２バイトシフトレジスタである。５１２バイトシフトレジスタ１７１は、１７バイトシフトレジスタ１７０より供給される圧縮すべきデータの以前の履歴を格納して辞書ウィンドウ（スライド辞書）を作成する。
【０００４】
また、１７２はセレクタ、１７３はコンパレータ列である。コンパレータ列１７３は、２バイトのデータを比較するコンパレータ３２個からなる。また、１７４は一致状況検出手段、１７５は一致情報格納レジスタ、１７６は制御回路である。制御回路１７６は、各回路の処理タイミングを制御している。
【０００５】
コンパレータ列１７３は、１７バイトシフトレジスタ１７０より供給される「圧縮すべきデータ」と５１２バイトシフトレジスタ１７１よりセレクタ１７２を介して入力される「圧縮すべきデータの以前の履歴」とを並列比較する。
【０００６】
一致状況検出手段１７４は、コンパレータ列１７３による比較結果を基に、「圧縮すべきデータの以前の履歴」と一致した「圧縮すべきデータ」の一致長とその一致したデータの５１２バイトシフトレジスタ１７１における位置を検出する。一致情報格納レジスタ１７５は、一致状況検出手段１７４により検出された一致長とその一致した位置の情報を格納する。
【０００７】
制御回路１７６は、一致状況検出手段１７４により検出された一致の状況に応じてセレクタ１７２を制御し、コンパレータ列１７３におけるコンパレータの組み合わせを適宜変更する。
【０００８】
このように、図１７に示す従来のデータ圧縮装置では、スライド辞書に格納されたデータとの比較に複数のコンパレータを用い、一致検出状況に応じてコンパレータの組み合わせを適宜変更することにより、回路規模をそれほど大きくすることなく高速なデータ圧縮を実現している（例えば、特許文献１参照。）。
【０００９】
また、別の従来のデータ圧縮装置は、例えば図１８に示すような構成となっている。
図１８において、１８０はバッファである。バッファ１８０は、外部から入力される圧縮対象のストリームデータを所定ビット長のデータから成る単位データごとに格納する。また、１８１はＣＡＭセル列、１８２は比較結果制御手段、１８３はアドレス生成回路（プライオリティエンコーダ）、１８４は一致長カウンタ、１８５はコード生成回路、１８６は制御回路である。制御回路１８６は、各回路の処理タイミングを制御している。
【００１０】
ＣＡＭセル列１８１は、単位データを記憶する複数のＨｉｓｔｏｒｙレジスタと、各Ｈｉｓｔｏｒｙレジスタ毎に対応して設けられ、Ｈｉｓｔｏｒｙレジスタに記憶された単位データと入力された単位データとを比較し、比較結果を表す比較信号を出力する複数のコンパレータからなる。ＣＡＭセル列１８１を構成する複数のＨｉｓｔｏｒｙレジスタがスライド辞書となる。
【００１１】
制御回路１８６は、所定数の単位データで構成された元データから隣り合う単位データを順次取り出してバッファ１８０に格納し、このバッファ１８０に格納した単位データを複数のコンパレータの各々に順次入力するとともに、複数のコンパレータの各々に入力した単位データを各Ｈｉｓｔｏｒｙレジスタとコンパレータとの対に付与されたアドレスの昇順に順次Ｈｉｓｔｏｒｙレジスタに記憶させる。
【００１２】
アドレス生成回路１８３は、バッファ１８０に格納された単位データとスライド辞書に格納されている単位データとが一致したとき、比較結果制御手段１８２を介して入力された各コンパレータからの比較信号を基に、その一致した単位データを格納するＣＡＭセルのアドレス情報を生成する。また、一致長カウンタ１８４は、入力データレジスタに順次格納される単位データのデータ列がＣＡＭセル列１８１に格納されているデータ列（アドレス順）と一致した場合に、その一致長をカウントする。コード生成回路１８５は、アドレス生成回路１８３からのアドレス情報と一致長カウンタ１８４からのカウント値を成分とする圧縮コードを生成する。
【００１３】
このように、図１８に示す従来のデータ圧縮装置では、回路規模は大きくなるものの、ＣＡＭセルを用いてスライド辞書を形成し、このスライド辞書に格納される単位データの数と同数のコンパレータを設け、装置の構成方法を工夫することにより高速なデータ圧縮を実現している（例えば、特許文献２参照。）。
【００１４】
しかしながら、図１７に示す従来のデータ圧縮装置の構成では、コンパレータが３２個しか設けられておらず、スライド辞書へのデータの取り込みが１バイトずつであるため、一つのリテラルコード（圧縮しないデータ）を生成するまでに１６回も比較処理が必要になるという問題があった。さらに、一致状況検出手段により検出された一致の状況に応じてコンパレータの組み合わせを適宜変更するための制御が複雑になるという問題があった。
【００１５】
また、図１８に示す従来のデータ圧縮装置の構成では、５１２バイトを超えるＣＡＭセルを設けることにより、リテラルコードの生成にかかる時間を短縮しているが、単位データの取り込みが１バイトずつであるため、圧縮コードの生成レートを向上するためには処理クロックの周波数を高く設定する必要があり、クロック周波数の増加に比例した消費電力の増加が避けられなかった。
【特許文献１】特開平１０−１８７４１０号公報（第１０頁、第３図）
【特許文献２】特開平８−２４２１７６号公報（第３７頁、第１１図）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、上記問題点に鑑み、被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していくとともに、被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時に記憶手段列に既に履歴されている一定長のデータの各々と比較していき、記憶手段列に既に履歴されている何れかのデータ列と一致する被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する記憶手段のアドレスとその一致長とにより表される圧縮コードを生成することにより、消費電力を抑えつつ高速なデータ圧縮処理を行うことができるデータ圧縮装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の請求項１記載のデータ圧縮装置は、被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する前記被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する前記記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を前記圧縮コードに置き換えることで前記被圧縮データを圧縮するデータ圧縮装置であって、前記記憶手段列に既に履歴されている各データと前記一定長のデータに分けられた前記一定数の前記被圧縮データとを同時に比較する比較手段列と、前記被圧縮データを入力順に前記一定長のデータに分けて前記一定数ずつ同時に格納し前記記憶手段列と前記比較手段列に供給する格納手段と、前記記憶手段列を構成する各記憶手段毎に設けられ、前記比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段と、前記一致状況検出手段により検出された前記所定の一致状況に対応する前記記憶手段のアドレス情報を生成するアドレス生成手段と、前記一致状況検出手段により検出された前記所定の一致状況に対応してカウンタ値を変化させる一致長カウンタ手段と、前記アドレス情報と前記カウンタ値を基に前記圧縮コードを生成する圧縮コード生成手段と、を具備することを特徴とする。
【００１８】
また、本発明の請求項２記載のデータ圧縮装置は、請求項１記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
【００１９】
また、本発明の請求項３記載のデータ圧縮装置は、請求項１もしくは２のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする。
【００２０】
また、本発明の請求項４記載のデータ圧縮装置は、請求項３記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
【００２１】
また、本発明の請求項５記載のデータ圧縮装置は、請求項４記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする。
【００２２】
また、本発明の請求項６記載のデータ圧縮装置は、請求項１記載のデータ圧縮装置であって、前記一定長が１バイト長、前記一定数が２であり、前記格納手段は前記被圧縮データを入力順に１バイト長のデータに分けて２つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と前記比較手段列へ供給することを特徴とする。
【００２３】
また、本発明の請求項７記載のデータ圧縮装置は、請求項６記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とする。
【００２４】
また、本発明の請求項８記載のデータ圧縮装置は、請求項７記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
【００２５】
また、本発明の請求項９記載のデータ圧縮装置は、請求項７もしくは８のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とする。
【００２６】
また、本発明の請求項１０記載のデータ圧縮装置は、請求項９記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
【００２７】
また、本発明の請求項１１記載のデータ圧縮装置は、請求項１０記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とする。
【００２８】
また、本発明の請求項１２記載のデータ圧縮装置は、請求項１１記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用ＡＮＤ回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とする。
【００２９】
また、本発明の請求項１３記載のデータ圧縮装置は、請求項１１もしくは１２のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用ＡＮＤ回路、前記新規連続一致検出用ＡＮＤ回路、前記連続一致検出用ＡＮＤ回路、および前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とする。
【００３０】
また、本発明の請求項１４記載のデータ圧縮装置は、請求項１記載のデータ圧縮装置であって、前記格納手段から前記一定数の前記一定長のデータが供給され、新規に履歴されるデータ列内での一致を検出する新規履歴データ一致検出手段を備え、前記一致状況検出手段が、前記比較手段列の比較結果および前記新規履歴データ一致検出手段の検出結果に対応して前記所定の一致状況を検出することを特徴とする。
【００３１】
また、本発明の請求項１５記載のデータ圧縮装置は、請求項１４記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
【００３２】
また、本発明の請求項１６記載のデータ圧縮装置は、請求項１４もしくは１５のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする。
【００３３】
また、本発明の請求項１７記載のデータ圧縮装置は、請求項１６記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
【００３４】
また、本発明の請求項１８記載のデータ圧縮装置は、請求項１７記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記新規履歴データ一致検出手段の検出結果と、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする。
【００３５】
また、本発明の請求項１９記載のデータ圧縮装置は、請求項１４記載のデータ圧縮装置であって、前記一定長が１バイト長、前記一定数が２であり、前記格納手段は前記被圧縮データを入力順に１バイト長のデータに分けて２つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と、前記比較手段列と、前記新規履歴データ一致検出手段へ供給することを特徴とする。
【００３６】
また、本発明の請求項２０記載のデータ圧縮装置は、請求項１９記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とする。
【００３７】
また、本発明の請求項２１記載のデータ圧縮装置は、請求項２０記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
【００３８】
また、本発明の請求項２２記載のデータ圧縮装置は、請求項２０もしくは２１のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とする。
【００３９】
また、本発明の請求項２３記載のデータ圧縮装置は、請求項２２記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを１つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
【００４０】
また、本発明の請求項２４記載のデータ圧縮装置は、請求項２３記載のデータ圧縮装置であって、前記上位バイト記憶手段に対応する前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段と前記新規履歴データ一致検出手段とを選択して、新規に履歴されるデータ同士の一致が検出されると前記新規履歴データ一致検出手段の検出結果を出力し、検出されないときには前記下位バイト用比較手段の比較結果を出力する選択手段と、前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段の出力のうちの何れかを選択して前記レジスタに格納し、前記下位バイト記憶手段に対応する前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが２つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用ＡＮＤ回路と、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用ＡＮＤ回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用ＡＮＤ回路と、を備え、前記連続一致継続検出用ＡＮＤ回路もしくは前記新規連続一致検出用ＡＮＤ回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とする。
【００４１】
また、本発明の請求項２５記載のデータ圧縮装置は、請求項２４記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用ＡＮＤ回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とする。
【００４２】
また、本発明の請求項２６記載のデータ圧縮装置は、請求項２４もしくは２５のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用ＡＮＤ回路、前記新規連続一致検出用ＡＮＤ回路、前記連続一致検出用ＡＮＤ回路、前記上位バイト記憶手段に対応する前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段、および前記下位バイト記憶手段に対応する前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とする。
【００４３】
また、本発明の請求項２７記載のデータ圧縮装置は、請求項５もしくは１８のいずれかに記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ供給するクロック信号と前記レジスタへ格納する前記所定の一致状況を表す信号との論理積を出力するクロック供給制御用ＡＮＤ回路を含み、前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用ＡＮＤ回路により前記所定の一致状況を表す信号の前記レジスタへの格納を有効にすることを特徴とする。
【００４４】
また、本発明の請求項２８記載のデータ圧縮装置は、請求項２７記載のデータ圧縮装置であって、前記一致状況検出手段は、前記所定の一致状況を表す信号を入力とする否定論理回路を含み、前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とする。
【００４５】
また、本発明の請求項２９記載のデータ圧縮装置は、請求項１１乃至１３もしくは２４乃至２６のいずれかに記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ供給するクロック信号と前記レジスタへ格納する信号との論理積を出力するクロック供給制御用ＡＮＤ回路を含み、前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用ＡＮＤ回路により前記レジスタへの信号の格納を有効にすることを特徴とする。
【００４６】
また、本発明の請求項３０記載のデータ圧縮装置は、請求項２９記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ格納する信号を入力とする否定論理回路を含み、前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とする。
【発明の効果】
【００４７】
本発明のデータ圧縮装置によれば、一定長のデータを一定数ずつ同時に比較処理できるので、クロック周波数を上げることなくデータ圧縮処理を高速化できる。したがって、従来に比べ消費電力を抑えつつ高速なデータ圧縮が可能となる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の実施の形態におけるデータ圧縮装置ついて図面を交えて説明する。本実施の形態におけるデータ圧縮装置は、被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータ（例えば１バイトのデータ）に分けて一定数ずつ（例えばＮバイトずつ）同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を圧縮コードに置き換えることで被圧縮データを圧縮するものである。
【００４９】
（実施の形態１）
まず、本実施の形態１におけるデータ圧縮装置について、図１〜７を用いて説明する。
図１は本実施の形態１におけるデータ圧縮装置の構成例を示すブロック図である。
【００５０】
図１において、入力データレジスタ（格納手段）１０は、外部のブロック（例えばＳＤＲＡＭ）に蓄積されている被圧縮データを順次Ｎバイトずつ受け取り格納する。そして、入力データレジスタ１０は次のクロック（サイクル）で１バイト単位に分けたＮバイトデータをＮバイト処理用ＣＡＭセル列１１へ供給する。
【００５１】
Ｎバイト処理用ＣＡＭセル列１１は、入力データレジスタ１０から供給されたＮバイトデータを基に、被圧縮データ内で繰り返されるデータ列の検索を行う。
従来ＣＡＭセルと言えば、入力データレジスタ（ＩＤＢＲ：Ｉｎｐｕｔ  Ｄａｔａ  Ｂｕｆｆｅｒ  Ｒｅｓｉｓｔｅｒ）から供給された一定長のデータ、例えば１バイト長のデータを新たな検索対象として登録するためのＨｉｓｔｏｒｙレジスタと、そのＨｉｓｔｏｒｙレジスタに登録された１バイト長のデータと入力データレジスタから供給される１バイト長のデータとの比較を行うためのコンパレータとが設けられ、一致データを検出した信号を出力するものを言うが、ここではＨｉｓｔｏｒｙレジスタ（記憶手段）及びコンパレータ（比較手段）に加えて論理演算回路（一致状況検出手段）が追加されたものをＣＡＭセルと定義している。そのため従来であればＣＡＭセルの出力としてコンパレータの出力（一致データを検出した信号）が出てくるはずのところに、Ｎバイト処理用ＣＡＭセル列１１ではコンパレータの出力信号と論理演算回路の出力信号（所定の一致状況を表す信号）が出力される。
【００５２】
具体的には、Ｎバイト処理用ＣＡＭセル列１１は、入力データレジスタ１０から供給されるＮバイトデータを被圧縮データの入力順に１バイト単位で同時に履歴するアドレスの付与された記憶手段列と、記憶手段列に既に履歴されている各データと入力データレジスタ１０から供給されるＮバイトデータとを１バイト単位で同時に比較する比較手段列に加えて、比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段列を具備する。
【００５３】
またＮバイト処理用ＣＡＭセル列と命名しているのは、従来のＣＡＭセル列であれば、比較処理単位が１バイトの場合には、被圧縮データを１バイトずつ処理するのに対し、Ｎバイト処理用ＣＡＭセル列では、Ｎバイトずつ処理するためである。
【００５４】
アドレス生成回路（アドレス生成手段）１２としては従来と同様にプライオリティエンコーダを用いる。アドレス生成回路１２はＮバイト処理用ＣＡＭセル列１１により検出された所定の一致状況に対応するＨｉｓｔｏｒｙレジスタ（記憶手段）のアドレス情報を生成する。
【００５５】
またＮバイト処理用ＣＡＭセル列１１の出力信号（比較手段列による比較結果と所定の一致状況を表す信号）は制御回路１４へ入力され、繰り返しの長さ（一致長）を検出するために使用される。繰り返しの長さを検出するために一致長カウンタ１３を用いるが、Ｎバイト処理用ＣＡＭセル列１１の出力信号を直接一致長カウンタ１３へ入力せず、制御回路１４を介して入力する。制御回路１４はＮバイト処理用ＣＡＭセル列１１の出力信号を論理演算して一致長カウンタ１３へ出力する。このように構成することで、一致長カウンタ１３において、Ｎバイト処理用ＣＡＭセル列１１により検出された所定の一致状況に対応してカウンタ値を変化させることができる。つまり、ここでは、制御回路１４と一致長カウンタ１３により一致長カウンタ手段が構成される。
【００５６】
コード生成回路（圧縮コード生成手段）１５は、制御回路１４からの指令に応じて、アドレス生成回路１２の出力信号（アドレス情報）と一致長カウンタ１３の出力信号（カウンタ値）を基に圧縮コードを生成する。
【００５７】
なお、外部のブロックからの被圧縮データの受信から圧縮コード生成までのデータの管理や、外部のブロックからの被圧縮データの受信からリテラルコード（圧縮しないデータ列）の生成までのデータの管理は、制御回路１４により行うものとする。つまり図示していないが、制御回路１４は、入力データレジスタ１０、Ｎバイト処理用ＣＡＭセル列１１、アドレス生成回路１２、一致長カウンタ１３、コード生成回路１５、および外部のブロックに接続され、各回路における処理タイミングを制御している。また、制御回路１４は、Ｎバイト処理用ＣＡＭセル列１１からの出力信号（比較手段列による比較結果と所定の一致状況を表す信号）を基に生成すべきコードの種類を判定して、コード生成回路１５に対して圧縮コードの生成もしくはリテラルコードの生成を指令する。
【００５８】
また、同時に複数のバイトを処理するので、圧縮コードを生成するかリテラルコードを生成するかを判定する部分の論理回路や一致長カウンタ１３及びアドレス生成回路１２の処理タイミングの調整等の工夫が必要である。
【００５９】
次に、Ｎバイト処理用ＣＡＭセル列１１の具体例として、２バイト処理用ＣＡＭセル列について説明する。
図２に２バイト処理用ＣＡＭセル列の構成例を示す。
【００６０】
２バイト処理用ＣＡＭセル列２０には、従来のＣＡＭセル列と同様に“０”から“Ｍ−１”のアドレスが付与される。また２バイト処理用ＣＡＭセル列２０は、２種類のＣＡＭセル（Ｕｐｐｅｒ用ＣＡＭセルとＬｏｗｅｒ用ＣＡＭセル）が交互に配列され、かつリング状に接続されて構成される。
【００６１】
従来のＣＡＭセル列と異なるのは、同時に２バイトのデータを処理する点である。つまり、１つのＣＡＭセルには１バイトのデータが登録（履歴）されている。各ＣＡＭセルは、入力データレジスタに格納された２バイトデータを１バイト単位で既に履歴されている１バイトデータと同時に比較し、比較結果を表す信号および所定の一致状況を表す信号を生成する。また２バイト処理用ＣＡＭセル列２０は、この現在の処理対象の２バイトデータを１バイトずつ新たな検索対象として登録する。
【００６２】
２バイト処理用ＣＡＭセル列２０への新たな検索対象の登録は、被圧縮データの入力順に１バイトずつアドレスの若いＣＡＭセルから順次登録していくやり方である。つまり各ＣＡＭセル内のＨｉｓｔｏｒｙレジスタに対するライト・イネーブル信号をアドレス順に２つずつ有効にしていく。なお、ＣＡＭセル（Ｍ−１）への登録が完了すると、再度アドレス“０”のＣＡＭセル（０）から順次登録していく。
【００６３】
図２に示す２バイト処理用ＣＡＭセル列２０では、入力データレジスタは２バイトのデータを格納するレジスタである。その２バイトのデータの上位バイトデータをＩＤＢＲ＿Ｕｐｐｅｒ、下位バイトデータをＩＤＢＲ＿Ｌｏｗｅｒとすると、入力データレジスタはそれぞれを各ＣＡＭセルへ一致検出のための比較データとして同時に供給する。また２バイト処理用ＣＡＭセル列２０は、比較処理完了後、そのＩＤＢＲ＿ＵｐｐｅｒをＵｐｐｅｒ用ＣＡＭセルのＨｉｓｔｏｒｙレジスタ（上位バイト記憶手段）に新たな検索対象として履歴し、かつＩＤＢＲ＿ＬｏｗｅｒをＬｏｗｅｒ用ＣＡＭセルのＨｉｓｔｏｒｙレジスタ（下位バイト記憶手段）に新たな検索対象として履歴する。
【００６４】
後述するように、例えばＣＡＭセル（Ｋ）には、アドレスが1つ若いＣＡＭセル（Ｋ−１）からのＣｏｍｐＵ（Ｋ−１）信号とＰＳ（Ｋ−１）信号、およびアドレスが２つ若いＣＡＭセル（Ｋ−２）からのＰＳ（Ｋ−２）信号が入力される。但し、“Ｋ”は
０  ≦  Ｋ  ≦  Ｍ−１      （Ｍ：正の整数）
である。
【００６５】
図２に示す２バイト処理用ＣＡＭセル列２０を図１に示すデータ圧縮装置のＮバイト処理用ＣＡＭセル列として組み込むことにより、従来のＣＡＭセルを用いたデータ圧縮処理の２倍の処理が一度に行える。
【００６６】
なお、さらなる高速処理のためにはＮの数を大きくすれば良い。一度に処理するバイト数がＮバイトの場合は、ＣＡＭセルの種類をＮ種類用意し、Ｎの自然数倍個のＣＡＭセルを規則正しく配列してリング状に接続すればよい。例えばＮ＝２の場合には、上記のように２種類のＣＡＭセル（Ｕｐｐｅｒ用ＣＡＭセルとＬｏｗｅｒ用ＣＡＭセル）を用意し、Ｕｐｐｅｒ用ＣＡＭセルとＬｏｗｅｒ用ＣＡＭセルを交互に規則正しく配列してリング状に接続する。Ｎバイトの場合もＮ＝２の場合と同様に、Ｎ種類のＣＡＭセルを規則正しく配列してリング状に接続すれば良い。
【００６７】
次に、Ｎバイト処理用ＣＡＭセル列について説明する。
図３にＮバイト処理用ＣＡＭセル列の構成例を示す。
Ｎ種類のＣＡＭセルからなるＣＡＭセル列をＮバイト処理用ＣＡＭモジュールとすると、図３に示すＮバイト処理用ＣＡＭセル列３０は、Ｉ個のＮバイト処理用ＣＡＭモジュールからなる。各Ｎバイト処理用ＣＡＭモジュールはＮ種類の異なるＣＡＭセル、つまり（１／Ｎ）バイト目用ＣＡＭセル、（２／Ｎ）バイト目用ＣＡＭセル、・・・、（Ｎ／Ｎ）バイト目用ＣＡＭセルからなる。そして各ＣＡＭセルが隣接するＣＡＭセルから幾つかの出力信号を供給してもらうことにより、Ｎバイト処理用ＣＡＭセル列３０はリング状に接続される。このように構成することで、被圧縮データ内で繰り返されるデータ列の検出を行うことができる。
【００６８】
具体的には、各Ｈｉｓｔｏｒｙレジスタ（記憶手段）毎に設けられた一致状況検出手段が、自己の生成した所定の一致状況を表す信号を格納するＰＳレジスタを含み、自己に対応するＮ個の比較手段の比較結果と、隣接する所定数のＨｉｓｔｏｒｙレジスタに対応するＮ個の比較手段による比較結果と、隣接する所定数のＨｉｓｔｏｒｙレジスタに対応して設けられている一致状況検出手段のＰＳレジスタから出力される所定の一致状況を表す信号とを基に、所定の一致状況を表す信号を生成する。
【００６９】
図３に示すＮバイト処理用ＣＡＭセル列３０では、入力データレジスタはＮバイトのデータを格納するレジスタである。入力データレジスタはそのＮバイトデータを１バイトデータに分けてＮバイトずつ各ＣＡＭセルへ一致検出のための比較データとして同時に供給する。またＮバイト処理用ＣＡＭセル列３０は、この現在の処理対象のＮバイトデータを被圧縮データの入力順に１バイトずつ新たな検索対象としてＣＡＭセルに履歴する。
【００７０】
Ｎバイト処理用ＣＡＭセル列３０への新たな検索対象の登録は、２バイト処理用ＣＡＭセル列と同様に、被圧縮データの入力順に１バイトずつアドレスの若いＣＡＭセルから順次登録していくやり方である。つまり各ＣＡＭセル内のＨｉｓｔｏｒｙレジスタに対するライト・イネーブル信号をアドレス順にＮ個ずつ有効にしていく。
【００７１】
上記処理は、動作クロックに同期して１クロック毎に実行される。Ｎバイト処理用ＣＡＭセル列へは、入力データレジスタに格納されたＮバイトの被圧縮データが１バイトずつ分けられて同時に供給される。したがって、１クロック毎に、比較処理の完了した被圧縮データが入力順にＮバイトずつアドレスの若いＣＡＭセルから１バイト単位で順次履歴されていく。このように動作することで、スライド辞書が作成できる。また、各ＣＡＭセルは、１クロック毎に、自己のＨｉｓｔｏｒｙレジスタ（記憶手段）に既に履歴されている１バイトデータと入力データレジスタから供給されるＮバイトの被圧縮データを１バイト単位で同時に比較する。つまり、各ＣＡＭセルにはＮ個のコンパレータが設けられている。したがって、Ｎバイト処理用ＣＡＭセル列は、被圧縮データ内で繰り返されるデータ列を検索するための比較処理を毎クロックＮバイトずつ行うことができる。Ｎバイト処理用ＣＡＭセル列３０は、全部で（Ｉ×Ｎ）個のＣＡＭセルで構成される。
【００７２】
次に２バイト処理用ＣＡＭセル列の隣接する２つのＣＡＭセル（基本セル）の接続状況及び内部構成を詳しく述べる。
２バイト処理用ＣＡＭセル列は図２に示すようにＵｐｐｅｒ用ＣＡＭセルとＬｏｗｅｒ用ＣＡＭセルが交互に並んだ構成となっている。その内の一組を抜き出したのが図４である。
【００７３】
図４の上側に示すＵｐｐｅｒ用ＣＡＭセル（Ｋ）４０と下側に示すＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０を接続したものを２バイト処理用ＣＡＭセル列の基本セルとすると、２バイト処理用ＣＡＭセル列はＭ／２個の基本セルを並べた構成となる（図２参照。）。
【００７４】
Ｕｐｐｅｒ用ＣＡＭセル（Ｋ）４０においてＨｉｓｔｏｒｙレジスタ（上位バイト記憶手段）４１は、比較処理が完了したＩＤＢＲ＿Ｕｐｐｅｒを履歴する。
上位バイト比較用コンパレータ（上位バイト用比較手段）４２は、Ｈｉｓｔｏｒｙレジスタ４１に履歴されている登録データ（Ｋ）とＩＤＢＲ＿Ｕｐｐｅｒとの比較を行う。
【００７５】
下位バイト比較用コンパレータ（下位バイト用比較手段）４３は、Ｈｉｓｔｏｒｙレジスタ４１に履歴されている登録データ（Ｋ）とＩＤＢＲ＿Ｌｏｗｅｒとの比較を行う。
一致状況検出回路４４は、上位バイト比較用コンパレータ４２の比較結果を表すＣｏｍｐＵ（Ｋ）信号と下位バイト比較用コンパレータ４３の比較結果を表すＣｏｍｐＬ（Ｋ）信号と、隣接する図示しないアドレス（Ｋ−１）のＬｏｗｅｒ用ＣＡＭセル（Ｋ−１）の上位バイト比較用コンパレータからのＣｏｍｐＵ（Ｋ−１）信号とＰＳレジスタからのＰＳ（Ｋ−１）信号、および図示しないアドレス（Ｋ−２）のＵｐｐｅｒ用ＣＡＭセル（Ｋ−２）のＰＳレジスタからのＰＳ（Ｋ−２）信号を入力とし、所定の一致状況を表す信号を生成する。また、ＰＳレジスタ４５は、一致状況検出回路４４の出力信号（所定の一致状況を表す信号）を格納する。なお、一致状況は、現在の処理対象のデータと登録データ（Ｋ）とが一致しているか否かに留まらず、次の処理対象のデータが次の登録データ（Ｋ＋１）と連続一致する可能性があるか否かをも表している。
【００７６】
同様に、Ｌｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０においてＨｉｓｔｏｒｙレジスタ（下位バイト記憶手段）５１は、比較処理が完了したＩＤＢＲ＿Ｌｏｗｅｒを格納する。
上位バイト比較用コンパレータ（上位バイト用比較手段）５２は、Ｈｉｓｔｏｒｙレジスタ５１に履歴されている登録データ（Ｋ＋１）とＩＤＢＲ＿Ｕｐｐｅｒとの比較を行う。
【００７７】
下位バイト比較用コンパレータ（下位バイト用比較手段）５３は、Ｈｉｓｔｏｒｙレジスタ５１に履歴されている登録データ（Ｋ＋１）とＩＤＢＲ＿Ｌｏｗｅｒとの比較を行う。
【００７８】
一致状況検出回路５４は、上位バイト比較用コンパレータ５２からのＣｏｍｐＵ（Ｋ＋１）信号と下位バイト比較用コンパレータ５３からのＣｏｍｐＬ（Ｋ＋１）信号と、隣接するアドレス（Ｋ）のＵｐｐｅｒ用ＣＡＭセル（Ｋ）の上位バイト比較用コンパレータからのＣｏｍｐＵ（Ｋ）信号とＰＳレジスタからのＰＳ（Ｋ）信号、および図示しないアドレス（Ｋ−１）のＬｏｗｅｒ用ＣＡＭセル（Ｋ−１）のＰＳレジスタからのＰＳ（Ｋ−１）信号を入力とし、所定の一致状況を表す信号を生成する。また、ＰＳレジスタ５５は、一致状況検出回路５４の出力信号（所定の一致状況を表す信号）を格納する。なお、一致状況は、現在の処理対象のデータと登録データ（Ｋ＋１）とが一致しているか否かに留まらず、次の処理対象のデータが次の登録データ（Ｋ＋２）と連続一致する可能性があるか否かをも表している。
【００７９】
図４に示すように、ここでは、一致状況検出手段が一致状況検出回路とＰＳレジスタにより構成される。
また、図４の「ＣｏｍｐＬ＿ＯＲへ」とは、各ＣＡＭセルの下位バイト比較用コンパレータからのＣｏｍｐＬ信号の論理和を演算する制御回路の論理回路へ各ＣｏｍｐＬ信号を供給することを示す。同様に「Ｐｓ２＿ＯＲへ」、「Ｃｏｍｐ２＿ＯＲへ」、「Ｈｉｔ＿ｃｍｐ＿ＯＲへ」とは、後述する各ＣＡＭセからのＰｓ２信号、Ｃｏｍｐ２信号、Ｈｉｔ＿ｃｍｐ信号のそれぞれの論理和を演算する制御回路の各論理回路へ各Ｐｓ２信号、Ｃｏｍｐ２信号、Ｈｉｔ＿ｃｍｐ信号を供給することを示す。２バイト処理用ＣＡＭセル列における所定の一致状況を表す信号とはＰｓ２信号、Ｃｏｍｐ２信号、Ｈｉｔ＿ｃｍｐ信号、およびＰＳレジスタからのＰＳ信号を指す。また一致長をカウントするために用いられる比較結果として、ＣｏｍｐＬ信号が用いられる。また、制御回路は、各ＣＡＭセルからのＰｓ２信号、Ｃｏｍｐ２信号、Ｈｉｔ＿ｃｍｐ信号、およびＣｏｍｐＬ信号の論理和結果を基に生成すべきコードの種類を判定する。
【００８０】
次に、図４に示したＵｐｐｅｒ用ＣＡＭセル（Ｋ）４０及びＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０について、一致状況検出回路の内部構成を含めて詳しく述べる。
図５にＵｐｐｅｒ用ＣＡＭセル（Ｋ）４０及びＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０の構成図を示す。
【００８１】
Ｕｐｐｅｒ用ＣＡＭセル（Ｋ）４０の一致状況検出回路４４において連続一致継続検出用ＡＮＤ回路４６は、下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号と、隣接する図示しないアドレス（Ｋ−１）のＬｏｗｅｒ用ＣＡＭセル（Ｋ−１）の上位バイト比較用コンパレータからのＣｏｍｐＵ（Ｋ−１）信号と、隣接する図示しないアドレス（Ｋ−２）のＵｐｐｅｒ用ＣＡＭセル（Ｋ−２）のＰＳレジスタからのＰＳ（Ｋ−２）信号を入力とし、この３つの信号の論理積を出力する。この連続一致継続検出用ＡＮＤ回路４６の出力信号がＰｓ２（Ｋ）信号となる。したがって、Ｐｓ２（Ｋ）信号が値“１”（論理“Ｈ”）のときには、現在の処理対象であるＩＤＢＲ＿Ｌｏｗｅｒがアドレス（Ｋ）のＣＡＭセルに登録されているデータと一致し、かつ現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒがアドレス（Ｋ−１）のＣＡＭセルに登録されているデータと一致し、さらに少なくとも１クロック前の処理対象のＩＤＢＲ＿Ｌｏｗｅｒがアドレス（Ｋ−２）のＣＡＭセルに登録されているデータと一致していることがわかる。つまり、少なくとも３バイト長のデータ列が２バイト処理用ＣＡＭセル列に登録されているデータ列と一致していると判定できる。また、この場合には、現在の処理対象の被圧縮データに続く被圧縮データが次のアドレス以降の登録データと連続して一致していく可能性があると判定できるので、制御回路はその後の一致状況を基に、このデータ列を含む少なくとも３バイト長のデータ列が圧縮コードに置き換わるように当該データ圧縮装置を制御する。また、この場合、制御回路における論理演算結果は、Ｐｓ２＿ＯＲ＝１となる。制御回路から値“１”（論理“Ｈ”）のＰｓ２＿ＯＲ信号が一致長カウンタへ送られると、一致長カウンタはカウンタ値を２増加させる。
【００８２】
新規連続一致検出用ＡＮＤ回路４７は、下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号と、隣接する図示しないアドレス（Ｋ−１）のＬｏｗｅｒ用ＣＡＭセル（Ｋ−１）の上位バイト比較用コンパレータからのＣｏｍｐＵ（Ｋ−１）信号を入力とし、この２つの信号の論理積を出力する。この新規連続一致検出用ＡＮＤ回路４７の出力信号がＣｏｍｐ２（Ｋ）信号となる。したがって、Ｃｏｍｐ２（Ｋ）信号が値“１”（論理“Ｈ”）のときには、現在の処理対象のＩＤＢＲ＿Ｌｏｗｅｒがアドレス（Ｋ）のＣＡＭセルに登録されているデータと一致し、かつ現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒがアドレス（Ｋ−１）のＣＡＭセルに登録されているデータと一致していることがわかる。この場合、制御回路における論理演算結果は、Ｃｏｍｐ２＿ＯＲ＝１となる。また、Ｐｓ２＿ＯＲ信号が値“０”（論理“Ｌ”）であってＣｏｍｐ２＿ＯＲ信号が値“１”（論理“Ｈ”）の場合には、新規に２バイトのデータ一致が検出されたことになる。この場合、現在の処理対象の被圧縮データに続く被圧縮データが次のアドレス以降の登録データと連続して一致していく可能性があると判定できるので、制御回路はその後の一致状況を基に、このデータ列を含む少なくとも２バイト長のデータ列が圧縮コードに置き換わるように当該データ圧縮装置を制御する。また、制御回路から一致長カウンタへ値“０”（論理“Ｌ”）のＰｓ２＿ＯＲ信号と値“１”（論理“Ｈ”）のＣｏｍｐ２＿ＯＲ信号が送られると、一致長カウンタはそれまでのカウンタ値を無効にしてカウンタ値を“２”とする。
【００８３】
連続一致検出用ＡＮＤ回路４８は、上位バイト比較用コンパレータ４２からのＣｏｍｐＵ（Ｋ）信号と、隣接する図示しないアドレス（Ｋ−１）のＬｏｗｅｒ用ＣＡＭセル（Ｋ−１）のＰＳレジスタのＰＳ（Ｋ−１）信号を入力とし、この２つの信号の論理積を出力する。この連続一致検出用ＡＮＤ回路４８の出力信号がＨｉｔ＿ｃｍｐ（Ｋ）信号となる。したがって、このＨｉｔ＿ｃｍｐ（Ｋ）信号が値 “１”（論理“Ｈ”）のときには、現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒがアドレス（Ｋ）のＣＡＭセルに登録されているデータと一致し、さらに少なくとも１クロック前の処理対象のＩＤＢＲ＿Ｌｏｗｅｒがアドレス（Ｋ−１）のＣＡＭセルに登録されているデータと一致していることがわかる。つまり、少なくとも２バイト長のデータ列が２バイト処理用ＣＡＭセル列に登録されているデータ列と一致し、かつその一致は現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒまでであると判定できる。したがって、制御回路は、“Ｈｉｔ＿ｃｍｐ＿ＯＲ”のみが値“１”（論理“Ｈ”）の場合、現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒまでの少なくとも２バイト長のデータ列が圧縮コードに置き換わり、現在の処理対象のＩＤＢＲ＿Ｌｏｗｅｒがリテラルコードに置き換わるように当該データ圧縮装置を制御する。また、制御回路から値“１”（論理“Ｈ”）のＨｉｔ＿ｃｍｐ＿ＯＲ信号が一致長カウンタへ送られると、一致長カウンタはカウンタ値を１増加させる。
【００８４】
なお、一致長カウンタは、制御回路からＣｏｍｐＬ＿ＯＲ信号も受け、ＣｏｍｐＬ＿ＯＲ＝１（論理“Ｈ”）の場合にカウンタ値を“１”増加させる。また、一致長カウンタは、制御回路からの全ての信号が値“０”（論理“Ｌ”）であるとき、カウンタ値をクリアする。
【００８５】
また、ＣｏｍｐＬ＿ＯＲ信号のみが値“１”（論理“Ｈ”）の場合、ＩＤＢＲ＿Ｌｏｗｅｒ以降のデータ列が新規に登録データ列と一致する可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【００８６】
セレクタ４９は、下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号と、連続一致継続検出用ＡＮＤ回路４６からのＰｓ２（Ｋ）信号と、新規連続一致検出用ＡＮＤ回路４７からのＣｏｍｐ２（Ｋ）信号を入力とし、そのいずれかをＰｓ２＿ＯＲ信号、Ｃｏｍｐ２＿ＯＲ信号、およびＨｉｔ＿ｃｍｐ＿ＯＲ信号の結果に応じて選択し、ＰＳレジスタに格納する。
【００８７】
すなわち、Ｐｓ２＿ＯＲ＝１ならばその他のＯＲ信号にかかわらず連続一致継続検出用ＡＮＤ回路４６を選択する。Ｐｓ２＿ＯＲ＝０、Ｈｉｔ＿ｃｍｐ＿ＯＲ＝０、Ｃｏｍｐ２＿ＯＲ＝１の場合とＰｓ２＿ＯＲ＝０、Ｈｉｔ＿ｃｍｐ＿ＯＲ＝１、Ｃｏｍｐ２＿ＯＲ＝１の場合には新規連続一致検出用ＡＮＤ回路４７を選択する。Ｐｓ２＿ＯＲ＝０、Ｈｉｔ＿ｃｍｐ＿ＯＲ＝０、Ｃｏｍｐ２＿ＯＲ＝０の場合とＰｓ２＿ＯＲ＝０、Ｈｉｔ＿ｃｍｐ＿ＯＲ＝１、Ｃｏｍｐ２＿ＯＲ＝０の場合には下位バイト比較用コンパレータ４３を選択する。
【００８８】
Ｌｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０の連続一致継続検出用ＡＮＤ回路５６、新規連続一致検出用ＡＮＤ回路５７、連続一致検出用ＡＮＤ回路５８、およびセレクタ５９の動作は、上記した連続一致継続検出用ＡＮＤ回路４６、新規連続一致検出用ＡＮＤ回路４７、連続一致検出用ＡＮＤ回路４８、およびセレクタ４９と同様である。
【００８９】
なお、１バイト長のデータ単位でＮ個のデータを同時に処理するＮバイト処理用ＣＡＭセル列の場合、２バイト処理用ＣＡＭセル列においてＵｐｐｅｒ用ＣＡＭセルとＬｏｗｅｒ用ＣＡＭセルを設けたのと同様に、Ｎ種類のＣＡＭセル、すなわち（１／Ｎ）バイト目用ＣＡＭセル、（２／Ｎ）バイト目用ＣＡＭセル、・・・、（Ｎ／Ｎ）バイト目用ＣＡＭセルを設ける。
【００９０】
また、各ＣＡＭセル内には、２バイト処理用ＣＡＭセル列において上位バイト比較用コンパレータと下位バイト比較用コンパレータを設けたのと同様に、Ｎ種類のコンパレータ、すなわち（１／Ｎ）バイト目比較用コンパレータ、（２／Ｎ）バイト目比較用コンパレータ、・・・、（Ｎ／Ｎ）バイト目比較用コンパレータを設ける。つまり入力データレジスタに格納するバイト数（一定数）と同じ数の比較手段を設ける。
【００９１】
また、２バイト処理用ＣＡＭセル列において下位バイト比較用コンパレータに対して連続一致継続検出用ＡＮＤ回路と新規連続一致検出用ＡＮＤ回路を設けたのと同様に、（Ｎ／Ｎ）バイト目比較用コンパレータに対して、１個の連続一致継続検出用ＡＮＤ回路と（Ｎ−１）個の新規連続一致検出用ＡＮＤ回路を設ける。例えば、ＣＡＭセル（Ｋ）を用いて説明すると、新規連続一致検出用ＡＮＤ回路として、
ＣＡＭセル（Ｋ）の（Ｎ／Ｎ）バイト目比較用コンパレータ（Ｋ）の出力とＣＡＭセル（Ｋ−１）の（Ｎ−１／Ｎ）バイト目比較用コンパレータの出力を入力とするＡＮＤ回路と、
ＣＡＭセル（Ｋ）の（Ｎ／Ｎ）バイト目比較用コンパレータ（Ｋ）の出力とＣＡＭセル（Ｋ−１）の（Ｎ−１／Ｎ）バイト目比較用コンパレータの出力とＣＡＭセル（Ｋ−２）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの出力を入力とするＡＮＤ回路と、
・・・、
ＣＡＭセル（Ｋ）の（Ｎ／Ｎ）バイト目比較用コンパレータ（Ｋ）の出力とＣＡＭセル（Ｋ−１）の（Ｎ−１／Ｎ）バイト目比較用コンパレータの出力と・・・ＣＡＭセル（Ｋ−Ｎ＋１）の（１／Ｎ）バイト目比較用コンパレータの出力を入力とするＡＮＤ回路を設け、
連続一致継続検出用ＡＮＤ回路として、
ＣＡＭセル（Ｋ）の（Ｎ／Ｎ）バイト目比較用コンパレータ（Ｋ）の出力とＣＡＭセル（Ｋ−１）の（Ｎ−１／Ｎ）バイト目比較用コンパレータの出力と・・・ＣＡＭセル（Ｋ−Ｎ＋１）の（１／Ｎ）バイト目比較用コンパレータの出力とＣＡＭセル（Ｋ−Ｎ）のＰＳレジスタの出力を入力とするＡＮＤ回路を設ける。
【００９２】
このようにＮ種類のＡＮＤ回路を設けることにより、少なくとも前回の処理対象の被圧縮データの最下位データと現在の処理対象の被圧縮データからなるデータ列と登録データ列との一致が検出され、且つ次の処理対象の被圧縮データの最上位データが引き続いて一致する可能性のあることが検出されたアドレス位置、ないし、現在の処理対象の被圧縮データの最下位データと登録データとの一致が検出され、且つ次の処理対象の被圧縮データの最上位データが引き続いて一致する可能性のあることが検出されたアドレス位置を検出できる。つまり（Ｎ＋１）バイト長のデータの連続一致、ないし、最下位データの一致が検出され、且つこの一致に引き続いて連続一致の可能性のあることが検出されたアドレス位置を検出できる。
【００９３】
また、２バイト処理用ＣＡＭセル列において上位バイト比較用コンパレータに対して連続一致検出用ＡＮＤ回路を設けたのと同様に、（１／Ｎ）バイト目比較用コンパレータないし（Ｎ−１／Ｎ）バイト目用比較用コンパレータに対して、以下のように連続一致検出用ＡＮＤ回路を設ける。例えば、ＣＡＭセル（Ｋ）を用いて説明すると、
（１／Ｎ）バイト目比較用コンパレータに対しては、ＣＡＭセル（Ｋ−１）のＰＳレジスタの出力との論理積をとるＡＮＤ回路を設け、
（２／Ｎ）バイト目比較用コンパレータに対しては、ＣＡＭセル（Ｋ−１）の（１／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（１／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）のＰＳレジスタの出力との論理積をとるＡＮＤ回路とを設け、
（３／Ｎ）バイト目比較用コンパレータに対しては、ＣＡＭセル（Ｋ−１）の（２／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（１／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（１／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−３）のＰＳレジスタの出力との論理積をとるＡＮＤ回路を設け、
・・・
（Ｎ−１／Ｎ）バイト目比較用コンパレータに対しては、ＣＡＭセル（Ｋ−１）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（Ｎ−３／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（Ｎ−３／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−３）の（Ｎ−４／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、・・・ＣＡＭセル（Ｋ−１）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（Ｎ−３／Ｎ）バイト目比較用コンパレータの比較結果と・・・ＣＡＭセル（Ｋ−Ｎ＋２）の（１／Ｎ）バイト目比較用コンパレータの比較結果との論理積をとるＡＮＤ回路と、ＣＡＭセル（Ｋ−１）の（Ｎ−２／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−２）の（Ｎ−３／Ｎ）バイト目比較用コンパレータの比較結果と・・・ＣＡＭセル（Ｋ−Ｎ＋２）の（１／Ｎ）バイト目比較用コンパレータの比較結果とＣＡＭセル（Ｋ−Ｎ＋１）のＰＳレジスタの出力との論理積をとるＡＮＤ回路を設ける。
【００９４】
つまり、下記の式で求められる数の連続一致検出用ＡＮＤ回路を設ける。
【００９５】
【数１】
2005260285.tif 000003
このように、（１／Ｎ）バイト目比較用コンパレータないし（Ｎ−１／Ｎ）バイト目比較用コンパレータに対してＡＮＤ回路を設けることにより、２バイト処理用ＣＡＭセル列においてＩＤＢＲ＿Ｕｐｐｅｒまでの連続一致が検出されたアドレス位置を検出したのと同様に、被圧縮データの（１／Ｎ）バイト目のデータまでの連続一致ないし（Ｎ−１／Ｎ）バイト目のデータまでの連続一致が検出されたアドレス位置を検出することができる。
【００９６】
以上のように求めた各種論理積と（Ｎ／Ｎ）バイト目比較用コンパレータの比較結果に対して、２バイト処理用ＣＡＭセル列を用いた場合と同様に、制御回路内にてＯＲ演算を行う。制御回路はこのＯＲ演算結果を基にＰＳレジスタと接続するＡＮＤ回路を切り替える。
【００９７】
次に、Ｎ＝２の場合のアドレス生成回路について説明する。図６はＮ＝２の場合のデータ圧縮装置の構成例を示すブロック図である。図６に示すように、Ｎ＝２の場合、アドレス生成回路は連続一致検出用アドレス生成回路（連続一致検出用アドレス生成手段）６０と、コード生成用アドレス生成回路（コード生成用アドレス生成手段）６１で構成される。
【００９８】
連続一致検出用アドレス生成回路６０は、２バイト処理用ＣＡＭセル列１１を構成する各ＣＡＭセルからのＰＳ（０）〜ＰＳ（Ｍ−１）信号を入力とし、ＰＳ信号が値“１”（論理“Ｈ”）となったＣＡＭセルのアドレス情報を生成する。このアドレス情報は、現在の処理対象のＩＤＢＲ＿Ｌｏｗｅｒに引き続いて次のＩＤＢＲ＿Ｕｐｐｅｒが次のアドレスの登録データに一致する可能性があることが検出されたアドレス位置を表している。また、コード生成用アドレス生成回路６１は、各ＣＡＭセルからのＨｉｔ＿ｃｍｐ（０）〜Ｈｉｔ＿ｃｍｐ（Ｍ−１）信号を入力とし、Ｈｉｔ＿ｃｍｐ信号が値“１”（論理“Ｈ”）となったＣＡＭセルのアドレス情報を生成する。このアドレス情報は、現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒと登録データとの一致が検出されたアドレス位置を表している。
【００９９】
論理回路６２は制御回路１４からのＨｉｔ＿ｃｍｐ＿ＯＲ信号とＰｓ２＿ＯＲ信号の反転信号を入力とし、Ｈｉｔ＿ｃｍｐ＿ＯＲ信号が値“１”（論理“Ｈ”）であってＰｓ２＿ＯＲ信号が値“０”（論理“Ｌ”）の場合に、セレクタ６３がコードレス生成用アドレス生成回路６１の出力を選択するようにする。この構成により、連続一致は途切れるが現在の処理対象のＩＤＢＲ＿Ｕｐｐｅｒまで続いた連続一致を反映したコード生成を実現できる。
【０１００】
コード生成回路１５は連続一致検出用アドレス生成回路６０とコード生成用アドレス生成回路６１からのアドレス情報と一致長カウンタ１３のカウンタ値を基に、制御回路１４からの指令に応じた処理タイミングで圧縮コードを生成する。
【０１０１】
なお、Ｎバイト処理用ＣＡＭセル列を用いた場合、上記Ｈｉｔ＿ｃｍｐ信号に相当する信号が各ＣＡＭセルから数式（１）で求められる種類だけ出力されるので、上記コード生成用アドレス生成回路に相当するアドレス生成回路を数式（１）で求められる種類だけ用意し、各種ＯＲ演算の結果に応じてコード生成回路に接続されるアドレス生成回路が切り替わるように構成する。
【０１０２】
次に、上記２バイト処理用ＣＡＭセル列を用いてデータ圧縮を行った例を図７に示す。
図７において最上段は、外部のブロックに蓄積されている被圧縮データを示す。
図７の２段目はデータ圧縮装置の動作クロックを示す。ここでは１２クロック目までの処理を示している。
【０１０３】
図７の３段目のＩＤＢＲは現在の処理対象の２バイトデータを示す。つまり３段目のＩＤＢＲは現在入力データレジスタに格納されている２バイトデータに相当し、毎クロック２バイトずつ被圧縮データが入力データレジスタに取り込まれている様子を表している。
【０１０４】
図７の４段目のＢ＿ＩＤＢＲＡおよびＨｉｓｔｏｒｙレジスタのうちのＢ＿ＩＤＢＲＡは、リテラルコードを生成するためにレジスタＡに格納された１クロック遅延データを示す。またＨｉｓｔｏｒｙレジスタはスライド辞書を示している。
【０１０５】
図７の５段目と６段目は、リテラルコードを生成するためにレジスタＢ、Ｃに格納された２、３クロック遅延データを示している。つまり、４〜６段目は、リテラルコードの生成で使用される可能性のあるデータのシフトの様子を示している。
【０１０６】
図７の７段目は、データ圧縮装置の出力であるコード生成結果を示している。７段目において“０−”が付加されたものがリテラルコードであり、“１−”が付加されたものが圧縮コードである。例えばＣＬＫ＝７では、“１−ＡＢ”及び“０−Ｄ”のコード生成が行われる。つまり、このタイミングで“ＡＢ”の圧縮コード及び“Ｄ”のリテラルコードが同時に生成され、ＡＢの圧縮コードに続いてＤのリテラルコードが出力される。
【０１０７】
リテラルコードを生成すべきであるか、圧縮コードを生成すべきであるかは、図７の７段目のコード生成結果の下に示すＰｓ２＿ＯＲ、Ｈｉｔ＿ｃｍｐ＿ＯＲ、Ｃｏｍｐ２＿ＯＲ、およびＣｏｍｐＬ＿ＯＲの４つの指標により判断する。
【０１０８】
また、上記４つの指標以降のＰＳ（０）〜ＰＳ（１３）はアドレス生成回路の出力を示す。但し、“１”（論理“Ｈ”）が連続一致検出用アドレス生成回路からの出力（つまりＰＳレジスタからの出力）を表し、“（１）”（論理“Ｈ”）がコード生成用アドレス生成回路からの出力を表している。
【０１０９】
図７のＰＳ（１３）の下の“ＭａｔｃｈＬｅｎ”は、コード生成回路が一致長カウンタからのカウンタ値を基に判定した「連続一致が続いたバイト長」を示し、その下の“ＭａｔｃｈＰｔｒ”は、コード生成回路がアドレス生成回路からのアドレス情報を基に判定した「データ一致が開始した場所（アドレス値）」を示す。“ＭａｔｃｈＬｅｎ”はカウンタ値そのものである。圧縮コードは、この“ＭａｔｃｈＰｔｒ”と、“ＭａｔｃｈＬｅｎ”を成分として生成される。なお、一致が２バイト未満の場合はリテラルコードが生成される。
【０１１０】
まずＣＬＫ（クロック）＝１では、２バイト処理用ＣＡＭセル列（記憶手段列）に履歴されているデータがないため、比較結果は全て“０”（論理“Ｌ”）となる。この比較結果を受けた制御回路の出力とアドレス生成回路の出力がＣＬＫ＝２に表われる。この結果、ＣＬＫ＝５においてリテラルコード“０−ＡＢ”が生成される。
【０１１１】
ＣＬＫ＝２では、現在の処理対象のＩＤＢＲ＿ＬｏｗｅｒとＣＡＭセル（０）の登録データが一致する。その結果ＣＬＫ＝３において、制御回路の論理演算結果がＣｏｍｐＬ＿ＯＲ＝１（論理“Ｈ”）となる。したがって、アドレス生成回路（連続一致検出用アドレス生成回路）の出力がＰＳ（０）＝１となる。よって、ＣＬＫ＝３においては、ＭａｔｃｈＬｅｎ＝１、ＭａｔｃｈＰｔｒ＝０となる。
【０１１２】
この場合、“ＣｏｍｐＬ＿ＯＲ”のみが“１”（論理“Ｈ”）となるので、このＩＤＢＲ＿Ｌｏｗｅ以降のデータ列が新規にアドレス（０）以降の登録データ列と一致している可能性があり、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１１３】
図７に示す例では、ＣＬＫ＝３において現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＣＡＭセル（１）の登録データが一致するので、ＣＬＫ＝４において、制御回路の論理演算結果がＨｉｔ＿ｃｍｐ＿ＯＲ＝１となる。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝６においてリテラルコード“０−Ｃ”を生成する。
【０１１４】
また、アドレス生成回路（コード生成用アドレス生成回路）の出力がＰＳ（１）＝（１）となる。よって、ＣＬＫ＝４においては、ＭａｔｃｈＬｅｎ＝２、ＭａｔｃｈＰｔｒ＝０となる。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝７において圧縮コード“１−ＡＢ”とリテラルコード“０−Ｄ”を生成し、圧縮コード“１−ＡＢ”に続いてリテラルコード“０−Ｄ”が出力されるようにする。
【０１１５】
ＣＬＫ＝４では、現在の処理対象のＩＤＢＲ＿ＬｏｗｅｒとＣＡＭセル（０）およびＣＡＭセル（３）の登録データが一致する。その結果ＣＬＫ＝５において、制御回路の論理演算結果がＣｏｍｐＬ＿ＯＲ＝１なる。したがって、アドレス生成回路（連続一致検出用アドレス生成回路）の出力がＰＳ（０）＝１、ＰＳ（３）＝１となる。よって、ＣＬＫ＝５においては、“ＣｏｍｐＬ＿ＯＲ”のみが“１”となるので、ＭａｔｃｈＬｅｎ＝１となる。また“ＭａｔｃｈＰｔｒ”は、若いアドレスが優先されてＭａｔｃｈＰｔｒ＝０となる。
【０１１６】
この場合、“ＣｏｍｐＬ＿ＯＲ”のみが“１”（論理“Ｈ”）となるので、このＩＤＢＲ＿Ｌｏｗｅｒ以降のデータ列が新規にアドレス（０）、アドレス（３）以降の登録データ列と一致している可能性があり、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１１７】
図７に示す例では、ＣＬＫ＝５において現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＣＡＭセル（１）およびＣＡＭセル（４）の登録データ、および現在の処理対象のＩＤＢＲ＿ＬｏｗｅｒとＣＡＭセル（５）の登録データが一致するので、ＣＬＫ＝６において、制御回路の論理演算結果がＰｓ２＿ＯＲ＝１、Ｈｉｔ＿ｃｏｍ＿ＯＲ＝１、Ｃｏｍｐ２＿ＯＲ＝１、ＣｏｍｐＬ＿ＯＲ＝１となる。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝８においてリテラルコード“０−Ｅ”を生成する。
【０１１８】
また、コード生成用アドレス生成回路の出力がＰＳ（１）＝（１）、ＰＳ（４）＝（１）、連続一致検出用アドレス生成回路の出力がＰＳ（５）＝１となり、連続一致検出用アドレス生成回路が選択されてＰＳ（５）＝１のアドレス情報がコード生成回路へ入力される。よって、ＣＬＫ＝６においては、一致長カウンタのカウンタ値はＰｓ２＿ＯＲ＝１を受けて“３”となるので、ＭａｔｃｈＬｅｎ＝３となる。またコード生成回路は、前回のアドレス情報であるＰＳ（３）＝１、今回のアドレス情報であるＰＳ（５）＝１、およびＭａｔｃｈＬｅｎ＝３から判断して、データ一致の開始位置を“３（ＭａｔｃｈＰｔｒ＝３）”と判定する。
【０１１９】
この場合、このＩＤＢＲ＿Ｌｏｗｅｒ以降のデータがアドレス（５）以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１２０】
図７に示す例では、ＣＬＫ＝６において現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿ＬｏｗｅｒがＣＡＭセル（０）、（１）の登録データ、ＣＡＭセル（３）、（４）の登録データ、およびＣＡＭセル（７）、（８）の登録データと連続して一致する。その結果ＣＬＫ＝７において、制御回路の論理演算結果がＣｏｍｐ２＿ＯＲ＝１、ＣｏｍｐＬ＿ＯＲ＝１となる。したがって、アドレス生成回路（連続一致検出用アドレス生成回路）の出力がＰＳ（１）＝１、ＰＳ（４）＝１、ＰＳ（８）＝１となる。このように図７に示す例では、ＣＬＫ＝６において、現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＣＡＭセル（６）の登録データが一致しないことから制御回路とコード生成回路は協働して、ＣＬＫ＝９において圧縮コード“１−ＡＢＤ”を生成する。
【０１２１】
また、ＣＬＫ＝７においては、Ｃｏｍｐ２＿ＯＲが“１”（論理“Ｈ”）となるので、ＭａｔｃｈＬｅｎ＝２となる。また、ＰＳ（１）＝１、ＰＳ（４）＝１、ＰＳ（８）＝１となるが、アドレスの若い方が優先されるので、ＭａｔｃｈＰｔｒ＝０となる。
【０１２２】
この場合、このＩＤＢＲ＿Ｌｏｗｅｒ以降のデータがアドレス（１）、アドレス（４）、アドレス（８）以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１２３】
図７に示す例では、ＣＬＫ＝７において現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＣＡＭセル（２）の登録データが一致する。また、現在の処理対象のＩＤＢＲ＿ＬｏｗｅｒとＣＡＭセル（５）およびＣＡＭセル（９）の登録データも一致する。その結果ＣＬＫ＝８において、制御回路の論理演算結果がＨｉｔ＿ｃｍｐ＿ＯＲ＝１、ＣｏｍｐＬ＿ＯＲ＝１となる。したがって、コード生成用アドレス生成回路の出力がＰＳ（２）＝（１）、連続一致検出用アドレス生成回路の出力がＰＳ（５）＝１、ＰＳ（９）＝１となり、コード生成用アドレス生成回路が選択されてＰＳ（２）＝（１）のアドレス情報がコード生成回路へ入力される。よって、ＣＬＫ＝８においては、一致長カウンタのカウンタ値はＨｉｔ＿ｃｍｐ＿ＯＲ＝１を受けて“３”となるので、ＭａｔｃｈＬｅｎ＝３となる。またコード生成回路は、前回のアドレス情報であるＰＳ（１）＝１、今回のアドレス情報であるＰＳ（２）＝（１）、およびＭａｔｃｈＬｅｎ＝３から判断して、データ一致の開始位置を“０（ＭａｔｃｈＰｔｒ＝０）”と判定する。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝１１において圧縮コード“１−ＡＢＣ”を生成する。
【０１２４】
また、ＣＬＫ＝８においては、Ｈｉｔ＿ｃｍｐ＿ＯＲとＣｏｍｐＬ＿ＯＲが“１”となるので、“ＭａｔｃｈＬｅｎ”と“ＭａｔｃｈＰｔｒ”の判定処理完了後、一致長カウンタのカウンタ値が“３”から“１”へ移行し、ＰＳ（５）＝１、ＰＳ（９）＝１のアドレス情報がコード生成回路へ入力される。そして、この場合、このＩＤＢＲ＿Ｌｏｗｅｒ以降のデータがアドレス（５）、アドレス（９）以降の登録データと継続して一致している可能性があるで、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１２５】
図７に示す例では、ＣＬＫ＝８において現在の処理対象のＩＤＢＲ＿ＵｐｐｅｒとＣＡＭセル（６）の登録データが一致する。その結果ＣＬＫ＝９において、制御回路の論理演算結果がＨｉｔ＿ｃｍｐ＿ＯＲ＝１となる。したがって、アドレス生成回路（コード生成用アドレス生成回路）の出力がＰＳ（６）＝（１）となる。よって、ＣＬＫ＝９においては、一致長カウンタのカウンタ値はＨｉｔ＿ｃｍｐ＿ＯＲ＝１を受けて“２”となるので、ＭａｔｃｈＬｅｎ＝２となる。またコード生成回路は、前回のアドレス情報であるＰＳ（５）＝１、今回のアドレス情報であるＰＳ（６）＝（１）、およびＭａｔｃｈＬｅｎ＝２から判断して、データ一致の開始位置を“５（ＭａｔｃｈＰｔｒ＝５）”と判定する。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝１２において圧縮コード“１−ＤＥ”とリテラルコード“０−Ｊ”を生成し、圧縮コード“１−ＤＥ”に続いてリテラルコード“０−Ｊ”が出力されるようにする。
【０１２６】
（実施の形態２）
以下、本実施の形態２におけるデータ圧縮装置について図８〜１４を用いて説明する。但し、実施の形態１で説明した部材（図１〜５参照。）に対応する部材については同一の符号を付して、詳細な説明を省略する。
【０１２７】
図８は本実施の形態２におけるデータ圧縮装置の構成例を示すブロック図である。
図８に示すデータ圧縮装置は、新規履歴データ一致検出用コンパレータ（新規履歴データ一致検出手段）８０を備え、Ｎバイト処理用ＣＡＭセル列１１が入力データレジスタ１０から供給されたＮバイトデータと新規履歴データ一致検出用コンパレータ８０による比較結果（検出結果）を基に、被圧縮データ内で繰り返されるデータ列の検索を行う点が実施の形態１と異なる（図１参照。）。
【０１２８】
実施の形態１におけるデータ圧縮装置は、新規に履歴されるＮバイトデータ（ストリームデータの先頭のＮバイトデータ）内で一致するデータが存在している場合、その一致を見逃してしまう。例えば、Ｎ＝２の場合、図１４に示すように新規に履歴される２バイトのデータが“Ａ”と“Ａ”であった場合（ＣＬＫ＝１）、このデータ一致を見逃してしまうので、ＣＬＫ＝５においてリテラルコード“０−ＡＡ”が生成される。この一致の見逃しは圧縮率の低下を意味する。
【０１２９】
本実施の形態２におけるデータ圧縮装置では、この点を解決するために、新規履歴データ一致検出用コンパレータ８０を設けた。新規履歴データ一致検出用コンパレータ８０は入力データレジスタ１０からＮバイトデータが供給されると、１バイト単位でこのＮバイトデータ内の１バイトデータ同士を比較して一致を検出する。
【０１３０】
また、Ｎバイト処理用ＣＡＭセル列１１内の各一致状況検出手段は新規履歴データ一致検出用コンパレータ８０の比較結果（検出結果）および比較手段列の比較結果に対応して所定の一致状況を表す信号を生成する。
【０１３１】
また、制御回路１４はＮバイト処理用ＣＡＭセル列１１の出力信号（比較手段列または新規履歴データ一致検出用コンパレータ８０のうちの選択された一方の出力と、所定の一致状況を表す信号）を論理演算して一致長カウンタ１３へ出力する。このように構成することで、一致長カウンタ１３において、Ｎバイト処理用ＣＡＭセル列１１により検出された所定の一致状況に対応してカウンタ値を変化させることができる。
【０１３２】
なお、本実施の形態２では、図示していないが、制御回路１４は、新規履歴データ一致検出用コンパレータ８０とも接続されており、外部のブロックからの被圧縮データの受信から圧縮コード生成までのデータの管理や、外部のブロックからの被圧縮データの受信からリテラルコード（圧縮しないデータ列）の生成までのデータの管理を行う。
【０１３３】
次に、Ｎバイト処理用ＣＡＭセル列１１の具体例として、２バイト処理用ＣＡＭセル列について説明する。
図９に２バイト処理用ＣＡＭセル列の構成例を示す。この２バイト処理用ＣＡＭセル列２０は、図２に示す２バイト処理用ＣＡＭセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果（検出結果）が各Ｕｐｐｅｒ用ＣＡＭセルへ入力されている点のみが異なる。
【０１３４】
次に、Ｎバイト処理用ＣＡＭセル列について説明する。
図１０にＮバイト処理用ＣＡＭセル列の構成例を示す。このＮバイト処理用ＣＡＭセル列３０は、図３に示すＮバイト処理用ＣＡＭセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果（検出結果）が、Ｎ／Ｎバイト目用ＣＡＭセルを除くＣＡＭセルへ入力されている点のみが異なる。新規履歴データ一致検出用コンパレータの比較結果はデータ一致の開始位置を教示する情報として用いられるものであるので、新規に履歴されるデータ列の最後のデータを履歴するＮ／Ｎバイト目用ＣＡＭセルへ入力する必要はない。
【０１３５】
次に２バイト処理用ＣＡＭセル列の隣接する２つのＣＡＭセル（基本セル）の接続状況及び内部構成について、図１１を用いて説明する。図１１に示す基本セルは、図４に示す基本セルと比べて、新規履歴データ一致検出用コンパレータの比較結果（検出結果）がＵｐｐｅｒ用ＣＡＭセル４０の一致状況検出回路４４へ入力され、一致状況検出回路４４が下位バイト比較用コンパレータ４１もしくは新規履歴データ一致検出用コンパレータのうちの選択された一方の出力を用いて所定の一致状況を表す信号を生成する点が異なる。
【０１３６】
なお、図１１の「ＣｏｍｐＬ＿ＯＲへ」には、下位バイト比較用コンパレータ４１もしくは新規履歴データ一致検出用コンパレータのうちの選択された一方の出力が、制御回路の論理演算回路へ供給されることを表している。
【０１３７】
次に、図１１に示したＵｐｐｅｒ用ＣＡＭセル（Ｋ）４０及びＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０について、一致状況検出回路の内部構成を含めて説明する。
図１２にＵｐｐｅｒ用ＣＡＭセル（Ｋ）５０及びＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）５０の構成図を示す。
【０１３８】
図１２に示す２バイト処理用ＣＡＭセル列は、図５に示すＮバイト処理用ＣＡＭセル列と比べて、Ｕｐｐｅｒ用ＣＡＭセル（Ｋ）５０の一致状況検出回路が新規履歴データ一致検出用セレクタ（選択手段）１２０を備える点が異なる。
【０１３９】
新規履歴データ一致検出用セレクタ１２０は、下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号と新規履歴データ一致検出用コンパレータからの比較結果を表す信号とを入力とし、新規に履歴されるＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿Ｌｏｗｅｒが一致するとき、新規履歴データ一致検出用コンパレータからの比較結果を表す信号を出力する。このときの新規履歴データ一致検出用コンパレータからの比較結果を表す信号は値“１”（論理“Ｈ”）となっている。また、一致しないとき、新規履歴データ一致検出用セレクタ１２０は、下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号を出力する。この新規履歴データ一致検出用セレクタ１２０の出力が制御回路内のＣｏｍｐＬ＿ＯＲを演算する論理回路へ送られる。
【０１４０】
次に、上記２バイト処理用ＣＡＭセル列を用いてデータ圧縮を行った例を図１３に示す。図１３の各段に示すデータ等の意味は図７と同様である。
図１３に示すように、ＣＬＫ＝１において入力データレジスタに格納された新規に履歴されるＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿Ｌｏｗｅｒが一致すると、新規履歴データ一致検出用コンパレータからの比較結果を表す信号が値“１”（論理“Ｈ”）となり、ＣＡＭセル（０）等のＰＳレジスタにこの値“１”の信号が格納される。したがって、ＣＬＫ＝２において制御回路の論理演算結果がＣｏｍｐＬ＿ＯＲ＝１となり、アドレス生成回路（連続一致検出用アドレス生成回路）の出力がＰＳ（０）＝１となる。よって、ＣＬＫ＝２においては、ＭａｔｃｈＬｅｎ＝１、ＭａｔｃｈＰｔｒ＝０となる。
【０１４１】
この場合、このＩＤＢＲ＿Ｌｏｗｅｒ以降の処理対象のデータがアドレス（０）以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
【０１４２】
図１３に示す例では、ＣＬＫ＝２において入力データレジスタに格納された新規に履歴されるＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿Ｌｏｗｅｒが一致するので、新規履歴データ一致検出用コンパレータからの比較結果を表す信号が値“１”となり、ＣＡＭセル（２）等のＰＳレジスタにこの値“１”の信号が格納される。またこのＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿ＬｏｗｅｒはＣＡＭセル（０）、（１）の登録データ列とも一致する。したがって、ＣＡＭセル（２）のＰｓ２信号が値“１”（論理“Ｈ”）となるので、ＣＬＫ＝３において制御回路の論理演算結果がＰｓ２＿ＯＲ＝１、Ｈｉｔ＿ｃｍｐ＿ＯＲ＝１、Ｃｏｍｐ２＿ＯＲ＝１、ＣｏｍｐＬ＿ＯＲ＝１となり、連続一致検出用アドレス生成回路の出力がＰＳ（２）＝１となる。この結果、ＣＬＫ＝５においてリテラルコード“０−Ａ”が生成される。
【０１４３】
図１３に示す例では、データ“Ａ”が９連続して入力され、ＣＬＫ＝６において、制御回路の論理演算結果がＨｉｔ＿ｃｍｐ＿ＯＲ＝１となり、アドレス生成回路（コード生成回路）からＰＳ（７）＝（１）のアドレス情報が出力され、ＭａｔｃｈＬｅｎ＝８、ＭａｔｃｈＰｔｒ＝０となる。この結果、制御回路とコード生成回路は協働して、ＣＬＫ＝９において圧縮コード“１−Ａ８”とリテラルコード“０−Ｂ”を生成する。
【０１４４】
一方、実施の形態１におけるデータ圧縮装置では、図１４に示すように、ＣＬＫ＝１において入力データレジスタに格納された新規に履歴されるＩＤＢＲ＿ＵｐｐｅｒとＩＤＢＲ＿Ｌｏｗｅｒが一致した場合であっても、その一致を見逃してしまうので、ＣＬＫ＝５においてリテラルコード“０−ＡＢ”が生成され、ＣＬＫ＝９において圧縮コード“１−Ａ７”が生成される。
【０１４５】
そのため実施の形態１におけるデータ圧縮装置では、図１３の１段目に示す被圧縮データが入力された場合、図１４に示すように、１２８ビットのデータ入力に対して、データ圧縮後のデータサイズが７３ビット、圧縮率で１．７５倍となるのに対して、実施の形態２におけるデータ圧縮装置では、データ圧縮後のデータサイズが６６ビット、圧縮率で１．９３倍となり、実施の形態１におけるデータ圧縮装置に比べて圧縮率が向上する。
【０１４６】
（実施の形態３）
以下、本実施の形態３におけるデータ圧縮装置について図１５、１６を用いて説明する。図１５、図１６は、実施の形態１において説明したＮ＝２の場合のアドレス（Ｋ）のＵｐｐｅｒ用ＣＡＭセル（Ｋ）の一部を抜き出したものに相当する。但し、図４に示す部材に対応する部材には同一の符号を付して、詳細な説明を省略する。また、ここではＵｐｐｅｒ用ＣＡＭセルを用いて説明するが、Ｌｏｗｅｒ用ＣＡＭセルについても同様であるので説明を省略する。また、実施の形態２において説明したＮ＝２の場合のＵｐｐｅｒ用ＣＡＭセル、Ｌｏｗｅｒ用ＣＡＭセルについても同様である。
【０１４７】
図７と図１３に示すように、ＰＳレジスタの出力は殆ど“１”（論理“Ｈ”）とならない。ＰＳレジスタは、通常５１２の倍数個設けられ、また全てのＰＳレジスタには常にクロック信号が供給されるため、消費電力の浪費も無視できない。
【０１４８】
そこで図１５に示すように、例えば２バイト処理用ＣＡＭセル列において、一致状況検出回路４４と、ＰＳレジスタ４５との間にクロック供給制御用ＡＮＤ回路１５０を設ける。
【０１４９】
クロック供給制御用ＡＮＤ回路１５０には、図５を用いて説明したように、セレクタ４９により選択された下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号もしくは連続一致継続検出用ＡＮＤ回路４６からのＰｓ２（Ｋ）信号もしくは新規連続一致検出用ＡＮＤ回路４７からのＣｏｍｐ２（Ｋ）信号のうちの何れかとクロック信号とが入力され、その論理積を出力する（２入力１出力）。
【０１５０】
このように構成することで、ＰＳレジスタ４５には、セレクタ４９により選択された回路の出力の値が“１”（論理“Ｈ”）の場合にのみ、クロック信号が供給される。ＣｏｍｐＬ（Ｋ）信号、Ｐｓ２（Ｋ）信号、Ｃｏｍｐ２（Ｋ）信号は、現在の処理対象のＩＤＢＲ＿Ｌｏｗｅｒ（最下位のデータ）がアドレス（Ｋ）の登録データに一致したのに続いて少なくとも次のＩＤＢＲ＿Ｕｐｐｅｒ（最上位のデータ）が次のアドレス（Ｋ＋１）の登録データに一致する可能性があることを知らせる信号である。
【０１５１】
なおＮバイトの場合もＮ＝２の場合と同様に、所定の一致状況を表す信号とクロック信号を入力とするクロック供給制御用ＡＮＤ回路を設ければよい。
上記のようにＰＳレジスタへのクロック供給を制御することで、ＰＳレジスタの出力が“０”（論理“Ｌ”）となるＣＡＭセルでの電力消費量が削減されるため、多数のＰＳレジスタが必要なＮバイト処理用ＣＡＭセル列を構成しても必要以上に電力を消費することがなくなる。
【０１５２】
また、図１５に示す構成では、一致状況検出回路の出力（所定の一致状況を表す信号）が“０”（論理“Ｌ”）の場合、ＰＳレジスタ４５にクロック信号が供給されないため、ＰＳレジスタ４５に“１”（論理“Ｈ”）が設定されると“０”（論理“Ｌ”）にクリアされないという問題がある。
【０１５３】
そこで図１６に示すように、一致状況検出回路４４とＰＳレジスタ４５の間に、クロック供給制御用ＡＮＤ回路１５０に加えて、ＰＳレジスタ４５をクリアするための否定論理回路１６０を設ける。
【０１５４】
否定論理回路１６０には一致状況検出回路４４の出力、すなわちセレクタ４９により選択された下位バイト比較用コンパレータ４３からのＣｏｍｐＬ（Ｋ）信号もしくは連続一致継続検出用ＡＮＤ回路４６からのＰｓ２（Ｋ）信号もしくは新規連続一致検出用ＡＮＤ回路４７からのＣｏｍｐ２（Ｋ）信号のうちの何れかが入力され、その出力はＰＳレジスタ４５の非同期リセット端子に接続される。
【０１５５】
このように構成することで、セレクタ４９により選択された信号が値“０”（論理“Ｌ”）になるとＰＳレジスタ４５に非同期リセットがかかるため、ＰＳレジスタ４５をリセットすることができる。
【０１５６】
なおＮバイトの場合もＮ＝２の場合と同様に、所定の一致状況を表す信号を入力とし、その出力がＰＳレジスタの非同期リセット端子に接続される否定論理回路を設ければよい。
【０１５７】
以上のように、本実施の形態３によれば、ＰＳレジスタへ格納する値が“１”（論理“Ｈ”）の場合にのみＰＳレジスタへクロック信号を供給するので、無駄な電力消費を抑えることができる。
【産業上の利用可能性】
【０１５８】
本発明にかかるデータ圧縮装置は、一定長のデータを一定数ずつ同時に比較処理できるので、クロック周波数（動作クロック）を上げることなくデータ圧縮処理を高速化でき、かつ消費電力を抑えることができ、例えば、ディジタル・データ記憶装置等におけるデータ送受信の際のデータ圧縮に有用である。
【図面の簡単な説明】
【０１５９】
【図１】本発明の実施の形態１におけるデータ圧縮装置の構成例を示すブロック図
【図２】本発明の実施の形態１におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列の構成例を示す図
【図３】本発明の実施の形態１におけるデータ圧縮装置に用いられるＮバイト処理用ＣＡＭセル列の構成例を示す図
【図４】本発明の実施の形態１におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）とＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）の接続状況及び内部構成を示す図
【図５】本発明の実施の形態１におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）とＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）の接続状況及び内部構成を示す図
【図６】本発明の実施の形態１におけるデータ圧縮装置（Ｎ＝２）の構成例を示すブロック図
【図７】本発明の実施の形態１におけるデータ圧縮装置（Ｎ＝２）によるデータ圧縮例を説明するための図
【図８】本発明の実施の形態２におけるデータ圧縮装置の構成例を示すブロック図
【図９】本発明の実施の形態２におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列の構成例を示す図
【図１０】本発明の実施の形態２におけるデータ圧縮装置に用いられるＮバイト処理用ＣＡＭセル列の構成例を示す図
【図１１】本発明の実施の形態２におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）とＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）の接続状況及び内部構成を示す図
【図１２】本発明の実施の形態２におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）とＬｏｗｅｒ用ＣＡＭセル（Ｋ＋１）の接続状況及び内部構成を示す図
【図１３】本発明の実施の形態２におけるデータ圧縮装置（Ｎ＝２）によるデータ圧縮例を説明するための図
【図１４】本発明の実施の形態１において説明したデータ圧縮装置（Ｎ＝２）によるデータ圧縮例を説明するための図
【図１５】本発明の実施の形態３におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）の構成を示す図
【図１６】本発明の実施の形態３におけるデータ圧縮装置に用いられる２バイト処理用ＣＡＭセル列のＵｐｐｅｒ用ＣＡＭセル（Ｋ）の構成を示す図
【図１７】従来のデータ圧縮装置の構成例を示すブロック図
【図１８】従来のデータ圧縮装置の構成例を示すブロック図
【符号の説明】
【０１６０】
１０      入力データレジスタ
１１      Ｎバイト処理用ＣＡＭセル列
１２      アドレス生成回路
１３      一致長カウンタ
１４      制御回路
１５      コード生成回路
２０      ２バイト処理用ＣＡＭセル列
３０      Ｎバイト処理用ＣＡＭセル列
４０      Ｕｐｐｅｒ用ＣＡＭセル（Ｋ）
４１、５１      Ｈｉｓｔｏｒｙレジスタ
４２、５２      上位バイト比較用コンパレータ
４３、５３      下位バイト比較用コンパレータ
４４、５４      一致状況検出回路
４５、５５      ＰＳレジスタ
５０      Ｌｏｗｅｒ用ＣＡＭセル（Ｋ＋１）
４６、５６      連続一致継続検出用ＡＮＤ回路
４７、５７      新規連続一致検出用ＡＮＤ回路
４８、５８      連続一致検出用ＡＮＤ回路
４９、５９      セレクタ
６０      連続一致検出用アドレス生成回路
６１      コード生成用アドレス生成回路
６２      論理回路
６３      セレクタ
８０      新規履歴データ一致検出用コンパレータ
１５０      クロック供給制御用ＡＮＤ回路
１６０      否定論理回路
１７０      １７バイトシフトレジスタ
１７１      ５１２バイトシフトレジスタ
１７２      セレクタ
１７３      コンパレータ列
１７４      一致状況検出手段
１７５      一致情報格納レジスタ
１７６      制御回路
１８０      バッファ
１８１      ＣＡＭセル列
１８２      比較結果制御手段
１８３      アドレス生成回路
１８４      一致長カウンタ
１８５      コード生成回路
１８６      制御回路
【図１】
2005260285.tif 000004
【図２】
2005260285.tif 000005
【図３】
2005260285.tif 000006
【図４】
2005260285.tif 000007
【図５】
2005260285.tif 000008
【図６】
2005260285.tif 000009
【図７】
2005260285.tif 000010
【図８】
2005260285.tif 000011
【図９】
2005260285.tif 000012
【図１０】
2005260285.tif 000013
【図１１】
2005260285.tif 000014
【図１２】
2005260285.tif 000015
【図１３】
2005260285.tif 000016
【図１４】
2005260285.tif 000017
【図１５】
2005260285.tif 000018
【図１６】
2005260285.tif 000019
【図１７】
2005260285.tif 000020
【図１８】
2005260285.tif 000021