Принципы работы системы IBM/370
Описание логической структуры вычислительных машин Системы 370. Особенности мультипроцессирования. Команды общего назначения и управления системой, обработки десятичных данных и команды с плавающей точкой. Средства обработки машинных ошибок (коррекция).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | русский |
Дата добавления | 12.06.2014 |
Размер файла | 658,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Индекс сегмента и индекс страницы в логическом адресе, вызывающем особый случай, помещаются в основную память по адресам 145-147, а по адресу 144 помещаются нули. При использовании 2048-байтовых страниц значение младших 11 битов адреса непредсказуемо; при использовании 4096-байтовых страниц непредсказуемы 12 младших битов адреса.
Когда особый случай происходит в процессе обращения к памяти за операндом, код длины команды равен 1, 2 или 3, что указывает на длину команды, вызвавшей особый случай. Когда особый случай имеет место в процессе выборки команды, код длины команды может быть равен 1, 2 или 3, причем значение этого кода предсказать невозможно.
Особый случай использования страницы
Особый случай использования страницы распознается в следующих ситуациях:
1.) строка таблицы страниц находится за пределами таблицы страниц;
2.) бит доступности страницы установлен в единицу.
Особый случай распознается в процессе выполнения команды, которой требуется строка таблицы страниц при динамическом преобразовании адреса операнда или команды; исключение составляет адрес операнда команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА. В команде ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА это условия отражается признаком результата.
Элемент операции аннулируется.
Индекс сегмента и индекс страницы в логическом адресе, вызывающем особый случай, помещаются в основную память по адресам 145-147, а по адресу 144 помещаются нули. При использовании 2048-байтовых страниц значение младших 11 битов адреса непредсказуемо; при использовании 4096-байтовых страниц непредсказуемы 12 младших битов адреса.
Когда особый случай происходит в процессе обращения к памяти за операндом, код длины команды равен 1, 2 или 3, что указывает на длину команды, вызвавшей особый случай. Когда особый случай имеет место в процессе выборки команды, код длины команды может быть равен 1, 2 или 3, причем значение этого кода предсказать невозможно.
Особый случай спецификации переадресации
Особый случай спецификации переадресации распознается в следующих ситуациях:
1.) в битах 8 и 9 управляющего регистра 0 содержатся величины 00 или 11;
2.) бит 10 управляющего регистра 0 установлен в единицу;
3.) в битах 11 и 12 управляющего регистра 0 содержатся величины 01 или 11;
4.) в битах 4-7 или 29-30 доступной строки таблицы сегментов не установлены нули (на некоторых моделях наличие нулей в этих позициях не проверяется);
5.) один или два бита в зависимости от размера страницы, следующие за младшим битом доступной строки таблицы страниц, не содержат нулей.
Особый случай распознается только при выполнении некоторой команды с использованием динамической переадресации, т. е. когда в режиме EC бит 5 PSW содержит единицу или когда выполняется команда ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА. Ситуации 1-3 распознаются при любой попытке динамической переадресации, а ситуации 4 и 5 - только в том случае, если строки таблицы действительно используются.
Элемент операции подавляется.
Когда особый случай происходит при обращении к памяти за операндом, код длины команды равен 1, 2 или 3, что указывает длину команды, вызвавшей прерывание. Когда особый случай происходит в процессе выборки команды, код длины команды равен 1, 2 или 3, что указывает число полуслов, на которое изменился адрес команды. Нельзя предсказать, будет ли код равен 1, 2 или 3.
Замечания по программированию
Когда в процессе динамического преобразования адреса команды распознается особый случай спецификации переадресации, операция подавляется. В этой ситуации код длины команды нужен для вычисления адреса команды, так как адрес команды в старом PSW был увеличен на число, определяемое кодом длины команды. Если же имеет место особый случай использования сегмента или страницы, операция аннулируется, адрес команды в старом PSW идентифицирует команду, а информация, содержащаяся в коде длины команды, становится избыточной.
Особый случай - выполнение специальной операции
Этот особый случай, называемый специальной операцией, распознается, когда команда УСТАНОВИТЬ МАСКУ СИСТЕМЫ выполняется в состоянии “супервизор” и бит управления запретом установки маски системы бит 1 управляющего регистра 0 равен единице.
Выполнение команды УСТАНОВИТЬ МАСКУ СИСТЕМЫ подавляется.
Код длины команды равен 2.
Мониторное событие
Мониторное событие распознается, когда выполняется команда ОБРАЩЕНИЕ К МОНИТОРУ и бит маски в управляющем регистре 8, соответствующий классу монитора, указанному битами 12-15 команды, равен единице.
Операция завершается.
В процессе прерывания информация, идентифицирующая событие, заносится в основную память по адресам 148-149 и 156-159. Это условие более подробно описано в разделе 4.7.
Код длины команды равен 2.
Программное событие
Программное событие распознается в тех случаях, когда содержимое регистров 9-11 задает регистрацию программных событий и имеет место одно из этих событий или более.
В режиме EC прерывание маскируется битом 1 PSW. В режиме BC регистрация программных событий не предусмотрена.
Элемент операции завершается, если некоторое другое условие, индицируемое одновременно с программным событием, не вызывает аннулирования, подавления или прекращения этого элемента.
В процессе прерывания информация, идентифицирующая событие, заносится в основную память по адресам 150-155. Более подробно это условие прерывания описано в разделе 4.8.
Код длины команды равен 0, 1, 2 или 3. Код 0 может устанавливаться только при особом случае адресации, защиты или спецификации, индицируемом одновременно с индикацией программного события.
Распознавание особых случаев доступа
Особые случаи защиты, адресации и использования сегмента и страницы, а также спецификации переадресации именуются особыми случаями доступа. Условия, вызывающие эти особые случаи, и действия, предпринимаемые при их распознавании, сведены в табл. 6.4.
Таблица 6.4. Действия при особых случаях доступа
Условие |
Неявная переадресация |
Явная переадресация |
||||
индикация |
действие |
индикация |
действие |
|||
команда |
операнд |
|||||
Содержимое управляющего регистра 1 |
||||||
Некорректный размер страницы (управляющий регистр 0, биты 8 и 9) |
TS |
-2 |
Подавление |
TS |
Подавление |
|
Единичный бит 10 управляющего регистра 0 |
TS |
-2 |
Подавление |
TS |
Подавление |
|
Некорректный размер сегмента (управляющий регистр 0, биты 11 и 12) |
TS |
-2 |
Подавление |
TS |
Подавление |
|
Строка таблицы сегментов |
||||||
Нарушение длины таблицы сегментов |
ST |
ST |
Аннулирование |
CC3 |
Завершение |
|
Строка защищена от выборки или записи |
-3 |
-3 |
-3 |
-3 |
-3 |
|
Некорректный адрес строки |
A |
A |
Подавление |
A |
Подавление |
|
Бит доступности равен единице |
ST |
ST |
Аннулирование |
CC1 |
Завершение |
|
Единица в незакрепленном бите 4 |
TS |
TS |
Подавление |
TS |
Подавление |
|
Строка таблицы страниц |
||||||
Нарушение длины таблицы страниц |
PT |
PT |
Аннулирование |
CC3 |
Завершение |
|
Строка защищена от выборки или записи |
-3 |
-3 |
-3 |
-3 |
-3 |
|
Некорректный адрес строки |
A |
A |
Подавление |
A |
Подавление |
|
Бит доступности равен единице |
PT |
PT |
Аннулирование |
CC2 |
Завершение |
|
Единичный незакрепленный бит |
TS |
TS |
Подавление |
TS |
Подавление |
|
Доступ к команде или данным |
||||||
Область защищена |
P |
P |
5 |
-3 |
-3 |
|
Некорректный адрес |
A |
A |
5 |
-3 |
-3 |
|
1 Особый случай спецификации переадресации вследствие некорректного кода в битах 8-12 управляющего регистра 0 распознается как часть выполнения команды, использующей динамическое преобразование адреса.2 Условие не может иметь места, так как оно распознается при динамическом преобразовании адреса команды.3 Это условие не может иметь места.4 Особый случай спецификации переадресации вследствие некорректного формата строки таблицы распознается, если только эта строка требуется при выполнении команды для преобразования адреса.5 Действие зависит от вида обращения.Обозначения. TS - особый случай спецификации переадресации; ST - особый случай использования сегмента; PT - особый случай использования страницы; A - особый случай адресации; P - особый случай защиты; CC1 - CC3 устанавливается признак результата 1--3 соответственно. |
Индикация особого случая выборки команды имеет место, когда невозможно выполнить выборку полуслова команды без того, чтобы не обнаружился этот особый случай. Индикация этого особого случая является частью выполнения команды.
За исключением особых ситуаций, описанных ниже, индикация особых случаев доступа вследствие обращения к операнду производится каждый раз, когда обращение к части указанного операнда в памяти вызывает этот особый случай. Особый случай для частично недоступного операнда распознается даже тогда, когда можно получить правильный результат, не используя недоступную часть операнда. Индикация особого случая производится как часть выполнения команды, осуществляющей обращение.
Каждый раз, когда операнд расположен так, что может вызывать распознавание особого случая доступа, при описании команды в список программных особых случаев включается слово “доступ” и указывается, какой операнд может вызывать распознавание особого случая и какой особый случай - выборки или записи - может распознаваться при доступе к этому операнду. Кроме того, каждая команда может вызвать распознавание особого случая вследствие выборки ее самой.
Далее приведены особые случаи или ситуации, когда в команде явно не указан размер операнда в памяти или когда выполнение команды может завершиться без использования операнда целиком. Действия для этих случаев описаны в табл. 6.5.
1. Если в командах СРАВНЕНИЕ КОДОВ (CLC или CL), СРАВНЕНИЕ СИМВОЛОВ ПО МАСКЕ (CLM) с ненулевой маской и СРАВНЕНИЕ КОДОВ ДЛИННОЕ (CLCL) операнд задан так, что его часть находится в недоступной области основной памяти, но операция может завершиться без использования этой части операнда, то невозможно предсказать, произойдет ли индикация особого случая доступа для этой недоступной части операнда.
2. Индикация особого случая доступа не производится для части первого операнда (аргумента) команды ПЕРЕКОДИРОВАТЬ И ПРОВЕРИТЬ (TRT), если эта часть не нужна для завершения операции.
3. Не производится индикация особого случая доступа к части второго операнда (списка) в командах ПЕРЕКОДИРОВАТЬ (TR) и ПЕРЕКОДИРОВАТЬ И ПРОВЕРИТЬ (TRT), если эта часть не нужна для завершения операции.
4. Не производится индикация особого случая доступа к части второго операнда (исходной информации) в командах ОТРЕДАКТИРОВАТЬ (ED) и ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ (EDMK), если эта часть не нужна для завершения операции.
5. Если в командах ПЕРЕСЫЛКА СО СДВИГОМ (MVO), УПАКОВАТЬ (PACK) и РАСПАКОВАТЬ (UNPK) второй операнд задан так, что его часть находится в недоступной области основной памяти, но операция может завершиться без использования этой части операнда, то невозможно предсказать, произойдет ли индикация особого случая для этой недоступной части операнда.
6. Не производится индикация особого случая доступа к части второго операнда (исходной информации) в команде ПЕРЕСЫЛКА ДЛИННАЯ (MVCL), если эта часть не нужна для завершения операции.
7. Если в командах ПРОЧИТАТЬ СИМВОЛЫ ПО МАСКЕ (ICM) и СРАВНЕНИЕ СИМВОЛОВ ПО МАСКЕ (CLM) маска нулевая, производится индикация особых случаев доступа к единственному байту, указанному адресом второго операнда.
8. Если в команде ЗАПИСЬ В ПАМЯТЬ СИМВОЛОВ ПО МАСКЕ (STCM) маска нулевая, то индикация особых случаев доступа не производится.
Таблица 6.5. Распознавание особых случаев доступа
Команды |
Производится ли индикация особого случая для части указанного в команде операнда, не используемой для завершения операции? |
|
Команды, которые могут завершиться без использования указанного или неявного операнда целиком |
||
TM (нулевая маска) |
Да |
|
CLC, CL |
Не предсказуемо |
|
CLM (ненулевая маска) |
Не предсказуемо |
|
CLCL |
Не предсказуемо * |
|
TRT (первый операнд) |
Нет |
|
TR, TRT (второй операнд) |
Нет |
|
ED, EDMK (второй операнд) |
Нет |
|
Команды, второй операнд которых может содержать больше данных. чем может быть обработано в соответствии со спецификацией первого операнда |
||
PACK, UNPK, MVO |
Не предсказуемо |
|
MVCL |
Нет |
|
Особые ситуации |
||
ICM, CLM (нулевая маска) |
Да, для первого байта |
|
STCM (нулевая маска) |
Нет |
|
* При выполнении команды CLCL не производится индикация никаких особых случаев, кроме как для текущей и для следующей страницы каждого операнда |
Выполнение прерываемых команд СРАВНЕНИЕ КОДОВ ДЛИННОЕ и ПЕРЕСЫЛКА ДЛИННАЯ начинается, если только нет особых случаев доступа, связанных с обращением к таблицам динамической переадресации в пределах страниц, содержащих начало обоих операндов. Кроме того, начало операции может зависеть от наличия особых случаев, связанных с обращением к таблицам в пределах вторых страниц каждого операнда. Когда выполнение команды началось, индикация особого случая доступа, связанного с обращением к таблице переадресации, может произойти сразу же, как только начинает обрабатываться последняя доступная страница, содержащая операнд, который вызывает особый случай.
Какая часть операндов фактически участвует в операции, может быть установлено предварительным тестированием доступности операндов, которое производится до начала выполнения операции.
Условием начала выполнения команды ПЕРЕКОДИРОВАТЬ (TR), ОТРЕДАКТИРОВАТЬ (ED) и ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ (EDMK) является только отсутствие особых случаев, связанных со строками таблиц динамической переадресации для той части второго операнда, которая фактически используется для завершения операции.
Если операция ввода-вывода или другой процессор изменяет первый операнд команды TR или оба операнда команд ED и EDMK после предварительного тестирования, но до завершения выполнения, так, что нужна дополнительная страница, содержащая второй операнд, и преобразование адреса для этой страницы вызывает распознавание особого случая доступа, то получающиеся результаты непредсказуемы. Более того, невозможно предсказать, произойдет ли прерывание из-за этого особого случая. При выполнении команд ED и EDMK такая ситуация может иметь место также из-за перекрытия операндов.
Эта ситуация является исключением из общего правила, состоящего в том, что вследствие особых случаев использования сегмента и страницы операция аннулируется, а вследствие особого случая спецификации переадресации и особого случая адресации, вызванного некорректным адресом строки таблицы, операция подавляется.
Если в этой ситуации происходит прерывание вследствие использования сегмента или страницы, адрес команды в старом PSW указывает на команду, вызывающую особый случай, даже если результаты частично записаны в память.
Замечания по программированию
Индикация особого случая доступа производится как часть выполнения команды, с которой связан этот особый случай. В частности, если процессор пытается осуществить выборку из недоступной области или как-либо иначе обнаруживает особый случай доступа, но команда перехода или прерывание изменяет последовательность команд так, что команда, связанная с особым случаем, не выполняется, то особый случай не распознается.
Далее перечислены некоторые разновидности обращения к памяти, при которых особые случаи доступа, включая особый случай защиты по записи, если таковая действует, распознаются, если даже операция могла бы завершиться без использования недоступной части операнда:
а) выборка операнда команды ПРОВЕРИТЬ ПО МАСКЕ, если маска нулевая;
б) частичная выборка операндов команд алгебраического сравнения (C и CH);
в) частичная выборка операндов в командах с плавающей точкой;
г) обращения к первому операнду команд обработки десятичных данных, если при сложении и вычитании второй операнд равен нулю или при умножении или делении равен единице;
д) запись в память символа образца в операции редактирования, когда этот символ не изменяется;
е) запись в память при выполнении команды СДВИГ С ОКРУГЛЕНИЕМ ДЕСЯТИЧНЫЙ, если отсутствует и сдвиг, и округление;
ж) запись в память при операции пересылки, когда области первого и второго операндов совпадают;
з) запись в память первого операнда команд ИЛИ (OI или OC), если соответствующий байт второго операнда равен нулю, а также подобные случаи в командах И и ИСКЛЮЧАЮЩЕЕ ИЛИ;
и) запись в память первого операнда команды ПЕРЕКОДИРОВАТЬ, если аргумент и функция совпадают.
Если в командах ПРОЧИТАТЬ СИМВОЛЫ ПО МАСКЕ, СРАВНЕНИЕ СИМВОЛОВ ПО МАСКЕ и ЗАПИСЬ В ПАМЯТЬ СИМВОЛОВ ПО МАСКЕ маска ненулевая, индикация особых случаев доступа производится только для байтов операнда, заданных маской. Операнды команд ПЕРЕСЫЛКА ДЛИННАЯ и СРАВНЕНИЕ КОДОВ ДЛИННОЕ, длина которых равна нулю, не вызывают распознавания особых случаев.
Приоритеты условий программных прерываний
При программном прерывании производится индикация только одного условия этих прерываний, если не считать программных событий. Однако наличие одного условия не исключает одновременного возникновения других условий. Если обнаружено несколько условий программных прерываний, код прерывания идентифицирует только условие, имеющее самый высокий приоритет.
Приоритеты особых случаев доступа приведены в табл. 6.6. В табл. 6.7 перечислены все условия программных прерываний (кроме программных событий), включая все особые случаи, связанные с обращениями к памяти за полусловами команд или страницами операндов и объединенные в рамках “доступа” с одним значением приоритета. Так, в табл. 6.6 указано, какой особый случай из числа обнаруженных при доступе к конкретному полуслову команды или к странице конкретного операнда имеет более высокий приоритет, а в табл. 6.7 указаны приоритеты этих условий по отношению к другим условиям, обнаруженным при операции.
Относительные приоритеты любых двух условий можно определить, сравнивая номера, выражающие приоритет в любой из этих таблиц, слева направо до тех пор, пока не обнаружится неравенство. Если вначале будет обнаружено неравенство между цифрами, то либо эти условия взаимно исключают друг друга, либо, когда они справедливы, происходит индикация условия с меньшим номером. Если же вначале будет обнаружено неравенство между буквами, то два условия не исключают друг друга и невозможно предсказать, индикация которого из условий произойдет, если оба они будут иметь место.
Доступ ко второму полуслову команды происходит во всех случаях при условии, что биты 0-1 команды не равны 00. Доступ к третьему полуслову команды происходит тогда, когда только биты 0-1 команды равны 11.
Таблица 6.6. Приоритеты особых случаев доступа *
Приоритеты*Особый случай доступа
1. |
Переадресация вследствие того, что указан некорректный размер сегмента или страницы, или того, что в бите 10 управляющего регистра 0 содержится единица |
|
2. |
Использование сегмента вследствие того, что строка таблицы сегментов находится вне таблицы |
|
3. |
Адресация вследствие того, что строка таблицы сегментов находится вне основной памяти вычислительной установки |
|
4. |
Использования сегмента вследствие того, что бит доступности равен единице |
|
5. |
Переадресация вследствие того, что в строке таблицы сегментов некорректно установлены единицы |
|
6. |
Использование страницы вследствие того, что строка таблицы страниц находится вне таблицы |
|
7. |
Адресация вследствие того, что строка таблицы страниц находится вне основной памяти вычислительной установки |
|
8. |
Использование страницы вследствие того, что бит доступности равен единице |
|
9. |
Спецификация переадресации вследствие того, что в строке таблицы страниц некорректно установлены единицы |
|
10. |
Адресация вследствие того, что команда или операнд находится вне основной памяти вычислительной установки |
|
11. |
Защита вследствие того, что операнд или команда находится в защищенной области |
|
* Особые случаи перечислены в порядке убывания их приоритетов. |
Таблица 6.7. Приоритеты условий программных прерываний. Приоритет *Условие программного прерывания
1.A. |
Неточный особый случай адресации вследствие попытки предшествующей команды произвести запись в память |
|
1.B. |
Неточный особый случай защиты вследствие попытки предшествующий команды произвести запись в память |
|
2. |
Особый случай спецификации вследствие любой ошибки в PSW, немедленной вызывающей прерывание |
|
3. |
Особый случай спецификации из-за нечетности адреса команды в PSW. |
|
4. |
Особый случай доступа к первому полуслову команды |
|
5.A. |
Особый случай доступа ко второму полуслову команды |
|
5.B. |
Особый случай доступа к третьему полуслову команды |
|
5.C.1. |
Особый случай использования кода операции |
|
5.C.2. |
Особый случай использования привилегированной операции |
|
5.C.3. |
Особый случай применения команды ВЫПОЛНИТЬ |
|
5.C.4. |
Выполнение специальной операции |
|
5.D. |
Особый случай спецификации вследствие условий, отличающихся от указанных выше под номерами 2 и 3, для команд, которые отсутствуют в процессоре, но коды операций которых закреплены |
|
6.A. |
Особый случай спецификации вследствие условий, отличающихся от тех. которые указаны выше под номерами 2, 3 и 5.D |
|
6.B.1. |
Особый случай доступа для выборки первого операнда, первая страница |
|
6.B.2. |
Особый случай в данных, составляющих первый операнд, первая страница |
|
6.C.1. |
Особый случай доступа для выборки первого операнда, вторая страница |
|
6.C.2. |
Особый случай в данных, составляющих первый операнд, вторая страница |
|
6.D.1. |
Особый случай доступа для выборки второго операнда, первая страница |
|
6.D.2. |
Особый случай в данных, составляющих второй операнд, первая страница |
|
6.E.1. |
Особый случай доступа для выборки второго операнда, вторая страница |
|
6.E.2. |
Особый случай в данных, составляющих второй операнд, вторая страница |
|
6.F. |
Особый случай доступа для записи операнда, первая страница |
|
6.G. |
Особый случай доступа для записи операнда, вторая страница |
|
7.-15. |
Мониторное событие, особые случаи завершения и особые случаи деления. Эти особые случаи взаимно исключают друг друга |
|
* Номера выражают приоритеты, причем приоритеты убывают с ростом номера; буквы приоритетов не выражают. |
6.4 Прерывание при обращении к супервизору
Прерывание при обращении к супервизору возникает в результате выполнения команды ОБРАЩЕНИЕ К СУПЕРВИЗОРУ (SVC). Это прерывание не маскируется; оно происходит непосредственно после выполнения команды.
В процессе прерывания при обращении к супервизору старое PSW записывается по адресу 32, а по адресу 96 производится выборка нового PSW.
Содержимое битов 8-15 команды ОБРАЩЕНИЕ К СУПЕРВИЗОРУ записывается в младший байт кода прерывания. Старший байт кода прерывания устанавливается в нуль. Если команда SVC не была инициирована командой ВЫПОЛНИТЬ, код длины команды равен единице; в противном случае -- двум.
Если в старом PSW задан режим BC, код прерывания и код длины команды заносятся в старое PSW; если в старом PSW задан режим EC, код прерывания помещается в область памяти с адресами 138-139, код длины команды заносится в биты 5 и 6 байта памяти с адресом 137; все остальные биты устанавливаются в нуль и нули записываются по адресу 136.
Замечания по программированию
Название команды ОБРАЩЕНИЕ К СУПЕРВИЗОРУ указывает на то, что основным назначением этой команды является переключение из состояния “задача” в состояние “супервизор”. Кроме того, эта команда служит для переключения других состояний.
Код прерывания может быть использован для передачи сообщения от прерываемой программы к супервизору.
6.5 Внешние прерывания
Внешние прерывания - это средство, с помощью которого процессор реагирует на различные сигналы, возникающие внутри системы и вне ее.
Внешнее прерывание вызывает запись PSW по адресу 24, а выборка нового PSW осуществляется из области памяти с адресом 88.
Источник прерывания идентифицируется кодом прерывания. Если в старом PSW задан режим BC, код прерывания записывается в биты 16-31 старого PSW и код длины команды непредсказуем. Если в старом PSW задан режим EC, код прерывания записывается по адресу 134-135.
Кроме того, в обоих режимах при некоторых условиях с источником прерывания сопоставляется 16-разрядный адрес процессора, который записывается по адресу 132-133. Когда записывается адрес процессора, бит 6 кода прерывания устанавливается в единицу. Если в старом PSW задан режим BC и бит 6 равен нулю, содержимое байтов 132-133 остается неизменным. Если бит 6 равен нулю и в старом PSW задан режим EC, по адресам 132-133 записываются нули.
Внешнее прерывание от некоторого источника может произойти только тогда, когда в процессоре разрешено прерывание от этого источника. Маска внешнего прерывания, бит 7 PSW и биты подмаски внешнего прерывания в управляющем регистре 0 разрешают или запрещают внешнее прерывание в процессоре. За каждым источником внешнего прерывания закреплен бит подмаски, и источник может вызывать прерывание только тогда, когда бит маски внешнего прерывания и соответствующий бит подмаски установлены в единицу. Использование бита в подмаске не зависит от того, работает ли процессор в режиме BC или в режиме EC.
Когда в процессоре снимается маска для ждущего условия внешнего прерывания, прерывание происходит после выполнения команды или после прерывания, вызвавшего снятие маски.
В один и тот же момент может прийти несколько запросов на прерывание от внешнего источника. Когда в процессоре снимается маска нескольких одновременно ожидающих запросов, прерывание вызывается условием или условиями, имеющими наивысший приоритет.
Наивысший приоритет присваивается группе условий, вызываемых интервальным таймером, кнопкой прерывания и внешними сигналами 2-7. Индикация всех ожидающих условий, принадлежащих к этой группе и разрешенных в процессоре, происходит в коде прерывания одновременно. Далее в порядке убывания приоритета названы другие, имеющие низкий приоритет источники прерываний:
-- оповещение о сбое;
-- экстренный сигнал;
-- внешний вызов;
-- нарушение синхронизации часов;
-- компаратор;
-- таймер CPU.
Если в одно и то же время приходит более чем один экстренный сигнал или сигнал оповещения о сбое, первым удовлетворяется запрос от процессора с наименьшим адресом. С помощью кода внешнего прерывания в каждый момент может происходить индикация только одного из этих условий.
Интервальный таймер
Запрос на прерывание от интервального таймера порождается, когда его неотрицательное значение сменяется отрицательным. Запрос сохраняется и остается в ожидании обработки до тех пор, пока он не будет снят. Ожидающий запрос снимается, когда он вызывает прерывание или когда происходит сброс процессора.
Индикация условия состоит в том, что в разряд 8 кода прерывания заносится единица, а в разряды 0-7 - нули. В разряды 9-15 заносятся нули, если другое одновременно действующее условие не вызовет занесения в них единиц. В режиме EC по адресам 132-133 записываются нули.
Бит подмаски находится в позиции 24 управляющего регистра 0. Исходное состояние этого бита - единица.
Кнопка прерывания
Запрос на прерывание от кнопки прерывания возникает при нажатии этой кнопки на пульте управления системой. Запрос сохраняется и остается в ожидании обработки, пока он не будет снят. Считается, что запрос снят, если он вызвал прерывание или выполнен сброс процессора.
Индикация этого условия состоит в том, что бит 9 кода прерывания устанавливается в единицу, а биты 0-7 - в нули. Бит 8, а также биты 10-15 равны нулю, если другое одновременно действующее условие не вызовет занесения в них единицы. В режиме EC в область памяти с адресами 132-133 заносятся нули.
Бит подмаски находится в позиции 25 управляющего регистра 0. Исходное состояние этого бита равно единице.
Внешний сигнал
Запрос на прерывание от внешнего сигнала формируется при поступлении сигнала по одной или более входным сигнальным линиям. К процессору может быть подключено до шести сигнальных линий: со 2-й по 7-ю. Запрос сохраняется и остается в ожидании обработки, пока он не будет снят. Снятие ожидающего запроса происходит в результате прерывания от этого запроса или сброса процессора.
Индикация внешних сигналов со 2-го по 7-й выражается в том, что в биты 10-15 кода прерывания соответственно заносятся единицы. В биты 0-7 заносятся нули; все другие биты младшего байта также устанавливаются в нули, если индикация другого одновременно действующего условия не изменяет их значений. В режиме EC по адресам 132-133 записываются нули.
Все внешние сигналы находятся под управлением бита подмаски (бит 26 управляющего регистра 0). Исходное состояние этого бита - единица.
Прием внешнего сигнала является функцией средств прямого управления. На некоторых моделях эта функция выделена и выполняется специальными средствами.
Замечания по программированию
Сочетание нулей и единиц в битах 10-15 кода прерывания зависит от сочетания нулей и единиц, которое было получено перед прерыванием. Вследствие разброса параметров схем не все одновременно порожденные сигналы могут прийти в одно и то же время; некоторые из сигналов могут не участвовать в прерывании, вызванном более ранними сигналами. Эти более поздние сигналы могут вызвать другое прерывание.
Оповещение о сбое
Запрос на прерывание при оповещении о сбое формируется, когда другой процессор, присоединенный к данному процессору, переходит в состояние “стоп при сбое” или же к нему прекращается подача питания. Запрос сохраняется и остается в ожидании обработки в принимающем процессоре до тех пор, пока он не будет снят. Снятие ожидающего запроса происходит в результате прерывания от этого запроса или при сбросе процессора.
Предусмотрено сохранение запросов на прерывание при оповещении о сбое от каждого процессора, подключенного к данному. Отключение процессора от системы не порождает условия оповещения о сбое.
Индикация этого условия осуществляется шестнадцатеричным кодом внешнего прерывания 1200. Адрес процессора, вызвавшего формирование этого условия, записывается в область с адресами 132-133.
Прерывание из-за оповещения о сбое управляется битом маски подкласса (бит 16 управляющего регистра 0). Исходное состояние этого бита - нуль.
Экстренный сигнал
Если процессор получает приказ “экстренный сигнал”, выданный в результате выполнения команды СИГНАЛ ПРОЦЕССОРУ, в которой указан адрес данного процессора, то в нем формируется запрос на прерывание. Команда может выполняться как на данном процессоре, так и на другом, подключенном к данному. Запрос сохраняется в принимающем процессоре и ожидает обработки до тех пор, пока он не будет снят. Этот ждущий запрос снимается в том случае, когда он вызывает прерывание, а также при сбросе процессора.
В принимающем процессоре могут одновременно находиться в ожидании обработки запросы от каждого подключенного процессора и запрос от самого принимающего процессора.
Индикация условия осуществляется шестнадцатеричным кодом внешнего прерывания 1201. Адрес процессора, выполнившего команду СИГНАЛ ПРОЦЕССОРУ, записывается в области с адресами 132-133.
Прерывание из-за экстренного сигнала управляется битом маски подкласса - битом 17 управляющего регистра 0. Исходное значение этого бита - нуль.
Внешний вызов
Если процессор получает приказ “внешний вызов”, выданный в результате выполнения команды СИГНАЛ ПРОЦЕССОРУ, в которой адресован данный процессор, то в нем формируется запрос на прерывание. Команда может выполняться как на рассматриваемом процессоре, так и на другом, подключенном к данному. Запрос сохраняется в принимающем процессоре и находится в ожидании обработки до тех пор, пока он не будет снят. Этот ждущий запрос снимается, когда он вызывает прерывание, а также при сбросе процессора.
В принимающем процессоре в каждый момент времени может находиться в ожидании обработки только один запрос, сопровождаемый адресом вызывающего процессора.
Индикация осуществляется шестнадцатеричным кодом внешнего прерывания 1202. Адрес процессора, выполнившего команду СИГНАЛ ПРОЦЕССОРУ, записывается в область с адресами 132-133. Прерывание из-за внешнего вызова управляется битом маски подканала в бите 18 управляющего регистра 0. Исходное значение этого бита - нуль.
Нарушение синхронизации часов
Условие нарушения синхронизации часов свидетельствует о том, что в конфигурации технических средств имеется несколько часов (более чем одни часы) и младшие 32 бита различных часов изменяются не синхронно.
Запрос на прерывание при нарушении синхронизации часов возникает, когда часы, к которым имеет доступ данный процессор, идут и часы, к которым имеет доступ другой процессор, присоединенный к данному, также идут, однако содержимое битов 32-63 этих двух часов не совпадают. Если часы начинают идти или к конфигурации технических средств присоединяются идущие часы, то может случиться, что несовпадение будет распознано только через 1,048576 с (220 мкс).
Если в конфигурации технических средств имеются только двое часов и одни из них или и те и другие одновременно находятся в состояниях “неисправны”, “стоп” или “выключены”, то невозможно предсказать, будет ли распознано нарушение синхронизации часов. Если же нарушение синхронизации часов распознано, то это условие может сохраняться до 1,048576 с после того, как часы начнут идти с обеспечением совпадения младших битов. Однако если в последнем случае процессоры перестают быть подключенными друг к другу, то это условие не сохраняется.
Если несколько процессоров пользуются одними и теми же часами, то индикация того, что синхронизация часов нарушена, происходит только в процессоре с наименьшим адресом.
Если условие, вызвавшее запрос, устраняется до того, как этот запрос будет удовлетворен, запрос не сохраняется и прерывание не происходит. Однако прерывание не снимает запрос, и, если условие продолжает существовать, в результате его однократного возникновения может произойти несколько прерываний.
Индикация условия осуществляется шестнадцатеричным кодом внешнего прерывания 1003. В режиме EC в область с адресами 132-133 записываются нули.
Прерывание из-за нарушения синхронизации часов управляется битом маски - битом 19 управляющего регистра 0. Исходное значение этого бита - нуль.
Компаратор
Запрос на прерывание от компаратора возникает всякий раз, когда имеет место одна из следующих ситуаций:
а) часы идут, и содержимое компаратора меньше той части содержимого часов, с которой происходит сравнение; обе сравниваемые величины рассматриваются как двоичные числа без знака;
б) часы находятся в состоянии “неисправны” или “выключены”, и процессор при этом оборудован компаратором.
Если условие, вызывающее запрос, устраняется до того, как этот запрос удовлетворен, запрос не сохраняется и прерывание не происходит. Но запрос прерыванием не снимается, и, если это условие продолжает существовать, то в результате его однократного возникновения может произойти несколько прерываний.
Индикация условия осуществляется шестнадцатеричным кодом внешнего прерывания 1004. В режиме EC по адресам 132-133 записываются нули.
Прерывание управляется битом маски подкласса, представленной битом 20 управляющего регистра 0. Исходное состояние этого бита - нуль.
Таймер CPU
Запрос на прерывание от таймера CPU возникает каждый раз, когда его содержимое имеет отрицательную величину, т. е. когда нулевой разряд таймера CPU равен единице. Если содержимое таймера CPU становится положительным до того, как запрос удовлетворен, запрос не сохраняется и прерывание не происходит. При этом запрос прерыванием не снимается, и, если условие прерывания продолжает существовать, то в результате его однократного возникновения может произойти несколько прерываний.
Индикация условия осуществляется шестнадцатеричным кодом внешнего прерывания 1005. В режиме EC по адресам 132-133 записываются нули.
Прерывание управляется битом маски подкласса, представленным битом 21 управляющего регистра 0. Исходное значение этого разряда - нуль.
6.6 Прерывания ввода-вывода
Прерывания ввода-вывода дает процессору возможность реагировать на условия, возникающие во внешних устройствах и каналах.
При прерываниях ввода-вывода старое PSW записывается по адресу 56, слово состояния канала - по адресу 64, выборка нового PSW производится из области с адресом 120. При обнаружении сбоев оборудования в область ограниченной регистрации состояния канала по адресу 176 и в область расширенной регистрации ввода-вывода, адрес которой содержится в ячейках 173-175, может быть записана дополнительная информация.
Если в старом PSW задан режим BC, код прерывания (биты 16-31 PSW) указывают канал и устройство, вызвавшие прерывание; адресу канала отводятся восемь старших разрядов, а адресу устройства - восемь младших разрядов. Код длины команды предсказать невозможно. Если в старом PSW задан режим EC, адрес устройства помещается в ячейку 187, адрес канала - в ячейку 186, а по адресу 185 записываются нули.
Прерывание ввода-вывода может произойти только тогда, когда для канала, представившего запрос, прерывание разрешено. Будет ли разрешено или замаскировано прерывание от канала, зависит от состояния битов маски в PSW и масок каналов в управляющем регистре 2, причем эта зависимость различна в режимах BC и EC.
Маска канала расположена в управляющем регистре 2, начиная со старшего разряда и занимая столько последующих битов, сколько имеется каналов. Разряд закреплен за тем каналом, адрес которого равен номеру бита в управляющем регистре 2. Исходное состояние битов маски для подключенных каналов равно 1. Состояние маски для недоступных каналов предсказать невозможно.
Если в текущем PSW задан режим BC, прерывания от каналов с номером 6 и выше управляются маской ввода-вывода, представленной битом 6 PSW, и маской соответствующего канала; канал может вызвать прерывание только тогда, когда маска ввода-вывода и маска соответствующего канала установлены в единицы. Прерывания от каналов 0-5 управляются масками каналов 0-5 в PSW; прерывание может произойти только тогда, когда маска, соответствующая каналу, установлена в единицу. В режиме BC биты 0-5 управляющего регистра 2 не управляют прерываниями ввода-вывода, однако их значения в управляющем регистре сохраняются.
Когда в PSW задан режим EC, каждый канал управляется маской ввода-вывода и маской, представленной соответствующим битом управляющего регистра. Канал может вызывать прерывание только в том случае, если маска ввода-вывода и маска соответствующего канала установлены в единицы.
Когда в процессоре производится снятие маски для ожидающих условий прерываний ввода-вывода, прерывание происходит после завершения выполнения команды или после прерывания, вызвавшего снятие маски.
Запрос на прерывание ввода-вывода может прийти в любой момент, и в один и тот же момент может появиться несколько запросов. Запросы сохраняются и остаются в ожидании обработки в каналах или устройствах до тех пор, пока они не будут восприняты процессором. Среди запросов установлен приоритет, так что в ходе прерывания обрабатывается только один запрос. Более подробно эти вопросы рассмотрены в разделе 13.4
6.7 Прерывание повторного пуска
Прерывание повторного пуска - это средство, с помощью которого оператор или другой процессор вызывает выполнение некоторой программы. Прерывание такого типа не маскируется.
При прерываниях повторного пуска старое PSW записывается в область основной памяти с адресом 8 и производится выборка нового PSW из области с адресом 0. В режиме BC код длины команды в PSW невозможно предсказать, а в поле кода прерывания записываются нули. В режиме EC код прерывания и код длины команды не записываются.
Если процессор находится в состоянии “работа”, замена PSW происходит после завершения текущего элемента операции и приема условий прерываний, для которых процессор не замаскирован. Перейдет ли процессор при выполнении операции повторного пуска временно в состояние “стоп”, зависит в данном случае от модели. Если процессор находится в состоянии “стоп”, то он переходит в состояние “работа” и заменяется PSW, не обрабатывая предварительного никаких ждущих прерываний.
Прерывание повторного пуска инициируется кнопкой повторного пуска на пульте управления системой. В мультипроцессорном режиме работы эту операцию можно инициировать в адресуемом процессоре командой СИГНАЛ ПРОЦЕССОРУ, вызывающей выдачу приказа “повторный пуск”.
Замечания по программированию
Чтобы произвести повторный пуск в случае, когда процессор находится в состоянии “стоп”, при сбое в процессоре должен произойти сброс. Этот сброс можно вызвать посредством программного сброса, который не сбрасывает содержимое программно адресуемых регистров, в том числе управляющих регистров, но вызывает сброс в присоединенных каналах.
6.8 Приоритет прерываний
В процессе выполнения команды одновременно может произойти несколько событий, вызывающих прерывание. Сама команда может вызвать программное прерывание; кроме того, может быть получен запрос на внешнее прерывание или обнаружен сбой оборудования; также может возникнуть запрос на прерывание ввода-вывода или же нажата кнопка повторного пуска. Вместо программного прерывания иногда происходит прерывание при обращении к супервизору; могут также произойти оба эти прерывания одновременно, если модель оборудована средствами для регистрации программных событий. Одновременные запросы на прерывание удовлетворяются в заранее установленном порядке.
Неотложное условие прерывания от схем контроля имеет наивысший приоритет. Когда оно возникает, текущая операция прекращается или аннулируется. Программные прерывания или прерывания при обращении к супервизору, которые способны возникнуть в результате выполнения текущей операции, могут быть устранены. При выполнении прерывания от схем контроля, вызванных наличием неотложного условия, может произойти индикация любого задержанного подавляемого условия машинной ошибки. Делается все возможное, чтобы ограничить побочный эффект неотложного условия прерывания от схем контроля, поэтому, как правило, эти условия не затрагивают прерывания ввода-вывода и внешние прерывания.
Если при отсутствии неотложных условий прерывания от схем контроля к концу выполнения элемента операции существуют одновременно несколько запросов на прерывание, то эти запросы удовлетворяются в соответствии с их приоритетами (запросы перечислены в порядке убывания их приоритета):
-- прерывания при обращении к супервизору;
-- программные прерывания;
-- подавляемые прерывания от схем контроля;
-- внешние прерывания;
-- прерывания ввода-вывода;
-- прерывания повторного пуска.
Запрос на прерывание, поступивший после того, как было выполнено несколько прерываний, удовлетворяется в соответствии с приоритетами на момент поступления запроса.
Обработка нескольких одновременных запросов на прерывание состоит в записи старого и выборке нового PSW, относящихся к первому выполняемому прерыванию. Затем новое PSW запоминается, при этом никакая команда не выполняется и осуществляется выборка нового PSW, связанного со следующим прерыванием. Запись и выборка продолжаются до тех пор, пока не будут выполнены все прерывания. Внешние прерывания, прерывания ввода-вывода, а также прерывания от схем контроля, возникающие вследствие подавляемых условий, выполняются только в том случае, если в момент, когда должно произойти прерывание, текущее PSW показывает, что прерывание, вызванное этой причиной, разрешено.
Выполнение команд возобновляется под управлением последнего из выбранных PSW. Поэтому порядок выполнения подпрограмм обработки прерываний обратен порядку, в котором происходила выборка PSW.
Если новое PSW программного прерывания содержит неприемлемый адрес команды (адрес команды нечетен или же вызывает распознавание особого случая доступа), то происходит другое программное прерывание. Так как второе прерывание делает текущим то же самое неприемлемое PSW, то возникает цепочка прерываний. Эти особые случаи распознаются в процессе выполнения следующей команды, и цепочка прерываний может быть оборвана внешним прерыванием, прерыванием ввода-вывода, прерыванием повторного пуска, а также при переходе в состояние “стоп”.
Если в режиме EC в новом PSW программного прерывания установлен в единицу незакрепленный бит, или PSW задает режим EC для процессора, который не оборудован для работы в этом режиме, или PSW подразумевает наличие каких-либо других средств, которых нет в данном процессоре, то снова происходит программное прерывание. Это условие имеет более высокий приоритет, чем условия прерывания повторного пуска, прерывания ввода-вывода и внешних прерываний, а также подавляемые условия прерываний от схем контроля машины или условия перехода в состояние стоп, поэтому для того, чтобы выйти из этого цикла, следует произвести сброс процессора. Аналогично, чтобы прекратить существование условия прерывания, которое возникает, если при прерывании префиксация вызывает обращение к области основной памяти, отсутствующей в данном процессоре, также должен быть произведен сброс процессора.
Все разрешенные прерывания происходят до того, как процессор перейдет в состояние “стоп”. Когда процессор находится в состоянии “стоп”, прерывание повторного пуска имеет более высокий приоритет по сравнению с ожидающими условиями прерываний ввода-вывода, внешних прерываний, а также подавляемыми условиями прерываний от схем контроля.
Замечания по программированию
Порядок удовлетворения одновременных запросов в некоторой степени может быть изменен за счет маскирования.
6.9 Постоянно распределенные области основной памяти
Реальная основная память
В табл. 6.8 представлены формат и размеры постоянно распределенных (закрепленных) областей реальной основной памяти. В мультипроцессорной системе адреса реальной памяти преобразуются в абсолютные адреса посредством префиксации. Если специально не оговорено, то приводимое ниже описание использования областей памяти относится как к режиму BC, так и к режиму EC.
Таблица 6.8. Распределение реальной основной памяти
Адрес |
Название поля |
|||||
шестнадцатеричный |
десятичный |
|||||
04 |
04 |
Новое PSW повторного пуска |
||||
8C |
812 |
Старое PSW повторного пуска |
||||
1014 |
1620 |
|||||
181C |
2428 |
Старое PSW внешних прерываний |
||||
2024 |
3236 |
Старое PSW прерываний при обращении к супервизору |
||||
282C |
4044 |
Старое PSW программных прерываний |
||||
3034 |
4852 |
Старое PSW прерываний от схем контроля |
||||
383C |
5660 |
Старое PSW прерываний ввода-вывода |
||||
4044 |
6468 |
Слово состояния канала |
||||
48 |
72 |
Адресное слово канала |
||||
4C |
76 |
|||||
50 |
80 |
Интервальный таймер |
||||
54 |
84 |
|||||
585C |
8892 |
Новое PSW внешних прерываний |
||||
6064 |
96100 |
Новое PSW прерываний при обращении к супервизору |
||||
686C |
104108 |
Новое PSW программных прерываний |
||||
7074 |
112116 |
Новое PSW прерываний от схем контроля |
||||
787C |
120124 |
Новое PSW прерываний ввода-вывода |
||||
80 |
128 |
|||||
84 |
132 |
Адрес процессора |
Код внешнего прерывания |
|||
88 |
136 |
0000 0000 0000 0 |
ILC |
0 |
Код прерывания при обращении к супервизору |
|
8C |
140 |
0000 0000 0000 0 |
ILC |
0 |
Код программного прерывания |
|
90 |
144 |
0000 0000 |
Адрес особого случая переадресации |
|||
94 |
148 |
0000 0000 |
Класс монитора |
Код PER |
0000 0000 0000 |
|
98 |
152 |
0000 0000 |
Адрес PER |
|||
9C |
156 |
0000 0000 |
Код монитора |
|||
A0 |
160 |
|||||
A4 |
164 |
|||||
A8 |
168 |
Идентификатор канала |
||||
AC |
172 |
Адрес IOEL |
||||
B0 |
176 |
Ограниченная регистрация состояния канала |
||||
B4 |
180 |
|||||
B8 |
184 |
0000 0000 |
Адрес ввода-вывода |
|||
BC...D4 |
188...212 |
|||||
D8DC |
216220 |
Область сохранения для таймера CPU при сигнале от схем контроля |
||||
E0E4 |
224228 |
Область сохранения для компаратора при сигнале от схем контроля |
||||
E8EC |
232236 |
Код прерывания при сигнале от схем контроля |
||||
F0F4 |
240244 |
|||||
F8 |
248 |
0000 0000 |
Адрес области памяти с ошибкой |
|||
FC |
252 |
Региональный код |
||||
100...15C |
256...348 |
Фиксированная область регистрации |
||||
160...17С |
352...380 |
Область сохранения регистров с плавающей точкой при сигнале от схем контроля |
||||
180...1BC |
384...444 |
Область сохранения общих регистров при сигнале от схем контроля |
||||
1C0...1FC |
448...508 |
Область сохранения управляющих регистров при сигнале от схем контроля |
0-7Новое PSW повторного пуска. Новое PSW выбирается из ячеек 0-7 в процессе прерывания повторного пуска.
8-15Старое PSW повторного пуска. Текущее PSW запоминается в качестве старого PSW в ячейках 8-15 в процессе прерывания повторного пуска.
24-63Старые PSW прерываний. В процессе внешних прерываний, прерываний при обращении к супервизору, программных прерываний, прерываний от схем контроля и прерываний ввода-вывода текущее PSW запоминается в качестве старого PSW в ячейках 24-31, 32-39, 40-47, 48-55 и 56-63 соответственно.
64-71CSW. Слово состояния канала (CSW) записывается в ячейки 64-71 в процессе прерывания ввода-вывода. CSW или часть его может записываться в процессе выполнения команд НАЧАТЬ ВВОД-ВЫВОД, НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, ПРОВЕРИТЬ ВВОД-ВЫВОД, ОСВОБОДИТЬ ВВОД-ВЫВОД, ОСТАНОВИТЬ ВВОД-ВЫВОД или ОСТАНОВИТЬ УСТРОЙСТВО; в этом случае признак результата устанавливается в единицу.
72-75CAW. Адресное слово канала (CAW) выбирается из ячеек 72-75 в процессе выполнения команд НАЧАТЬ ВВОД-ВЫВОД и НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ.
80-83Интервальный таймер содержится в ячейках 80-83. Содержимое таймера модифицируется всегда, когда процессор находится в состоянии “работа”. В зависимости от разрешающей способности таймера младшие биты его содержимого могут не изменяться.
88-127Новые PSW прерываний. Из ячеек 88-95, 96-103, 104-11, 112-119 и 120-127 производится выборка нового PSW при выполнении внешних прерываний, прерываний при обращении к супервизору, программных прерываний, прерываний от схем контроля и прерываний ввода-вывода соответственно.
132-133Адрес процессора. В процессе внешнего прерывания в режиме EC в ячейки 132-133 записывается или адрес процессора, идентифицирующий источник прерывания, или нули. Когда в память записывается адрес процессора, бит 6 кода внешнего прерывания устанавливается в единицу. В режиме BC содержимое поля остается без изменений.
134-135Код внешнего прерывания. В процессе внешнего прерывания в режиме EC код прерывания записывается в память в ячейки 134-135.
136-139Идентификация прерываний при обращении к супервизору. В процессе прерывания при обращении к супервизору в режиме EC код длины команды записывается в биты 5 и 6 ячейки 137, а код прерывания - в ячейки 138 и 139. В ячейку 136 и в остальные биты ячейки 137 записываются нули.
140-143Идентификация программных прерываний. В процессе программного прерывания в режиме EC код длины команды записывается в биты 5 и 6 ячейки 141, а код прерывания - в ячейки 142 и 143. В ячейку 140 и в остальные биты ячейки 141 записываются нули.
144-147Адрес особого случая переадресации записывается в ячейки 145-147 при программном прерывании вследствие особого случая использования сегмента или особого случая использования страницы, при этом в ячейку 144 записываются нули. Запись в это поле может производиться только тогда, когда в старом PSW программных прерываний задан режим EC.
Подобные документы
Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.
курсовая работа [266,9 K], добавлен 24.12.2013Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.
курсовая работа [719,3 K], добавлен 12.09.2015Сущность и роль бухгалтерской отчетности. Характеристика хозяйственных операции и системы обработки данных в первичные учетные документы. Особенности логической структуры реляционной базы данных. Описание методов работы с информационной системой.
курсовая работа [1,1 M], добавлен 26.04.2015Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.
реферат [35,2 K], добавлен 13.11.2009Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.
курсовая работа [78,9 K], добавлен 09.09.2014Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.
курсовая работа [125,2 K], добавлен 24.09.2010Периоды применения средств вычислительной техники. Переход к новому поколению электронно-вычислительных машин. Системы, основанные на знаниях. Экспертные системы и искусственный интеллект. Этапы обработки данных на ЭВМ. Иерархическая структура знания.
презентация [170,6 K], добавлен 14.08.2013Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.
реферат [1,1 M], добавлен 06.01.2011Понятие машинной команды как закодированного по определенным правилам указания микропроцессору на выполнение некоторой операции или действия. Элементы машинных команд (код операции, операнд) и их виды (передачи данных, управления, арифметико-логические).
презентация [120,6 K], добавлен 14.10.2013Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.
контрольная работа [18,0 K], добавлен 05.07.2014