Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа для ОФ.doc
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
588.29 Кб
Скачать

3.3. Расчет прироста производительности эвм

18.85 - 15.25 = 3.6

1% - 0.1885

X% - 3.6

X=3.6/0.1885=19.09 (%)

Производительность повысилась на 19%

4. Описание тестовой задачи

4.1. Описание программы (исходной и объектной)

Задание: Исходно имеется массив Nдвоичных чисел. Требуется выделить элементы массива, обладающие следующими свойствами: двоичные числа массива меньше 7, но больше 3. Обнулить выделенные элементы и посчитать количество нулей.

Адрес ОЗУ

Обозначение команды на Ассемблере

Объектный код

Комментарии

0100

READ [Iadd]

000100 10 00000100 00000000 00001100

Читаем текущий Эл-т массива

0102

JZ 0112

000010 00 00000001 00000001 00000010

Если=0, перех. к увел. Кол-ва нулей

0104

CMD ogr1

011000 00 00000100 00000001 00000000

Сравниваем с 3

0106

JZ 0116

000010 00 00000001 00000001 00000110

Если ZF=0 (Эл-т массива=3)переходим к след. эл-ту

0108

JS 0112

000001 00 00000001 00000001 00000010

Если SF=0 (Эл-т массива>3) переходим дальше

010A

JMP 0116

000101 00 00000001 00000001 00000110

Иначе – переходим к след.

эл-ту

010C

CMP ogr2

000111 00 00000100 00000001 00000010

Сравниваем с 7

010E

JZ 0116

000010 00 00000001 00000001 00000110

Если ZF=0 (Эл-т массива=7)переходим к след. эл-ту

0110

JS 0112

000010 00 00000001 00000001 00000010

Если SF=0 (Эл-т массива<7) переходим к увеличению кол-ва нулей

0112

JMP 0116

000010 00 00000001 00000001 00000110

Иначе – переходим к след.

эл-ту

0114

WR @0

000011 01 00000000 00000000 00000000

Записываем в тек. эл-т 0

0116

UVE con

011100 00 00000100 00000001 00000110

увел. кол-ва нулей

0118

UME Iadd

011110 00 00000100 00000000 00001110

Уменьшаем тек. Адрес на 1

011A

UME Iadd

011110 00 00000100 00000000 00001110

Уменьшаем тек. Адрес на 1

011C

UME I

011110 00 00000100 00000001 00000010

Уменьшаем счётчик на 1

011E

JZ 0100

000010 00 00000001 00000000 00000000

Если счётчик =0, конец программы

0120

HLT

000000 00 00000000 00000000 00000000

Остановка процесса

0400

A0

Элементы

массива

6

0402

A1

25

0404

A2

3

0406

A3

8

0408

A4

7

040A

A5

19

040C

A6

1

040E

Iadd

Текущий адрес(16-ричный)

040C

0410

Ogr1

Ограничение снизу

3

0412

Ogr2

Ограничение сверху

7

0412

I

счётчик

7

0414

col

кол-во элементов

7

0416

con

Кол-во нулей

0

    1. Моделирование процесса выполнения программы

Моделирование заключается в описании последовательности микроопераций, выполняемых функциональными блоками ЭВМ, при интерпретации инструкций ЭВМ, составляющих объектную программу и результатов, получаемых с помощью этих микроопераций. А также в описании последовательности проверок признаков, характеризующих результат действия микроопераций и позволяющих осуществлять выбор очерёдности микроопераций. Моделированию подвергаются следующие инструкции: READ [Iadd], JZ.

READ[Iadd]:

  1. Проверка Tп. Тп=1

  2. Проверка условия INTR=1. Прерывание не произошло (INTR=0)

  3. Выборка очередной команды из основной памяти

  • Запись адреса текущей инструкции в регистр адреса (RA=IP)

  • Запрос содержимого ячейки из памяти (сигналы V3 и V4)

  • Ожидание готовности памяти (проверка условия ReadyRAM=1)

  • Копирование инструкции из регистра RD в RI

  • Проверка кода операции. Код выбранной операции соответствует коду операции READ

  • Вычисление исполнительного адреса операнда в основной памяти

    • Проверка типа адресации. Способ адресации – косвенная.

    • Содержимое регистра R0 записывается в регистр адреса

  • Выборка операнда из памяти

    • Проверка необходимости выборки (при косвенной адресации выборка необходима)

    • Запрос содержимого ячейки из памяти (сигналы V3 и V4)

    • Ожидание готовности памяти (проверка условия ReadyRAM=1)

  • Перемещение операнда из RD в аккумулятор

  • Увеличение значения регистра адреса команды

    JZ (переход выполняется):

    1. Проверка Tп. Тп=1

    2. Проверка условия INTR= =1. Прерывание не произошло (INTR=0)

    3. Выборка очередной команды из основной памяти

    • Запись адреса текущей инструкции в регистр адреса (RA=IP)

    • Запрос содержимого ячейки из памяти (сигналы V3 и V4)

    • Ожидание готовности памяти (проверка условия ReadyRAM=1)

    • Копирование инструкции из регистра RD в RI

    1. Проверка кода операции. Код выбранной операции соответствует коду операции JZ

    2. Проверка флага нуля (Z). Он равен единице

    3. Запись в регистр IP нового адреса команды

    JZ (переход не выполняется):

    1. Проверка Tп. Тп=1

    2. Проверка условия INTR= =1. Прерывание не произошло (INTR=0)

    3. Выборка очередной команды из основной памяти

    • Запись адреса текущей инструкции в регистр адреса (RA=IP)

    • Запрос содержимого ячейки из памяти (сигналы V3 и V4)

    • Ожидание готовности памяти (проверка условия ReadyRAM=1)

    • Копирование инструкции из регистра RD в RI

    1. Проверка кода операции. Код выбранной операции соответствует коду операции JZ

    2. Проверка флага нуля (Z). Он равен нулю

    3. Содержимое регистра IP увеличивается на 4