Single-channel convolution in a vector processing computer system
AssigneeApple Computer, Inc.
InventorsAli Sazegari, Doug Clarke
Life of this patent
Estimating the term…
Loading patent…
AssigneeApple Computer, Inc.
InventorsAli Sazegari, Doug Clarke
Estimating the term…
The invention provides a system and method for performing convolution in a single channel of a vector processing computer system. The invention takes advantage of the parallel computing capability of the vector processing system and the distributed properties of the discrete-time convolution sum by performing convolution on portions of an overall data stream, or data chunks, simultaneously. Partial solutions are thereby obtained and superimposed to achieve an overall solution data stream. To simplify the convolution sum and eliminate the need for calculating products, an embodiment of the invention utilizes a specialized data signal or vector in the convolution operation. Specifically, a specialized vector comprising a series of ones may be used to simplify calculations.
A method of performing convolution of a first stream of data with a second stream of data in a vector processing computer system, comprising the steps of:
A system for performing convolution of a first stream of data with a second stream of data in a vector processing computer system, comprising:
A computer readable medium containing a program that executes the following steps:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Backward citations are indexed for grants only.
Complex mathematical operations: correlation function computation including computation of convolution operations
Computing and data processing
Term end not estimated
The present invention relates generally to signal processing within a computer processor. More particularly, the present invention relates to convolution operations in a vector processing computer system.
One of the most important, value-adding features in a computer is its ability to process large amounts of data and information. Some of the information frequently processed by a computer includes image and other signal information. Frequently, information processed on a computer may relate to the general computer display, computer graphics, scanned images, video, and other data. With each of these types of data, it is often desirable to utilize the convolution function to process the data.
Convolution is useful in demonstrating the manner in which two signals interact in the time domain, and in expressing a resulting signal from the mixing of the two signals within the time domain. Mathematically, convolution is the multiplication of two sequences, which can be expressed in the form of an integral shown below in equation 1. 1 y ( t ) = f ( t ) g ( t ) ≡ ∫ - ∞ ∞ f ( τ ) g ( t - τ ) ⅆ τ ( 1 )
FIG. 1 is an exemplary computer system in which the system and method of the present invention may be employed.
FIGS. 2A-2I illustrate a graphical representation of the process of performing a basic convolution sum.
FIGS. 3A-3N illustrate graphically the manner in which convolution may be performed by breaking a function up into multiple pieces, as is performed in accordance with an embodiment of the present invention.
To facilitate an understanding of the principles and features of the present invention, it is explained hereinafter with reference to its implementation in an illustrative embodiment. In particular, the invention is described in the context of a vector processing computer system that performs discrete-time convolution. This may be accomplished, according to one embodiment, by a simplified computation using a vector containing all ones, thereby simplifying the sum-of-products operation associated with convolution to a simple summation. It will be appreciated, however, that this is not the only embodiment in which the invention can be implemented. Rather, it can find utility in a variety of computer configurations utilizing a variety of different signal vectors, as will become apparent from an understanding of the principles which underscore the invention.
An exemplary computer system of the type in which the present invention can be employed is illustrated in block diagram form in FIG. 1. The structure of the computer itself does not form part of the present invention. It is briefly described here for a subsequent understanding of the manner in which the features of the invention cooperate with the structure of the computer.
Referring to FIG. 1, the system includes a computer 100 having a variety of external peripheral devices 108 connected thereto. The computer 100 includes a Central Processing Unit (CPU) 112, a main memory which is typically implemented in the form of Random Access Memory (RAM) 118, a static memory that can comprise a Read Only Memory (ROM) 120, and a permanent storage device, such as a magnetic or optical disk 122. The CPU 112 communicates with each of these forms of memory through an internal bus 114. The peripheral devices 108 include a data entry device such as a keyboard 124, and a pointing or cursor control device 102 such as a mouse, trackball or the like. A display device 104, such as a CRT monitor or an LCD screen, provides a visual display of the information that is processed within the computer, for example the contents of a computer file. A hard copy of the information displayed on the display device 104 can be provided through a printer 106, or similar device. In addition, a scanner may be provided to allow the input and conversion of a paper document into computer processing memory. Each of these external peripheral devices communicates with the CPU 112 by means of one or more input/output ports 110 on the computer. The input/output ports 110 also allow the computer 100 to interact with a local area network server or an external network 128 such as a LAN, WAN, or the Internet 130.