×

Method and apparatus for indirectly addressed vector load-add -store across multi-processors

  • US 7,421,565 B1
  • Filed: 08/18/2003
  • Issued: 09/02/2008
  • Est. Priority Date: 08/18/2003
  • Status: Active Grant
First Claim
Patent Images

1. A computerized method comprising, in each of a plurality of processors including a first processor and a second processor:

  • (a) loading a first vector register with addressing values;

    (b) loading a second vector register with operand values;

    (c) determining which, if any, element addresses of the first vector register have a value that duplicates a value in another element address;

    (d) selectively adding certain elements of the second vector of operand values based on the element addresses of the duplicated values;

    (e) loading, using indirect addressing from the first vector register, elements from memory into a third vector register;

    (f) adding values from the third vector register and the second vector of operand values to generate a result vector; and

    (g) storing the result vector to memory using indirect addressing;

    wherein the determining of duplicates includes;

    generating each respective address value for a sequence of addressed locations within a constrained area of memory containing 2N consecutive addresses using an N-bit value derived from each respective addressing value of the first vector register,generating each respective data value of a first sequence of values by combining at least a portion of each respective addressing value of the first vector register to a respective one of a sequence of integer numbers,storing the first sequence of values to the constrained memory area using the generated sequence of respective address values,loading a second first sequence of values from the constrained memory area using the generated sequence of respective address values, andcomparing the first sequence of values to the second sequence of values;

    wherein the loading of the third vector register includes loading elements from locations specified by addressing values corresponding to indications of positive compares from the comparing;

    wherein addresses of the elements from memory are calculated by adding each respective addressing value to a base address;

    wherein the adding includes a floating-point addition operation that produces at least one element of the result vector as an ordered-operation floating point summation of an element of the loaded third vector register and a plurality of respective elements of the original second vector of operand values corresponding to elements of the first vector of addressing values having identical values, andwherein for the storing of the result vector of elements to memory, elements are stored to locations specified by addressing values corresponding to indications of positive compares.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×