Nova Patents
EP0366331A2

Error detection and correction systems.

Abstract

Apparatus is provided for performing a method for detecting and correcting errors in one clock cycle that occur during arithmetic operations of at least two operands. Specifically, two operands are operated on to obtain a result. The digits of the result are added to one another. This adding step is repeated until a first single digit is achieved. The digits of each of the operands are added to one another to obtain an intermediate sum. The digits of the intermediate sum, in turn, are added to one another. Once again, this operation is repeated until a second single digit is achieved. The first single digit number is compared with the second single digit number and a signal indicative of error is generated if the comparison is unsuccessful. In order to correct the error, the digits of each of the operands are added to one another to obtain an intermediate sum. Sequentially, a digit is subtracted from the partial sum of the remaining digits of each of the operands. The results of the subtraction for each operand are added to one another at the end of each sequential cycle to obtain a set of arguments, each of which is subtracted from the intermediate sum to obtain a set of partial differences. The partial differences are concatenated to obtain a transitional value. By eliminating certain digits, a correct value of the arithmetic operation is obtained.

EP0366331A2, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 17 October 2009, 16.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

24 claims: 24 independent, 0 dependent

  1. 1
    A method for detecting errors in arithmetic operations of at least two operands, each operand having at least one digit, the steps comprising:(a) operating on two operands to obtain a result;(b) adding the digits of said result to one another;(c) repeating step (b) until a first single digit is achieved;(d) adding the digits of each of said operands to obtain an intermediate sum;(e) operating on the digits of said intermediate sum;(f) repeating step (e) until a second single digit is achieved;and (g) comparing said first single digit number with said second single digit number and generating signal indicative of error if said comparison is unsuccessful.
  2. 2
    The method in accordance with Claim 1 wherein said arithmetic operation is addition.
  3. 3
    The method in accordance with Claim 1 wherein said arithmetic operation is subtraction.
  4. 4
    The method in accordance with Claim 1 wherein said arithmetic operation is multiplication and said operations on said digits of said intermediate sum is multiplication.
  5. 5
    A method for correcting detected errors in an arithmetic operation of at least two operands without repeating said arithmetic operation, each of which operands having at least two digits, wherein either one of said two digits can be zero, the steps comprising:(a) adding the digits of each of said operands to obtain an intermediate sum;(b) sequentially subtracting a digit from the partial sum of the remaining digits of each of said operands and adding the results of said subtraction for each operand to one another at the end of each sequential cycle to obtain a set of arguments;(c) subtracting each of said arguments from said intermediate sum to obtain a set of partial differences, each of said partial differences comprising a least significant digit and a carry digit;(d) dividing said partial differences by the number of operands;(e) concatenating said partial differences to obtain a transitional value;(f) beginning with the least significant carry digit of the transitional value, adding the carry digits to the corresponding next adjacent digits to obtain a penultimate value;and (g) eliminating all but the first and last digits of said penultimate value and eliminating all carry digits therebetween to obtain a correct value of the arithmetic operation.
  6. 6
    The method in accordance with Claim 5 wherein said arithmetic operation is addition.
  7. 7
    The system in accordance with Claim 5 wherein said arithmetic operation is subtraction.
  8. 8
    A method for detecting and correcting errors in arithmetic operations of at least two operands without repeating said arithmetic operation, each of which operands having at least two digits, wherein either one of said two digits can be zero, the steps comprising:(a) operating on two operands to obtain a result;(b) adding the digits of said result to one another;(c) repeating step (b) until a first single digit is achieved;(d) adding the digits of each of said operands to obtain an intermediate sum;(e) operating on the digits of said intermediate sum;(f) repeating step (e) until a second single digit is achieved;(g) comparing said first single digit number with said second single digit number to determine whether an arithmetic operation error occurred;(h) sequentially subtracting a digit from the partial sum of the remaining digits of each of said operands and adding the results of said subtraction for each operand to one another at the end of each sequential cycle to obtain a set of arguments;(i) subtracting each of said arguments from said intermediate sum to obtain a set of partial differences, each of said partial differences comprising a least significant digit and a carry digit;(j) dividing said partial differences by the number of operands;(k) concatenating said partial differences to obtain a transitional value;(l) beginning with the least significant carry digit of the transitional value, adding the carry digits to the corresponding next adjacent digits to obtain a penultimate value;and (m) eliminating all but the first and last digits of said penultimate value and eliminating all carry digits therebetween to obtain a correct value of the arithmetic operation, so that the detection and correction of errors occurs in one clock cycle.
  9. 9
    The method in accordance with Claim 8 wherein said arithmetic operation is addition.
  10. 10
    The method in accordance with Claim 8 wherein said arithmetic operation is subtraction.
  11. 11
    A method of detecting and correcting errors in an arithmetic operation of at least two operands, the steps comprising:(a) detecting an arithmetic operation error during a first clock cycle;and (b) correcting said arithmetic operation error during said first clock cycle without repeating said arithmetic operation.
  12. 12
    The method in accordance with Claim 11 wherein said arithmetic operation is addition.
  13. 13
    The method in accordance with Claim 11 wherein said arithmetic operation is subtraction.
  14. 14
    A system for detecting errors in arithmetic operations of two operands comprising:(a) calculation means for performing arithmetic operations and for generating a first signal representative of the results thereof, said calculation means having inputs applied thereto corresponding to each of said operands;and (b) error detection means also adapted to receive said inputs corresponding to each of said operands and adapted to receive said first signal from said calculation means.
  15. 15
    The system in accordance with Claim 14 wherein said error detection means is also adapted to generate second, third and fourth signals representative respectively of (i) a compressed arithmetic operation result, (ii) a compressed calculation means first signal, and (iii) an error corrected value and wherein said system further comprises:(c) comparing means operatively connected to said error detection means for receiving said second and said third signals therefrom and for generating an error signal if said second and said third signals are unequal.
  16. 16
    The system in accordance with Claim 15 further comprising:(d) data selection means adapted to receive said first and said fourth signals and said error signal and adapted to generate a signal to determine which of said first or said fourth signals is a valid result of said arithmetic operation of said operands.
  17. 17
    The system in accordance with Claim 14 wherein said error detection means comprises a look-up table for compressing said first signal.
  18. 18
    A computer processor capable of performing and verifying arithmetic operations comprising:(a) an arithmetic logic unit (ALU) for receiving signals indicative of operand values, for performing arithmetic operations and for generating a signal representative of the result thereof;(b) a logic subsystem operatively connected to said ALU for receiving said ALU result signal therefrom, said logic subsystem also being adapted to receive signals indicative of operand values to perform arithmetic operations thereon, and comprising compression means for transforming values into a first signal representative of said logic subsystem arithmetic operations and into a second signal representative of said ALU result signal;and (c) a comparator for comparing said first and said second compressed signals and for generating an error signal when said first and said second compressed signals are unequal.
  19. 19
    The processor in accordance with Claim 18 wherein said compression means is a look-up table.
  20. 20
    The processor in accordance with Claim 18 wherein said compression means is a binary coded decimal (BCD) device.
  21. 21
    The processor in accordance with Claim 19 wherein said first and said second signals are four bits.
  22. 22
    The processor in accordance with Claim 20 wherein said first and said second signals are four bits.
  23. 23
    The processor in accordance with Claim 18 wherein said logic subsystem also generates a third signal representative of the correct result of said logic subsystem arithmetic operation.
  24. 24
    The processor in accordance with Claim 23 whereby said third signal is generated in the same clock cycle as said ALU result signal.
Independent claims24