16. The apparatus of claim 9 wherein the n arbitrary length bit strings are nucleotide sequences.
9. Apparatus for detecting a known arbitrary length bit string from a stream of input bits, the apparatus comprising: a) a first trie matching circuit storing a representation of hashes of chunks of n arbitrary length bit strings, including L hierarchical levels, 0 through (L−1), each of the hierarchical L=i levels having 2 L nodes, each of the 2 L nodes of a level having a data bit map representing hashes of chunks of arbitrary length bit strings, and a next node bit map representing a partition, of chunks of arbitrary length bit strings corresponding to the node, across two nodes at the next hierarchical level of the trie, corresponding to the node, the first trie matching circuit having 1) an input for accepting a sequence of chunks of the stream of input bits, 2) a first output providing a signal representing whether or not a match occurred, and 3) a second output providing a signal representing an identifier corresponding to an input chunk; b) a first string matching circuit for each of the chunks of arbitrary length bit strings, the chunk of the arbitrary length bit string, or a pointer thereto, in a memory location addressed by a concatenation of values from bit locations of the next node bit maps to which the chunk of arbitrary length bit string was hashed, the first string matching circuit having 1) a first input coupled with the first output of the first trie matching circuit, 2) a second input for accepting data corresponding to the identifier corresponding to the input chunk, and 3) an output for indicating whether or not a match between the second input and known data occurred; c) a second trie matching circuit storing representations of multi-chunk portions of the n arbitrary length bit strings, including L hierarchical levels, 0 through (L−1), each of the hierarchical levels L=i having 2 i nodes, each of the 2 i nodes of a level having a data bit map representing hashes of representations of multi-chunk portions of the n arbitrary length bit strings, and a next node bit map representing a partition, of representations of multi-chunk portions of the n arbitrary length bit strings corresponding to the node, across two nodes at the next hierarchical level of the trie, corresponding to the node, the second trie matching circuit having 1) a first input for accepting the identifier corresponding to the input chunk, 2) a second input coupled with the output of the first string matching circuit, 3) a third input, 4) a first output providing a signal representing whether or not a match occurred, and 5) a second output providing a signal representing an identifier corresponding to an input chunk identifier or chunk pair identifier; and d) a second string matching circuit storing, for each of representations of multi-chunk portions of the n the arbitrary length bit strings, the representations of multi-chunk portions of the n arbitrary length bit strings, or a pointer thereto, in a memory location addressed by a concatenation of values from bit locations of the next node bit maps to which the representations of multi-chunk portions of the n arbitrary length bit strings was hashed, the second string matching circuit having 1) a first input coupled with the first output of the second trie matching circuit, 2) a second input for accepting data corresponding to the identifier corresponding to an input chunk identifier or chunk pair identifier, and 3) an output for indicating whether or not a match between the second input and known data occurred, and being coupled with the third input of the second trie matching circuit.