Скачиваний:
77
Добавлен:
15.09.2014
Размер:
250.62 Кб
Скачать

Стадии записи результата и завершения

На стадии записи результата результат работы инструкции помещается в промежуточное хранилище, а не в основной регистровый файл.

На стадии завершения производиться проверка корректности исполнения инструкции, генерируются исключения, происходит запись результатов из временного хранилища в основной регистровый файл.

Изменения в аппаратной схеме

Добавлен: буфер упорядочивания (reorder buffer)

Используется для:

Хранения результатов работы инструкций между стадией записи результата и стадией завершения.

Поддержание программного порядка инструкция на стадии завершения.

Элемент БУ содержат:

Выполняемую инструкцию: арифметическая, загрузка, сохранение, условный переход.

Адрес результата инструкции

Поля для временного хранения результата

инструкции.

Удален: буфер сохранения.

Схема ССП

Описание работы схемы. Этап планирования.

Планирование инструкций осуществляется с вершины очереди планирования.

Для выполнения планирования должна быть доступна СР на требуемом ФУ и ячейка на БУ, если хотя бы один из ресурсов не доступен, то инструкция ожидает в очереди.

Выборка операндов состоит из трех стадий:

Проверяются есть ли данные в регистровом файле, если есть переписываются в СР, если нет, то

Проверяются есть ли данные в БУ, если есть переписываются в СР, если нет, то

В СР записывается номер ячейки БУ которая содержит инструкцию, которая вычислит этот операнд.

В файл переименования для результирующего регистра инструкции помещается номер ячейки БУ, которая ее содержит.

Описание работы схемы.

Этап исполнения и записи результат.

Инструкции запускаются на исполнении по мере готовности их операндов и доступности ФУ.

По общей шине передается результат инструкции и номер ячейки БУ, которая ее содержит.

Запись результата производится одновременно во все ожидающие СР и БУ.

Инструкция загрузки выполняется в две стадии:

Вычисление адреса.

Чтение из памяти. Запускается если нет конфликтов с предыдущими инструкциями загрузки и сохранения.

Инструкция сохранения на этапе исполнения

Описание работы схемы. Этап завершения.

Инструкция после вычисления результата ожидает в БУ своего завершения.

Завершаются инструкции, которые находятся на вершину БУ. БУ поддерживает поведение очереди FIFO.

На этапе завершения:

Для арифметических инструкции и инструкции загрузки проверяется наличия исключений и если исключений нет, то результат записывается регистровый файл.

Для инструкции сохранения проверяется наличия исключений и если исключений нет, то результат записывается в память.

Для инструкции условного перехода проверяется правильно она была предсказана или нет, если да, то инструкция удаляется из БУ, если нет, происходит сброс процессора: очищаются все стадии, на планирование отправляется первая инструкция из правельной ветви.

1.L.D

F6,34(R2)

2.L.D

F2,45(R3)

3.MUL.D

F0,F2,F4

4.SUB.D

F8,F2,F6

5.DIV.D

F10,F0,F6

6.ADD.D

F6,F8,F2

Пример

Допущения

1.Латентность загрузки/сохранения : 2

2.Латентность сложения/вычитания : 2

3.Латентность умножения : 10

4.Латентность деления: 40

5.СР для загрузки/сохранения: 3

6.СР для простых арифм. орпер. : 2

7.СР для сложных арифм. орпер. : 1

8.Reorder Buffer: 3

9.Plan: 2

10.Retain: 2

Такт 0

Instruction status

 

 

Execution

Write

 

 

 

Instruction

j

k

Issue complete

Result Commit

Load

Busy Address

LD

F6

34+

R2

 

 

 

 

No

 

 

 

 

1

LD

F2

45+

R3

 

 

 

 

Load

No

 

 

 

 

2

MULTD

F0

F2

F4

 

 

 

 

Load

No

 

 

 

 

3

SUBD

F8

F6

F2

 

 

 

 

 

 

DIVD

F10

F0

F6

 

 

 

 

 

 

ADDD

F6

F8

F2

 

 

 

 

RS for

 

Reservation

 

 

 

S1

S2

RS for j

 

Stations

 

 

 

 

k

 

 

 

Name Busy

Op

Vj

Vk

Qj

Qk

 

 

 

Add1

No

 

 

 

 

 

 

 

 

Add2

No

 

 

 

 

 

 

 

 

Mult1

No

 

 

 

 

 

 

 

 

 

 

Reorder Buffer

 

 

 

 

Clock

 

 

 

Instr.

Dst.

Value

State

 

 

Такт 1

Instruction status

 

 

Execution

Write

 

 

 

 

Instruction

j

k

Issue complete

Result Commit

Load

Busy

Address

LD

F6

34+

R2

 

 

 

 

Yes

 

1

 

 

 

1

34(R2)

LD

F2

45+

R3

 

 

 

 

Load

Yes

 

1

 

 

 

2

45(R3)

MULTD

F0

F2

F4

 

 

 

 

Load

No

 

 

 

 

 

3

 

SUBD

F8

F6

F2

 

 

 

 

 

 

 

DIVD

F10

F0

F6

 

 

 

 

 

 

 

ADDD

F6

F8

F2

 

 

 

 

RS for

 

 

Reservation

 

 

 

S1

S2

RS for j

 

 

Stations

 

 

 

 

k

 

 

 

 

Name Busy

Op

Vj

Vk

Qj

Qk

 

 

 

 

Add1

No

 

 

 

 

 

 

 

 

 

Add2

No

 

 

 

 

 

 

 

 

 

Mult1

No

 

 

 

 

 

 

 

 

 

 

 

Reorder Buffer

 

 

 

 

 

Clock

 

 

 

Instr.

Dst.

Value

State

 

 

 

Такт 2

Instruction status

 

 

Execution

Write

 

 

 

 

Instruction

j

k

Issue complete

Result Commit

Load

Busy

Address

LD

F6

34+

R2

 

 

 

 

Yes

 

1

2--

 

 

1

34(R2)

LD

F2

45+

R3

 

 

 

 

Load

Yes

 

1

 

 

 

2

45(R3)

MULTD

F0

F2

F4

 

 

 

 

Load

No

 

2

 

 

 

3

 

SUBD

F8

F6

F2

 

 

 

 

 

 

 

DIVD

F10

F0

F6

 

 

 

 

 

 

 

ADDD

F6

F8

F2

 

 

 

 

RS for

 

 

Reservation

 

 

 

S1

S2

RS for j

 

 

Stations

 

 

 

 

k

 

 

 

 

Name Busy

Op

Vj

Vk

Qj

Qk

 

 

 

 

Add1

No

 

 

 

 

 

 

 

 

 

Add2

No

 

 

 

 

 

 

 

 

 

Mult1

Yes

MULT

 

#F4

Load2

 

 

 

 

 

 

 

Reorder Buffer

 

 

 

 

 

Clock

 

 

 

Instr.

Dst.

Value

State