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

2.4. Средства управления прерываниями

Каждый раз перед выполнением очередной команды CPU производит проверку наличия запроса прерывания INTR. При наличии запроса прерывания останавливается выполнение основной программы и происходит переход к выше приведенному алгоритму. Выясняется, разрешены ли прерывания (анализ состояния разряда IF регистра флагов). Если разрешены, то процессором выдается сигнал INTA в контроллер прерываний для получения номера вектора прерывания. В стеке сохраняется содержимое регистра флагов и счетчика команд, чтобы был возможен возврат к выполнению основной программы. Затем выставляется запрет прерываний (IF=0). По номеру прерывания в таблице векторов определяется адрес обработчика прерывания. По этому адресу находится начало программы обработки прерывания. По окончании работы этой программы из стека извлекается содержимое регистра флагов и счетчика команд, происходит возврат к основной программе.

Контроллер необходим для слежения за соблюдением приоритетов прерываний, а также для присвоения номера каждой линии запроса.

Контроллер прерываний содержит регистр номера прерывания. При поступлении запроса на прерывание контроллер сравнивает приоритет текущего выполняемого кода и отбрасывает запрос на прерывание с меньшим или равным приоритетом. Старшая часть номера запроса может быть задана программно.

Алгоритм функционирования CPU при обработке запроса прерывания

Да

2.5. Организация виртуальной памяти

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

В случае использования страничной организации виртуальной памяти преобразование виртуального адреса в физический происходит следующим образом. Виртуальный адрес, сгенерированный программой, разбивается на две части: номер страницы и смещение. В таблице страниц ищется запись, соответствующая нужной странице. Если страница присутствует в оперативной памяти, ее физический адрес берется из таблицы. Если же страница в оперативной памяти отсутствует, то генерируется исключение, обработчик которого определяет местонахождение страницы во внешней памяти и загружает её, возможно вытесняя при этом одну из находящихся в ОЗУ. Процессор не может определить положение нужной страницы во внешней памяти, эта задача лежит на обработчике прерывания. При замещении страницы в оперативной памяти необходимо проверить, не модифицирована ли она, и при необходимости сохранить замещаемую страницу в файле подкачки.

Разрядность адреса составляет 32 бит. Величина страницы принимается равной 8Кбайт, т.е. смещение задается в поле длиной 13бит. Номер страницы занимает 19ит, следовательно, число записей в ТС равно 219=524288 (2 МБ)

2.6. Оценка производительности эвм

Определим время выполнения команд в классической модели и пути уменьшения этого времени. Для оценки времени выполнения команд в качестве единицы времени используется такт.

Таблица распределения времени:

Название ступени

(действия на ГСА)

Тип команды

ADD

WRITE

JMP

JS

(да/нет)

CMP

READ

MOVREG

PUSH

POP

IFETCH (выборка команды)

8

8

8

8/8

8

8

8

8

8

DECODE (декодирование команды)

1

1

1

1/1

1

1

1

1

1

TEST (проверка условия)

-

-

-

1/1

-

-

-

-

-

EADDR (создание исполнительного адреса)

3

3

3

3/0

3

6

-

-

-

OFETCH (выборка операнда)

4

-

4

4/0

4

4

-

-

4

EXEC (исполнение)

3+1

1

-

-

3

1

1

1+1

1+1

CHANGE IP (изменить IP)

-

-

1

1/0

-

-

-

-

-

STORE (сохранение)

-

4

-

-

-

-

-

4

-

ENDOP (завершение)

1

1

0

0/1

1

1

1

1

1

Итого:

21

18

17

18/11

20

18

11

16

16

Доли затрат времени для каждой команды:

Тип команд

Доля общего времени

выполнения, %

ADD

30

READ

20

WRITE

10

JMP

3

Условный переход выполняемый

5

Условный переход невыполняемый

3

INT

3

PUSH

4

POP

4

CALL

4

SUB

6

CMP

8

=100

Для оценки производительности работы ЭВМ определим среднее время, затрачиваемое на выполнение одной команды. При расчете среднего времени используется не арифметическое среднее, а взвешенное арифметическое среднее. При вычислении этой величины для каждой команды задается множитель, учитывающий частоту использования команды. Этот множитель, для каждого вида команд, приведён в п. 1.4.6.

0.34*21=7.14 (для ADD)

0.1*18=1.8 (для WRITE)

0.21*18= 3.78 (для READ)

0.06*18= 1.08 (Условный переход выполняющийся)

0.02*11= 0.22 (Условный переход не выполняющийся)

0.08*20= 1.6 (для CMP)

0.03*17= 0.51 (для JMP)

0.06*11= 0.66 (для MOVREG)

0.03*26= 0.78 (для INT)

0.04*16= 0.64 (для PUSH)

0.04*16= 0.64 (для POP)

_____________________________

Итого: 18.85 такта.

В среднем ≈ 19 тактов требуется для выполнения одной команды.

Если частота генератора тактовых импульсов будет 19 МГц, то производительность составит 1 миллион операций в секунду.