# US 5,351,247 A · Adaptive fault identification system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,351,247 A
- Document ID: US5351247A
- Status: Granted
- Kind: A
- Application number: 08/020,030
- Filed: 1993-02-18
- Granted: 1994-09-27
- Earliest claimed: 1988-12-30
- Assignees: Digital Equipment Corporation
- Inventors: Howard E. Dow; Ruby Li; Terry W. Potter
- Web page: https://patentgrep.com/patent/US5351247A

## CPC

- G06F 11/2257: {using expert systems}
- G06F 11/2205: {using arrangements specific to the hardware being tested}
- Y10S 706/911: Nonmedical diagnostics
- Y10S 706/916: Electronic or computer, internal or network, circuit
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

An adaptive fault identification system identifies repeat faults by capturing data representative of a fault. The captured data is subjected to a search tool and compared to data that is known to represent faults, and if possible, the unknown fault is identified. The search tool does not need to exactly match the data representing the unknown fault to the stored data. Instead, if the recall data pattern is similar enough to some of the stored data, a list of labels is returned where each label points to a recommended corrective action. By employing a learning algorithm, the similarity comparisons can be adapted to reflect greater knowledge of faults so that more accurate similarity comparisons can be made.

## Claims

### Claim 1

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern;
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list;
f) accepting as input to the computer additional information concerning actions to take to correct a fault in a given state, when there is no data entry in the production database satisfying the similarity criteria when compared with the recall data pattern;
g) creating a new data entry in the production database using the captured information on a fault for a given state of the system and associating with the new data entry a new label comprising the additional information concerning the actions to take to correct the fault; and
h) training the production database by adjusting the parameters of similarity criteria corresponding to the data entries, according to a preselected learning scheme, said learning scheme utilizing the new data entry when adjusting the parameters.

### Claim 2 (depends on 1)

The method of claim 1, wherein the similarity criteria are distance thresholds, and further comprising loading the production database into a parallel associative memory.

### Claim 3 (depends on 1)

The method of claim 1 wherein the step of processing the captured data further comprises the step of processing the captured data into recall data patterns of variable lengths.

### Claim 4 (depends on 1)

The method of claim 1, wherein said recall data patterns are machine readable.

### Claim 5 (depends on 1)

The method of claim 1, wherein the step of processing the captured data includes processing the captured data such that similar data patterns are associated with a same repeat fault, and dissimilar data patterns are associated with different repeat faults.

### Claim 6 (depends on 1)

The method of claim 1, wherein the step of processing the captured data processes the captured data into a recall data pattern without manipulation.

### Claim 7 (depends on 1)

The method of claim 1, further comprising using if/then programming constructs in the step of processing the captured data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the associated labels are hierarchical.

### Claim 9 (depends on 1)

The method of claim 1, wherein the step of processing the captured data includes the step of converting the captured data from hexadecimal to binary format.

### Claim 10 (depends on 1)

The method of claim 1, wherein the step of returning the ordered recommendation list of data entries further comprises the step of ordering the ordered recommendation list in accordance with the degree of similarity between each data entry in the ordered recommendation list and the recall data pattern.

### Claim 11 (depends on 1)

The method of claim 1, further comprising providing an indication of no inexact match if no data entry in the production database satisfies the similarity criteria when compared with the recall data pattern.

### Claim 12 (depends on 1)

The method of claim 1, wherein the step of comparing includes searching the production database using one of the searches: best match, nearest-neighbor or nearest-surface.

### Claim 13 (depends on 1)

The method of claim 1, further comprising returning a distance measure between the recall data pattern and the data entry for each data entry in the ordered recommendation list.

### Claim 14 (depends on 1)

The method of claim 1, wherein the similarity criteria is a Hamming distance between the recall data pattern and the data entries.

### Claim 15 (depends on 1)

The method of claim 1, wherein the comparing step is performed by a search tool capable of performing the following functions: processing variable length recall data patterns; masking portions of the recall data pattern such that the unmasked portions must match between the recall data pattern and the data entries; adjusting similarity criteria associated with each data entry; providing an ordered output list; performing inexact searching; and associating a data entry with a variable length label.

### Claim 16 (depends on 1)

The method of claim 1, further comprising the step of providing multiple production databases, wherein the step of processing the captured data includes breaking apart said captured data into parts and the step of comparing includes searching multiple production databases in parallel with said parts as recall data patterns.

### Claim 17 (depends on 1)

The method of claim 1, wherein the step of comparing includes performing a hierarchical search using multiple production databases.

### Claim 18 (depends on 1)

The method of claim 1, comprising the further step of updating the production database at specified time intervals.

### Claim 19 (depends on 1)

The method of claim 1, wherein the production database is updated upon an operator request.

### Claim 20 (depends on 1)

The method of claim 1, wherein said step of training the production database is performed automatically.

### Claim 21 (depends on 1)

The method of claim 1, wherein the step of training the production database includes merging a plurality of training sets, the training sets each comprising a production database of data entries.

### Claim 22 (depends on 1)

The method of claim 1, further comprising the further step of distributing a trained production database to separate locations.

### Claim 23 (depends on 1)

The method of claim 1, comprising the further step of utilizing the learning scheme to perform search space partitioning using hyperspheres.

### Claim 24 (depends on 1)

The method of claim 1, further comprising returning with said associated label one of: cost of repairing an identified repeat fault; time for repairing an identified repeat fault; and historical frequency data.

### Claim 25 (depends on 24)

The method of claim 24, further comprising modifying a list of returned associated labels according to one of said cost of repairing, said time for repairing, and said historical frequency data.

### Claim 26 (depends on 1)

The method of claim 1, wherein said step of processing the captured data includes discarding data elements of said captured data.

### Claim 27 (depends on 26)

The method of claim 26, wherein said discarded data elements include logic analyzer states.

### Claim 28 (depends on 26)

The method of claim 26, wherein the discarding of data elements is performed in accordance with domain-specific knowledge.

### Claim 29 (depends on 1)

The method of claim 1, wherein the sep of comparing includes performing a hierarchical search which depends on previous search results.

### Claim 30 (depends on 29)

The method of claim 29, wherein the hierarchical search includes performing an initial best match search using subspace mask restrictions, and if no associated label can be returned, repeating the search after removing at least one of the subspace mask restrictions.

### Claim 31 (depends on 30)

The method of claim 30, wherein the subspace mask restrictions include a failing self-test and a trigger address.

### Claim 32 (depends on 1)

The method of claim 1 wherein the step of training the production database comprises the step of adjusting the parameters of the similarity criteria associated with the data entries by utilizing the recall data patterns when adjusting the parameters.

### Claim 33 (depends on 32)

The method of claim 32, wherein the step of training the production database is performed after a single recall data pattern and associated label are presented to the learning scheme.

### Claim 34 (depends on 32)

The method of claim 32, wherein the step of training the production database includes using the similarity criteria as an input to the learning scheme.

### Claim 35 (depends on 32)

The method of claim 32, wherein the learning scheme allows maximally overlapping hyperspheres obtained by using initial distance thresholds of maximum size and decreasing a distance threshold associated with a data entry only as needed to exclude an incorrect recall data pattern.

### Claim 36 (depends on 32)

The method of claim 32, comprising the further step of updating the production database after a specified number of data patterns are captured.

### Claim 37 (depends on 36)

The method of claim 36, wherein the step of updating is performed by a batch processing function.

### Claim 38 (depends on 32)

The method of claim 32, wherein the step of training the production database includes merging a plurality of training sets, the training sets each comprising a production database of stored data patterns.

### Claim 39 (depends on 38)

The method of claim 38, wherein the data entries and associated label pairs in said plurality of training sets are selectable.

### Claim 40 (depends on 32)

The method of claim 32, wherein the step of training the production database includes: increasing a distance threshold associated with a data entry; decreasing a distance threshold associated with a data entry; drifting a data entry; storing newly presented data entries; and deleting data entries.

### Claim 41 (depends on 40)

The method of claim 40, wherein returning an incorrect associated label causes the recall data pattern to be stored, and a distance threshold associated with a data entry to be decreased.

### Claim 42 (depends on 1)

The method of claim 1, wherein the system is a unit under test (UUT) of a computer system and said captured data are machine states of said UUT.

### Claim 43 (depends on 42)

The method of claim 42, wherein said faults are characteristic of either correct or incorrect conditions of said UUT, a correct condition being indicated by a prompt from an operating system of the computer system.

### Claim 44 (depends on 42)

The method of claim 42, wherein said step of capturing data includes scanning an output of a console terminal of the UUT.

### Claim 45 (depends on 42)

The method of claim 42, wherein each associated label in the production database is a component of the UUT.

### Claim 46 (depends on 42)

The method of claim 42, wherein each associated label in the production database is a recommended repair activity.

### Claim 47 (depends on 42)

The method of claim 42, further comprising providing a stimulus to said unit under test to generate data to be captured.

### Claim 48 (depends on 47)

The method of claim 47, wherein said stimulus are a built-in self test and an operating system of the computer.

### Claim 49 (depends on 48)

The method of claim 48, further comprising using a subspace mask of a parallel associative memory to direct the step of comparing in accordance with a hierarchy of the built-in self test.

### Claim 50 (depends on 48)

The method of claim 48, further comprising detecting an infinite loop or machine stoppage from domain-specific knowledge of completion times for portions of the built-in self test.

### Claim 51 (depends on 42)

The method of claim 42, wherein said step of capturing data is performed by a logic analyzer.

### Claim 52 (depends on 51)

The method of claim 51, wherein said step of capturing data includes capturing up to 1024 32-bit logic analyzer states using a strobe line of the UUT.

### Claim 53 (depends on 51)

The method of claim 51, wherein said step of capturing data includes capturing either output or lack of output from a console terminal of the UUT.

### Claim 54 (depends on 51)

The method of claim 51, wherein said step of capturing data includes capturing an indication of which section of a built-in self test the computer is currently executing.

### Claim 55 (depends on 51)

The method of claim 51, further comprising using a subspace mask of a parallel associative memory to direct the step of comparing in accordance with data elements of the logic analyzer.

### Claim 56

A computer device for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the device comprising:
a) a computer processor coupled to the components of the system to receive as input state data representative of a state of the system when a fault occurs;
b) a production database coupled to the computer processor and storing a plurality of data entries concerning one or more instances when the system was faulting in a particular state, each entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the state data is considered similar to the values of a given data entry in the production database;
c) the computer processor including means to compare the state data with all the data entries in the production database to determine if the state data satisfies the similarity criteria with respect to each of the plurality of data entries in the production database;
d) the computer processor including means to output each label associated with each data entry in the production database that satisfies the similarity criteria;
e) an input device coupled to the computer processor for accepting input concerning actions to take to correct a fault in a given state when there is not data entry in the production database that satisfies the similarity criteria with respect to the state data;
f) the computer processor including means to create a new entry in the production database using the input data representative of a fault for a given state of the system and associating with the new entry a new label comprising the additional information concerning the actions to take to correct the fault; and
g) the computer including means to train the production database by adjusting the parameters of the similarity criteria, according to a preselected learning scheme, said learning scheme utilizing the new entry when adjusting the parameters.

### Claim 57

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the system being a unit under test of a computer system, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) providing a stimulus to said unit under test to generate data to be captured, said stimulus being a built-in self test and an operating system of the computer system;
b) capturing data representative of a state of the system when a fault occurs, said captured data being machine states of said unit under test;
c) processing the captured data into a recall data pattern;
d) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
e) comparing, using a subspace mask of a parallel associative memory in accordance with a hierarchy of the built-in self test, the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern; and
f) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 58

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the system being a unit under test of a computer system, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing, using a logic analyzer, data representative of a state of the system when a fault occurs, said captured data being machine states of said unit under test;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing, using a subspace mask of a parallel associative memory in accordance with data elements of the logic analyzer, the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern; and
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 59

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern using if/then programming constructs;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern; and
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 60

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern;
e) ordering the ordered recommendation list in accordance with the degree of similarity between each data entry in the ordered recommendation list and the recall data pattern; and
f) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 61

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern; and
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list;
wherein the comparing step is performed by a search tool capable of performing the following functions: processing variable length recall data patterns; masking portions of the recall data pattern such that the unmasked portions must match between the recall data pattern and the data entries; adjusting similarity criteria associated with each data entry; providing an ordered output list; performing inexact searching; and associating a data entry with a variable length label.

### Claim 62

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) dividing the captured data into parts;
c) processing each part of the captured data into a corresponding recall data pattern;
d) providing multiple production databases, each production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, each production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
e) searching the multiple production databases in parallel by comparing each recall data pattern with each one of the plurality of data entries in one of the multiple production databases to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern; and
f) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 63

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern, wherein the step of comparing includes performing a hierarchical search which depends on previous search results; and
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list.

### Claim 64

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine an ordered recommendation list of data entries, each data entry in the ordered recommendation list satisfying the similarity criteria when compared with the recall data pattern;
e) returning the ordered recommendation list of data entries and each label from the production database associated with each data entry in the ordered recommendation list;
f) providing a training database comprising a second plurality of data entries representative of one or more instances when the system is faulting in a particular state, each one of the plurality of data entries having associated with it a second label that identifies a proper response to correct at least one system fault for the particular state;
g) adding the second plurality of data entries and the second labels from the training database to the production database; and
f) training the production database using a learning algorithm by dynamically changing the similarity criteria as the second plurality of data entries and the second labels are added to the production database.

### Claim 65

A computer-based method for identifying faults in a system, the system comprising a plurality of mechanical or electrical components that operate in a plurality of states, the components of the system being arranged to output data indicative of their respective performance during any given state, the method comprising the steps of:
a) capturing data representative of a state of the system when a fault occurs;
b) processing the captured data into a recall data pattern;
c) providing a production database comprising a plurality of data entries, each data entry representative of one or more instances when the system is faulting in a particular state, each data entry having associated with it a label that identifies a proper response to correct at least one system fault for the particular state, the production database having associated with it a similarity criteria being a measure of similarity and comprising parameters within which the recall data pattern is considered similar to a data entry;
d) comparing the recall data pattern with each one of the plurality of data entries in the production database to determine a recommendation list of data entries, each data entry in the recommendation list satisfying the similarity criteria when compared with the recall data;
e) returning the recommendation list of data entries and each label from the production database associated with each data entry in the recommendation list; and
f) if the recommendation list does not have a successful recommendation, modifying the similarity criteria.
