EP0997828A2

Signal processing distributed arithmetic architecture

Abstract

An apparatus computes an inner product vector of a matrix and a vector. The matrix has a first set of coefficients and the vector has a second set of coefficients. At least one input register (110) is used to store the second set of coefficients. A plurality of storage elements (120) are used to store partial sums that are pre-calculated from the first set of coefficients of the matrix. The outputs of the at least one input register (110) are used as the address inputs to the plurality of storage elements to select a subset of the partial sums. In addition, a select circuit (150) is coupled to the storage elements' address lines to determine which row in the matrix the vector forms one element of the resultant inner product for that row. The subset of partial sums from the outputs of the storage elements (120) are added in an adder circuit (130) to create a summation output that presents the element of the inner product vector of the matrix multiplied by the vector. The apparatus has the advantages of reduced integrated circuit area and the ability to create elements of the inner product vector in any desired order.

EP0997828A2, drawing sheet 1
Sheet 1 of 19

Term

Term ended

Projected expiry passed 29 October 2019, 6.9 years ago.

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

10 claims: 2 independent, 8 dependent

  1. 1
    An apparatus for computing an inner product vector of a matrix and a vector, the inner product vector having a set of elements, the matrix having a first set of coefficients arranged in a set of rows and a set of columns, the vector having a second set of coefficients, comprising:at least one input register (110), said at least one input register (110) storing the second set of coefficients, said at least one input register (110) having a set of outputs;a plurality of storage elements (120), said storage elements (120) storing a set of partial sums derived from the first set of coefficients, said plurality of storage elements (120) having a set of address inputs and a set of data outputs, said set of address inputs coupled to said set of outputs of said at least one input register (110), said a set of data outputs presenting a subset of said set of partial sums, said subset of said set of partial sums selected by said set of address inputs;a select circuit (150), said select circuit (150) coupled to said set of address inputs of said plurality of storage elements (120), said select circuit (150) selecting a row in the matrix for computation of one element of said inner product vector from said selected row of the matrix and the vector;an adder circuit (130), said adder circuit having a summation output and a plurality of addend inputs, said plurality of addend inputs coupled to said set of data outputs of said storage elements (120), wherein each data output of said plurality of storage elements (120) is coupled to one addend input to form one addend of the summation output, said summation output presenting said one element of the inner product vector.
  2. 8
    A method for computing an inner product vector of a matrix and a vector, the matrix having a first set of coefficients arraigned in a set of rows and a set of columns, the vector having a second set of coefficients, comprising the steps of:generating a set of register outputs (110) from the second coefficients of the vector;storing a set of pre-calculated partial sums derived from the first coefficients in a plurality of storage elements (120);selecting a matrix row to be multiplied with the vector to form a portion of the inner product vector;selecting a subset of pre-calculated partial sums from said stored set of pre-calculated partial sums based on said set of register outputs (110) into said plurality of storage elements (120);adding said subset of pre-calculated partial sums in an adder circuit (130) to create said portion of the inner product;and repeating the steps of selecting a matrix row, selecting a subset of pre-calculated partial sums, and adding said subset or pre-calculated partial sums for each row of the matrix.