System and method of pattern recognition employing a multiprocessing pipelined apparatus with private pattern memory
First Claim
1. An apparatus for performing pattern recognition procedures regarding an unknown pattern, said apparatus for interfacing to a computer system having a computer system bus, said apparatus comprising:
- programmable multiprocessing means for executing pattern recognition instructions, each pattern recognition instruction comprising arithmetic, pointer and control operations which are executed in parallel, wherein said programmable multiprocessing means further comprises;
(i) two arithmetic pipelines for executing two arithmetic instructions in parallel, a first arithmetic pipeline optimized for performing distance computations between segments of said unknown pattern and segments of reference patterns and a second arithmetic pipeline optimized for performing best path computations in response to previously computed distance computations;
(ii) two pointer pipelines for executing two pointer instructions in parallel, a first pointer pipeline for supplying pointer information for said first arithmetic pipeline and a second pointer pipeline for supplying pointer information for said second arithmetic pipeline; and
(iii) a control pipeline for providing instruction flow control for said pattern recognition procedures;
internal memory means for providing storage for temporary results of said pattern recognition instructions and for providing temporary storage for said unknown pattern and selected reference patterns; and
external memory means for providing storage for a library of said reference patterns, said external memory means communicatively coupled to said internal memory means via a private and dedicated communication bus separate from said computer system bus.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented apparatus and method of pattern recognition utilizing a pattern recognition engine coupled with a general purpose computer system. The present invention system provides increased accuracy and performance in handwriting and voice recognition systems and may interface with general purpose computer systems. A pattern recognition engine is provided within the present invention that contains five pipelines which operate in parallel and are specially optimized for Dynamic Time Warping and Hidden Markov Models procedures for pattern recognition, especially handwriting recognition. These pipelines comprise two arithmetic pipelines, one control pipeline and two pointer pipelines. Further, a private memory is associated with each pattern recognition engine for library storage of reference or prototype patterns. Recognition procedures are partitioned across a CPU and the pattern recognition engine. Use of a private memory allows quick access of the library patterns without impeding the performance of programs operating on the main CPU or the host bus. Communication between the CPU and the pattern recognition engine is accomplished over the host bus.
-
Citations
50 Claims
-
1. An apparatus for performing pattern recognition procedures regarding an unknown pattern, said apparatus for interfacing to a computer system having a computer system bus, said apparatus comprising:
-
programmable multiprocessing means for executing pattern recognition instructions, each pattern recognition instruction comprising arithmetic, pointer and control operations which are executed in parallel, wherein said programmable multiprocessing means further comprises; (i) two arithmetic pipelines for executing two arithmetic instructions in parallel, a first arithmetic pipeline optimized for performing distance computations between segments of said unknown pattern and segments of reference patterns and a second arithmetic pipeline optimized for performing best path computations in response to previously computed distance computations; (ii) two pointer pipelines for executing two pointer instructions in parallel, a first pointer pipeline for supplying pointer information for said first arithmetic pipeline and a second pointer pipeline for supplying pointer information for said second arithmetic pipeline; and (iii) a control pipeline for providing instruction flow control for said pattern recognition procedures; internal memory means for providing storage for temporary results of said pattern recognition instructions and for providing temporary storage for said unknown pattern and selected reference patterns; and external memory means for providing storage for a library of said reference patterns, said external memory means communicatively coupled to said internal memory means via a private and dedicated communication bus separate from said computer system bus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for pattern recognition comprising:
-
general purpose host computer system means comprising;
a host bus means for providing communication within said general purpose host computer system means;
central processor means for executing host instructions, said central processor means coupled to said host bus means; and
host memory means for storing host information, said host memory means coupled to said host bus means; andprogrammable multiprocessing means for executing pattern recognition instructions for comparing an unknown pattern against a plurality of reference patterns;
said programmable multiprocessing means coupled to said host bus means, wherein said programmable multiprocessing means further comprises;(i) two arithmetic pipelines for executing two arithmetic instructions in parallel, a first arithmetic pipeline optimized for performing distance computations between segments of said unknown pattern and segments of said plurality of reference patterns and a second arithmetic pipeline optimized for performing best path computations in response to previously computed distance computations; (ii) two pointer pipelines for executing two pointer instructions in parallel, each of said pointer pipelines for supplying pointer information for an associated arithmetic pipeline; and (iii) a control pipeline for providing instruction flow control for said pattern recognition instructions, and wherein said two arithmetic pipelines, said two pointer pipelines and said control pipeline operate in parallel to execute Very Long Instruction Words within said pattern recognition instructions; and private memory means coupled to said programmable multiprocessing means for storing a library of said plurality of reference patterns, said private memory means having at least one communication pathway to said programmable multiprocessing means that bypasses said host bus means wherein access of said private memory means by said programmable multiprocessing means does not necessarily increase information flow across said host bus means. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. In a computer system having a central processor for executing instructions, a host memory array for storing information, and a communication bus coupled to said central processor and to said host memory array, a pattern recognition apparatus coupled to said communication bus for determining an unknown pattern information, said pattern recognition apparatus comprising:
-
a programmable multiprocessor specially optimized for executing pattern recognition instructions, said programmable multiprocessor communicatively coupled with said central processor wherein said programmable multiprocessor further comprises; (i) a first arithmetic pipeline for performing arithmetic instructions on individual points of said unknown pattern information against individual points of a selected reference pattern; and (ii) a first pointer pipeline for executing pointer instructions to reference said individual points of said unknown pattern information and of said selected reference pattern, wherein said first pointer pipeline and said first arithmetic pipeline execute in parallel; (iii) a second arithmetic pipeline for performing arithmetic instructions on results from said first arithmetic pipeline; and (iv) a second pointer pipeline for executing pointer instructions to reference results from said first arithmetic pipeline, wherein said second pointer pipeline said second arithmetic pipeline, and said first arithmetic pipeline execute in parallel; and a private memory array, separate from said host memory array, for storing reference patterns, said private memory array communicatively coupled to said programmable multiprocessor by at least one communication channel that bypasses said communication bus wherein communication between said private memory array and said programmable multiprocessor does not interfere with said control processor. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. In a computer system having a central processor for executing instructions, a host memory array for storing information, and a communication bus coupled to said central processor and to said host memory array, a pattern recognition apparatus for determining an unknown pattern, said pattern recognition apparatus coupled to said communication bus, said pattern recognition apparatus comprising:
-
a programmable multiprocessor specially optimized for executing pattern recognition instructions, said programmable multiprocessor comprising; a first and a second arithmetic pipeline for executing two arithmetic instructions in parallel, said first arithmetic pipeline optimized for performing distance computations between segments of said unknown pattern and segments of a reference pattern of a plurality of reference patterns and said second arithmetic pipeline optimized for performing best path computations in response to previously computed distance computations; a first and a second pointer pipeline for executing two pointer instructions in parallel, said first pointer pipeline supplying reference pointers to said first arithmetic pipeline and said second pointer pipeline supplying reference pointers to said second arithmetic pipeline; a control pipeline for controlling instruction flow of said arithmetic and pointer instructions by executing a control instruction in parallel with said two arithmetic and pointer instructions; and a private memory array, separate from said host memory array, for storing said plurality of reference patterns, said private memory array communicatively coupled to said programmable multiprocessor by at least one communication channel that bypasses said communication bus. - View Dependent Claims (28, 29, 30)
-
-
31. In a computer system having a central processor for executing instructions, a host memory array for storing information, and a communication bus coupled to said central processor and to said host memory array, an apparatus for performing pattern recognition instructions to reduce processing required of said central processor, said pattern recognition apparatus for determining an unknown pattern, said pattern recognition apparatus coupled to said communication bus, said pattern recognition apparatus comprising:
-
a) a programmable multiprocessor specially optimized for handwriting recognition and for executing pattern recognition instructions, said programmable multiprocessor comprising; a first and a second arithmetic pipeline for executing two arithmetic instructions in parallel, said first arithmetic pipeline optimized for performing distance computations between segments of said unknown pattern and segments of a selected reference pattern and said second arithmetic pipeline optimized for performing best path computations in response to previously computed distance computations; a first and a second pointer pipeline for executing two pointer instructions in parallel, said first pointer pipeline for supplying reference pointers to said first arithmetic pipeline and said second pointer pipeline for supplying reference pointers to said second arithmetic pipeline; a control pipeline for controlling instruction flow of said arithmetic and pointer instructions by executing a control instruction in parallel with said two arithmetic and pointer instructions; an internal buffer memory for storing said unknown pattern and said selected reference pattern; and b) a private memory array, separate from said host memory array, for storing reference patterns, said private memory array communicatively coupled to said programmable multiprocessor by at least one communication channel that bypasses said communication bus. - View Dependent Claims (32, 33)
-
-
34. A system for performing pattern recognition comprising:
-
host processor means for executing high level pattern recognition instructions and system tasks apart from said pattern recognition instructions; communication bus means coupled to said host processor means, said communication bus means for supplying a communication pathway for said host processor means to perform said system tasks; multiprocessor means specially optimized for performing lower level pattern recognition instructions between an unknown pattern and selected reference patterns, said multiprocessor means coupled to said communication bus means to receive instructions from said host processor means, wherein said multiprocessor means further comprises; (i) a first arithmetic pipeline for performing arithmetic instructions on individual points of said unknown pattern against individual points of a selected reference pattern; and (ii) a first pointer pipeline for executing pointer instructions to reference said individual points of said unknown pattern and of said selected reference pattern, wherein said first pointer pipeline and said first arithmetic pipeline execute in parallel; (iii) a second arithmetic pipeline for performing arithmetic instructions on results from said first arithmetic pipeline; and (iv) a second pointer pipeline for executing pointer instructions to reference said results from said first arithmetic pipeline, wherein said second pointer pipeline, said second arithmetic pipeline, and said first arithmetic pipeline execute in parallel; and private memory means for storing a plurality of reference patterns, said private memory means coupled to said multiprocessor means by a communication pathway that bypasses said communication bus means wherein accessing of said selected reference patterns of said private memory means by said multiprocessor means does not increase information bandwidth over said communication bus means. - View Dependent Claims (35, 36, 37)
-
-
38. A user interactive system for pattern recognition comprising:
-
a pen-based host computer system comprising;
a host bus for providing communication within said pen-based host computer system;
central processor for executing high level pattern recognition instructions, said central processor coupled to said host bus;
an input stylus and digitizer responsive to movement of a user hand for receiving an unknown handwriting pattern, said input stylus and digitizer coupled to said host bus; and
a host memory array for storing host information, said host memory array coupled to said host bus; anda programmable multiprocessor specially optimized for Dynamic Time Warping or Hidden Markov Models procedures for executing low level pattern recognition instructions to compare said unknown handwriting pattern against a plurality of reference handwriting patterns;
said programmable multiprocessor coupled to said host bus, wherein said programmable multiprocessor further comprises;(i) a first arithmetic pipeline for performing arithmetic instructions on individual points of said unknown handwriting pattern information against individual points of a selected reference handwriting pattern to determine distance computations; and (ii) a first pointer pipeline for executing pointer instructions to reference said individual points of said unknown handwriting pattern information and of said selected reference handwriting pattern, wherein said first pointer pipeline and said first arithmetic pipeline execute in parallel; (iii) a second arithmetic pipeline for performing arithmetic instructions on results from said first arithmetic pipeline to determine best path computations; and (iv) a second pointer pipeline for executing pointer instructions to reference said results from said first arithmetic pipeline, wherein said second pointer pipeline, said second arithmetic pipeline, and said first arithmetic pipeline execute in parallel; and a private memory array coupled to said programmable multiprocessor for storing a library of said plurality of reference handwriting patterns, said private memory array having at least one communication pathway to said programmable multiprocessor that bypasses said host bus so that access of said private memory by said programmable multiprocessor does not necessarily increase information flow across said host bus. - View Dependent Claims (39)
-
-
40. A computer implemented method of performing pattern recognition on an unknown pattern, said method comprising the computer implemented steps of:
-
a) executing high level pattern recognition instructions by a host processor; b) executing lower level pattern recognition instructions by a programmable multiprocessor to compare said unknown pattern against selected reference patterns, said step of executing lower level pattern recognition instructions further comprising the steps of; executing arithmetic instructions by a pair of arithmetic pipelines, said step of executing arithmetic instructions comprising the steps of performing arithmetic instructions on individual points of said unknown pattern against individual points of a selected reference pattern via a first arithmetic pipeline to perform distance computations and simultaneously performing arithmetic instructions on previous results from said first arithmetic pipeline via a second arithmetic pipeline to perform distance computations; and executing pointer instructions by a pointer pipeline in parallel with said step of executing arithmetic instructions; and c) communicating between said host processor and said programmable multiprocessor via a host computer bus; and d) transferring said selected reference patterns from a private memory array to said programmable multiprocessor, said step of transferring bypassing said host computer bus. - View Dependent Claims (41, 42, 43, 44, 46, 47)
-
-
45. In a computer system having a central processor means for executing computer system instructions, an input means for receiving an unknown pattern, a system memory array for storage of system information and a computer system bus for coupling said central processor means, said input means and said system memory array, a method of increasing accuracy and performance of pattern recognition applications comprising the computer implemented steps of:
-
performing high level pattern recognition procedures via said central processor means; performing lower level pattern recognition procedures via a programmable multiprocessor means to reduce processing required of said central processor means, said step of executing lower level pattern recognition procedures further comprising the steps of; (i) transferring a selected reference pattern from a private memory array to said programmable multiprocessor means; (ii) comparing said selected reference pattern, point by point against said unknown pattern, said step of comparing comprising the steps of executing arithmetic instructions by a pair of arithmetic pipelines, said step of executing arithmetic instructions comprising the steps of performing arithmetic instructions on individual points of said unknown pattern information against individual points of a selected reference pattern via a first arithmetic pipeline to perform distance computations and simultaneously performing arithmetic instructions on previous results from said first arithmetic pipeline via a second arithmetic pipeline to perform best path computations and executing pointer instructions by a pointer pipeline in parallel with said step of executing arithmetic instructions; and (iii) generating results of said comparing step indicating degrees of coincidence between said selected reference pattern and said unknown pattern; communicating between said central processor means and said programmable multiprocessor means via said computer system bus; storing said reference patterns in said private memory array; and communicating between said private memory array and said programmable multiprocessor over a communication channel separate from said computer system bus to reduce bandwidth requirements of said computer system bus. - View Dependent Claims (48)
-
-
49. In a computer system having a central processor means for executing computer system instructions, an input means for receiving an unknown information pattern, a system memory array for storage of system information and a computer system bus for coupling said central processor means, said input means and said system memory array, a method of increasing accuracy and performance of pattern recognition applications comprising the computer implemented steps of:
-
a) storing reference patterns in a private memory array; b) performing high level pattern recognition procedures via said central processor means, said high level procedures comprising the steps of; receiving an unknown pattern via said input means; transferring said unknown pattern to a programmable multiprocessing means via said computer system bus; transferring results of said programmable multiprocessing means to said central processor means via said computer system bus; and determining identity of said unknown pattern based on said results from said programmable multiprocessing means; and c) performing lower level pattern recognition procedures via said programmable multiprocessor means to reduce processing required of said central processor means, said lower level pattern recognition procedures comprises the steps of; transferring a selected reference pattern from said private memory array to said programmable multiprocessor means via a communication channel separate from said computer system bus to reduce bandwidth requirements of said computer system bus; comparing said selected reference pattern, point by point, against said unknown pattern, said step of comparing comprising the steps of executing arithmetic instructions by a pair of arithmetic pipelines, said step of executing arithmetic instructions comprising the steps of performing arithmetic instructions on individual points of said unknown pattern information against individual points of a selected reference pattern via a first arithmetic pipeline to perform distance computations and simultaneously performing arithmetic instructions on previous results from said first arithmetic pipeline via a second arithmetic pipeline to perform best path computations and executing pointer instructions by a pointer pipeline in parallel with said step of executing arithmetic instructions; and generating results of said comparing step indicating degrees of coincidence between said selected reference pattern and said unknown pattern. - View Dependent Claims (50)
-
Specification