More Processor Pipelines Flashcards

1
Q

We use ? to control the flow of data in our pipeline

A

D flip-flops

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

Draw a diagram if a D flip-flop

A

.

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

What is a pipeline latch?

A

Bank of D flip-flops, one for each bit of data

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

Draw the processor pipeline, adding pipeline latches

A

.

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

The mux in the processor pipeline would have more inputs if we are using ?

A

forwarding

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

What pipelining issue do we get from write-back to load?

A

When we write loaded data back to the register file we can write it back to the wrong rd. This can be overcome by propagating control information along the data-path

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

What is a branch target buffer?

A

Cache of target addresses so that branch doesn’t need to reach ID or EX to do prediction
Indexed by PC of when instructions were fetched
If hit and instruction is branch predicted taken can fetch target immediately

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

What is a branch prediction buffer?

A

Indexed by recent branch instruction addresses
Stores outcome (taken/not taken)

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

How is a branch prediction buffer used in dynamic branch prediction?

A

Check table, expect same outcome
Start fetching
If wrong, flush pipeline

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

What is the relationship between the branch prediction buffer and branch target buffer?

A

Branch prediction buffer forwards PC of branch to branch target buffer

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

How can we describe exceptions and interruptions?

A

Unexpected events requiring a change in flow of control

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

What is the difference between exceptions and interrupts?

A

Exceptions arise within the CPU (eg. undefined opcode) but interrupts come from an external I/O controller

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

How are exceptions handled?

A
  1. Save PC of interrupting instruction
  2. Save indication of the problem
  3. Flush the instructions and any instructions earlier in the pipeline
    Then if precise exception: handler executes then returns to instruction which is refetched and reexecuted
    If imprecise exception: cannot recover from exception
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is pipelining?

A

Executing multiple instructions in parallel

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

How can we increase instruction level parallelism (ILP)?

A
  1. Deeper pipeline
  2. Multiple issue
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Give an advantage and disadvantage of a deeper pipeline

A

Advantage: less work per stage so shorter clock cycle
Disadvantage: more forwarding paths and risk of bubbles due to hazards

17
Q

What is multiple issue?

A

Replicate pipeline stages to create multiple pipelines, so can start multiple instructions per clock cycle

18
Q

What type of hazards do branches cause?

A

Control flow

19
Q

How can we get rid of data hazards?

A

Use more than one data forwarding path

20
Q

How could we stop erroneously fetched instructions from completing?

A
  • Flush the instructions from the pipeline
  • Add an epoch number (colour) to fetched instructions and change the colour on a branch so the wrong colour instructions are ignored
21
Q

What is load hoisting?

A

It is a general compiler optimisation that aimsto issue load instructions as early as possible

22
Q

Available parallelism is limited by ?

A

dependencies

23
Q

Complexity leads to the ? ?

A

power wall