JP2005260285A - データ圧縮装置 - Google Patents
データ圧縮装置 Download PDFInfo
- Publication number
- JP2005260285A JP2005260285A JP2004064899A JP2004064899A JP2005260285A JP 2005260285 A JP2005260285 A JP 2005260285A JP 2004064899 A JP2004064899 A JP 2004064899A JP 2004064899 A JP2004064899 A JP 2004064899A JP 2005260285 A JP2005260285 A JP 2005260285A
- Authority
- JP
- Japan
- Prior art keywords
- data
- comparison
- byte
- match
- storage means
- 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.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 消費電力を抑えつつ高速なデータ圧縮処理を行うことができるデータ圧縮装置を提供する。
【解決手段】 Nバイト処理用CAMセル列11は、入力データレジスタ10から供給されるNバイトデータを1バイト単位で履歴する記憶手段列と、各記憶手段が履歴している各データと入力データレジスタ10から供給されるN個の1バイトデータを一度に比較するためのコンパレータ列と、記憶手段毎に設けられ、コンパレータ列による比較結果(1サイクル前の一致状況も含む。)に応じて所定の一致状況を検出する一致状況検出手段を具備する。そして、Nバイト処理用CAMセル列11に履歴されている登録データ列の何れかと被圧縮データのデータ列が一致すると、コード生成回路15はそのデータ列の先頭のデータを履歴するCAMセルのアドレスと一致長カウンタ13のカウンタ値を成分とする圧縮コードを生成する。
【選択図】 図1
【解決手段】 Nバイト処理用CAMセル列11は、入力データレジスタ10から供給されるNバイトデータを1バイト単位で履歴する記憶手段列と、各記憶手段が履歴している各データと入力データレジスタ10から供給されるN個の1バイトデータを一度に比較するためのコンパレータ列と、記憶手段毎に設けられ、コンパレータ列による比較結果(1サイクル前の一致状況も含む。)に応じて所定の一致状況を検出する一致状況検出手段を具備する。そして、Nバイト処理用CAMセル列11に履歴されている登録データ列の何れかと被圧縮データのデータ列が一致すると、コード生成回路15はそのデータ列の先頭のデータを履歴するCAMセルのアドレスと一致長カウンタ13のカウンタ値を成分とする圧縮コードを生成する。
【選択図】 図1
Description
本発明は、データ圧縮装置に関する。
従来より、ディジタル・データ記憶装置においてデータ送受信などのデータ転送を行う際にデータ圧縮を行うデータ圧縮装置が知られている。
従来のデータ圧縮装置は、例えば図17に示すような構成となっている。
従来のデータ圧縮装置は、例えば図17に示すような構成となっている。
図17において、170は17バイトシフトレジスタ、171は512バイトシフトレジスタである。512バイトシフトレジスタ171は、17バイトシフトレジスタ170より供給される圧縮すべきデータの以前の履歴を格納して辞書ウィンドウ(スライド辞書)を作成する。
また、172はセレクタ、173はコンパレータ列である。コンパレータ列173は、2バイトのデータを比較するコンパレータ32個からなる。また、174は一致状況検出手段、175は一致情報格納レジスタ、176は制御回路である。制御回路176は、各回路の処理タイミングを制御している。
コンパレータ列173は、17バイトシフトレジスタ170より供給される「圧縮すべきデータ」と512バイトシフトレジスタ171よりセレクタ172を介して入力される「圧縮すべきデータの以前の履歴」とを並列比較する。
一致状況検出手段174は、コンパレータ列173による比較結果を基に、「圧縮すべきデータの以前の履歴」と一致した「圧縮すべきデータ」の一致長とその一致したデータの512バイトシフトレジスタ171における位置を検出する。一致情報格納レジスタ175は、一致状況検出手段174により検出された一致長とその一致した位置の情報を格納する。
制御回路176は、一致状況検出手段174により検出された一致の状況に応じてセレクタ172を制御し、コンパレータ列173におけるコンパレータの組み合わせを適宜変更する。
このように、図17に示す従来のデータ圧縮装置では、スライド辞書に格納されたデータとの比較に複数のコンパレータを用い、一致検出状況に応じてコンパレータの組み合わせを適宜変更することにより、回路規模をそれほど大きくすることなく高速なデータ圧縮を実現している(例えば、特許文献1参照。)。
また、別の従来のデータ圧縮装置は、例えば図18に示すような構成となっている。
図18において、180はバッファである。バッファ180は、外部から入力される圧縮対象のストリームデータを所定ビット長のデータから成る単位データごとに格納する。また、181はCAMセル列、182は比較結果制御手段、183はアドレス生成回路(プライオリティエンコーダ)、184は一致長カウンタ、185はコード生成回路、186は制御回路である。制御回路186は、各回路の処理タイミングを制御している。
図18において、180はバッファである。バッファ180は、外部から入力される圧縮対象のストリームデータを所定ビット長のデータから成る単位データごとに格納する。また、181はCAMセル列、182は比較結果制御手段、183はアドレス生成回路(プライオリティエンコーダ)、184は一致長カウンタ、185はコード生成回路、186は制御回路である。制御回路186は、各回路の処理タイミングを制御している。
CAMセル列181は、単位データを記憶する複数のHistoryレジスタと、各Historyレジスタ毎に対応して設けられ、Historyレジスタに記憶された単位データと入力された単位データとを比較し、比較結果を表す比較信号を出力する複数のコンパレータからなる。CAMセル列181を構成する複数のHistoryレジスタがスライド辞書となる。
制御回路186は、所定数の単位データで構成された元データから隣り合う単位データを順次取り出してバッファ180に格納し、このバッファ180に格納した単位データを複数のコンパレータの各々に順次入力するとともに、複数のコンパレータの各々に入力した単位データを各Historyレジスタとコンパレータとの対に付与されたアドレスの昇順に順次Historyレジスタに記憶させる。
アドレス生成回路183は、バッファ180に格納された単位データとスライド辞書に格納されている単位データとが一致したとき、比較結果制御手段182を介して入力された各コンパレータからの比較信号を基に、その一致した単位データを格納するCAMセルのアドレス情報を生成する。また、一致長カウンタ184は、入力データレジスタに順次格納される単位データのデータ列がCAMセル列181に格納されているデータ列(アドレス順)と一致した場合に、その一致長をカウントする。コード生成回路185は、アドレス生成回路183からのアドレス情報と一致長カウンタ184からのカウント値を成分とする圧縮コードを生成する。
このように、図18に示す従来のデータ圧縮装置では、回路規模は大きくなるものの、CAMセルを用いてスライド辞書を形成し、このスライド辞書に格納される単位データの数と同数のコンパレータを設け、装置の構成方法を工夫することにより高速なデータ圧縮を実現している(例えば、特許文献2参照。)。
しかしながら、図17に示す従来のデータ圧縮装置の構成では、コンパレータが32個しか設けられておらず、スライド辞書へのデータの取り込みが1バイトずつであるため、一つのリテラルコード(圧縮しないデータ)を生成するまでに16回も比較処理が必要になるという問題があった。さらに、一致状況検出手段により検出された一致の状況に応じてコンパレータの組み合わせを適宜変更するための制御が複雑になるという問題があった。
また、図18に示す従来のデータ圧縮装置の構成では、512バイトを超えるCAMセルを設けることにより、リテラルコードの生成にかかる時間を短縮しているが、単位データの取り込みが1バイトずつであるため、圧縮コードの生成レートを向上するためには処理クロックの周波数を高く設定する必要があり、クロック周波数の増加に比例した消費電力の増加が避けられなかった。
特開平10−187410号公報(第10頁、第3図)
特開平8−242176号公報(第37頁、第11図)
本発明は、上記問題点に鑑み、被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していくとともに、被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時に記憶手段列に既に履歴されている一定長のデータの各々と比較していき、記憶手段列に既に履歴されている何れかのデータ列と一致する被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する記憶手段のアドレスとその一致長とにより表される圧縮コードを生成することにより、消費電力を抑えつつ高速なデータ圧縮処理を行うことができるデータ圧縮装置を提供することを目的とする。
本発明の請求項1記載のデータ圧縮装置は、被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する前記被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する前記記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を前記圧縮コードに置き換えることで前記被圧縮データを圧縮するデータ圧縮装置であって、前記記憶手段列に既に履歴されている各データと前記一定長のデータに分けられた前記一定数の前記被圧縮データとを同時に比較する比較手段列と、前記被圧縮データを入力順に前記一定長のデータに分けて前記一定数ずつ同時に格納し前記記憶手段列と前記比較手段列に供給する格納手段と、前記記憶手段列を構成する各記憶手段毎に設けられ、前記比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段と、前記一致状況検出手段により検出された前記所定の一致状況に対応する前記記憶手段のアドレス情報を生成するアドレス生成手段と、前記一致状況検出手段により検出された前記所定の一致状況に対応してカウンタ値を変化させる一致長カウンタ手段と、前記アドレス情報と前記カウンタ値を基に前記圧縮コードを生成する圧縮コード生成手段と、を具備することを特徴とする。
また、本発明の請求項2記載のデータ圧縮装置は、請求項1記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
また、本発明の請求項3記載のデータ圧縮装置は、請求項1もしくは2のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする。
また、本発明の請求項4記載のデータ圧縮装置は、請求項3記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
また、本発明の請求項5記載のデータ圧縮装置は、請求項4記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする。
また、本発明の請求項6記載のデータ圧縮装置は、請求項1記載のデータ圧縮装置であって、前記一定長が1バイト長、前記一定数が2であり、前記格納手段は前記被圧縮データを入力順に1バイト長のデータに分けて2つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と前記比較手段列へ供給することを特徴とする。
また、本発明の請求項7記載のデータ圧縮装置は、請求項6記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とする。
また、本発明の請求項8記載のデータ圧縮装置は、請求項7記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
また、本発明の請求項9記載のデータ圧縮装置は、請求項7もしくは8のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とする。
また、本発明の請求項10記載のデータ圧縮装置は、請求項9記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
また、本発明の請求項11記載のデータ圧縮装置は、請求項10記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とする。
また、本発明の請求項12記載のデータ圧縮装置は、請求項11記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用AND回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とする。
また、本発明の請求項13記載のデータ圧縮装置は、請求項11もしくは12のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用AND回路、前記新規連続一致検出用AND回路、前記連続一致検出用AND回路、および前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とする。
また、本発明の請求項14記載のデータ圧縮装置は、請求項1記載のデータ圧縮装置であって、前記格納手段から前記一定数の前記一定長のデータが供給され、新規に履歴されるデータ列内での一致を検出する新規履歴データ一致検出手段を備え、前記一致状況検出手段が、前記比較手段列の比較結果および前記新規履歴データ一致検出手段の検出結果に対応して前記所定の一致状況を検出することを特徴とする。
また、本発明の請求項15記載のデータ圧縮装置は、請求項14記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
また、本発明の請求項16記載のデータ圧縮装置は、請求項14もしくは15のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする。
また、本発明の請求項17記載のデータ圧縮装置は、請求項16記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
また、本発明の請求項18記載のデータ圧縮装置は、請求項17記載のデータ圧縮装置であって、前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記新規履歴データ一致検出手段の検出結果と、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする。
また、本発明の請求項19記載のデータ圧縮装置は、請求項14記載のデータ圧縮装置であって、前記一定長が1バイト長、前記一定数が2であり、前記格納手段は前記被圧縮データを入力順に1バイト長のデータに分けて2つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と、前記比較手段列と、前記新規履歴データ一致検出手段へ供給することを特徴とする。
また、本発明の請求項20記載のデータ圧縮装置は、請求項19記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とする。
また、本発明の請求項21記載のデータ圧縮装置は、請求項20記載のデータ圧縮装置であって、前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする。
また、本発明の請求項22記載のデータ圧縮装置は、請求項20もしくは21のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とする。
また、本発明の請求項23記載のデータ圧縮装置は、請求項22記載のデータ圧縮装置であって、前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする。
また、本発明の請求項24記載のデータ圧縮装置は、請求項23記載のデータ圧縮装置であって、前記上位バイト記憶手段に対応する前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段と前記新規履歴データ一致検出手段とを選択して、新規に履歴されるデータ同士の一致が検出されると前記新規履歴データ一致検出手段の検出結果を出力し、検出されないときには前記下位バイト用比較手段の比較結果を出力する選択手段と、前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段の出力のうちの何れかを選択して前記レジスタに格納し、前記下位バイト記憶手段に対応する前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタと、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とする。
また、本発明の請求項25記載のデータ圧縮装置は、請求項24記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用AND回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とする。
また、本発明の請求項26記載のデータ圧縮装置は、請求項24もしくは25のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用AND回路、前記新規連続一致検出用AND回路、前記連続一致検出用AND回路、前記上位バイト記憶手段に対応する前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段、および前記下位バイト記憶手段に対応する前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とする。
また、本発明の請求項27記載のデータ圧縮装置は、請求項5もしくは18のいずれかに記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ供給するクロック信号と前記レジスタへ格納する前記所定の一致状況を表す信号との論理積を出力するクロック供給制御用AND回路を含み、前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用AND回路により前記所定の一致状況を表す信号の前記レジスタへの格納を有効にすることを特徴とする。
また、本発明の請求項28記載のデータ圧縮装置は、請求項27記載のデータ圧縮装置であって、前記一致状況検出手段は、前記所定の一致状況を表す信号を入力とする否定論理回路を含み、前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とする。
また、本発明の請求項29記載のデータ圧縮装置は、請求項11乃至13もしくは24乃至26のいずれかに記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ供給するクロック信号と前記レジスタへ格納する信号との論理積を出力するクロック供給制御用AND回路を含み、前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用AND回路により前記レジスタへの信号の格納を有効にすることを特徴とする。
また、本発明の請求項30記載のデータ圧縮装置は、請求項29記載のデータ圧縮装置であって、前記一致状況検出手段は、前記レジスタへ格納する信号を入力とする否定論理回路を含み、前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とする。
本発明のデータ圧縮装置によれば、一定長のデータを一定数ずつ同時に比較処理できるので、クロック周波数を上げることなくデータ圧縮処理を高速化できる。したがって、従来に比べ消費電力を抑えつつ高速なデータ圧縮が可能となる。
以下、本発明の実施の形態におけるデータ圧縮装置ついて図面を交えて説明する。本実施の形態におけるデータ圧縮装置は、被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータ(例えば1バイトのデータ)に分けて一定数ずつ(例えばNバイトずつ)同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を圧縮コードに置き換えることで被圧縮データを圧縮するものである。
(実施の形態1)
まず、本実施の形態1におけるデータ圧縮装置について、図1〜7を用いて説明する。
図1は本実施の形態1におけるデータ圧縮装置の構成例を示すブロック図である。
まず、本実施の形態1におけるデータ圧縮装置について、図1〜7を用いて説明する。
図1は本実施の形態1におけるデータ圧縮装置の構成例を示すブロック図である。
図1において、入力データレジスタ(格納手段)10は、外部のブロック(例えばSDRAM)に蓄積されている被圧縮データを順次Nバイトずつ受け取り格納する。そして、入力データレジスタ10は次のクロック(サイクル)で1バイト単位に分けたNバイトデータをNバイト処理用CAMセル列11へ供給する。
Nバイト処理用CAMセル列11は、入力データレジスタ10から供給されたNバイトデータを基に、被圧縮データ内で繰り返されるデータ列の検索を行う。
従来CAMセルと言えば、入力データレジスタ(IDBR:Input Data Buffer Resister)から供給された一定長のデータ、例えば1バイト長のデータを新たな検索対象として登録するためのHistoryレジスタと、そのHistoryレジスタに登録された1バイト長のデータと入力データレジスタから供給される1バイト長のデータとの比較を行うためのコンパレータとが設けられ、一致データを検出した信号を出力するものを言うが、ここではHistoryレジスタ(記憶手段)及びコンパレータ(比較手段)に加えて論理演算回路(一致状況検出手段)が追加されたものをCAMセルと定義している。そのため従来であればCAMセルの出力としてコンパレータの出力(一致データを検出した信号)が出てくるはずのところに、Nバイト処理用CAMセル列11ではコンパレータの出力信号と論理演算回路の出力信号(所定の一致状況を表す信号)が出力される。
従来CAMセルと言えば、入力データレジスタ(IDBR:Input Data Buffer Resister)から供給された一定長のデータ、例えば1バイト長のデータを新たな検索対象として登録するためのHistoryレジスタと、そのHistoryレジスタに登録された1バイト長のデータと入力データレジスタから供給される1バイト長のデータとの比較を行うためのコンパレータとが設けられ、一致データを検出した信号を出力するものを言うが、ここではHistoryレジスタ(記憶手段)及びコンパレータ(比較手段)に加えて論理演算回路(一致状況検出手段)が追加されたものをCAMセルと定義している。そのため従来であればCAMセルの出力としてコンパレータの出力(一致データを検出した信号)が出てくるはずのところに、Nバイト処理用CAMセル列11ではコンパレータの出力信号と論理演算回路の出力信号(所定の一致状況を表す信号)が出力される。
具体的には、Nバイト処理用CAMセル列11は、入力データレジスタ10から供給されるNバイトデータを被圧縮データの入力順に1バイト単位で同時に履歴するアドレスの付与された記憶手段列と、記憶手段列に既に履歴されている各データと入力データレジスタ10から供給されるNバイトデータとを1バイト単位で同時に比較する比較手段列に加えて、比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段列を具備する。
またNバイト処理用CAMセル列と命名しているのは、従来のCAMセル列であれば、比較処理単位が1バイトの場合には、被圧縮データを1バイトずつ処理するのに対し、Nバイト処理用CAMセル列では、Nバイトずつ処理するためである。
アドレス生成回路(アドレス生成手段)12としては従来と同様にプライオリティエンコーダを用いる。アドレス生成回路12はNバイト処理用CAMセル列11により検出された所定の一致状況に対応するHistoryレジスタ(記憶手段)のアドレス情報を生成する。
またNバイト処理用CAMセル列11の出力信号(比較手段列による比較結果と所定の一致状況を表す信号)は制御回路14へ入力され、繰り返しの長さ(一致長)を検出するために使用される。繰り返しの長さを検出するために一致長カウンタ13を用いるが、Nバイト処理用CAMセル列11の出力信号を直接一致長カウンタ13へ入力せず、制御回路14を介して入力する。制御回路14はNバイト処理用CAMセル列11の出力信号を論理演算して一致長カウンタ13へ出力する。このように構成することで、一致長カウンタ13において、Nバイト処理用CAMセル列11により検出された所定の一致状況に対応してカウンタ値を変化させることができる。つまり、ここでは、制御回路14と一致長カウンタ13により一致長カウンタ手段が構成される。
コード生成回路(圧縮コード生成手段)15は、制御回路14からの指令に応じて、アドレス生成回路12の出力信号(アドレス情報)と一致長カウンタ13の出力信号(カウンタ値)を基に圧縮コードを生成する。
なお、外部のブロックからの被圧縮データの受信から圧縮コード生成までのデータの管理や、外部のブロックからの被圧縮データの受信からリテラルコード(圧縮しないデータ列)の生成までのデータの管理は、制御回路14により行うものとする。つまり図示していないが、制御回路14は、入力データレジスタ10、Nバイト処理用CAMセル列11、アドレス生成回路12、一致長カウンタ13、コード生成回路15、および外部のブロックに接続され、各回路における処理タイミングを制御している。また、制御回路14は、Nバイト処理用CAMセル列11からの出力信号(比較手段列による比較結果と所定の一致状況を表す信号)を基に生成すべきコードの種類を判定して、コード生成回路15に対して圧縮コードの生成もしくはリテラルコードの生成を指令する。
また、同時に複数のバイトを処理するので、圧縮コードを生成するかリテラルコードを生成するかを判定する部分の論理回路や一致長カウンタ13及びアドレス生成回路12の処理タイミングの調整等の工夫が必要である。
次に、Nバイト処理用CAMセル列11の具体例として、2バイト処理用CAMセル列について説明する。
図2に2バイト処理用CAMセル列の構成例を示す。
図2に2バイト処理用CAMセル列の構成例を示す。
2バイト処理用CAMセル列20には、従来のCAMセル列と同様に“0”から“M−1”のアドレスが付与される。また2バイト処理用CAMセル列20は、2種類のCAMセル(Upper用CAMセルとLower用CAMセル)が交互に配列され、かつリング状に接続されて構成される。
従来のCAMセル列と異なるのは、同時に2バイトのデータを処理する点である。つまり、1つのCAMセルには1バイトのデータが登録(履歴)されている。各CAMセルは、入力データレジスタに格納された2バイトデータを1バイト単位で既に履歴されている1バイトデータと同時に比較し、比較結果を表す信号および所定の一致状況を表す信号を生成する。また2バイト処理用CAMセル列20は、この現在の処理対象の2バイトデータを1バイトずつ新たな検索対象として登録する。
2バイト処理用CAMセル列20への新たな検索対象の登録は、被圧縮データの入力順に1バイトずつアドレスの若いCAMセルから順次登録していくやり方である。つまり各CAMセル内のHistoryレジスタに対するライト・イネーブル信号をアドレス順に2つずつ有効にしていく。なお、CAMセル(M−1)への登録が完了すると、再度アドレス“0”のCAMセル(0)から順次登録していく。
図2に示す2バイト処理用CAMセル列20では、入力データレジスタは2バイトのデータを格納するレジスタである。その2バイトのデータの上位バイトデータをIDBR_Upper、下位バイトデータをIDBR_Lowerとすると、入力データレジスタはそれぞれを各CAMセルへ一致検出のための比較データとして同時に供給する。また2バイト処理用CAMセル列20は、比較処理完了後、そのIDBR_UpperをUpper用CAMセルのHistoryレジスタ(上位バイト記憶手段)に新たな検索対象として履歴し、かつIDBR_LowerをLower用CAMセルのHistoryレジスタ(下位バイト記憶手段)に新たな検索対象として履歴する。
後述するように、例えばCAMセル(K)には、アドレスが1つ若いCAMセル(K−1)からのCompU(K−1)信号とPS(K−1)信号、およびアドレスが2つ若いCAMセル(K−2)からのPS(K−2)信号が入力される。但し、“K”は
0 ≦ K ≦ M−1 (M:正の整数)
である。
0 ≦ K ≦ M−1 (M:正の整数)
である。
図2に示す2バイト処理用CAMセル列20を図1に示すデータ圧縮装置のNバイト処理用CAMセル列として組み込むことにより、従来のCAMセルを用いたデータ圧縮処理の2倍の処理が一度に行える。
なお、さらなる高速処理のためにはNの数を大きくすれば良い。一度に処理するバイト数がNバイトの場合は、CAMセルの種類をN種類用意し、Nの自然数倍個のCAMセルを規則正しく配列してリング状に接続すればよい。例えばN=2の場合には、上記のように2種類のCAMセル(Upper用CAMセルとLower用CAMセル)を用意し、Upper用CAMセルとLower用CAMセルを交互に規則正しく配列してリング状に接続する。Nバイトの場合もN=2の場合と同様に、N種類のCAMセルを規則正しく配列してリング状に接続すれば良い。
次に、Nバイト処理用CAMセル列について説明する。
図3にNバイト処理用CAMセル列の構成例を示す。
N種類のCAMセルからなるCAMセル列をNバイト処理用CAMモジュールとすると、図3に示すNバイト処理用CAMセル列30は、I個のNバイト処理用CAMモジュールからなる。各Nバイト処理用CAMモジュールはN種類の異なるCAMセル、つまり(1/N)バイト目用CAMセル、(2/N)バイト目用CAMセル、・・・、(N/N)バイト目用CAMセルからなる。そして各CAMセルが隣接するCAMセルから幾つかの出力信号を供給してもらうことにより、Nバイト処理用CAMセル列30はリング状に接続される。このように構成することで、被圧縮データ内で繰り返されるデータ列の検出を行うことができる。
図3にNバイト処理用CAMセル列の構成例を示す。
N種類のCAMセルからなるCAMセル列をNバイト処理用CAMモジュールとすると、図3に示すNバイト処理用CAMセル列30は、I個のNバイト処理用CAMモジュールからなる。各Nバイト処理用CAMモジュールはN種類の異なるCAMセル、つまり(1/N)バイト目用CAMセル、(2/N)バイト目用CAMセル、・・・、(N/N)バイト目用CAMセルからなる。そして各CAMセルが隣接するCAMセルから幾つかの出力信号を供給してもらうことにより、Nバイト処理用CAMセル列30はリング状に接続される。このように構成することで、被圧縮データ内で繰り返されるデータ列の検出を行うことができる。
具体的には、各Historyレジスタ(記憶手段)毎に設けられた一致状況検出手段が、自己の生成した所定の一致状況を表す信号を格納するPSレジスタを含み、自己に対応するN個の比較手段の比較結果と、隣接する所定数のHistoryレジスタに対応するN個の比較手段による比較結果と、隣接する所定数のHistoryレジスタに対応して設けられている一致状況検出手段のPSレジスタから出力される所定の一致状況を表す信号とを基に、所定の一致状況を表す信号を生成する。
図3に示すNバイト処理用CAMセル列30では、入力データレジスタはNバイトのデータを格納するレジスタである。入力データレジスタはそのNバイトデータを1バイトデータに分けてNバイトずつ各CAMセルへ一致検出のための比較データとして同時に供給する。またNバイト処理用CAMセル列30は、この現在の処理対象のNバイトデータを被圧縮データの入力順に1バイトずつ新たな検索対象としてCAMセルに履歴する。
Nバイト処理用CAMセル列30への新たな検索対象の登録は、2バイト処理用CAMセル列と同様に、被圧縮データの入力順に1バイトずつアドレスの若いCAMセルから順次登録していくやり方である。つまり各CAMセル内のHistoryレジスタに対するライト・イネーブル信号をアドレス順にN個ずつ有効にしていく。
上記処理は、動作クロックに同期して1クロック毎に実行される。Nバイト処理用CAMセル列へは、入力データレジスタに格納されたNバイトの被圧縮データが1バイトずつ分けられて同時に供給される。したがって、1クロック毎に、比較処理の完了した被圧縮データが入力順にNバイトずつアドレスの若いCAMセルから1バイト単位で順次履歴されていく。このように動作することで、スライド辞書が作成できる。また、各CAMセルは、1クロック毎に、自己のHistoryレジスタ(記憶手段)に既に履歴されている1バイトデータと入力データレジスタから供給されるNバイトの被圧縮データを1バイト単位で同時に比較する。つまり、各CAMセルにはN個のコンパレータが設けられている。したがって、Nバイト処理用CAMセル列は、被圧縮データ内で繰り返されるデータ列を検索するための比較処理を毎クロックNバイトずつ行うことができる。Nバイト処理用CAMセル列30は、全部で(I×N)個のCAMセルで構成される。
次に2バイト処理用CAMセル列の隣接する2つのCAMセル(基本セル)の接続状況及び内部構成を詳しく述べる。
2バイト処理用CAMセル列は図2に示すようにUpper用CAMセルとLower用CAMセルが交互に並んだ構成となっている。その内の一組を抜き出したのが図4である。
2バイト処理用CAMセル列は図2に示すようにUpper用CAMセルとLower用CAMセルが交互に並んだ構成となっている。その内の一組を抜き出したのが図4である。
図4の上側に示すUpper用CAMセル(K)40と下側に示すLower用CAMセル(K+1)50を接続したものを2バイト処理用CAMセル列の基本セルとすると、2バイト処理用CAMセル列はM/2個の基本セルを並べた構成となる(図2参照。)。
Upper用CAMセル(K)40においてHistoryレジスタ(上位バイト記憶手段)41は、比較処理が完了したIDBR_Upperを履歴する。
上位バイト比較用コンパレータ(上位バイト用比較手段)42は、Historyレジスタ41に履歴されている登録データ(K)とIDBR_Upperとの比較を行う。
上位バイト比較用コンパレータ(上位バイト用比較手段)42は、Historyレジスタ41に履歴されている登録データ(K)とIDBR_Upperとの比較を行う。
下位バイト比較用コンパレータ(下位バイト用比較手段)43は、Historyレジスタ41に履歴されている登録データ(K)とIDBR_Lowerとの比較を行う。
一致状況検出回路44は、上位バイト比較用コンパレータ42の比較結果を表すCompU(K)信号と下位バイト比較用コンパレータ43の比較結果を表すCompL(K)信号と、隣接する図示しないアドレス(K−1)のLower用CAMセル(K−1)の上位バイト比較用コンパレータからのCompU(K−1)信号とPSレジスタからのPS(K−1)信号、および図示しないアドレス(K−2)のUpper用CAMセル(K−2)のPSレジスタからのPS(K−2)信号を入力とし、所定の一致状況を表す信号を生成する。また、PSレジスタ45は、一致状況検出回路44の出力信号(所定の一致状況を表す信号)を格納する。なお、一致状況は、現在の処理対象のデータと登録データ(K)とが一致しているか否かに留まらず、次の処理対象のデータが次の登録データ(K+1)と連続一致する可能性があるか否かをも表している。
一致状況検出回路44は、上位バイト比較用コンパレータ42の比較結果を表すCompU(K)信号と下位バイト比較用コンパレータ43の比較結果を表すCompL(K)信号と、隣接する図示しないアドレス(K−1)のLower用CAMセル(K−1)の上位バイト比較用コンパレータからのCompU(K−1)信号とPSレジスタからのPS(K−1)信号、および図示しないアドレス(K−2)のUpper用CAMセル(K−2)のPSレジスタからのPS(K−2)信号を入力とし、所定の一致状況を表す信号を生成する。また、PSレジスタ45は、一致状況検出回路44の出力信号(所定の一致状況を表す信号)を格納する。なお、一致状況は、現在の処理対象のデータと登録データ(K)とが一致しているか否かに留まらず、次の処理対象のデータが次の登録データ(K+1)と連続一致する可能性があるか否かをも表している。
同様に、Lower用CAMセル(K+1)50においてHistoryレジスタ(下位バイト記憶手段)51は、比較処理が完了したIDBR_Lowerを格納する。
上位バイト比較用コンパレータ(上位バイト用比較手段)52は、Historyレジスタ51に履歴されている登録データ(K+1)とIDBR_Upperとの比較を行う。
上位バイト比較用コンパレータ(上位バイト用比較手段)52は、Historyレジスタ51に履歴されている登録データ(K+1)とIDBR_Upperとの比較を行う。
下位バイト比較用コンパレータ(下位バイト用比較手段)53は、Historyレジスタ51に履歴されている登録データ(K+1)とIDBR_Lowerとの比較を行う。
一致状況検出回路54は、上位バイト比較用コンパレータ52からのCompU(K+1)信号と下位バイト比較用コンパレータ53からのCompL(K+1)信号と、隣接するアドレス(K)のUpper用CAMセル(K)の上位バイト比較用コンパレータからのCompU(K)信号とPSレジスタからのPS(K)信号、および図示しないアドレス(K−1)のLower用CAMセル(K−1)のPSレジスタからのPS(K−1)信号を入力とし、所定の一致状況を表す信号を生成する。また、PSレジスタ55は、一致状況検出回路54の出力信号(所定の一致状況を表す信号)を格納する。なお、一致状況は、現在の処理対象のデータと登録データ(K+1)とが一致しているか否かに留まらず、次の処理対象のデータが次の登録データ(K+2)と連続一致する可能性があるか否かをも表している。
図4に示すように、ここでは、一致状況検出手段が一致状況検出回路とPSレジスタにより構成される。
また、図4の「CompL_ORへ」とは、各CAMセルの下位バイト比較用コンパレータからのCompL信号の論理和を演算する制御回路の論理回路へ各CompL信号を供給することを示す。同様に「Ps2_ORへ」、「Comp2_ORへ」、「Hit_cmp_ORへ」とは、後述する各CAMセからのPs2信号、Comp2信号、Hit_cmp信号のそれぞれの論理和を演算する制御回路の各論理回路へ各Ps2信号、Comp2信号、Hit_cmp信号を供給することを示す。2バイト処理用CAMセル列における所定の一致状況を表す信号とはPs2信号、Comp2信号、Hit_cmp信号、およびPSレジスタからのPS信号を指す。また一致長をカウントするために用いられる比較結果として、CompL信号が用いられる。また、制御回路は、各CAMセルからのPs2信号、Comp2信号、Hit_cmp信号、およびCompL信号の論理和結果を基に生成すべきコードの種類を判定する。
また、図4の「CompL_ORへ」とは、各CAMセルの下位バイト比較用コンパレータからのCompL信号の論理和を演算する制御回路の論理回路へ各CompL信号を供給することを示す。同様に「Ps2_ORへ」、「Comp2_ORへ」、「Hit_cmp_ORへ」とは、後述する各CAMセからのPs2信号、Comp2信号、Hit_cmp信号のそれぞれの論理和を演算する制御回路の各論理回路へ各Ps2信号、Comp2信号、Hit_cmp信号を供給することを示す。2バイト処理用CAMセル列における所定の一致状況を表す信号とはPs2信号、Comp2信号、Hit_cmp信号、およびPSレジスタからのPS信号を指す。また一致長をカウントするために用いられる比較結果として、CompL信号が用いられる。また、制御回路は、各CAMセルからのPs2信号、Comp2信号、Hit_cmp信号、およびCompL信号の論理和結果を基に生成すべきコードの種類を判定する。
次に、図4に示したUpper用CAMセル(K)40及びLower用CAMセル(K+1)50について、一致状況検出回路の内部構成を含めて詳しく述べる。
図5にUpper用CAMセル(K)40及びLower用CAMセル(K+1)50の構成図を示す。
図5にUpper用CAMセル(K)40及びLower用CAMセル(K+1)50の構成図を示す。
Upper用CAMセル(K)40の一致状況検出回路44において連続一致継続検出用AND回路46は、下位バイト比較用コンパレータ43からのCompL(K)信号と、隣接する図示しないアドレス(K−1)のLower用CAMセル(K−1)の上位バイト比較用コンパレータからのCompU(K−1)信号と、隣接する図示しないアドレス(K−2)のUpper用CAMセル(K−2)のPSレジスタからのPS(K−2)信号を入力とし、この3つの信号の論理積を出力する。この連続一致継続検出用AND回路46の出力信号がPs2(K)信号となる。したがって、Ps2(K)信号が値“1”(論理“H”)のときには、現在の処理対象であるIDBR_Lowerがアドレス(K)のCAMセルに登録されているデータと一致し、かつ現在の処理対象のIDBR_Upperがアドレス(K−1)のCAMセルに登録されているデータと一致し、さらに少なくとも1クロック前の処理対象のIDBR_Lowerがアドレス(K−2)のCAMセルに登録されているデータと一致していることがわかる。つまり、少なくとも3バイト長のデータ列が2バイト処理用CAMセル列に登録されているデータ列と一致していると判定できる。また、この場合には、現在の処理対象の被圧縮データに続く被圧縮データが次のアドレス以降の登録データと連続して一致していく可能性があると判定できるので、制御回路はその後の一致状況を基に、このデータ列を含む少なくとも3バイト長のデータ列が圧縮コードに置き換わるように当該データ圧縮装置を制御する。また、この場合、制御回路における論理演算結果は、Ps2_OR=1となる。制御回路から値“1”(論理“H”)のPs2_OR信号が一致長カウンタへ送られると、一致長カウンタはカウンタ値を2増加させる。
新規連続一致検出用AND回路47は、下位バイト比較用コンパレータ43からのCompL(K)信号と、隣接する図示しないアドレス(K−1)のLower用CAMセル(K−1)の上位バイト比較用コンパレータからのCompU(K−1)信号を入力とし、この2つの信号の論理積を出力する。この新規連続一致検出用AND回路47の出力信号がComp2(K)信号となる。したがって、Comp2(K)信号が値“1”(論理“H”)のときには、現在の処理対象のIDBR_Lowerがアドレス(K)のCAMセルに登録されているデータと一致し、かつ現在の処理対象のIDBR_Upperがアドレス(K−1)のCAMセルに登録されているデータと一致していることがわかる。この場合、制御回路における論理演算結果は、Comp2_OR=1となる。また、Ps2_OR信号が値“0”(論理“L”)であってComp2_OR信号が値“1”(論理“H”)の場合には、新規に2バイトのデータ一致が検出されたことになる。この場合、現在の処理対象の被圧縮データに続く被圧縮データが次のアドレス以降の登録データと連続して一致していく可能性があると判定できるので、制御回路はその後の一致状況を基に、このデータ列を含む少なくとも2バイト長のデータ列が圧縮コードに置き換わるように当該データ圧縮装置を制御する。また、制御回路から一致長カウンタへ値“0”(論理“L”)のPs2_OR信号と値“1”(論理“H”)のComp2_OR信号が送られると、一致長カウンタはそれまでのカウンタ値を無効にしてカウンタ値を“2”とする。
連続一致検出用AND回路48は、上位バイト比較用コンパレータ42からのCompU(K)信号と、隣接する図示しないアドレス(K−1)のLower用CAMセル(K−1)のPSレジスタのPS(K−1)信号を入力とし、この2つの信号の論理積を出力する。この連続一致検出用AND回路48の出力信号がHit_cmp(K)信号となる。したがって、このHit_cmp(K)信号が値 “1”(論理“H”)のときには、現在の処理対象のIDBR_Upperがアドレス(K)のCAMセルに登録されているデータと一致し、さらに少なくとも1クロック前の処理対象のIDBR_Lowerがアドレス(K−1)のCAMセルに登録されているデータと一致していることがわかる。つまり、少なくとも2バイト長のデータ列が2バイト処理用CAMセル列に登録されているデータ列と一致し、かつその一致は現在の処理対象のIDBR_Upperまでであると判定できる。したがって、制御回路は、“Hit_cmp_OR”のみが値“1”(論理“H”)の場合、現在の処理対象のIDBR_Upperまでの少なくとも2バイト長のデータ列が圧縮コードに置き換わり、現在の処理対象のIDBR_Lowerがリテラルコードに置き換わるように当該データ圧縮装置を制御する。また、制御回路から値“1”(論理“H”)のHit_cmp_OR信号が一致長カウンタへ送られると、一致長カウンタはカウンタ値を1増加させる。
なお、一致長カウンタは、制御回路からCompL_OR信号も受け、CompL_OR=1(論理“H”)の場合にカウンタ値を“1”増加させる。また、一致長カウンタは、制御回路からの全ての信号が値“0”(論理“L”)であるとき、カウンタ値をクリアする。
また、CompL_OR信号のみが値“1”(論理“H”)の場合、IDBR_Lower以降のデータ列が新規に登録データ列と一致する可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
セレクタ49は、下位バイト比較用コンパレータ43からのCompL(K)信号と、連続一致継続検出用AND回路46からのPs2(K)信号と、新規連続一致検出用AND回路47からのComp2(K)信号を入力とし、そのいずれかをPs2_OR信号、Comp2_OR信号、およびHit_cmp_OR信号の結果に応じて選択し、PSレジスタに格納する。
すなわち、Ps2_OR=1ならばその他のOR信号にかかわらず連続一致継続検出用AND回路46を選択する。Ps2_OR=0、Hit_cmp_OR=0、Comp2_OR=1の場合とPs2_OR=0、Hit_cmp_OR=1、Comp2_OR=1の場合には新規連続一致検出用AND回路47を選択する。Ps2_OR=0、Hit_cmp_OR=0、Comp2_OR=0の場合とPs2_OR=0、Hit_cmp_OR=1、Comp2_OR=0の場合には下位バイト比較用コンパレータ43を選択する。
Lower用CAMセル(K+1)50の連続一致継続検出用AND回路56、新規連続一致検出用AND回路57、連続一致検出用AND回路58、およびセレクタ59の動作は、上記した連続一致継続検出用AND回路46、新規連続一致検出用AND回路47、連続一致検出用AND回路48、およびセレクタ49と同様である。
なお、1バイト長のデータ単位でN個のデータを同時に処理するNバイト処理用CAMセル列の場合、2バイト処理用CAMセル列においてUpper用CAMセルとLower用CAMセルを設けたのと同様に、N種類のCAMセル、すなわち(1/N)バイト目用CAMセル、(2/N)バイト目用CAMセル、・・・、(N/N)バイト目用CAMセルを設ける。
また、各CAMセル内には、2バイト処理用CAMセル列において上位バイト比較用コンパレータと下位バイト比較用コンパレータを設けたのと同様に、N種類のコンパレータ、すなわち(1/N)バイト目比較用コンパレータ、(2/N)バイト目比較用コンパレータ、・・・、(N/N)バイト目比較用コンパレータを設ける。つまり入力データレジスタに格納するバイト数(一定数)と同じ数の比較手段を設ける。
また、2バイト処理用CAMセル列において下位バイト比較用コンパレータに対して連続一致継続検出用AND回路と新規連続一致検出用AND回路を設けたのと同様に、(N/N)バイト目比較用コンパレータに対して、1個の連続一致継続検出用AND回路と(N−1)個の新規連続一致検出用AND回路を設ける。例えば、CAMセル(K)を用いて説明すると、新規連続一致検出用AND回路として、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力を入力とするAND回路と、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力とCAMセル(K−2)の(N−2/N)バイト目比較用コンパレータの出力を入力とするAND回路と、
・・・、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力と・・・CAMセル(K−N+1)の(1/N)バイト目比較用コンパレータの出力を入力とするAND回路を設け、
連続一致継続検出用AND回路として、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力と・・・CAMセル(K−N+1)の(1/N)バイト目比較用コンパレータの出力とCAMセル(K−N)のPSレジスタの出力を入力とするAND回路を設ける。
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力を入力とするAND回路と、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力とCAMセル(K−2)の(N−2/N)バイト目比較用コンパレータの出力を入力とするAND回路と、
・・・、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力と・・・CAMセル(K−N+1)の(1/N)バイト目比較用コンパレータの出力を入力とするAND回路を設け、
連続一致継続検出用AND回路として、
CAMセル(K)の(N/N)バイト目比較用コンパレータ(K)の出力とCAMセル(K−1)の(N−1/N)バイト目比較用コンパレータの出力と・・・CAMセル(K−N+1)の(1/N)バイト目比較用コンパレータの出力とCAMセル(K−N)のPSレジスタの出力を入力とするAND回路を設ける。
このようにN種類のAND回路を設けることにより、少なくとも前回の処理対象の被圧縮データの最下位データと現在の処理対象の被圧縮データからなるデータ列と登録データ列との一致が検出され、且つ次の処理対象の被圧縮データの最上位データが引き続いて一致する可能性のあることが検出されたアドレス位置、ないし、現在の処理対象の被圧縮データの最下位データと登録データとの一致が検出され、且つ次の処理対象の被圧縮データの最上位データが引き続いて一致する可能性のあることが検出されたアドレス位置を検出できる。つまり(N+1)バイト長のデータの連続一致、ないし、最下位データの一致が検出され、且つこの一致に引き続いて連続一致の可能性のあることが検出されたアドレス位置を検出できる。
また、2バイト処理用CAMセル列において上位バイト比較用コンパレータに対して連続一致検出用AND回路を設けたのと同様に、(1/N)バイト目比較用コンパレータないし(N−1/N)バイト目用比較用コンパレータに対して、以下のように連続一致検出用AND回路を設ける。例えば、CAMセル(K)を用いて説明すると、
(1/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)のPSレジスタの出力との論理積をとるAND回路を設け、
(2/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)のPSレジスタの出力との論理積をとるAND回路とを設け、
(3/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−3)のPSレジスタの出力との論理積をとるAND回路を設け、
・・・
(N−1/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果とCAMセル(K−3)の(N−4/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、・・・CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果と・・・CAMセル(K−N+2)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果と・・・CAMセル(K−N+2)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−N+1)のPSレジスタの出力との論理積をとるAND回路を設ける。
(1/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)のPSレジスタの出力との論理積をとるAND回路を設け、
(2/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)のPSレジスタの出力との論理積をとるAND回路とを設け、
(3/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−3)のPSレジスタの出力との論理積をとるAND回路を設け、
・・・
(N−1/N)バイト目比較用コンパレータに対しては、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果とCAMセル(K−3)の(N−4/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、・・・CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果と・・・CAMセル(K−N+2)の(1/N)バイト目比較用コンパレータの比較結果との論理積をとるAND回路と、CAMセル(K−1)の(N−2/N)バイト目比較用コンパレータの比較結果とCAMセル(K−2)の(N−3/N)バイト目比較用コンパレータの比較結果と・・・CAMセル(K−N+2)の(1/N)バイト目比較用コンパレータの比較結果とCAMセル(K−N+1)のPSレジスタの出力との論理積をとるAND回路を設ける。
つまり、下記の式で求められる数の連続一致検出用AND回路を設ける。
以上のように求めた各種論理積と(N/N)バイト目比較用コンパレータの比較結果に対して、2バイト処理用CAMセル列を用いた場合と同様に、制御回路内にてOR演算を行う。制御回路はこのOR演算結果を基にPSレジスタと接続するAND回路を切り替える。
次に、N=2の場合のアドレス生成回路について説明する。図6はN=2の場合のデータ圧縮装置の構成例を示すブロック図である。図6に示すように、N=2の場合、アドレス生成回路は連続一致検出用アドレス生成回路(連続一致検出用アドレス生成手段)60と、コード生成用アドレス生成回路(コード生成用アドレス生成手段)61で構成される。
連続一致検出用アドレス生成回路60は、2バイト処理用CAMセル列11を構成する各CAMセルからのPS(0)〜PS(M−1)信号を入力とし、PS信号が値“1”(論理“H”)となったCAMセルのアドレス情報を生成する。このアドレス情報は、現在の処理対象のIDBR_Lowerに引き続いて次のIDBR_Upperが次のアドレスの登録データに一致する可能性があることが検出されたアドレス位置を表している。また、コード生成用アドレス生成回路61は、各CAMセルからのHit_cmp(0)〜Hit_cmp(M−1)信号を入力とし、Hit_cmp信号が値“1”(論理“H”)となったCAMセルのアドレス情報を生成する。このアドレス情報は、現在の処理対象のIDBR_Upperと登録データとの一致が検出されたアドレス位置を表している。
論理回路62は制御回路14からのHit_cmp_OR信号とPs2_OR信号の反転信号を入力とし、Hit_cmp_OR信号が値“1”(論理“H”)であってPs2_OR信号が値“0”(論理“L”)の場合に、セレクタ63がコードレス生成用アドレス生成回路61の出力を選択するようにする。この構成により、連続一致は途切れるが現在の処理対象のIDBR_Upperまで続いた連続一致を反映したコード生成を実現できる。
コード生成回路15は連続一致検出用アドレス生成回路60とコード生成用アドレス生成回路61からのアドレス情報と一致長カウンタ13のカウンタ値を基に、制御回路14からの指令に応じた処理タイミングで圧縮コードを生成する。
なお、Nバイト処理用CAMセル列を用いた場合、上記Hit_cmp信号に相当する信号が各CAMセルから数式(1)で求められる種類だけ出力されるので、上記コード生成用アドレス生成回路に相当するアドレス生成回路を数式(1)で求められる種類だけ用意し、各種OR演算の結果に応じてコード生成回路に接続されるアドレス生成回路が切り替わるように構成する。
次に、上記2バイト処理用CAMセル列を用いてデータ圧縮を行った例を図7に示す。
図7において最上段は、外部のブロックに蓄積されている被圧縮データを示す。
図7の2段目はデータ圧縮装置の動作クロックを示す。ここでは12クロック目までの処理を示している。
図7において最上段は、外部のブロックに蓄積されている被圧縮データを示す。
図7の2段目はデータ圧縮装置の動作クロックを示す。ここでは12クロック目までの処理を示している。
図7の3段目のIDBRは現在の処理対象の2バイトデータを示す。つまり3段目のIDBRは現在入力データレジスタに格納されている2バイトデータに相当し、毎クロック2バイトずつ被圧縮データが入力データレジスタに取り込まれている様子を表している。
図7の4段目のB_IDBRAおよびHistoryレジスタのうちのB_IDBRAは、リテラルコードを生成するためにレジスタAに格納された1クロック遅延データを示す。またHistoryレジスタはスライド辞書を示している。
図7の5段目と6段目は、リテラルコードを生成するためにレジスタB、Cに格納された2、3クロック遅延データを示している。つまり、4〜6段目は、リテラルコードの生成で使用される可能性のあるデータのシフトの様子を示している。
図7の7段目は、データ圧縮装置の出力であるコード生成結果を示している。7段目において“0−”が付加されたものがリテラルコードであり、“1−”が付加されたものが圧縮コードである。例えばCLK=7では、“1−AB”及び“0−D”のコード生成が行われる。つまり、このタイミングで“AB”の圧縮コード及び“D”のリテラルコードが同時に生成され、ABの圧縮コードに続いてDのリテラルコードが出力される。
リテラルコードを生成すべきであるか、圧縮コードを生成すべきであるかは、図7の7段目のコード生成結果の下に示すPs2_OR、Hit_cmp_OR、Comp2_OR、およびCompL_ORの4つの指標により判断する。
また、上記4つの指標以降のPS(0)〜PS(13)はアドレス生成回路の出力を示す。但し、“1”(論理“H”)が連続一致検出用アドレス生成回路からの出力(つまりPSレジスタからの出力)を表し、“(1)”(論理“H”)がコード生成用アドレス生成回路からの出力を表している。
図7のPS(13)の下の“MatchLen”は、コード生成回路が一致長カウンタからのカウンタ値を基に判定した「連続一致が続いたバイト長」を示し、その下の“MatchPtr”は、コード生成回路がアドレス生成回路からのアドレス情報を基に判定した「データ一致が開始した場所(アドレス値)」を示す。“MatchLen”はカウンタ値そのものである。圧縮コードは、この“MatchPtr”と、“MatchLen”を成分として生成される。なお、一致が2バイト未満の場合はリテラルコードが生成される。
まずCLK(クロック)=1では、2バイト処理用CAMセル列(記憶手段列)に履歴されているデータがないため、比較結果は全て“0”(論理“L”)となる。この比較結果を受けた制御回路の出力とアドレス生成回路の出力がCLK=2に表われる。この結果、CLK=5においてリテラルコード“0−AB”が生成される。
CLK=2では、現在の処理対象のIDBR_LowerとCAMセル(0)の登録データが一致する。その結果CLK=3において、制御回路の論理演算結果がCompL_OR=1(論理“H”)となる。したがって、アドレス生成回路(連続一致検出用アドレス生成回路)の出力がPS(0)=1となる。よって、CLK=3においては、MatchLen=1、MatchPtr=0となる。
この場合、“CompL_OR”のみが“1”(論理“H”)となるので、このIDBR_Lowe以降のデータ列が新規にアドレス(0)以降の登録データ列と一致している可能性があり、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図7に示す例では、CLK=3において現在の処理対象のIDBR_UpperとCAMセル(1)の登録データが一致するので、CLK=4において、制御回路の論理演算結果がHit_cmp_OR=1となる。この結果、制御回路とコード生成回路は協働して、CLK=6においてリテラルコード“0−C”を生成する。
また、アドレス生成回路(コード生成用アドレス生成回路)の出力がPS(1)=(1)となる。よって、CLK=4においては、MatchLen=2、MatchPtr=0となる。この結果、制御回路とコード生成回路は協働して、CLK=7において圧縮コード“1−AB”とリテラルコード“0−D”を生成し、圧縮コード“1−AB”に続いてリテラルコード“0−D”が出力されるようにする。
CLK=4では、現在の処理対象のIDBR_LowerとCAMセル(0)およびCAMセル(3)の登録データが一致する。その結果CLK=5において、制御回路の論理演算結果がCompL_OR=1なる。したがって、アドレス生成回路(連続一致検出用アドレス生成回路)の出力がPS(0)=1、PS(3)=1となる。よって、CLK=5においては、“CompL_OR”のみが“1”となるので、MatchLen=1となる。また“MatchPtr”は、若いアドレスが優先されてMatchPtr=0となる。
この場合、“CompL_OR”のみが“1”(論理“H”)となるので、このIDBR_Lower以降のデータ列が新規にアドレス(0)、アドレス(3)以降の登録データ列と一致している可能性があり、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図7に示す例では、CLK=5において現在の処理対象のIDBR_UpperとCAMセル(1)およびCAMセル(4)の登録データ、および現在の処理対象のIDBR_LowerとCAMセル(5)の登録データが一致するので、CLK=6において、制御回路の論理演算結果がPs2_OR=1、Hit_com_OR=1、Comp2_OR=1、CompL_OR=1となる。この結果、制御回路とコード生成回路は協働して、CLK=8においてリテラルコード“0−E”を生成する。
また、コード生成用アドレス生成回路の出力がPS(1)=(1)、PS(4)=(1)、連続一致検出用アドレス生成回路の出力がPS(5)=1となり、連続一致検出用アドレス生成回路が選択されてPS(5)=1のアドレス情報がコード生成回路へ入力される。よって、CLK=6においては、一致長カウンタのカウンタ値はPs2_OR=1を受けて“3”となるので、MatchLen=3となる。またコード生成回路は、前回のアドレス情報であるPS(3)=1、今回のアドレス情報であるPS(5)=1、およびMatchLen=3から判断して、データ一致の開始位置を“3(MatchPtr=3)”と判定する。
この場合、このIDBR_Lower以降のデータがアドレス(5)以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図7に示す例では、CLK=6において現在の処理対象のIDBR_UpperとIDBR_LowerがCAMセル(0)、(1)の登録データ、CAMセル(3)、(4)の登録データ、およびCAMセル(7)、(8)の登録データと連続して一致する。その結果CLK=7において、制御回路の論理演算結果がComp2_OR=1、CompL_OR=1となる。したがって、アドレス生成回路(連続一致検出用アドレス生成回路)の出力がPS(1)=1、PS(4)=1、PS(8)=1となる。このように図7に示す例では、CLK=6において、現在の処理対象のIDBR_UpperとCAMセル(6)の登録データが一致しないことから制御回路とコード生成回路は協働して、CLK=9において圧縮コード“1−ABD”を生成する。
また、CLK=7においては、Comp2_ORが“1”(論理“H”)となるので、MatchLen=2となる。また、PS(1)=1、PS(4)=1、PS(8)=1となるが、アドレスの若い方が優先されるので、MatchPtr=0となる。
この場合、このIDBR_Lower以降のデータがアドレス(1)、アドレス(4)、アドレス(8)以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図7に示す例では、CLK=7において現在の処理対象のIDBR_UpperとCAMセル(2)の登録データが一致する。また、現在の処理対象のIDBR_LowerとCAMセル(5)およびCAMセル(9)の登録データも一致する。その結果CLK=8において、制御回路の論理演算結果がHit_cmp_OR=1、CompL_OR=1となる。したがって、コード生成用アドレス生成回路の出力がPS(2)=(1)、連続一致検出用アドレス生成回路の出力がPS(5)=1、PS(9)=1となり、コード生成用アドレス生成回路が選択されてPS(2)=(1)のアドレス情報がコード生成回路へ入力される。よって、CLK=8においては、一致長カウンタのカウンタ値はHit_cmp_OR=1を受けて“3”となるので、MatchLen=3となる。またコード生成回路は、前回のアドレス情報であるPS(1)=1、今回のアドレス情報であるPS(2)=(1)、およびMatchLen=3から判断して、データ一致の開始位置を“0(MatchPtr=0)”と判定する。この結果、制御回路とコード生成回路は協働して、CLK=11において圧縮コード“1−ABC”を生成する。
また、CLK=8においては、Hit_cmp_ORとCompL_ORが“1”となるので、“MatchLen”と“MatchPtr”の判定処理完了後、一致長カウンタのカウンタ値が“3”から“1”へ移行し、PS(5)=1、PS(9)=1のアドレス情報がコード生成回路へ入力される。そして、この場合、このIDBR_Lower以降のデータがアドレス(5)、アドレス(9)以降の登録データと継続して一致している可能性があるで、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図7に示す例では、CLK=8において現在の処理対象のIDBR_UpperとCAMセル(6)の登録データが一致する。その結果CLK=9において、制御回路の論理演算結果がHit_cmp_OR=1となる。したがって、アドレス生成回路(コード生成用アドレス生成回路)の出力がPS(6)=(1)となる。よって、CLK=9においては、一致長カウンタのカウンタ値はHit_cmp_OR=1を受けて“2”となるので、MatchLen=2となる。またコード生成回路は、前回のアドレス情報であるPS(5)=1、今回のアドレス情報であるPS(6)=(1)、およびMatchLen=2から判断して、データ一致の開始位置を“5(MatchPtr=5)”と判定する。この結果、制御回路とコード生成回路は協働して、CLK=12において圧縮コード“1−DE”とリテラルコード“0−J”を生成し、圧縮コード“1−DE”に続いてリテラルコード“0−J”が出力されるようにする。
(実施の形態2)
以下、本実施の形態2におけるデータ圧縮装置について図8〜14を用いて説明する。但し、実施の形態1で説明した部材(図1〜5参照。)に対応する部材については同一の符号を付して、詳細な説明を省略する。
以下、本実施の形態2におけるデータ圧縮装置について図8〜14を用いて説明する。但し、実施の形態1で説明した部材(図1〜5参照。)に対応する部材については同一の符号を付して、詳細な説明を省略する。
図8は本実施の形態2におけるデータ圧縮装置の構成例を示すブロック図である。
図8に示すデータ圧縮装置は、新規履歴データ一致検出用コンパレータ(新規履歴データ一致検出手段)80を備え、Nバイト処理用CAMセル列11が入力データレジスタ10から供給されたNバイトデータと新規履歴データ一致検出用コンパレータ80による比較結果(検出結果)を基に、被圧縮データ内で繰り返されるデータ列の検索を行う点が実施の形態1と異なる(図1参照。)。
図8に示すデータ圧縮装置は、新規履歴データ一致検出用コンパレータ(新規履歴データ一致検出手段)80を備え、Nバイト処理用CAMセル列11が入力データレジスタ10から供給されたNバイトデータと新規履歴データ一致検出用コンパレータ80による比較結果(検出結果)を基に、被圧縮データ内で繰り返されるデータ列の検索を行う点が実施の形態1と異なる(図1参照。)。
実施の形態1におけるデータ圧縮装置は、新規に履歴されるNバイトデータ(ストリームデータの先頭のNバイトデータ)内で一致するデータが存在している場合、その一致を見逃してしまう。例えば、N=2の場合、図14に示すように新規に履歴される2バイトのデータが“A”と“A”であった場合(CLK=1)、このデータ一致を見逃してしまうので、CLK=5においてリテラルコード“0−AA”が生成される。この一致の見逃しは圧縮率の低下を意味する。
本実施の形態2におけるデータ圧縮装置では、この点を解決するために、新規履歴データ一致検出用コンパレータ80を設けた。新規履歴データ一致検出用コンパレータ80は入力データレジスタ10からNバイトデータが供給されると、1バイト単位でこのNバイトデータ内の1バイトデータ同士を比較して一致を検出する。
また、Nバイト処理用CAMセル列11内の各一致状況検出手段は新規履歴データ一致検出用コンパレータ80の比較結果(検出結果)および比較手段列の比較結果に対応して所定の一致状況を表す信号を生成する。
また、制御回路14はNバイト処理用CAMセル列11の出力信号(比較手段列または新規履歴データ一致検出用コンパレータ80のうちの選択された一方の出力と、所定の一致状況を表す信号)を論理演算して一致長カウンタ13へ出力する。このように構成することで、一致長カウンタ13において、Nバイト処理用CAMセル列11により検出された所定の一致状況に対応してカウンタ値を変化させることができる。
なお、本実施の形態2では、図示していないが、制御回路14は、新規履歴データ一致検出用コンパレータ80とも接続されており、外部のブロックからの被圧縮データの受信から圧縮コード生成までのデータの管理や、外部のブロックからの被圧縮データの受信からリテラルコード(圧縮しないデータ列)の生成までのデータの管理を行う。
次に、Nバイト処理用CAMセル列11の具体例として、2バイト処理用CAMセル列について説明する。
図9に2バイト処理用CAMセル列の構成例を示す。この2バイト処理用CAMセル列20は、図2に示す2バイト処理用CAMセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果(検出結果)が各Upper用CAMセルへ入力されている点のみが異なる。
図9に2バイト処理用CAMセル列の構成例を示す。この2バイト処理用CAMセル列20は、図2に示す2バイト処理用CAMセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果(検出結果)が各Upper用CAMセルへ入力されている点のみが異なる。
次に、Nバイト処理用CAMセル列について説明する。
図10にNバイト処理用CAMセル列の構成例を示す。このNバイト処理用CAMセル列30は、図3に示すNバイト処理用CAMセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果(検出結果)が、N/Nバイト目用CAMセルを除くCAMセルへ入力されている点のみが異なる。新規履歴データ一致検出用コンパレータの比較結果はデータ一致の開始位置を教示する情報として用いられるものであるので、新規に履歴されるデータ列の最後のデータを履歴するN/Nバイト目用CAMセルへ入力する必要はない。
図10にNバイト処理用CAMセル列の構成例を示す。このNバイト処理用CAMセル列30は、図3に示すNバイト処理用CAMセル列と比べて、新規履歴データ一致検出用コンパレータの比較結果(検出結果)が、N/Nバイト目用CAMセルを除くCAMセルへ入力されている点のみが異なる。新規履歴データ一致検出用コンパレータの比較結果はデータ一致の開始位置を教示する情報として用いられるものであるので、新規に履歴されるデータ列の最後のデータを履歴するN/Nバイト目用CAMセルへ入力する必要はない。
次に2バイト処理用CAMセル列の隣接する2つのCAMセル(基本セル)の接続状況及び内部構成について、図11を用いて説明する。図11に示す基本セルは、図4に示す基本セルと比べて、新規履歴データ一致検出用コンパレータの比較結果(検出結果)がUpper用CAMセル40の一致状況検出回路44へ入力され、一致状況検出回路44が下位バイト比較用コンパレータ41もしくは新規履歴データ一致検出用コンパレータのうちの選択された一方の出力を用いて所定の一致状況を表す信号を生成する点が異なる。
なお、図11の「CompL_ORへ」には、下位バイト比較用コンパレータ41もしくは新規履歴データ一致検出用コンパレータのうちの選択された一方の出力が、制御回路の論理演算回路へ供給されることを表している。
次に、図11に示したUpper用CAMセル(K)40及びLower用CAMセル(K+1)50について、一致状況検出回路の内部構成を含めて説明する。
図12にUpper用CAMセル(K)50及びLower用CAMセル(K+1)50の構成図を示す。
図12にUpper用CAMセル(K)50及びLower用CAMセル(K+1)50の構成図を示す。
図12に示す2バイト処理用CAMセル列は、図5に示すNバイト処理用CAMセル列と比べて、Upper用CAMセル(K)50の一致状況検出回路が新規履歴データ一致検出用セレクタ(選択手段)120を備える点が異なる。
新規履歴データ一致検出用セレクタ120は、下位バイト比較用コンパレータ43からのCompL(K)信号と新規履歴データ一致検出用コンパレータからの比較結果を表す信号とを入力とし、新規に履歴されるIDBR_UpperとIDBR_Lowerが一致するとき、新規履歴データ一致検出用コンパレータからの比較結果を表す信号を出力する。このときの新規履歴データ一致検出用コンパレータからの比較結果を表す信号は値“1”(論理“H”)となっている。また、一致しないとき、新規履歴データ一致検出用セレクタ120は、下位バイト比較用コンパレータ43からのCompL(K)信号を出力する。この新規履歴データ一致検出用セレクタ120の出力が制御回路内のCompL_ORを演算する論理回路へ送られる。
次に、上記2バイト処理用CAMセル列を用いてデータ圧縮を行った例を図13に示す。図13の各段に示すデータ等の意味は図7と同様である。
図13に示すように、CLK=1において入力データレジスタに格納された新規に履歴されるIDBR_UpperとIDBR_Lowerが一致すると、新規履歴データ一致検出用コンパレータからの比較結果を表す信号が値“1”(論理“H”)となり、CAMセル(0)等のPSレジスタにこの値“1”の信号が格納される。したがって、CLK=2において制御回路の論理演算結果がCompL_OR=1となり、アドレス生成回路(連続一致検出用アドレス生成回路)の出力がPS(0)=1となる。よって、CLK=2においては、MatchLen=1、MatchPtr=0となる。
図13に示すように、CLK=1において入力データレジスタに格納された新規に履歴されるIDBR_UpperとIDBR_Lowerが一致すると、新規履歴データ一致検出用コンパレータからの比較結果を表す信号が値“1”(論理“H”)となり、CAMセル(0)等のPSレジスタにこの値“1”の信号が格納される。したがって、CLK=2において制御回路の論理演算結果がCompL_OR=1となり、アドレス生成回路(連続一致検出用アドレス生成回路)の出力がPS(0)=1となる。よって、CLK=2においては、MatchLen=1、MatchPtr=0となる。
この場合、このIDBR_Lower以降の処理対象のデータがアドレス(0)以降の登録データと継続して一致している可能性があるので、制御回路は次以降の一致状況も判断してコードの種類を判定する。
図13に示す例では、CLK=2において入力データレジスタに格納された新規に履歴されるIDBR_UpperとIDBR_Lowerが一致するので、新規履歴データ一致検出用コンパレータからの比較結果を表す信号が値“1”となり、CAMセル(2)等のPSレジスタにこの値“1”の信号が格納される。またこのIDBR_UpperとIDBR_LowerはCAMセル(0)、(1)の登録データ列とも一致する。したがって、CAMセル(2)のPs2信号が値“1”(論理“H”)となるので、CLK=3において制御回路の論理演算結果がPs2_OR=1、Hit_cmp_OR=1、Comp2_OR=1、CompL_OR=1となり、連続一致検出用アドレス生成回路の出力がPS(2)=1となる。この結果、CLK=5においてリテラルコード“0−A”が生成される。
図13に示す例では、データ“A”が9連続して入力され、CLK=6において、制御回路の論理演算結果がHit_cmp_OR=1となり、アドレス生成回路(コード生成回路)からPS(7)=(1)のアドレス情報が出力され、MatchLen=8、MatchPtr=0となる。この結果、制御回路とコード生成回路は協働して、CLK=9において圧縮コード“1−A8”とリテラルコード“0−B”を生成する。
一方、実施の形態1におけるデータ圧縮装置では、図14に示すように、CLK=1において入力データレジスタに格納された新規に履歴されるIDBR_UpperとIDBR_Lowerが一致した場合であっても、その一致を見逃してしまうので、CLK=5においてリテラルコード“0−AB”が生成され、CLK=9において圧縮コード“1−A7”が生成される。
そのため実施の形態1におけるデータ圧縮装置では、図13の1段目に示す被圧縮データが入力された場合、図14に示すように、128ビットのデータ入力に対して、データ圧縮後のデータサイズが73ビット、圧縮率で1.75倍となるのに対して、実施の形態2におけるデータ圧縮装置では、データ圧縮後のデータサイズが66ビット、圧縮率で1.93倍となり、実施の形態1におけるデータ圧縮装置に比べて圧縮率が向上する。
(実施の形態3)
以下、本実施の形態3におけるデータ圧縮装置について図15、16を用いて説明する。図15、図16は、実施の形態1において説明したN=2の場合のアドレス(K)のUpper用CAMセル(K)の一部を抜き出したものに相当する。但し、図4に示す部材に対応する部材には同一の符号を付して、詳細な説明を省略する。また、ここではUpper用CAMセルを用いて説明するが、Lower用CAMセルについても同様であるので説明を省略する。また、実施の形態2において説明したN=2の場合のUpper用CAMセル、Lower用CAMセルについても同様である。
以下、本実施の形態3におけるデータ圧縮装置について図15、16を用いて説明する。図15、図16は、実施の形態1において説明したN=2の場合のアドレス(K)のUpper用CAMセル(K)の一部を抜き出したものに相当する。但し、図4に示す部材に対応する部材には同一の符号を付して、詳細な説明を省略する。また、ここではUpper用CAMセルを用いて説明するが、Lower用CAMセルについても同様であるので説明を省略する。また、実施の形態2において説明したN=2の場合のUpper用CAMセル、Lower用CAMセルについても同様である。
図7と図13に示すように、PSレジスタの出力は殆ど“1”(論理“H”)とならない。PSレジスタは、通常512の倍数個設けられ、また全てのPSレジスタには常にクロック信号が供給されるため、消費電力の浪費も無視できない。
そこで図15に示すように、例えば2バイト処理用CAMセル列において、一致状況検出回路44と、PSレジスタ45との間にクロック供給制御用AND回路150を設ける。
クロック供給制御用AND回路150には、図5を用いて説明したように、セレクタ49により選択された下位バイト比較用コンパレータ43からのCompL(K)信号もしくは連続一致継続検出用AND回路46からのPs2(K)信号もしくは新規連続一致検出用AND回路47からのComp2(K)信号のうちの何れかとクロック信号とが入力され、その論理積を出力する(2入力1出力)。
このように構成することで、PSレジスタ45には、セレクタ49により選択された回路の出力の値が“1”(論理“H”)の場合にのみ、クロック信号が供給される。CompL(K)信号、Ps2(K)信号、Comp2(K)信号は、現在の処理対象のIDBR_Lower(最下位のデータ)がアドレス(K)の登録データに一致したのに続いて少なくとも次のIDBR_Upper(最上位のデータ)が次のアドレス(K+1)の登録データに一致する可能性があることを知らせる信号である。
なおNバイトの場合もN=2の場合と同様に、所定の一致状況を表す信号とクロック信号を入力とするクロック供給制御用AND回路を設ければよい。
上記のようにPSレジスタへのクロック供給を制御することで、PSレジスタの出力が“0”(論理“L”)となるCAMセルでの電力消費量が削減されるため、多数のPSレジスタが必要なNバイト処理用CAMセル列を構成しても必要以上に電力を消費することがなくなる。
上記のようにPSレジスタへのクロック供給を制御することで、PSレジスタの出力が“0”(論理“L”)となるCAMセルでの電力消費量が削減されるため、多数のPSレジスタが必要なNバイト処理用CAMセル列を構成しても必要以上に電力を消費することがなくなる。
また、図15に示す構成では、一致状況検出回路の出力(所定の一致状況を表す信号)が“0”(論理“L”)の場合、PSレジスタ45にクロック信号が供給されないため、PSレジスタ45に“1”(論理“H”)が設定されると“0”(論理“L”)にクリアされないという問題がある。
そこで図16に示すように、一致状況検出回路44とPSレジスタ45の間に、クロック供給制御用AND回路150に加えて、PSレジスタ45をクリアするための否定論理回路160を設ける。
否定論理回路160には一致状況検出回路44の出力、すなわちセレクタ49により選択された下位バイト比較用コンパレータ43からのCompL(K)信号もしくは連続一致継続検出用AND回路46からのPs2(K)信号もしくは新規連続一致検出用AND回路47からのComp2(K)信号のうちの何れかが入力され、その出力はPSレジスタ45の非同期リセット端子に接続される。
このように構成することで、セレクタ49により選択された信号が値“0”(論理“L”)になるとPSレジスタ45に非同期リセットがかかるため、PSレジスタ45をリセットすることができる。
なおNバイトの場合もN=2の場合と同様に、所定の一致状況を表す信号を入力とし、その出力がPSレジスタの非同期リセット端子に接続される否定論理回路を設ければよい。
以上のように、本実施の形態3によれば、PSレジスタへ格納する値が“1”(論理“H”)の場合にのみPSレジスタへクロック信号を供給するので、無駄な電力消費を抑えることができる。
本発明にかかるデータ圧縮装置は、一定長のデータを一定数ずつ同時に比較処理できるので、クロック周波数(動作クロック)を上げることなくデータ圧縮処理を高速化でき、かつ消費電力を抑えることができ、例えば、ディジタル・データ記憶装置等におけるデータ送受信の際のデータ圧縮に有用である。
10 入力データレジスタ
11 Nバイト処理用CAMセル列
12 アドレス生成回路
13 一致長カウンタ
14 制御回路
15 コード生成回路
20 2バイト処理用CAMセル列
30 Nバイト処理用CAMセル列
40 Upper用CAMセル(K)
41、51 Historyレジスタ
42、52 上位バイト比較用コンパレータ
43、53 下位バイト比較用コンパレータ
44、54 一致状況検出回路
45、55 PSレジスタ
50 Lower用CAMセル(K+1)
46、56 連続一致継続検出用AND回路
47、57 新規連続一致検出用AND回路
48、58 連続一致検出用AND回路
49、59 セレクタ
60 連続一致検出用アドレス生成回路
61 コード生成用アドレス生成回路
62 論理回路
63 セレクタ
80 新規履歴データ一致検出用コンパレータ
150 クロック供給制御用AND回路
160 否定論理回路
170 17バイトシフトレジスタ
171 512バイトシフトレジスタ
172 セレクタ
173 コンパレータ列
174 一致状況検出手段
175 一致情報格納レジスタ
176 制御回路
180 バッファ
181 CAMセル列
182 比較結果制御手段
183 アドレス生成回路
184 一致長カウンタ
185 コード生成回路
186 制御回路
11 Nバイト処理用CAMセル列
12 アドレス生成回路
13 一致長カウンタ
14 制御回路
15 コード生成回路
20 2バイト処理用CAMセル列
30 Nバイト処理用CAMセル列
40 Upper用CAMセル(K)
41、51 Historyレジスタ
42、52 上位バイト比較用コンパレータ
43、53 下位バイト比較用コンパレータ
44、54 一致状況検出回路
45、55 PSレジスタ
50 Lower用CAMセル(K+1)
46、56 連続一致継続検出用AND回路
47、57 新規連続一致検出用AND回路
48、58 連続一致検出用AND回路
49、59 セレクタ
60 連続一致検出用アドレス生成回路
61 コード生成用アドレス生成回路
62 論理回路
63 セレクタ
80 新規履歴データ一致検出用コンパレータ
150 クロック供給制御用AND回路
160 否定論理回路
170 17バイトシフトレジスタ
171 512バイトシフトレジスタ
172 セレクタ
173 コンパレータ列
174 一致状況検出手段
175 一致情報格納レジスタ
176 制御回路
180 バッファ
181 CAMセル列
182 比較結果制御手段
183 アドレス生成回路
184 一致長カウンタ
185 コード生成回路
186 制御回路
Claims (30)
- 被圧縮データを入力とし、前記被圧縮データを入力順に一定長のデータに分けて一定数ずつ同時にアドレスの付与された記憶手段列に履歴していき、前記記憶手段列に既に履歴されている何れかのデータ列と一致する前記被圧縮データのデータ列が入力されると、その一致したデータ列の先頭のデータを履歴する前記記憶手段のアドレスとその一致長とにより表される圧縮コードを生成し、その一致したデータ列を前記圧縮コードに置き換えることで前記被圧縮データを圧縮するデータ圧縮装置であって、
前記記憶手段列に既に履歴されている各データと前記一定長のデータに分けられた前記一定数の前記被圧縮データとを同時に比較する比較手段列と、
前記被圧縮データを入力順に前記一定長のデータに分けて前記一定数ずつ同時に格納し前記記憶手段列と前記比較手段列に供給する格納手段と、
前記記憶手段列を構成する各記憶手段毎に設けられ、前記比較手段列の比較結果に対応して所定の一致状況を検出する一致状況検出手段と、
前記一致状況検出手段により検出された前記所定の一致状況に対応する前記記憶手段のアドレス情報を生成するアドレス生成手段と、
前記一致状況検出手段により検出された前記所定の一致状況に対応してカウンタ値を変化させる一致長カウンタ手段と、
前記アドレス情報と前記カウンタ値を基に前記圧縮コードを生成する圧縮コード生成手段と、
を具備することを特徴とするデータ圧縮装置。 - 前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項1記載のデータ圧縮装置。
- 前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする請求項1もしくは2のいずれかに記載のデータ圧縮装置。
- 前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項3記載のデータ圧縮装置。
- 前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする請求項4記載のデータ圧縮装置。
- 請求項1記載のデータ圧縮装置であって、前記一定長が1バイト長、前記一定数が2であり、前記格納手段は前記被圧縮データを入力順に1バイト長のデータに分けて2つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と前記比較手段列へ供給することを特徴とするデータ圧縮装置。
- 請求項6記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とするデータ圧縮装置。
- 前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項7記載のデータ圧縮装置。
- 請求項7もしくは8のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とするデータ圧縮装置。
- 前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項9記載のデータ圧縮装置。
- 請求項10記載のデータ圧縮装置であって、
前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、
を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とするデータ圧縮装置。 - 請求項11記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用AND回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とするデータ圧縮装置。
- 請求項11もしくは12のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用AND回路、前記新規連続一致検出用AND回路、前記連続一致検出用AND回路、および前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とするデータ圧縮装置。
- 請求項1記載のデータ圧縮装置であって、
前記格納手段から前記一定数の前記一定長のデータが供給され、新規に履歴されるデータ列内での一致を検出する新規履歴データ一致検出手段を備え、
前記一致状況検出手段が、前記比較手段列の比較結果および前記新規履歴データ一致検出手段の検出結果に対応して前記所定の一致状況を検出する
ことを特徴とするデータ圧縮装置。 - 前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項14記載のデータ圧縮装置。
- 前記比較手段列は、前記一定数ずつの比較手段が、前記記憶手段列を構成する各記憶手段毎に設けられてなることを特徴とする請求項14もしくは15のいずれかに記載のデータ圧縮装置。
- 前記記憶手段とそれに対応する前記一定数ずつの前記比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項16記載のデータ圧縮装置。
- 前記一致状況検出手段は、検出した前記所定の一致状況を表す信号を格納するレジスタを含み、前記新規履歴データ一致検出手段の検出結果と、前記一致状況検出手段に対応する前記一定数の前記比較手段の比較結果と、隣接する所定数の前記一致状況検出手段に対応する前記一定数の前記比較手段による比較結果と、隣接する所定数の前記一致状況検出手段に含まれる前記レジスタから出力される前記所定の一致状況を表す信号とを基に、前記所定の一致状況を表す信号を生成することを特徴とする請求項17記載のデータ圧縮装置。
- 請求項14記載のデータ圧縮装置であって、前記一定長が1バイト長、前記一定数が2であり、前記格納手段は前記被圧縮データを入力順に1バイト長のデータに分けて2つずつ同時に格納し、上位バイトデータと下位バイトデータに分けて前記記憶手段列と、前記比較手段列と、前記新規履歴データ一致検出手段へ供給することを特徴とするデータ圧縮装置。
- 請求項19記載のデータ圧縮装置であって、前記記憶手段列は、前記上位バイトデータ用の上位バイト記憶手段と前記下位バイトデータ用の下位バイト記憶手段が交互に配列されてなることを特徴とするデータ圧縮装置。
- 前記記憶手段列は、前記一定数の自然数倍個の記憶手段からなることを特徴とする請求項20記載のデータ圧縮装置。
- 請求項20もしくは21のいずれかに記載のデータ圧縮装置であって、前記比較手段列は、前記上位バイトデータ用の上位バイト用比較手段および前記下位バイトデータ用の下位バイト用比較手段が各記憶手段毎に設けられてなることを特徴とするデータ圧縮装置。
- 前記記憶手段とそれに対応する前記上位バイト用比較手段と前記下位バイト用比較手段と前記一致状況検出手段とを1つのセルとして、これらのセルがリング状に接続されていることを特徴とする請求項22記載のデータ圧縮装置。
- 請求項23記載のデータ圧縮装置であって、
前記上位バイト記憶手段に対応する前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段と前記新規履歴データ一致検出手段とを選択して、新規に履歴されるデータ同士の一致が検出されると前記新規履歴データ一致検出手段の検出結果を出力し、検出されないときには前記下位バイト用比較手段の比較結果を出力する選択手段と、
前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、
前記選択手段により選択された前記下位バイト用比較手段の比較結果または前記新規履歴データ一致検出手段の検出結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、
を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段の出力のうちの何れかを選択して前記レジスタに格納し、
前記下位バイト記憶手段に対応する前記一致状況検出手段は、
検出した前記所定の一致状況を表す信号を格納するレジスタと、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段に対応する前記上位バイト用比較手段の比較結果と、アドレスが2つ若い前記記憶手段に対応する前記レジスタの出力とを受け、少なくとも前回の処理対象の下位バイトデータから現在の処理対象の下位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致継続検出用AND回路と、
前記下位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記上位バイト用比較手段の比較結果とを受け、少なくとも現在の処理対象の上位バイトデータと下位バイトデータからなるデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する新規連続一致検出用AND回路と、
前記上位バイト用比較手段の比較結果と、アドレスが1つ若い前記記憶手段の前記レジスタの出力とを受け、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に履歴されているデータ列と一致していることを示す信号を出力する連続一致検出用AND回路と、
を備え、前記連続一致継続検出用AND回路もしくは前記新規連続一致検出用AND回路もしくは前記下位バイト用比較手段の出力のうちの何れかを選択して前記レジスタに格納することを特徴とするデータ圧縮装置。 - 請求項24記載のデータ圧縮装置であって、前記アドレス生成手段は、前記一致状況検出手段それぞれの前記レジスタの出力を基に前記アドレス情報を生成する連続一致検出用アドレス生成手段と、前記一致状況検出手段それぞれの前記連続一致検出用AND回路の出力を基に前記アドレス情報を生成するコード生成用アドレス生成手段とを備え、現在の処理対象の上位バイトデータまでのデータ列が前記記憶手段列に既に履歴されている何れかのデータ列と一致している場合にのみ前記コード生成用アドレス生成手段が生成する前記アドレス情報を前記圧縮コード生成手段へ出力することを特徴とするデータ圧縮装置。
- 請求項24もしくは25のいずれかに記載のデータ圧縮装置であって、前記一致長カウンタ手段は、前記連続一致継続検出用AND回路、前記新規連続一致検出用AND回路、前記連続一致検出用AND回路、前記上位バイト記憶手段に対応する前記選択手段により選択された前記下位バイト用比較手段または前記新規履歴データ一致検出手段、および前記下位バイト記憶手段に対応する前記下位バイト用比較手段の出力を基にカウンタ値を変化させることを特徴とするデータ圧縮装置。
- 請求項5もしくは18のいずれかに記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ供給するクロック信号と前記レジスタへ格納する前記所定の一致状況を表す信号との論理積を出力するクロック供給制御用AND回路を含み、
前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用AND回路により前記所定の一致状況を表す信号の前記レジスタへの格納を有効にすることを特徴とするデータ圧縮装置。 - 請求項27記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記所定の一致状況を表す信号を入力とする否定論理回路を含み、
前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とするデータ圧縮装置。 - 請求項11乃至13もしくは24乃至26のいずれかに記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ供給するクロック信号と前記レジスタへ格納する信号との論理積を出力するクロック供給制御用AND回路を含み、
前記被圧縮データのデータ列が少なくとも前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がある場合にのみ前記クロック供給制御用AND回路により前記レジスタへの信号の格納を有効にすることを特徴とするデータ圧縮装置。 - 請求項29記載のデータ圧縮装置であって、
前記一致状況検出手段は、
前記レジスタへ格納する信号を入力とする否定論理回路を含み、
前記被圧縮データのデータ列が前記一致状況検出手段に対応する前記記憶手段に履歴されているデータと次のアドレスの前記記憶手段に履歴されているデータからなるデータ列と一致する可能性がない場合には前記否定論理回路により前記レジスタをクリアすることを特徴とするデータ圧縮装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004064899A JP2005260285A (ja) | 2004-03-09 | 2004-03-09 | データ圧縮装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004064899A JP2005260285A (ja) | 2004-03-09 | 2004-03-09 | データ圧縮装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005260285A true JP2005260285A (ja) | 2005-09-22 |
Family
ID=35085637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004064899A Pending JP2005260285A (ja) | 2004-03-09 | 2004-03-09 | データ圧縮装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005260285A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010154156A (ja) * | 2008-12-25 | 2010-07-08 | Casio Electronics Co Ltd | データ圧縮装置 |
CN115622568B (zh) * | 2022-11-08 | 2023-03-10 | 中科数智能源科技(深圳)有限公司 | 一种油藏数字孪生系统历史数据压缩方法、系统及设备 |
-
2004
- 2004-03-09 JP JP2004064899A patent/JP2005260285A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010154156A (ja) * | 2008-12-25 | 2010-07-08 | Casio Electronics Co Ltd | データ圧縮装置 |
CN115622568B (zh) * | 2022-11-08 | 2023-03-10 | 中科数智能源科技(深圳)有限公司 | 一种油藏数字孪生系统历史数据压缩方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9372887B2 (en) | Compression ratio improvement by lazy match evaluation on the string search CAM | |
JP4806054B2 (ja) | データが記憶された位置を選択する装置及び方法 | |
US7764205B2 (en) | Decompressing dynamic huffman coded bit streams | |
JP5916563B2 (ja) | 連想メモリ | |
US7528748B2 (en) | Serial data receiving circuit and serial data receiving method | |
US6898722B2 (en) | Parallel data transfer method and system of DDR divided data with associated transfer clock signal over three signal lines | |
WO2024066561A1 (zh) | 查找空闲存储的装置、方法及芯片 | |
JP2005260285A (ja) | データ圧縮装置 | |
JP2009070226A (ja) | マッチング装置 | |
WO2015011907A1 (ja) | k近傍法連想メモリ | |
WO2015015905A1 (ja) | 論理演算装置 | |
US7952902B2 (en) | Content addressable memory | |
JP6085187B2 (ja) | 連想メモリ | |
JPH0661871A (ja) | パラレル・シリアル・データ変換回路 | |
JP2007274051A (ja) | バイト列探索器及び探索方法 | |
JP2005175940A (ja) | データ圧縮装置 | |
JP2540899B2 (ja) | ソ―タ記憶管理方式 | |
CN110209609B (zh) | 串行接口电路、半导体装置以及串行并行转换方法 | |
JP5208080B2 (ja) | シーケンス制御回路及び制御回路 | |
JP2005165502A (ja) | Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 | |
JP4996385B2 (ja) | 信号遅延回路 | |
JP2589884B2 (ja) | ビットサーチ回路 | |
JPH09298527A (ja) | シリアルデータの連続一致検出方式 | |
JP2524637B2 (ja) | バレル・シフタへのデ―タ入力装置 | |
JP2016143301A (ja) | キーワードの検出装置および検出方法 |