Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

Прерывающая

программа

Ячейка памяти» cm ароео "ССП Прерываемая (ве/стара состояния) программа данного класса лрерыбаная

Запоминание старого"ССП

Загрузка *,старогсГСПП

\

РгССП

Загрузка

Рис. 9.32. Процедура перехода к прерывающей программе и возврат из нее в ЕС ЭВМ

Запрос прерывания ванного класса

Ячейка памяти „нового"ССП СВектора прерывания) данного класса прерывания

Запоминание

содержимого

регистров

Собственно

прерыдающая

программа

Восстанодление

содержимого

регистрод

классу прерывания отводятся в постоянно распределенной об­ласти памяти фиксированные ячейки ОП для хранения «старо­го» ССП и «нового» ССП.

При выполнении текущей программы ее ССП находится в регистре текущего ССП РгССП и участвует в управлении вычислительным процессом, при этом отдельные поля ССП (на­пример, счетчик команд) нужным образом изменяются. В ячей­ках «новых» ССП для всех классов прерывания хранятся ССП, содержащие информацию, достаточную для начала функциони­рования соответствующих прерывающих программ.

При поступлении запроса от данного класса прерывания, если этот запрос не маскирован в маске прерывания, аппаратур­ные средства выполняют следующую процедуру. В соответству­ющую группу разрядов РгССП (режим ВС) или соответствую­щую ячейку постоянно распределенной области памяти (режим ЕС) записывается код прерывания, содержащий информацию о конкретной причине прерывания. Затем ССП из РгССП пере­дается в предусмотренную для данного класса прерывания ячей­ку ОП для «старого» ССП, а из ячейки «нового» ССП для этого класса «новое» ССП (ССП прерывающей программы, содержа­щее в том числе ее начальный адрес) загружается в РгССП. С этого момента управление переходит к прерывающей про­грамме. На время замены ССП прерывания от любых классов запрещены.

Выполнение прерывающей программы начинается с запо­минания в памяти содержимого тех общих регистров и регистров плавающей точки, которые ею будут использованы. Далее вы­полняется собственно прерывающая программа, которая начи­нается с анализа «кода прерывания» и определения конкретной причины прерывания и инициирования подпрограммы отработки прерывания, соответствующей этой причине.

Заключительная часть прерывающей программы восстанав­ливает сохраненное в ОП содержимое регистров и завершает свою работу командой загрузки слова состояния прерванной программы из ячейки «старого» ССП в РгССП. Управление переходит к прерванной программе.

Следует различать приоритет между запросами прерывания разных классов и приоритет между прерывающими программа­ми. Первый устанавливает лишь очередность восприятия запро­сов, поступивших одновременно, а второй, более важный — старшинство (степень срочности) в выполнении прерывающих программ разных классов, другими словами, определяет, имеет ли право данная прерывающая программа прервать выполняе­мую в данный момент программу.

Установлен следующий порядок приоритета между запро­

сами прерывания: 1) прерывания от схем контроля; 2) прерыва­ния повторного пуска; 3) программные прерывания или пре­рывания при обращении к супервизору (запросы этих прерыва­ний не могут возникать одновременно); 4) внешние прерывания;

  1. прерывания от ввода-вывода.

При обработке прерывания от схемы контроля прием других запросов прерывания не производится. Следовательно, этот класс прерываний имеет наивысший приоритет не только между запросами прерывания, но и между прерывающими программа­ми. Для других классов прерывания приоритет между прерыва­ющими программами имеет порядок, противоположный порядку приоритета между запросами.

Фактический порядок исполнения прерывающих программ определяется приоритетом не между запросами прерывания, а между прерывающими программами [22а].

Построение и функционирование системы прерывания в ма­шинах ЕС ЭВМ поясняются схемой на рис. 9.33 [18]. Работа системы прерывания управляется общими синхросигналами про­цессора. Запросы прерывания поступают в регистр запросов

Запросы прерывания

п

вв

вн

мвв

»а

Мы

мк

М3

М3

гг гь

мз

zs 31

Н

М3

т

15

тт

О

7

75

1 1

77

\

25

г7

I ПК*

ПВН

пвв

*

1 РгКя |

1

\

t

ШфА

I ШфКП

ШфКП

1

ШфКП

В каналы

*

IРгАССП I 1

^ В память

Номер

канала

Номер П9 из канала

\

г \

’ +

0

15

16

КоВ прерывания

31

уРгССП

2Ь\25

М"'8"

\37

Рис. 9.33. Структура системы прерывания (режим основного управ­ления) :

запросы прерывания; К — от схем контроля; П — программные; ОС — обра­щение к супервизору; Вн — внешние; ВВ — ввода-вывода; маски: контроля Мк = Рг ССП [ 13J; программы Мп = Рг ССП [36—39J; внешних прерываний Мл=гРг ССП [7J; ввода-вывода Мьь = Рг ССП [0—6]

ттт

прерывания РгЗП через схемы маскирования запросов М3, состоящие из элементов И, управляемых сигналами триггеров соответствующих разрядов масок в РгССП. Схема приоритетно­го выбора запроса класса прерывания ПКл, анализируя неза­маскированные запросы, устанавливает 1 в соответствующий разряд регистра класса прерывания РгКлу в котором разряды О—5 присвоены отдельным классам в порядке убывания приори­тетов запросов прерывания.

Для принятого к обслуживанию класса прерывания в со­ответствующее поле РгССП передается код прерывания, форми­руемый шифратором кода прерывания ШфКП непосредственно из кода, стоящего в соответствующей классу группе разрядов РгЗП при программных прерываниях, и по выходу схемы прио­ритетного выбора источника запроса прерывания при прерыва­ниях от ввода-вывода и внешних (схемы ПВВ и ПВн). При прерываниях от ввода-вывода в поле кода прерывания РгССП поступает от соответствующего ШфКП номер канала, а из самого канала — номер периферийного устройства. Заметим, что при прерываниях от схем контроля код прерывания состоит из одних 0.

По коду в РгКЛ шифратор адреса ШфА формирует в РгАССП фиксированный адрес ячейки «старого» -ССП данного класса прерывания, куда передается ССП текущей программы из РгССП. Затем установкой 1 в старший разряд РгАССП об­разуется фиксированный адрес ячейки, из которой «новое» ССП загружается в РгССП, после чего управление переходит к пре­рывающей программе.

  1. Процедура выполнения команд. Рабочий цикл процессора

Функционирование процессора в основном состоит из по­вторяющихся рабочих циклов, каждый из которых соответствует выполнению одной команды программы. Завершив рабочий цикл для текущей команды, процессор переходит к выполнению рабо­чего цикла для следующей команды программы.

На рис. 9.34 представлена схема рабочего цикла процессора [17]. Хотя эта схема отражает некоторые особенности функцио­нирования процессоров ЕС ЭВМ, тем не менее она имеет до­статочно общий характер.

На схеме показаны варианты рабочего цикла для четырех групп команд: 1) основньГх (осуществляющих арифметические, логические и пересылочные операции); 2) передачи управления;

  1. ввода-вывода и 4) системных (устанавливающих состояние

Начала

) Установка адреса команды с пульта

Рис. 9.34. Рабочий цикл процессора

процессора, маску прерывания, слово состояния программы и др.).

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

В состоянии Ожидание никакие программы не выполняются. Процессор ждет прихода запроса прерывания, после чего управ­ление переходит к соответствующей прерывающей программе, переводящей процессор в состояние Счет.

В состоянии Счет при наличии незамаскированных прерыва­ний происходят выход из нормального рабочего цикла и перехрд к процедуре обработки запросов прерывания.

При отсутствии в состоянии Счет запросов прерывания по­следовательно выполняются этапы рабочего цикла: выборка очередной команды и определение по коду операции команды ее группы, подготовка операндов (формирование исполнительных адресов и выборка операндов из памяти), обработка операндов в АЛУ и запоминание результата.

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

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

Указанная выше последовательность этапов составляет ос­новной вариант рабочего цикла, реализуемый при выполнении основных команд.

При выполнении команд передачи управления проверяется заданное командой (например, ее полем маски) условие. Если условие не выполняется, то следующую команду указывает про­двинутый адрес, ранее установленный в СчК (регистре ССП). Если условие выполняется или имеется один из вариантов ко­манды безусловного перехода, то адрес, задаваемый командой передачи управления, передается в СчК.

Команды ввода-вывода инициируют в каналб операцию об­мена информацией между ядром ЭВМ (основной памятью) и периферийным устройством. Сама эта операция выполняется каналом под управлением его собственной программы (см. гл.* 11). Поэтому на долю процессора остается только процедура опроса состояний канала и периферийного устройст­

ва — свободны ли они для операции ввода-вывода. Если свобод­ны, процессор выдает в канал информацию, необходимую для начала операции ввода-вывода. В противном случае процессор переключается в состоянии Ожидание и ждет сигнала прерыва­ния от этого канала.

Системные команды осуществляют переключения состояния процессора (программы) путем загрузки нового ССП ил» его части. В частности, эти команды изменяют маски прерывания, устанавливают ключи памяти и ключи защиты в ССП, реализу­ют операции прямого управления.

  1. Принцип совмещения операций академика С. А. Лебедева. Конвейер операций

Вернемся к схеме рабочего цикла (рис. 9.34) и рассмотрим совокупность этапов цикла для основных команд (основной вариант цикла). Если эти этапы выполняются последовательно во времени, то, суммируя обозначенные на рисунке продолжи­тельности отдельных этапов, получаем время цикла

*посл = *1 +*2 + *3 + *4 + *5

и производительность процессора, операций (команд)/с,

^посл = 1 / *посл = 1 /(* 1 + к + h + U + *б)-

Во многих случаях последовательная процедура выполнения этапов цикла не обеспечивает требуемую производительность процессора.

Академик С. А. Лебедев в 1956 г. предложил повышать производительность, используя принцип совмещения во времени отдельных операций (этапов) рабочего цикла, и реализовал этот принцип в ЭВМ М-20 в форме параллельного выполнения во времени операции в АЛУ и выборки из памяти следующей ко­манды .

Пусть рабочий цикл процессора состоит из k этапов, причем r-й этап имеет продолжительность U, тогда при последователь­ном выполнении этапов продолжительность процедуры

k

<„осл=1<. (9.5)

;=1

и общая производительность процессора, операций/с,

V

Позиции конвейера

k

(9.6)

Скорость работы машины может быть увеличена, если для выполнения каждого этапа иметь отдельный аппаратурный блок и соединить эти блоки в обрабатывающую линию — конвейер операций (в данном случае конвейер команд) так, чтобы резуль­тат выполнения в данном блоке некоторого этапа передавался для реализации очередного этапа на следующий блок, и т. д. (рис. 9.35).

Синхронный конвейер операций [29]. Если конвейер работа­ет в принудительном темпе и для выполнения любого этапа выделено одно и то же время tr (такт конвейера), то такой кон­вейер называется синхронным.

Разбиение процедуры на этапы и выбор длительности такта производятся согласно условиям

(9.7)

(9.8)

/T = max{/f), х=1, ..k\ + *=1.

причем в силу цикличности рабочего процесса в последнем неравенстве принимаем f*+i = fi.

Если для каких-либо смежных этапов второе условие не выполняется, то их следует объединить в один этап либо наибо* лее длинный этап разбить на несколько этапов. В последнем случае заново выбирается tT и вновь проверяется условие (9.7).

На рис. 9.36 показана временная диаграмма выполнения команд на 5-позиционном синхронном конвейере. Одинаковыми символами помечены разные этапы рабочего цикла одной и той же команды.

После того как все позиции конвейера окажутся заполненны­ми, параллельно во времени обрабатывается столько команд, сколько в конвейере обрабатывающих блоков (позиций).

Конвейер характеризуется коэффициентом совмещения опе­раций, равным числу одновременно выполняемых этапов обра­ботки информации.

I I I I I I I I I I