### Computer Architecture : Vector Processors

There are various mathematical and statistical applications where the loads of calculation are very high for producing the fast results. Such complex application, which operates on multiple data at the same time, requires a better way of instruction execution, which was achieved by Vector processors. A vector processor or array processor is a central processing unit (CPU) that implements an instruction set containing instructions that operate on one-dimensional arrays of data called vectors, compared to scalar processors, whose instructions operate on single data items. Vector processors can greatly improve performance on certain workloads, notably numerical simulation and similar tasks.

Generally a vector is an ordered collection of one dimensional array of data items. A vector V of length N is denoted as V = [V1, V2.......VN]. An element of vector V is denoted by V[l] where l is the index which points to the memory location or register where the l^th element is stored.

In general terms, CPUs are able to manipulate one or more pieces of data at a time. For instance, most CPUs have an instruction that essentially says "add A to B and put the result in C". The Data for A, B and C could be in theory at least encoded directly into the instruction. However, in efficient implementation things are rarely that simple. The data is rarely sent in raw form, and is instead "pointed to" by passing in an address to a memory location that holds the data. Decoding this address and getting the data out of the memory takes some time. In order to reduce the amount of time this takes, most modern CPUs use a technique known as instruction pipelining in which the instructions pass through several sub-units in turn. Vector processors take this concept one step further. Instead of pipelining just the instructions, they also pipeline the data itself. This allows for significant savings in decoding time. For example consider the simple task of adding two groups of 10 numbers together. In a normal programming language we might have done something as

execute this loop 10 time
read the next instruction and decode it
fetch this number fetch that number
put the result here

End loop

But to a Vector processor this tasks looks as

fetch these 10 numbers
fetch those 10 numbers
put the results here

Applications of Vector Processors

Computer with vector processing capabilities are in demand in specialized applications. Some applications which need vector processing are :

1. Weather forecasting
2. Dieseas diagnosing
3. Artificial intelligence
4. Gene mapping
5. Image processing
6. Seismology
7. Aerodynamics
8. Data analysis
9. petroleum exploration

Next Topic :