GB2331599A - Content addressable memory - Google Patents

Content addressable memory Download PDF

Info

Publication number
GB2331599A
GB2331599A GB9724653A GB9724653A GB2331599A GB 2331599 A GB2331599 A GB 2331599A GB 9724653 A GB9724653 A GB 9724653A GB 9724653 A GB9724653 A GB 9724653A GB 2331599 A GB2331599 A GB 2331599A
Authority
GB
United Kingdom
Prior art keywords
sequence
match
data
input
match signal
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.)
Withdrawn
Application number
GB9724653A
Other versions
GB9724653D0 (en
Inventor
Robert Fairlie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions UK Ltd
Original Assignee
Motorola Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Motorola Ltd filed Critical Motorola Ltd
Priority to GB9724653A priority Critical patent/GB2331599A/en
Publication of GB9724653D0 publication Critical patent/GB9724653D0/en
Publication of GB2331599A publication Critical patent/GB2331599A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A CAM array (20) uses a plurality of CAM cells to compare data stored in the CAM cells with input data and assert match signals upon detecting matches between the stored data and the input data. A plurality of sequence matching blocks (SMB n) are coupled to corresponding rows of CAM cells. Each sequence matching block asserts a sequence match signal in response to asserting the corresponding match signal received at a first input and the assertion of an adjacent sequence match signal received at a second input representing a match between second stored data and the input data. The sequence match signals are used to update a counter that keeps track of the length of the sequence match in the CAM array from which the starting location can be derived. Data can be compressed as the starting location (of a sequence of matches) and count of matches, in a history file.

Description

2331599 CONTENT ADDRESSABLE MEMORY CIRCUIT AN-D METHOD
Background of the Invention
The present invention relates in general to memory circuits and, more particularly, to content addressable memory with sequence matching blocks.
Content addressable memory (CAM) is used in a variety of applications where it necessary or desirable to compare incoming data with data stored in the memory. The classic CAM has a static data scorage cell, for example back to back inverters, and a comparison circuit. The comparison circuit compares the contents of the static storage cell with the incoming data and asserts a control signal upon detecting a match.
One application of a CAM is in the field of data compression. Computer backup systems use data compression techniques to reduce the storage requirements. By compressing the data, the backup media need only have a fraction of the capacity of the source media. Data compression is also used in communication systems to reduce the amount of data transmitted from source to destination.
A common data compression method involves comparing the incoming data to data stored in a history file implemented as a CAM. If a string of matches are found, then the incoming data is encoded as the starting location and length of the sequence match in the history file. The data compression method reduces the amount of stored or transmitted data by sending the starting location and length of the match relative to the history file instead of storing or transmitting the entire incoming data sequence. The history file is updated with the incoming data following the comparison.
Brief Description of the Drawings
FIG. 1 is a block diagram illustrating a computer backup system utilizing data compression; FIG. 2 is a block diagram illustrating the data compression block of FIG. 1; FIG. 3 is a schematic diagram illustrating further detail of the sequence matching block of FIG. 2; FIG. 4 is a schematic diagram illustrating an alternate embodiment of the sequence matching block; and FIG. 5 is a schematic diagram illustrating an alternate embodiment of the sequence matching block.
Detailed Description of the Preferred Embodiment
Referring to FIG. 1, a computer system is shown with backup capabilities. To backup computer 10, data is sent to data compression and signal processing block 12 where the data is compressed and formatted for storage on backup media 14. Examples of backup media 14 includes tape drives, external disk drives, writable CD ROM, or other suitable backup storage. The function of data compression block 12 is to compress the incoming data from computer 10 such that the storage requirements on backup media 14 are a fraction of the source volume. For example, 100 Mbytes of data from computer 10 may be compressed into 50 Mbytes on backup media 14.
Another application for data compression involves the transmission of data from source to destination. Data can be compressed at the source end, transmitted over a communication channel having a smaller bandwidth than would be required for uncompressed data, and then decompressed on the receiving end. The cost and overhead of compressing and decompressing data is acceptable especially given the smaller bandwidth and greater throughput of the communication channel.
An exemplary data compression methodology is described as follows. A history file of 1024 6-bit bytes is established in a CAM array. Each incoming data byte is compared to the history file looking for a match. If a match is found, then the next incoming data byte is compared to the subsequent entry in the history file attempting to find a sequence. Once a sequence of two or more bytes matches is identified, then the data compression method encodes the incoming data as the starting location and length of the sequence relative to the history file. For example, assume the history file contains consecutive entries 1ABCD11 in locations Ll, L2, L3, and L4. The incoming data pattern is 0ABCE". For the first incoming data "Am, the CAM array identifies a match in location Ll. The second and third incoming data "B" and 9W match the subsequent locations L2 and L3 in the history file to establish a sequence. The fourth incoming data "E" fails match the contents of location L4 and continue the sequence so the incoming data "ABC" is encoded as location LI, length 3. The incoming data "E" is checked for a match elsewhere in the history file and possibly establishes the beginning of another sequence. Any incoming data that does not establish a sequence in the history file is output as a literal, i.e. the value of the data preceded by a zero which marks it as a literal.
The relevant detail of data compression and signal processing block 12 is shown in FIG. 2. A CAM array 20 includes a plurality of CAM cells arranged in columns and rows representing the history file. Each CAM cell represents one bit of data. As an illustrative example, CAM array 20 has 8 columns and 1024 rows of CAM cells. CAM array 20 is typically implemented with dual ports, i.e. separate data and address ports allowing simultaneous read and write operations. Each row represents one byte, e.g. row n-1 for byte n-1, row n for byte n, row n+l for byte n+l, etc. Each CAM cell includes a 1-bit static storage element and a comparison circuit. Each column of CAM cells receive DATA and DATA signals, representing one bit of 1 data, which update the contents of the CAM cell (s) according to address and control signals. The COMP and COMP signals applied to each column of CAM cells represent one bit of the present incoming data to be compared with the contents of the CAM cells. Only one set of DATA and DATA and COMP and COMP signals are shown for the f irst column of CAM cells to simplify the explanation. The other seven columns of CAM cells would each have corresponding DATA and DATA and COMP and COMP ports for the other seven bits of the 8-bit byte.
CAM array 20 allows one byte of incoming data to be simultaneously compared with all 1024 bytes, i.e. all rows, in the history file. The comparison is performed on one byte of incoming data with respect to the entire history file. If the incoming data matches the stored data, then a corresponding MATCH signal is asserted. In the above example, if the incoming data "Bn matches the first row of CAM cells (byte n) shown in FIG. 2, then MATCH n goes to logic one. All other MATCH signals that do not match the incoming data "B" are logic zero. If the incoming data "C" matches the second row of CAM cells (byte n+l), then MATCH n+l goes to logic one. All other MATCH signals that do not match the incoming data "C" are logic zero.
The MATCH signals from CAM array 20 are processed through corresponding sequence match blocks (SMB) Each SMB receives the MATCH signal from one row of CAM cells and a SEQUENCE MATCH signal from a previous SMB. The SMB asserts its SEQUENCE MATCH signal if the MATCH signal is asserted and the SEQUENCE MATCH signal from the previous SMB is asserted. For example, SMB n generates SEQUENCE MATCH n as logic one if SEQUENCE MATCH n-1 is logic one and MATCH n is logic one. SEQUENCE MATCH n is logic zero otherwise. SMB n+l generates SEQUENCE MATCH n+l as logic one if SEQUENCE MATCH n is logic one and MATCH n+l is logic one. SEQUENCE MATCH n+l is logic zero otherwise. The SEQUENCE MATCH signals provide useful information as to the sequence of matches between the incoming data and the history file. Further detail of SMB n is shown in FIG. 3. The other 5MBs follow a similar construction and operation. The MATCH n signal is routed through flipflop 26 to one input of AND logic gate 28. OR gate 30 receives SEQUENCE MATCH n-1 and a FIRST control signal. The FIRST control signal is an initializing signal asserted as logic one at the beginning of each new sequence search. The output of OR 10 gate 30 is coupled to a second input of AND gate 28. The output of AND gate 28 is coupled to the data input of flipflop 32. The Q-output of flipflop 32 provides SEQUENCE MATCH n. Flipflops 26 and 32 are clocked by a SYSTEM CLOCK signal. Alternately, SEQUENCE MATCH n can be taken at the 15 output of AND gate 28. In the above example, the data compression process begins with the FIRST control signal at logic one. If incoming data "A" matches the contents of the CAM cell row n-1 (byte n-1), then MATCH n-1 is logic one. The output of 20 the OR gate 30 in SMB n-1 is logic one because the FIRST control signal is logic one, and the output of the AND gate 28 in SMB n-1 is thus logic one. SEQUENCE MATCH n-1 at the Q-output of flipflop 32 in SMB nl goes to logic one with the next SYSTEM CLOCK. A possible sequence match is in 25 process so FIRST returns to logic zero. The output of the OR gate 30 in SMB n is logic one with SEQUENCE MATCH n-1 at logic one. If incoming data "B" matches the contents of the CAM cell row n (byte n), then MATCH n is logic one and the output of the AND gate 28 in SMB n is logic one. 30 SEQUENCE MATCH n at the Q-output of flipflop 32 in SMB n goes to logic one with the next SYSTEM CLOCK indicating that the sequence continues.
The SEQUENCE MATCH n-1 returns to logic zero, assuming MATCH n-1 is now logic zero, as SEQUENCE MATCH n goes to logic one. If incoming data "C" matches the contents of the CAM cell row n+l (byte n+l), then MATCH n+l is logic one and the output of the AND gate 28 in SMB n+l is logic one. SEQUENCE MATCH n+l at the Q-output of flipflop 32 in SMB n+l goes to logic one with the next SYSTEM CLOCK indicating that the sequence continues. The SEQUENCE MATCH n returns to logic zero, assuming MATCH n is now logic zero, as SEQUENCE MATCH n+l goes to logic one. The next incoming data uE" does not match the contents of the CAM cell row n+2 (byte n+2) and the output of the AND gate 28 in SMB n+2 is logic zero. SEQUENCE MATCH n+2 at the Q-output of flipflop 32 in SMB n+2 goes to logic zero with the next SYSTEM CLOCK indicating that the sequence does not continue. The SEQUENCE MATCH n-1, SEQUENCE MATCH n and SEQUENCE MATCH n+l signals are used to update a counter (not shown) that keeps track of the length (3) of the sequence match in CAM array 20 from which the starting location (byte n-1) can be derived.
One advantage of the present invention is the continuous processing of incoming data without wasting clock cycles. The result of the previous sequence match is readily available to the next SMB to ascertain the continuity of the match sequence. For example, by feeding SEQUENCE MATCH n to SMB n+l, the AND logic gate can combine the result of the present match (byte n+l) with the result of the previous match (byte n) to determine whether the match sequence is continuing.
An alternate embodiment of the SMBs is shown in FIG. 4 with OR gate 30 eliminated. The FIRST control signal is applied to a set input of flipflop 34 in each SMB. A logic one FIRST control signal sets the Q- output of flipflop 34 in each SMB to logic one. With all SEQUENCE MATCH signals at logic one, the AND gate 36 in the SMB corresponding to the CAM cell row that matches the incoming data transitions to logic one. The SEQUENCE MATCH signal corresponding to the SMB that receives a match for the incoming data goes to logic one indicating the beginning of a match sequence. The SEQUENCE MATCH signals corresponding to the SMBs that do not receive a match for the incoming data go to logic zero indicating the absence of a match sequence. The FIRST control signal returns to logic zero and the sequence matching process continues as described above.
In the above discussion, at the end of one data matching sequence, the previous incoming data that did not match the data matching sequence must be re-applied to start a new data matching sequence. In addition, the FIRST control signal must be asserted to initialize each data matching sequence. The initialization process for each new data matching sequence involves one or more clock cycles. New data must be held up during and re-applied after the initialization process for each data matching sequence.
In order to improve the throughput of data compression block 12, an additional feature as described below avoids the initialization process at each new data matching sequence and allows new data to be presented to data compression block 12 every clock cycle. It is preferable to use a minimum number of clock cycles to detect a present match and ascertain whether the sequence match continues.
Turning to FIG. 5, another embodiment of the SMB includes flipflop 40 having a data input coupled for receiving MATCH n. The Q-output of flipflop 40 is coupled to one input of AND gate 42 and to one input of multiplexer 44. The second input of AND gate 42 receives SEQUENCE MATCH n1, and the output of AND gate 42 is coupled to a second input of multiplexer 44. The output of multiplexer 44 is coupled to a data input of flipflop 46. The Q-output of flipflop 46 provides SEQUENCE MATCH n. Multiplexer 44 is controlled by the output of AND gate 42. The output of each AND gate 42 in all 1024 SMBs is applied to inputs of NOR gate 48. NOR gate 48 can be implemented in a wired-NOR configuration. The output of NOR gate 48 is coupled to one input of OR gate 50. The FIRST control signal is applied to a second input of OR gate 50. Additional control signals (not shown), e.g. end-ofrecord or maximum sequence match, can be applied to other inputs of OR gate 50 to initialize a matching sequence. The output of OR gate 50 is coupled to the control input of multiplexer 44.
The FIRST control signal is asserted once at the beginning of the data compression. The incoming data is applied to CAM array 20 and one or more MATCH signals is set to logic one. Again assume that the incoming data "A" matches the contents of the CAM cell row n-1 so that MATCH nl is logic one. Following one SYSTEM CLOCK, the Q-output of flipflop 40 in SMB n-1 is logic one. The FIRST control signal is logic one for the beginning of the data compression so the output of OR gate 50 is logic one and multiplexer 44 passes the logic one from flipflop 40 through its conduction path to the data input of flipflop 46. SEQUENCE MATCH n-1 goes to logic one with the next SYSTEM CLOCK indicating the start of a data matching sequence. FIRST returns to logic zero.
If the next incoming data "B" matches the contents of CAM cell row n, then the Qoutput of flipflop 40 in SMB n is logic one. If the SEQUENCE MATCH n-1 is logic one, then the output of AND gate 42 in SMB n is logic one. As long as NOR gate 48 receives at least one logic one its output is logic zero. OR gate 50 sends a logic zero to multiplexer 44 which passes the logic one from AND gate 42 through its conduction path to the data input of flipflop 46. SEQUENCE MATCH n goes to logic one with the next SYSTEM CLOCK. The SEQUENCE MATCH n-1 returns to logic zero as SEQUENCE MATCH n goes to logic one. The data matching sequence continues.
If the next incoming data "B" did not match the contents of CAM cell row n, then the Q-output of flipflop 40 in SMB n is logic zero after the next SYSTEM CLOCK. The output of AND gate 42 in SMB n is logic zero. Assuming no other AND gate 42 in the other SMBs is logic one, the output of NOR gate 48 is logic one and the logic zero from flipflop 40 passes through multiplexer 44. Flipflop 46 latches- the logic zero at next SYSTEM CLOCK indicating termination of the data matching sequence.
If the next incoming data "C" matches the contents of CAM cell row n+l, then MATCH n+l is logic one and the Qoutput of flipflop 40 in SMB n+l is logic one after the next SYSTEM CLOCK. If SEQUENCE MATCH n is logic one then the output of AND gate 42 in SMB n+l is logic one. SEQUENCE MATCH n+ l goes to logic one with the next SYSTEM CLOCK. The SEQUENCE MATCH n returns to logic zero as SEQUENCE MATCH n+l goes to logic one. The data matching sequence continues.
If the next incoming data uE" does not match the contents of CAM cell row n+2, then MATCH n+2 is logic zero. The Q-output of flipflop 40 in SMB n+2 is logic zero and the output of AND gate 42 in SMB n+2 is logic zero. Assuming no other AND gate 42 in the other SMBs is logic one, the output of NOR gate 48 is logic one and the logic zero from flipflop 40 passes through multiplexer 44 to flipflop 46. SEQUENCE MATCH n+2 goes to logic zero with the next SYSTEM CLOCK indicating the end of a matching sequence. The SEQUENCE MATCH n-1, SEQUENCE MATCH n and SEQUENCE MATCH n+l signals update the counter to keep track of the length of the sequence match in CAM array 20 from which the starting location can be derived.
with the SMB embodiment in FIG. 5, the fact that incoming data "E" did not continue the previous match sequence does not require the process to begin again. When a match sequence fails to continue, then in every SMB either the MATCH signal is logic zero or the SEQUENCE MATCH signal from the previous SMB is logic zero. Therefore, the output of every AND gate 42 in the SMBs is logic zero. If the incoming data "E" matches CAM cell row n+3, then MATCH n+3 is logic one. However, SEQUENCE MATCH n+2 is logic zero as discussed above so the output of AND gate 42 in SMB n+3 is logic zero. With all AND gates 42 in the SMBs providing logic zeroes, the output of NOR gate 48 is logic one and the output of OR gate 50 is logic one. Multiplexer 44 switches to pass the logic one from flipflop 40 to the data input of flipflop 46. The SEQUENCE MATCH n+3 goes to logic one indicating the start of another potential sequence without consuming extra clock cycles or reapplying the incoming data.
In summary, the present invention uses a CAM array having a plurality of CAM cells which compares data stored in the CAM cells with input data and asserts match signals upon detecting matches between the stored data and the input data. A plurality of SMBs are coupled to corresponding rows of CAM cells. Each SMB asserts a sequence match signal in response to asserting the corresponding match signal received at a first input and the assertion of an adjacent sequence match signal received at a second input representing a match between second stored data and the input data. The sequence match signals are used to update a counter that keeps track of the length of the sequence match in CAM array 20 from which the starting location can be derived. The sequence matching process provides efficient tracking of the sequence by using a minimum number of clock cycles to determine a present match and a continuation of the match sequence.
-11

Claims (11)

1. A content addressable memory (CAM) array, comprising: a plurality of CAM cells (20) for comparing stored data in the CAM cells with an input data and asserting a first match signal upon detecting a match between first stored data and the input data; and a first sequence matching block (SMB n) which asserts a first sequence match signal in response to asserting the first match signal received at a first input and asserting a second sequence match signal received at a second input where the second sequence match signal represents a match between second stored data and the input data.
2. The CAM array of claim 1 further including a second sequence matching block (SMB n+l) coupled for receiving the first sequence match signal and a second match signal from the plurality of CAM cells and asserting a third sequence match signal when the first sequence match signal and the second match signal are asserted.
3. The CAM array of claim 2 wherein the first sequence matching block includes: a first logic gate (28) having a first input coupled for receiving the first match signal, and a second input coupled for receiving the second sequence match signal; and a first flipflop (32) having a data input coupled to an output of the first logic gate, a clock input coupled for receiving a clock signal, and an output for providing the first sequence match signal.
4. The CAM array of claim 3 wherein the first sequence matching block further includes a second logic gate (30) having a first input coupled for receiving the second sequence match signal, a second input coupled for receiving an initializing control signal, and an output coupled to the second input of the first logic gate.
5. The CAM array of claim 4 wherein the second sequence matching block further includes a second flipflop (26) having a data input coupled for receiving the first match signal, a clock input coupled for receiving the clock signal, and an output coupled to the first input of the first logic gate.
6. The CAM array of claim 3 wherein the first flipflop further includes a set input coupled for receiving an initializing control signal.
7. The CAM array of claim 2 wherein the first sequence matching block includes: a first logic gate (42) having a first input coupled for receiving the first match signal, and a second input coupled for receiving the second sequence match signal; a multiplexer (44) having a first input coupled to an output of the first logic gate, and a second input coupled for receiving the first match signal; a second logic gate (48) having an input coupled to an output of the first logic gate, and an output coupled to a control input of the multiplexer; and 30 a first flipflop (46) having a data input coupled to an output of the multiplexer, a clock input coupled for receiving a clock signal, and an output for providing the first sequence match signal.
8. The CAM array of claim 7 wherein the first sequence matching block further includes a second flipflop (40) having a data input coupled for receiving the f irst match signal, a clock input coupled for receiving the clock signal, and an output coupled to the first input of the first logic gate and to the second input of the multiplexer.
9. A method of identifying data sequence matches, comprising the steps of:
comparing data stored in a plurality of CAM cells with an input data and asserting a first match signal upon detecting a match between first stored data and the input data; and asserting a first sequence match signal in response to asserting the first match signal and asserting a second sequence match signal representing a match between second stored data and the input data.
10. A CAM array substantially as hereinbefore described with reference to the accompanying drawings.
11. A method of identifying data sequence matches substantially as hereinbefore described with reference to the accompanying drawings.
GB9724653A 1997-11-22 1997-11-22 Content addressable memory Withdrawn GB2331599A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9724653A GB2331599A (en) 1997-11-22 1997-11-22 Content addressable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9724653A GB2331599A (en) 1997-11-22 1997-11-22 Content addressable memory

Publications (2)

Publication Number Publication Date
GB9724653D0 GB9724653D0 (en) 1998-01-21
GB2331599A true GB2331599A (en) 1999-05-26

Family

ID=10822449

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9724653A Withdrawn GB2331599A (en) 1997-11-22 1997-11-22 Content addressable memory

Country Status (1)

Country Link
GB (1) GB2331599A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2182789A (en) * 1985-11-08 1987-05-20 Texas Instruments Ltd A content addressable memory
US5369605A (en) * 1993-07-07 1994-11-29 Dell Usa, L.P. Incremental search content addressable memory for increased data compression efficiency
US5440715A (en) * 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2182789A (en) * 1985-11-08 1987-05-20 Texas Instruments Ltd A content addressable memory
US5440715A (en) * 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit
US5369605A (en) * 1993-07-07 1994-11-29 Dell Usa, L.P. Incremental search content addressable memory for increased data compression efficiency

Also Published As

Publication number Publication date
GB9724653D0 (en) 1998-01-21

Similar Documents

Publication Publication Date Title
US5410671A (en) Data compression/decompression processor
US5467319A (en) CAM array and method of laying out the same
US5771010A (en) Apparatus for compressing data using a Lempel-Ziv-type algorithm
EP0702457A2 (en) Method and apparatus for compressing and decompressing data
US5499382A (en) Circuit and method of bit-packing and bit-unpacking using a barrel shifter
US5339076A (en) Data compression using content addressable memory
US5602764A (en) Comparing prioritizing memory for string searching in a data compression system
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US5329405A (en) Associative cam apparatus and method for variable length string matching
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US5025458A (en) Apparatus for decoding frames from a data link
EP0872802B1 (en) A method of and an apparatus for searching a contents addressable memory
US5394353A (en) Flipflop and control circuit in a content addressable memory
JPH05233212A (en) Device and method for compressing data, and data processing system
US6348881B1 (en) Efficient hardware implementation of a compression algorithm
US5404138A (en) Apparatus for decoding variable length codes
US7764205B2 (en) Decompressing dynamic huffman coded bit streams
US5964896A (en) Method and apparatus for a high speed cyclical redundancy check system
GB2331599A (en) Content addressable memory
US8248279B2 (en) History buffer apparatus and method for adaptive lossless data compression
US5381454A (en) Circuit and method of resetting a data compressor/decompressor
US20050251717A1 (en) Method and/or apparatus implemented in hardware to discard bad logical transmission units (LTUs)
JP3327869B2 (en) Prematch string match array with minimum match length of 3
US7283565B1 (en) Method and apparatus for framing a data packet
US9864549B2 (en) Systems and methods for high throughput multi-input compression

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)