Browse Prior Art Database

Pipelined Vector Accumulation

IP.com Disclosure Number: IPCOM000061146D
Original Publication Date: 1986-May-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 2 page(s) / 13K

Publishing Venue

IBM

Related People

Buchholz, W: AUTHOR [+2]

Abstract

Unlike most vector-arithmetic operations, where successive elements are processed independently such that pipelining does not affect the result, summation of vector elements can produce different results depending on the order in which the additions are performed. The differences are due to loss of information during initial exponent adjustments, cancellation effects in subtraction, and, in some cases, overflow or underflow of intermediate stages in the pipeline. The order of addition operations may also depend on whether or not instruction execution has been interrupted and later resumed.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Pipelined Vector Accumulation

Unlike most vector-arithmetic operations, where successive elements are processed independently such that pipelining does not affect the result, summation of vector elements can produce different results depending on the order in which the additions are performed. The differences are due to loss of information during initial exponent adjustments, cancellation effects in subtraction, and, in some cases, overflow or underflow of intermediate stages in the pipeline. The order of addition operations may also depend on whether or not instruction execution has been interrupted and later resumed.

The method disclosed involves replacing the single scalar sum result with p partial sums, where p is designated the partial sum number. The value of p is chosen to be at least equal to the number of stages in the pipeline. One of the vector registers is used to receive the partial sums. If a vector register can hold n elements, only the first p elements are used in the result register. In this case, p is typically much smaller than n. The p partial sums are first set to zeros with a special instruction. The summation operation consists of adding the first p elements of the vector operand to the p (zeroed) result elements, and then adding the next p operand elements to the same elements, and so forth. This can be done in one continuous operation in a manner similar to ordinary vector addition except that the result vector is wrapped back on itself after the p-th element.

If the ordinary vector to be summed is longer than n elements, the operation is repeated in an instruction loop but without zeroing the partial sums again, such that the p partial sums continue to be formed until all operand elements are processed. Finally,...