Выбор алгоритма и временных диаграмм выполнения основных операций

Оценим длительность основных операций, имеющих наибольшую встречаемость (вес) и потому определяющих производительность процессора (табл. 3). Будем делать оценку времени выполнения (Т) команды в количестве машинных тактов (Тм).

1. Загрузка (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

L R1, R2 (R2) = (R1)

0 15

По команде LR производится выборка из регистра второго операнда и запоминание полученного значения в регистре первого операнда, с одновременным уничтожением его исходного содержимого.

RK BO ЗР
------ ------ ------

Т = 3*Тм


2. Загрузка (память-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

L, R1, D2 (X2, B2)

0 31 {D2+(X2)+(B2)} = (R1)

Команда L производит пересылку полного слова по адресу D2+(X2)+ +(B2) из основной памяти в регистр общего назначения R1.

PK AO BO ЗР
------ ------ ------ ------

Т = 4*Тм + Тп

3. Запоминание (регистр-память):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

ST, R1, D2 (X2, B2)

0 31 {D2+(X2)+(B2)} = (R1)

По команде ST содержимое общего регистра R1 помещается в основную память по адресу, который определяется как D2+(X2)+(B2).

PK BO ЗР
------ ------ ------

Т = 3*Тм + Тп

4. Сложение/вычитание, фиксированная запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

AR R1, R2 (R1) + (R2) = (R1)

0 15

Для выполнения команды AR содержимое регистра R1 складывается с содержимым регистра R2 и результат помещается в R1.

При выполнении SR от содержимого регистра R1 вычитается содержимое регистра R2 и результат заносится в R1.

PK AO BO ЗР
------ ------ ------ ------

Т = 4*Тм;


5. Сложение/вычитание, фиксированная запятая (регистр-память):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

A, R1, D2 (X2, B2)

0 31 R1 + {D2+(X2)+(B2)} = (R1)

По команде А содержимое первого операнда, считываемого из R1, складывается с содержимым второго операнда, находящегося в памяти по адресу D2+(B2)+(X2). Результат помещается в R1.

РК АО ВО ОП ЗР
------ ------ ------ ------ ------

Т=5*Тмп;

6. Сложение/вычитание, плавающая запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

AER R1, R2 (FPR1) + (FPR2) = (FPR1)

0 5

При выполнении команды AER содержимое регистра с плавающей запятой FPR1 складывается с содержимым регистра FPR2 в следующей последовательности: сравниваются (СП) и выравниваются порядки (ВП), отрицательный операнд преобразуется в дополнительный код (ДК), результат операции (ОП) нормализуется (НР) и записывается в FPR1. При выполнении SER из содержимого регистра FPR1 в той же последовательности вычитается содержимое регистра FPR2, результат нормализуется и заносится в FPR1.

PK BO СП ВП ДК ОП НР ЗР
------ ------ ------ ------ ------ ------ ------ ------

Т = 8*Тм

7. Сложение/вычитание: плавающая запятая, регистр-память:

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

АЕ, R1, D2 (X2, B2)

0 31 (R1) + {D2+(X2)+(B2)} = (R1)

По команде АЕ содержимое первого операнда, считываемого из регистра с плавающей запятой PPR1, суммируется, в указанном выше порядке, с содержимым второго операнда, находящегося в памяти по адресу D2+(B2)+ +(X2). Результат заносится в FPR1.

РК АО ВО СП ВП ДК ОП НР ЗР
------ ------ ------ ------ ------ ------ ------ ------ ------

Т=9*Тмп

8. Умножение, фиксированная запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

MR R1, R2 (R1+1)*(R2) = (R1)

0 15

Сомножители (слово) находятся в регистрах R2 и R1+1. По команде MR сомножители перемножаются и результат (двойное слово) заносится в R1 и следующий за ним регистр, обозначаемый как R1+1. Используется алгоритм умножения одновременно на 2 разряда множимого. Принимается соотношение коротких и длинных операндов: 80% и 20%.

РК ВО ОП ЗР
------ ------ -------------- ------

Т = 10*Тм*0,8 + 19*Тм*0,2

9. Умножение, плавающая запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

MER R1, R2 (FPR1) * (FPR2) = (FPR1)

0 15

Содержимое регистра FPR1 (двойное слово) умножается на содержимое регистра FPR2, результат (двойное слово) нормализуется (НР) и помещается в FPR1. Операция суммирования порядков совмещается с операцией перемножения мантисс. Используется алгоритм умножения одновременно на 2 разряда множимого. Принимается соотношение кратких и длинных операндов: 80% и 20%.

PK BO ОП НР ЗР
------ ------ -------------- ------ ------

Т=16*Тм*0,8+30*Тм*0,2

10. Деление, фиксированная запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

DR R1, R2 (R1)/(R2) = (R1, R1+1)

0 15

По команде DR двойное слово в регистре R1 и R1+1 делится на содержимое регистра R2. По окончании выполнения деления частное помещается в R1+1, а остаток – в R1. Применяется алгоритм без восстановления остатка. Принимается соотношение кратких и длинных операндов: 80% и 20%.

PK BO ОП ЗР
------ ------ -------------- ------

Т=19*Тм*0,8+35*Тм*0,2

11. Деление, плавающая запятая (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

DER R1, R2 (FPR1) / (FPR2) = (FPR1)

0 15

Делимое считывается из FPR1, делитель из FPR2. По окончании выполнения операций частное нормализуется и помещается в FPR1. Принимается соотношение кратких и длинных операндов: 80% и 20%.

Преобразование порядка совмещается с операцией деления.

PK BO ОП НР ЗР
------ ------ -------------- ------ ------

Т=28*Тм*0,8+56*Тм*0,2

12, 13. Условный переход

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

BC, M1, D2 (X2, B2)

0 31 {D2+(X2)+(B2)} = (RPSW)

При выполнении условия (ПУ), содержащегося в поле М1, происходит выбор следующей команды по адресу D2+(X2)+(B2), в противном случае выполняется следующая по порядку команда. При наличии альтернативного буфера команд считаем вероятность нахождения команды в буфере р=0,8.

Успешный переход:

РК ПУ ВА ВК
------ ------ ----- ------

Т = 4*Тм*0,8+Тп*0,2


Неуспешный переход:

РК ПУ
------ ------

Т=2*Тм

Т=

14. Операция алгебраического сравнения (регистр-регистр):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

СR R1, R2 (R1)/(R2) = (R1, R1+1)

0 15

Команда CR производит сравнение содержимого (R2) и (R1) и устанавливает признак результата в соответствии с этой разностью. Содержимое регистров остается неизменным.

РК ВО ОП ЗР
------ ------ ----- ------

Т=4*Тм

15) Операция сдвига влево/вправо (регистр-память):

Выбор алгоритма и временных диаграмм выполнения основных операций - student2.ru

SLL R1, D2 (B2)

0 31

Команда SLL производит сдвиг содержимого регистра R1 влево на количество разрядов, указанное как адрес второго операнда. Принимается средневероятное значение сдвига на 3 разряда.

РК ВА ВК ЗР
------ ------ ----------- ------

T = 6*Тм

16) Определим время Тп, исходя из таблицы значений зависимости вероятности обращения к буферной памяти от ее емкости:

Таблица 2

Емкость буферной памяти (Кб)
Вероятность обращения (р)
               

Время обращения к памяти будем определять условно в количестве машинных тактов и исходя из следующего выражения:

Тп = р * Тб + (1 – р) * Тц;

где р – вероятность нахождения информации в кэш-памяти;

Тб – цикл обращения буферной памяти;

Тц – цикл обращения основной памяти.

Наши рекомендации