superscalar and VLIW

3.6k views Asked by At

I want to ask some questions related to ILP.

  • A superscalar processor is sort of a mixture of the scalar and vector processor. So can I say that architectures of vector processor follows super-scalar ?

  • Processing multiple instructions concurrently does not make an architecture superscalar, since pipelined, multiprocessor or multi-core architectures also achieve that. What does this means?

  • I have read ' A superscalar CPU architecture implements a form of parallelism called instruction level parallelism within a single processor', superscalar cant use more than one processor ? Can anyone provide me example where superscalar are used?

  • VLIW , I have go through this article there is figure 4 on page 9.It shows a generic VLIW implementation, without the complex reorder buffer and decoding and dispatching logic. The term without decoding is confusing me.

Regards, anas anjaria

4

There are 4 answers

1
Andrey On BEST ANSWER

Check this article.

Basic difference can be seen in these pictures:

Simple processor:

enter image description here

Superscalar processor:

enter image description here

2
LaC On

A superscalar processor is sort of a mixture of the scalar and vector processor.

LOL, no. A superscalar core is a core that can execute more than one instruction per clock cycle.

15
Olsonist On

A superscalar processor is sort of a mixture of the scalar and vector processor.

No, this is definitely not true.

  • A scalar processor performs computations on piece of data at a time.
  • A superscalar can execute multiple scalar instructions at a time.
  • A VLIW can execute multiple operations at a time.
  • A vector processor can operate on a vector of data at a time.

The superscalar Haswell CPU that I'm typing this on has 8 execution ports: 4 integer operations, 2 memory reads and 2 stores. Potentially 8 x86 instructions could execute simultaneously. That's superscalar. The 8080 could only execute 1 instruction at a time. That's scalar.

Haswell is both pipelined and superscalar. It's also speculative and out-of-order. It's hyperthreaded (2 threads per core) and multi-core (2-18 cores). It's just a beast.

Instruction level parallelism (ILP) is a characteristic or measure of a program not a CPU. A compiler scheduler will search for ILP statically or a CPU's scheduler will search for ILP dynamically. If they find it, then they can order+execute instructions accordingly.

0
zloster On
  • Check out this first (http://en.wikipedia.org/wiki/Superscalar):

    A superscalar processor executes more than one instruction during a clock cycle by simultaneously dispatching multiple instructions to redundant functional units on the processor. Each functional unit is not a separate CPU core but an execution resource within a single CPU such as an arithmetic logic unit, a bit shifter, or a multiplier.

This means that for example the CPU with 2(two) ALUs (arithmetic logic unit) can physically issue 2 arithmetic instructions and execute them. Each arithmetic instruction will be executed in different ALU unit.