Multi-core engine for detecting bit errors
First Claim
1. A computer system for detecting errors during processing, comprising:
- a network adapter of the computer system configured to receive a data stream including data from a client; and
a processor of the computer system configured to process the data, the processor including one or more processor cores, wherein the one or more processor cores includes at least one of an encryption core and a decryption core, the one or more processor cores further configured to;
calculate a first signature associated with the data,perform a first operation to the data to produce first updated data,perform a second operation to the first updated data to produce second updated data,calculate a second signature associated with the second updated data,store the first signature and the second signature in at least one buffer of the computer system;
compare the first signature and the second signature from the at least one buffer,in response to the first signature and the second signature matching, store the first updated data in a memory of the computer system, andin response to the first signature and the second signature not matching;
(i) perform the first operation to the data to produce new first updated data, (ii) perform the second operation to the new first updated data to produce new second updated data, and (iii) calculate a new second signature associated with the new second updated data, wherein (i)-(iii) are performed until the first signature associated with the data matches the new second signature.
3 Assignments
0 Petitions
Accused Products
Abstract
The following description includes a method and a system of detecting bit errors in a multi-core processor. When a subatomic particle, or other matter, impacts the processing cores of the processor, bit flips may occur. To detect these bit flips and thereby prevent erroneous results, operations performed by one core are inversely performed by another core. By comparing the results of the original operation and the inverse operation, embodiments of the invention can detect errors in binary data. If an error is detected, then the operations are performed again. Alternatively, multiple cores do not perform inverse operations, but instead perform identical operations in parallel. The results from the parallel operations are compared and if the results are not identical, then the operations are repeated.
-
Citations
29 Claims
-
1. A computer system for detecting errors during processing, comprising:
-
a network adapter of the computer system configured to receive a data stream including data from a client; and a processor of the computer system configured to process the data, the processor including one or more processor cores, wherein the one or more processor cores includes at least one of an encryption core and a decryption core, the one or more processor cores further configured to; calculate a first signature associated with the data, perform a first operation to the data to produce first updated data, perform a second operation to the first updated data to produce second updated data, calculate a second signature associated with the second updated data, store the first signature and the second signature in at least one buffer of the computer system; compare the first signature and the second signature from the at least one buffer, in response to the first signature and the second signature matching, store the first updated data in a memory of the computer system, and in response to the first signature and the second signature not matching;
(i) perform the first operation to the data to produce new first updated data, (ii) perform the second operation to the new first updated data to produce new second updated data, and (iii) calculate a new second signature associated with the new second updated data, wherein (i)-(iii) are performed until the first signature associated with the data matches the new second signature. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
receiving, at a network adapter, a data stream including data from a client; processing the data by a computer processor having one or more processor cores that includes at least one of an encryption core and a decryption core, the one or more processor cores configured for; calculating a first signature associated with the data; performing a first operation to the data to produce first updated data; performing a second operation to the first updated data to produce second updated data; calculating a second signature associated with the second data; storing the first signature and the second signature in at least one buffer; comparing the first signature and the second signature from the at least one buffer; storing the first updated data in a memory coupled to the computer processor in response to the first signature and the second signature matching; and in response to the first signature and the second signature not matching;
(i) performing the first operation to the data to produce new first updated data, (ii) performing the second operation to the new first updated data to produce new second updated data, and (iii) calculating a new second signature associated with the new second updated data, wherein (i)-(iii) are performed until the first signature associated with the data matches the new second signature. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A non-transitory computer readable medium containing executable program instructions to be executed by a processor, the computer readable medium comprising:
-
program instructions that receive a data stream including data from a client; program instructions that process the data by a processor including one or more processor cores that includes at least one of an encryption core and a decryption core; program instructions that produce a first signature associated with the data by a first processor core of the one or more processor cores; program instructions that perform a first operation to the data to produce first updated data; program instructions that perform a second operation to the first updated data to produce second updated data; program instructions that produce a second signature associated with the second updated data by a second processor core of the one or more processor cores; program instructions that store the first signature and the second signature in at least one buffer; program instructions that compare, from the at least one buffer, the first signature and the second signature to detect whether a bit flip error associated with the data occurred when performing the first operation or the second operation, wherein the bit flip error occurs if the first signature and the second signature do not match; program instructions that transmit the data to a location to be stored in response to the detecting that the bit flip error has not occurred; and program instructions that, in response to the detecting that the bit flip error has occurred;
(i) perform the first operation to the data to produce new first updated data, (ii) perform the second operation to the new first updated data to produce new second updated data, and (iii) produce a new second signature associated with the new second updated data, wherein (i)-(iii) are repeated until the first signature matches the new second signature.
-
-
28. A system to detect errors during data processing, comprising:
-
a network adapter of the computer system configured to receive a data stream including a plurality of data blocks from a client; and a processor of the computing system configured to process the plurality of data blocks, the processor including one or more processor cores that includes at least one of an encryption core and a decryption core; at least one of the one or more processor cores configured to perform a first operation on a first block of the plurality of blocks to produce a first signature; at least one of the one or more processor cores configured to perform a first function on the first data block to produce a second data block; at least one of the one or more processor cores configured to perform a second function on the second data block to produce a third data block; at least one of the one or more processor cores configured to perform a second operation on the third data block to produce a second signature; a buffer configured to store the first signature and the second signature; at least one of the one or more processor cores configured to compare the first signature and the second signature from the buffer to determine an occurrence of a bit flip error associated with the first data block that occurs when performing the first operation or the second operation, wherein the bit flip error occurs if the first signature and the second signature do not match; and a memory configured to store the first signature and the second signature in response to the first signature and the second signature matching; at least one of the one or more processor cores, in response to the first signature and the second signature not matching, configured to;
(i) perform the first function on the first data block to produce a new second data block, (ii) perform the second function on the new second data block to produce a new third data block, and (iii) perform the second operation on the new third data block to produce a new second signature, wherein (i)-(iii) are repeated until the first signature matches the new second signature. - View Dependent Claims (29)
-
Specification