An improved neuron and corresponding search operation for use in matching strings of characters from a character set or strings of pixels from an image is at least partly based on ZISC technology. Each neuron contains only one character in the string of characters to be searched or, equivalently, one pixel in the image to be searched. The neurons are lined up in order (unlike standard ZISC). The inventive system matches two strings of base-pairs, one of which is stored in the neurons, and the other of which is entered into the system input one character at a time and thereafter broadcast to all of the neurons. The inputs, outputs and contents of each neuron in the system include one stored base pair, a left_errors register; a right_errors register; a parallel sort bus; and a neuron number or location register. The operation may include the following steps: at the start of the operation, all left_errors and right_errors registers are reset to '0'. When one base-pair is entered into the system input, all neurons compare it to their own stored base-pair. If it is the same, right_errors=left_errors + 0 (which becomes left_errors to the next neuron in the left to right arrangement). If it is different, right_errors=left_errors + 1. This operation continues for all of the base-pairs in the input sub string. At the end of the sub string of 'm' characters, each right_errors register will record the number of errors (or mismatched pairs) in the 'm' characters to the left of its position in the sequence (including itself). A '0' result indicates that there was a perfect match of the input to this part of the sequence. A 'l' indicates that there is an almost perfect match with only one mismatch. A '2' through '6' result indicates that number of mismatches. If left_errors equals '7', then right_errors will always equal '7'. The fourth bit indicates that an end of the stored substring character has been reached. When this bit is turned on, then left_errors will always be transferred to right_errors unchanged until the end of the input sub string. At the end of an input sub string (i.e., the end of a search), a parallel search in the manner of a standard ZISC search is performed.
STRING SEARCH NEURON FOR ARTIFICIAL NEURAL NETWORKS