Incremental search content addressable memory for increased data compression efficiency
First Claim
1. A memory system which performs string searches in hardware, comprising:
- a plurality of memory storage units 1 to N, wherein each of said plurality of memory storage units is capable of storing associated data and is capable of comparing said associated data with external data and generating one or more compare signals indicative thereof;
wherein at least one memory storage unit included within a subset of said memory storage units comprises;
a comparator which receives said one or more compare signals associated therewith and a match signal from a prior memory storage unit which indicates whether a match occurred in said prior memory storage unit, wherein said comparator asserts a respective match signal if said one or more compare signals associated therewith indicate that said associated data of said at least one memory storage unit matches said external data and said prior memory storage unit match signal is asserted;
wherein said comparator provides said respective match signal to a subsequent memory storage unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A content addressable memory (CAM) which is capable of performing string search functions in hardware. The implementation of string search in hardware eliminates the requirement of software to perform this function and thus significantly increases data compression performance. Each byte or memory storage unit of the CAM includes a comparator and a single bit flip-flop. The comparator asserts a match signal to the flip-flop if the contents of a memory storage unit match external data and a prior memory storage unit match signal is asserted. Two types of comparison operations are provided by each memory storage unit. The first ignores the contents of a previous flip-flop, and this comparison operation is used for the first character of a string search. The second type of comparison operation takes into account the value latched in the preceding byte of the CAM. For example, the comparison for byte N only matches if the previous comparison for byte N-1 matched. Thus long sequences of bytes can be searched for with a byte wide CAM. Therefore, string searches can be performed in hardware, thus increasing data compression performance.
-
Citations
27 Claims
-
1. A memory system which performs string searches in hardware, comprising:
a plurality of memory storage units 1 to N, wherein each of said plurality of memory storage units is capable of storing associated data and is capable of comparing said associated data with external data and generating one or more compare signals indicative thereof; wherein at least one memory storage unit included within a subset of said memory storage units comprises;
a comparator which receives said one or more compare signals associated therewith and a match signal from a prior memory storage unit which indicates whether a match occurred in said prior memory storage unit, wherein said comparator asserts a respective match signal if said one or more compare signals associated therewith indicate that said associated data of said at least one memory storage unit matches said external data and said prior memory storage unit match signal is asserted;wherein said comparator provides said respective match signal to a subsequent memory storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A memory system which can perform string searches in hardware, comprising:
-
a plurality of memory storage units 1 to N for storing data, wherein each said memory storage unit is capable of storing associated data and is capable of comparing said associated data with external data and generating one or more compare signals indicative thereof; wherein said memory storage unit 1 includes a comparator which receives said one or more compare signals associated therewith and asserts a respective match signal if said one or more compare signals associated therewith indicate that said associated data of said memory storage unit matches said external data; and wherein said memory storage units 2 to N each includes a comparator which receives said one or more compare signals associated therewith and a match signal from a prior memory storage unit which indicates whether a match occurred in said prior memory storage unit, wherein said comparator asserts a respective match signal if said one or more compare signals associated therewith indicate that said associated data of said memory storage unit 2 to N matches said external data and said prior memory storage unit match signal is asserted. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for performing a string search in a system comprising a buffer for storing a character string to be searched and a memory storeage system which performs string searches in hardware, wherein the memory storage system comprises a plurality of memory storage units 1 to n for storing data, wherein each said memory storage unit 1 to N is capable of comparing associated contents with external data and generating one or more compare signals indicative thereof, and wherein each said memory storage units 2 to N each includes a comparator which receives said one or more compare signals in addition to a match signal from a prior memory storage unit which indicates whether a match occurred in said prior memory storage unit, wherein said comparator asserts a respective match signal if said one or more compare signals indicate that said associated contents of said each memory storage unit 2 to N matches said external data and said prior memory storage unit match signal is asserted;
-
the method comprising; comparing the first character of the character string in the buffer with the contents of each of the memory storage units 1 to N in the memory storage system, wherein said memory storage units 1 to N assert said respective match signals without considering said prior memory storage unit match signals; comparing a subsequent character of the character string in the buffer with the contents of each of the memory storage units 2 to N in the memory storage system after said step of first character comparing, wherein said subsequent character only matches the contents of a respective memory storage unit if said prior memory storage unit match signal is asserted; returning to said step of subsequent character comparing if a match occurred in said step of subsequent character comparing; examining the respective match signals last asserted by each of said memory storage units 1 to N if a match did not occur in said step of subsequent character comparing; and finding the longest string in the memory storage system which matches the character string int he buffer using said last asserted match signals. - View Dependent Claims (21, 22, 23)
-
-
24. A method for performing data compression in a system comprising a look-ahead buffer for storing a character string to be searched and a history buffer which performs string searches in hardware, wherein the history buffer comprises a plurality of memory storage units 1 to N for storing data, wherein each said memory storage unit 1 to N is capable of comparing associated contents with external data and generating one or more compare signals indicative thereof, and wherein each said memory storage units 2 to N includes a comparator which receives said one or more compare signals in addition to a match signal from a prior memory storage unit which indicates whether a match occurred in said prior memory storage unit, wherein said comparator asserts a respective match signal if said one or more compare signals indicate that said associated contents of said each memory storage unit 2 to N matches said external data and said prior memory storage unit match signal is asserted;
-
the method comprising; comparing the first character of the character string in the look-ahead buffer with the contents of each of the memory storage units 1 to N in the history buffer, wherein said memory storage units 1 to N assert said respective match signals without considering said prior memory storage unit match signals; comparing a subsequent character of the character string in the look-ahead buffer with the contents of each of the memory storage units 2 to N in the history buffer after said step of first character comparing, wherein said subsequent character only matches the contents of a respective memory storage unit if said prior memory storage unit match signal is asserted; returning to said step of subsequent character comparing if a match occurred in said step of subsequent character comparing; examining the respective match signals last asserted by each of said memory storage units 1 to N if a match did not occur in said step of subsequent character comparing; and finding the longest string in the history buffer which matches the character string in the look-ahead buffer using said last asserted match signals. - View Dependent Claims (25, 26, 27)
-
Specification