Computers normally include an arithmetic logic unit (ALU) that includes an adder that adds numbers of some maximum number of bits. Adders for words of length 32 and 64 bits are common in microprocessors and the like. While these adders will also operate on much smaller words, when doing so, the majority of the logic circuits contained in the adders are idle. For example, a 64-bit adder can be used to add two 8-bit words by placing each of the 8-bit words in the least significant portion of a corresponding 64 -bit word and then adding the 64 -bit words. During the addition, the logic circuitry concerned with adding the 7 high order bytes of each of the words is effectively idle. Hence, 7/8.sup.ths of the capacity of the adder is being wasted during this operation.
Computations involving operations on a large number of small words are often encountered in multi-media data processing. Images are normally represented as arrays of pixels in which each pixel is represented by a word that is significantly smaller than maximum word size of the arithmetic logic unit. A gray scale image is typically represented by an array of one byte integers representing the light intensity at corresponding locations in the image. Similarly soundtracks are typically represented by arrays of one or two byte integers representing the intensity of the sound track as a function of time. Hence, multi-media data processing typically under utilizes the computational capacity of the arithmetic logic unit incorporated in the typical general purpose computer.
In addition to under utilizing the capacity of the ALU, this type of data processing often results in further inefficiencies resulting from the need to pack and unpack the data prior to operating on it in the ALU. For example, since storage space is always at a premium, the pixels of the image are typically packed into words. If the basic word size on the computer is 32-bits, the pixels of a gray scale image could be packed four per word. Consider an operation that must be performed on each pixel in the image. In addition to the time needed to perform the operation, the program must also unpack the pixel information prior to each computation and repack the result. These packing and unpacking operations further decrease the efficiency of the operation.
The computation times encountered in multi-media operations can be excessive. Hence, special parallel computer architectures are often employed to reduce the time between the execution of the sum image command and the time at which the sum image is completed. Multimedia processing operations performed on one pixel or sound sample are often independent of the operations being performed on the other pixels or sound samples; hence, the operations can be performed in parallel without regard to ordering. A computer with M adders can, in principle, provide a result in 1/M.sup.th the time provided the movement of the pixels between memory and the adders does not become a bottleneck. Hence, it would be advantageous to provide a computer architecture in which multiple additions can be performed in parallel. Unfortunately, the cost of providing these additional ALUs and the hardware needed to control them is often prohibitive.
One class of computation that is often performed over a large data set is multiplication by a binary fraction. Such computation are common in filtering operations and in data compression and decompression operations. In these cases, the multiplication is by a constant.
Broadly, it is the object of the present invention to provide an improved ALU.
It is a further object of the present invention to provide an ALU that operates at high efficiency when multiple operations involving words that are smaller than the width of the ALU are processed.
It is a still further object of the present invention to provide an ALU that is adapted for computing a plurality of multiplications involving a binary fraction.
These and other objects of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.