Patent ID: 6341299
Filing Date: 2002-01-22
Classification: G06F

Abstract:
A computation circuit for performing an operation of S=A*B+C, with A and B being integers encoded on at most m*k bits, C being an integer encoded on at most 2*m*k bits, and m and k being non-zero integers, the computation circuit comprising:a first m*k bit register for storing B, a second m*k bit register for storing at least one of m least significant k-bit words of C and an intermediate result, and a third m*k bit register for storing at least one of a least significant k-bit word of S and a most significant k-bit word of C; a fourth k bit register for storing a k-bit word of A; a first multiplication circuit for multiplying the data elements of said first and fourth bit registers; addition means; storing means; first linking means for connecting an output of said first multiplication circuit and an output of said second bit register to first and second inputs of said addition means for adding m least significant words of a result output from said first multiplication circuit and contents of said second bit register, and then connecting simultaneously the output of said first multiplication circuit, an output of said storing means and an output of said third bit register respectively to the first input, the second input and a third input of said addition means after the contents of the second bit register has been added, and for adding simultaneously a most significant word of the result output from said first multiplication circuit, a carry value stored in said storing means during a previous addition and a word of C to be added; and second linking means for connecting an output of said addition means to an input of said third bit register for storing a word of S in said third bit register, and then connecting the output of said addition means to an input of said second bit register for storing an updated intermediate result, and then connecting the output of said addition means to an input of said storing means for storing an updated carry value, if any, coming from an overflow of the result of the addition.