Search This Blog

Sunday, March 13, 2011

compare among various kinds of processors

compare among various kinds of processors

http://en.wikipedia.org/wiki/Superscalar
1 scalar processor
The simplest processors are scalar processors. Each instruction executed by a scalar processor typically manipulates one or two data items at a time.

It is somewhat like "Single Instruction Single Data",SISD.
2 vector processor
1)Each instruction executed by a vector processor operates simultaneously on many data items.
2)There are much more ALUs in a vector processor.A single vector instruction actually specifies a great deal of work, it is equivalent to executing an entire loop.
3)Although the instructions themselves are exactly the same,  the data on which they are working are definietely different.
It is like "Single Instruction Multipie Data",SIMD.
3 super scalar
A superscalar processor is sort of a mixture of the two. Each instruction processes one data item, but there are multiple redundant functional units within one CPU thus multiple instructions can be processing separate data items concurrently.
It is like "Multiple Instructions and Multiple Data",MIMD.
1) superscalar processor can make multiple instructions working on multiple data concurrently.
2)instruction dispatcher accuracy----try to keep all ALUs busy all the time
(1)superscalar processor emphasize instruction dispatcher accuracy and allowing it to keep the multiple functional units in use at all times. This has become increasingly important when the number of units increased. If the dispatcher is ineffective at keeping all of these units fed with instructions, the performance of the system will suffer.
(2)But merely processing multiple instructions concurrently does not make an architecture superscalar, since pipelined, multiprocessor or multi-core architectures also achieve that, but with different methods.
3)In a superscalar CPU the dispatcher reads instructions from memory and decides which ones can be run in parallel, dispatching them to redundant functional units contained inside a single CPU. Therefore a superscalar processor can be envisioned having multiple parallel pipelines, each of which is processing instructions simultaneously from a single instruction thread.
4)superscalar processor differs from a pipelined CPU, where the multiple instructions can concurrently be in various stages of execution, assembly-line fashion.
(1)In a pipelined CPU, for example, 5-stage pipe, there can only one instruction who is in the  Instruction Fetch stage(or any one of the other four) at the same time.
(2)But a superscalar processor has more than one pipeline, and they can run in parallel
5)Superscalar processors differ from multi-core processors in that
(1)the redundant functional units are not entire processors. A single processor is composed of finer-grained functional units such as the ALU, integer multiplier, integer shifter, floating point unit, etc.
(2)There may be multiple versions of each functional unit to enable execution of many instructions in parallel. This differs from a multi-core processor that concurrently processes instructions from multiple threads, one thread per core.