JP4556766B2 - 文字列検索回路及び文字列検索方法 - Google Patents
文字列検索回路及び文字列検索方法 Download PDFInfo
- Publication number
- JP4556766B2 JP4556766B2 JP2005149713A JP2005149713A JP4556766B2 JP 4556766 B2 JP4556766 B2 JP 4556766B2 JP 2005149713 A JP2005149713 A JP 2005149713A JP 2005149713 A JP2005149713 A JP 2005149713A JP 4556766 B2 JP4556766 B2 JP 4556766B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- dictionary
- search
- character string
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
・1回目:1文字目の「A」と一致する文字を辞書から検索する。
・2回目:「A」と一致する文字が辞書に存在する場合、2文字目の「B」と一致する文字を辞書から検索し、前回の「A」の検索結果を利用して、「AB」と一致する文字列を検索する。
・3回目:「AB」と一致する文字列が辞書に存在する場合、3文字目の「C」と一致する文字を辞書から検索し、前回の「AB」の検索結果を利用して、「ABC」と一致する文字列を検索する。
・4回目:「ABC」と一致する文字列が辞書に存在する場合、4文字目の「A」と一致する文字を辞書から検索し、前回の「ABC」の検索結果を利用して、「ABCA」と一致する文字列を検索する。
最初に、図8の文字列検索回路を前提として、各クロック周期に作成されるorfbを1クロック周期だけ遅延させる文字列検索回路(「遅延1」の回路)について説明する。
<1周期目>
各比較回路1(i)で、1文字目の「A」についての比較結果m[i]を求める。このm[i]は、フリップ・フロップ6(i)からps0[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路3(i)にps0[i−1]として供給される)。
各比較回路1(i)で、2文字目の「B」についての比較結果m[i]を求める。このとき、各アンド回路3(i)の出力は、「A」と一致する文字が辞書に存在すると仮定した、「AB」の検索結果を予測する信号となる。そして、各マルチプレクサ4(i)にはまだorfb_dが供給されていない(‘0’の信号が供給されている)ので、この「AB」の検索結果予測が、マルチプレクサ4(i)で選択され、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
各比較回路1(i)で、3文字目の「C」についての比較結果m[i]を求める。
このとき、各アンド回路2(i)の出力は、「AB」と一致する文字が辞書に存在すると仮定した、「ABC」の検索結果を予測する信号となる。
また、各アンド回路3(i)の出力は、「AB」と一致する文字列が辞書に存在しないと仮定した、「BC」の検索結果を予測する信号となる。
この orfb_dが‘1’であれば、「A」と一致する文字が辞書に存在するという仮定が正しかったので、各マルチプレクサ4(i)でアンド回路2(i)の出力(「ABC」の検索結果予測)を選択する(マルチプレクサ9でもオア回路7の出力を選択する)。
この「ABC」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
この「BC」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
各比較回路1(i)で、4文字目の「A」についての比較結果m[i]を求める。
このとき、各アンド回路3(i)の出力は、「ABC」と一致する文字列が辞書に存在しないと仮定した、「CA」の検索結果を予測する信号となる。
また、3周期目においてorfb_dが‘1’であった場合には、この4周期目には、各アンド回路2(i)の出力は、「ABC」と一致する文字が辞書に存在すると仮定した、「ABCA」の検索結果を予測する信号となる。そして、この4周期目に、「AB」と一致する文字列が辞書に存在するか否かを示すorfb_dが、フリップ・フロップ10から出力される。
この「ABCA」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
この「CA」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
この「BCA」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
この「CA」の検索結果予測は、フリップ・フロップ5(i)からps1[i]として出力される(次の周期に、辞書の1つ後のアドレスに対応する組のアンド回路2(i)にps1[i−1]として供給される)。
次に、図8の文字列検索回路を前提として、出力orfbを2クロック周期遅延させる文字列検索回路(「遅延2」の回路)について説明する。
2(i),3(i) アンド回路
4(i),9 マルチプレクサ
5(i),6(i),10 D型フリップ・フロップ
7,8 オア回路
Claims (3)
- 動作クロックの1周期毎に、入力された文字列の1文字ずつについて、該文字に一致する文字を辞書から検索し、且つ、検索対象と一致する文字が前記辞書に存在するか否かを示す一致/不一致信号を作成し、検索対象と一致する文字が前記辞書に存在する場合には、検索結果を次回のクロック周期で利用して、検索対象の文字数を1文字ずつ増やすようにした文字列検索回路において、
前記一致/不一致信号を、前記動作クロックのn周期分(nは1以上の整数)遅延させる遅延手段と、
或るクロック周期における検索結果を予測する信号として、該クロック周期よりも前記n−1周期前から該クロック周期までのn個の周期の各々(ただしn=1の場合は該クロック周期の1周期のみ)について、検索対象と一致する文字が前記辞書に存在する状態と前記辞書に存在しない状態との2つの状態をそれぞれ仮定し、前記2つの状態を前記n個の周期分組み合わせた2n通りの信号を予め作成する作成手段と、
前記遅延手段によって遅延された前記一致/不一致信号に従い、前記作成手段によって作成された前記2n通りの信号のうち仮定が正しかった信号を選択する選択手段と
を備え、
前記選択手段によって選択された信号を、次回のクロック周期において利用する
文字列検索回路。 - 請求項1に記載の文字列検索回路において、
前記遅延手段は、前記一致/不一致信号を、前記動作クロックの1周期分遅延させ、
前記作成手段は、或るクロック周期における検索結果を予測する信号として、該クロック周期には検索対象と一致する文字が辞書に存在すると仮定した信号と、該クロック周期には検索対象と一致する文字が辞書に存在しないと仮定した信号との2通りの信号を作成する
文字列検索回路。 - 動作クロックの1周期毎に、入力された文字列の1文字ずつについて、該文字に一致する文字を辞書から検索し、且つ、検索対象と一致する文字が前記辞書に存在するか否かを示す一致/不一致信号を作成し、検索対象と一致する文字が前記辞書に存在する場合には、検索結果を次回のクロック周期で利用して、検索対象の文字数を1文字ずつ増やすようにした文字列検索方法において、
前記一致/不一致信号を、前記動作クロックのn周期分(nは1以上の整数)遅延させる第1のステップと、
或るクロック周期における検索結果を予測する信号として、該クロック周期よりも前記n−1周期前から該クロック周期までのn個の周期の各々(ただしn=1の場合は該クロック周期の1周期のみ)について、検索対象と一致する文字が前記辞書に存在する状態と前記辞書に存在しない状態との2つの状態をそれぞれ仮定し、前記2つの状態を前記n個の周期分組み合わせた2n通りの信号を予め作成する第2のステップと、
前記第1のステップによって遅延された前記一致/不一致信号に従い、前記第2のステップによって作成された前記2n通りの信号のうち仮定が正しかった信号を選択する第3のステップと
を有し、
前記第3のステップによって選択された信号を、次回のクロック周期において利用する
文字列検索方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005149713A JP4556766B2 (ja) | 2005-05-23 | 2005-05-23 | 文字列検索回路及び文字列検索方法 |
| US11/383,308 US7221291B2 (en) | 2005-05-23 | 2006-05-15 | Character string retrieving circuit and character string retrieving method |
| CN2006100844424A CN1870131B (zh) | 2005-05-23 | 2006-05-23 | 字符串检索电路和字符串检索方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005149713A JP4556766B2 (ja) | 2005-05-23 | 2005-05-23 | 文字列検索回路及び文字列検索方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006332775A JP2006332775A (ja) | 2006-12-07 |
| JP4556766B2 true JP4556766B2 (ja) | 2010-10-06 |
Family
ID=37443776
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005149713A Expired - Fee Related JP4556766B2 (ja) | 2005-05-23 | 2005-05-23 | 文字列検索回路及び文字列検索方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7221291B2 (ja) |
| JP (1) | JP4556766B2 (ja) |
| CN (1) | CN1870131B (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8704686B1 (en) | 2013-01-03 | 2014-04-22 | International Business Machines Corporation | High bandwidth compression to encoded data streams |
| CN106462502B (zh) * | 2014-06-05 | 2020-12-25 | Gsi科技公司 | 涉及多组双管道存储器电路的系统和方法 |
| JP6742692B2 (ja) * | 2015-01-30 | 2020-08-19 | 富士通株式会社 | 符号化プログラムおよび伸長プログラム |
| CN105553483B (zh) * | 2015-12-09 | 2018-12-21 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种产生lz77的方法及装置 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07120958B2 (ja) * | 1986-04-04 | 1995-12-20 | 三菱電機株式会社 | 木探索ベクトル量子化器 |
| US5021971A (en) * | 1989-12-07 | 1991-06-04 | Unisys Corporation | Reflective binary encoder for vector quantization |
| US5226082A (en) * | 1992-07-02 | 1993-07-06 | At&T Bell Laboratories | Variable length decoder |
| US5550540A (en) * | 1992-11-12 | 1996-08-27 | Internatioal Business Machines Corporation | Distributed coding and prediction by use of contexts |
| US5627533A (en) * | 1994-08-05 | 1997-05-06 | Hayes Microcomputer Products, Inc. | Adjusting encoding table size and memory allocation for data compression in response to input data |
| JP3007819B2 (ja) * | 1994-12-28 | 2000-02-07 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ圧縮用検索装置 |
| JPH09232967A (ja) * | 1996-02-22 | 1997-09-05 | Fujitsu Ltd | データ圧縮装置及び復元装置 |
| US5771011A (en) * | 1996-07-15 | 1998-06-23 | International Business Machines Corporation | Match detect logic for multi-byte per cycle hardware data compression |
| US6490279B1 (en) * | 1998-07-23 | 2002-12-03 | Advanced Communication Device, Inc. | Fast data base research and learning apparatus |
| JP3141866B2 (ja) * | 1999-01-18 | 2001-03-07 | 日本電気株式会社 | 連想記憶装置及び連想メモリ検索方法 |
| US6629250B2 (en) * | 1999-04-23 | 2003-09-30 | Cray Inc. | Adjustable data delay using programmable clock shift |
| US7095341B2 (en) * | 1999-12-14 | 2006-08-22 | Broadcom Corporation | Programmable variable-length decoder |
-
2005
- 2005-05-23 JP JP2005149713A patent/JP4556766B2/ja not_active Expired - Fee Related
-
2006
- 2006-05-15 US US11/383,308 patent/US7221291B2/en not_active Expired - Fee Related
- 2006-05-23 CN CN2006100844424A patent/CN1870131B/zh not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CN1870131B (zh) | 2010-06-23 |
| CN1870131A (zh) | 2006-11-29 |
| US7221291B2 (en) | 2007-05-22 |
| JP2006332775A (ja) | 2006-12-07 |
| US20060261988A1 (en) | 2006-11-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6624762B1 (en) | Hardware-based, LZW data compression co-processor | |
| US9647684B2 (en) | Memory-based history search | |
| US9203887B2 (en) | Bitstream processing using coalesced buffers and delayed matching and enhanced memory writes | |
| EP3094003B1 (en) | Hardware data compressor that pre-huffman encodes to decide whether to huffman encode a matched string or a back pointer thereto | |
| US9509335B1 (en) | Hardware data compressor that constructs and uses dynamic-prime huffman code tables | |
| EP3094004B1 (en) | Hardware data compressor using dynamic hash algorithm based on input block type | |
| US9515678B1 (en) | Hardware data compressor that directly huffman encodes output tokens from LZ77 engine | |
| JPH07297728A (ja) | パターン一致を探索するための方法およびシステム | |
| EP3093998B1 (en) | Hardware data compressor that sorts hash chains based on node string match probabilities | |
| EP3094000B1 (en) | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning | |
| US9628111B2 (en) | Hardware data compressor with multiple string match search hash tables each based on different hash size | |
| Kim et al. | Data dependency reduction for high-performance FPGA implementation of DEFLATE compression algorithm | |
| US10985778B2 (en) | Verifying the correctness of a deflate compression accelerator | |
| US7307453B1 (en) | Method and system for parallel state machine implementation | |
| US10101965B1 (en) | Method and apparatus for high speed streaming sorter | |
| JP4556766B2 (ja) | 文字列検索回路及び文字列検索方法 | |
| US7109895B1 (en) | High performance Lempel Ziv compression architecture | |
| JP2022550042A (ja) | 圧縮データを生成するための最長一致処理を伴う圧縮システム | |
| JP4323663B2 (ja) | 画像フィルタ回路及び画像フィルタリング方法 | |
| JP2017525005A (ja) | 専用算術符号化命令 | |
| US8149145B2 (en) | Method and apparatus for adaptive lossless data compression | |
| Wang et al. | Lossless compression of bitstream configuration files: towards FPGA cloud | |
| JP4586633B2 (ja) | デコーダ回路、デコード方法及びデータ記録装置 | |
| Nunez-Yanez et al. | Gigabyte per second streaming lossless data compression hardware based on a configurable variable-geometry CAM dictionary | |
| CN120430430B (zh) | 基于伪随机预测的量子比特波形参数动态配置方法及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080411 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100401 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100610 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100629 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100712 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |