Lesson 14--Framework for Parallelizing Load-Stores Flashcards

1
Q

X-Y memory architecture

A

There are two parallel banks of memory. Each has its own address calculator and its own bus.

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

Edge between two variables in the same memory bank

A

0

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

Edge between two variables in different memory banks

A

1

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

Motion Schedule Graph (MSG)

A

Graph to determine which loads and stores can be moved

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

Rematerialization

A

Recomputing a value and storing it in another bank

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

Motion Range Determination

A

The interval between program points where a load/store can be legally moved, restrained by dependencies

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

Pseudo fixed-boundary

A

For Store: move as early as possible, assuming other instructions are fixed.
For Load: Move as late as possible, assuming other instructions are fixed.

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

Cross basic block merge

A

­–To guarantee profitability: move to where the reference is live. If the reference is not live,
all we do is increase register pressure causing more spills
­–Move the stores using the extended basic blocks
­–Move the loads on reverse Extended basic blocks
­–Make sure: if moving load/stores in basic blocks that we are able to combine them with something else. So make sure it can be combined if pushed to at least one of the live predecessors/successors.

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

Variable duplication

A

Adding stores for a variable to a different bank in order to take advantage of parallelization

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