ILP Theory Flashcards

1
Q

What is the goal of instruction level parallelism?

A

Is to maximize performance in terms of throughput. In other words, to increase the instructions per clock and decrease the clocks per instruction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the relationship between dependencies in the code, hazards and instruction level parallelism?

A

If two instructions are dependent on each other, they cannot be executed in parallel, they must be executed in order or partially overlapped.

Also, call dependencies might become hazards

Dependencies are a property of the code, while hazards are a property of the pipeline architecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the three possible dependencies in a code?

A

Data, name, and control dependencies

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the data dependencies?

A

A data dependencie occurs when an instruction depends on the data produced by the previous instruction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the control dependencies?

A

They are the ones related to branching. They impose the ordering of instructions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the name dependencies?

A

The name dependencies occur when two instructions use the same register or memory location

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the two types of name dependencies?

A

Anti-dependencie and output dependencies

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the anti-dependencies?

A

The anti-dependencies occurs when a preceding instruction is reading a register or memory location later written by an older instruction. This generate a write after read Hazard where the preceding instruction reads the wrong value from the register or memory location

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the output dependencies?

A

When to instructions right at the same register or memory location. It could generate a write after write hazard. The order must be preserved in order to make the value of the old instruction the one that is written later.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the cause of name dependencies?

A

The cause of name dependencies is register reuse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a possible solution for name dependencies

A

Register renaming. If the register used could be changed the conflict would not exist anymore

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the two possibilities to perform register renaming?

A

Register renaming could be performed either statically by the compiler or dynamically by the hardware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the hazards a pipeline can face?

A

The reads after writes hazards, which corresponds to true data dependencies

The write after reads Hazard, which correspondence to anti-dependencies

And finally, the write after write Hazzard, which corresponds to output dependencies

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the properties that need to be preserved in order to preserve program correctness?

A

Data flow, and exception behavior (changes in the ordering of instructions must not change how the exceptions are raised in the program)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the main characteristics of a multi cycle in order pipeline?

A

In order issue of instructions

Multiple functional unit is with different latencies

Delayed write back, in order to force in order to commit of instructions

One instruction in and one instruction out at every cycle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the consequences of in order issue and in order commit in multi cycle in order pipelines

A

The consequences are, you maintain the data flow and the exception behavior of the program, and also avoid write after write hazards and write after read hazards

17
Q

What are the main characteristics of a multi cycle out of order pipeline

A

The ID stage is divided into two stages the instruction decode and the register read

Multiple functional unities with different latencies

Out of order commit

18
Q

What are the consequences of the in order issue, out of order commit and out of order execution in multi cycle out of order pipelines

A

It implies in the necessity to verify the write of the write, write after read hazards, and imprecise exceptions

19
Q

What is the problem a dynamic scheduling pipeline tries to solve

A

It tries to solve true data dependencies that might cause read after write hazards. Once these kind of hazards cannot be solved by forwarding, the stalls are unavailable, therefore the dynamically scheduling issues data independent instructions in order to feel these stalls

20
Q

DIVD F0,F2,F4 # exec. takes many cycles
ADDD F10,F0,F8 # RAW F0
SUBD F12,F8,F14

How would a dynamically scheduler proceed?

A

BASIC IDEA: to enable SUBD to proceed => this generates out-of-order execution

21
Q

When does an exception becomes imprecise?

A

Exception is imprecise if the processor state when an exception is raised does not look exactly as if the instructions were executed in order

22
Q

What are the reasons imprecise exceptions occur?

A

Imprecise exceptions can occur in out of order pipelines because the pipeline may have already completed instructions that are later in program order than the instruction causing the exception, or also the pipeline may have not yet completed some instructions that are earlier in the program order than the instruction causing the exception

23
Q

How does a multiple issue pipeline increases the performance of a processor?

A

By introducing more parallelism Through fetching and executing more than one instruction per clock

24
Q

What are the ideals CPI both in multiple pipelines and dual issue pipelines

A

The ideal CPI in a multiple pipeline is equal to one while in a dual issue pipeline corresponds to .5

25
Q

What are the steps towards exploiting more instruction level parallelism?

A

From a sequential non-pipelined execution of the program with an CPI greater than one we could implement a in order scalar pipeline increasing the CPI to one

Moreover, by using multi cycling instructions based on different functional unit, we could reduce the possible stalls in the program still keeping the Ideal CPI equal to one. In these step, we could also have an out of order execution and commit.

to further reduce the stall cycles we could also implement in the multi issue pipelines the dynamic scheduling. Finally by combine the dynamic scheduling with multiple issues we arrive at the super scaler pipelines where the ideal CPI is lower than one.

We could also follow these logics by using static scheduling

26
Q

What is static scheduling?

A

Static scheduling is done by the compiler, in which instructions are re-ordered into dependency free, parallel instructions otherwise NOPs are introduced in the code.

27
Q

What are the main limits of static scheduling?

A

Unpredictable branch behavior

Unpredictable cash behavior

Complexity of compiler technology

Called size explosion due to insertion of NOPs operations

28
Q

What are the differences between super scalar processors and VLIW processors regarding the time and place where Instruction order is conceived

A

For a super scalar processor, it is decided at runtime, by the hardware logic meanwhile for a VLIW processor is decided at compiler time, by the compiler