Patent ID: 6178436
Filing Date: 2001-01-23
Classification: G06F

Abstract:
A multiplier for multiplying first and second vectors in a finite field, each of the first and second vectors having a predetermined number of elements, the multiplier comprising:a first shift register having the predetermined number of positions, wherein the first shift register is configured to receive the first vector and circularly shift the first vector responsive to a shift signal, and each one of the positions of the first shift register corresponds to an element of the first vector;a second shift register having the predetermined number of positions, wherein the second shift register is configured to receive the second vector and circularly shift the second vector responsive to the shift signal, and where each one of the plurality of positions of the second shift register corresponds to one element of the second vector;a third shift register having the predetermined number of positions, wherein the third shift register is configured to accumulate a result vector and circularly shift the result vector responsive to the shift signal, and where the third shift register is further configured to load a combination result vector responsive to a load signal;a control circuit coupled to the first shift register and operative to produce the shift signal and load signal responsive to one of the elements of the first vector; andcombinational logic configured to generate the combination result vector, wherein the combination result vector has the predetermined number of elements, wherein each element of the combination result vector corresponds to one element of the accumulated result vector, and wherein each element of the combination result vector is produced by modulo adding a subset of the elements of the second vector, the subset of the elements of the second vector being determined by a predetermined tensor, to obtain an intermediate result, and modulo adding the intermediate result with the corresponding element of the accumulated result vector.