Принципы работы системы IBM/370
Описание логической структуры вычислительных машин Системы 370. Особенности мультипроцессирования. Команды общего назначения и управления системой, обработки десятичных данных и команды с плавающей точкой. Средства обработки машинных ошибок (коррекция).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | русский |
Дата добавления | 12.06.2014 |
Размер файла | 658,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Если указанное внешнее устройство выдает сигнал КОНЕЦ РАБОТЫ КАНАЛА, относящийся к последней операции в цепочке IPL, и при работе не обнаружено никаких особых случаев, то из ячеек 0-7 выбирается новое PSW. Если это PSW задает режим BC, то адрес внешнего устройства, с которого происходила загрузка, записывается в память в ячейки 2-3; если же в PSW задан режим EC, адрес внешнего устройства записывается в ячейки 186-187, а в ячейку 185 записываются нули. Лампочка загрузки гаснет, и процессор продолжает работу под управлением нового PSW.
Если при работе IPL сигнал КОНЕЦ РАБОТЫ КАНАЛА приходит отдельно или одновременно с сигналом КОНЕЦ РАБОТЫ УСТРОЙСТВА, то никаких условий прерывания ввода-вывода не возникает. Аналогично все флажки программно-управляемого прерывания, которые могут быть заданы в командах канала (CCW), используемых в процедуре IPL, игнорируются. Если же сигнал КОНЕЦ РАБОТЫ УСТРОЙСТВА, относящийся к IPL, приходит отдельно после сигнала КОНЕЦ РАБОТЫ КАНАЛА, то он вызывает формирование условия прерывания ввода-вывода.
Если не происходит нормального завершения операции ввода-вывода, относящейся к IPL или загрузки PSW, то процессор не запускается и лампочка продолжает гореть. Это случается, когда внешнее устройство, выбранное для загрузки, выключено, либо когда внешнее устройство или канал в процессе выполнения или же при завершении операции ввода-вывода, относящейся к IPL, посылает сигнал, отличный от сигналов КОНЕЦ РАБОТЫ КАНАЛА, КОНЕЦ РАБОТЫ УСТРОЙСТВА и МОДИФИКАТОР СОСТОЯНИЯ, либо когда PSW, загружаемое из ячейки 0, имеет неправильный формат, что обнаруживается во время процедуры загрузки. В таких случаях адрес внешнего устройства, используемого при работе IPL, в память не записывается. Содержимое ячеек 0-7 не определено, а содержимое остальных ячеек основной памяти не изменяется. Если в двойное слово с адресом 0 прочитано меньше 8 байтов, то PSW, выбираемое из ячейки 0 при окончании операции IPL, непредсказуемо.
Замечания по программированию
Информация, переданная в ячейки 8-15 и 16-23, может быть использована в качестве управляющих слов канала для чтения дополнительной информации во время процедуры IPL. Например, CCW, расположенное по адресу 8, может задавать чтение дополнительных CCW еще в какое-нибудь место основной памяти, а CCW по адресу 16 может вызвать переход в канале к этим дополнительным CCW.
Сигнал МОДИФИКАТОР СОСТОЯНИЯ действует во время IPL обычным образом, заставляя канал выбрать и использовать в качестве следующего CCW в цепочке управляющее слово, адрес которого в основной памяти на 16 больше адреса текущего CCW. Это относится и к первоначальному использованию цепочки команд после того, как будет завершена операция чтения, заданная неявным CCW.
PSW, загружаемое при завершении процедуры IPL, может быть образовано первыми 8 байтами, полученными в операции ввода-вывода, или прочитано в ячейки 0-7 с помощью какой-нибудь последующей CCW.
Операция ввода-вывода, относящаяся к IPL, неявно задает использование первым 24 байтов основной памяти. Поскольку остальная часть программы, загружаемая с помощью IPL, может быть помещена в любое место, имеется возможность сохранения содержимого таких областей памяти в качестве областей старых и новых PSW, а также области аппаратной регистрации, с тем, чтобы использовать их для анализа и восстановления.
Если PSW, находящееся в ячейке 0, содержит единицу в бите 14, то процессор после завершения процедуры IPL переходит в состояние “ожидание”. При этом лампочка ручной работы будет выключена, а лампочка ожидания включена.
Глава 5. Динамическое преобразование адресов
Динамическое преобразование адресов, или динамическая переадресация, дает возможность прерывать выполнение программы в любой момент времени, записывать программу и относящиеся к ней данные на внешний носитель, например на запоминающее устройство прямого доступа, а спустя некоторое время восстанавливать программу и ее данные в другой области основной памяти с тем, чтобы продолжить ее выполнение. Между основной и внешней памятью программа и ее данные могут передаваться по частям и восстанавливаться в тот момент, когда эти части требуются для выполнения и процессор пытается осуществить доступ к ним. При этом нет необходимости изменять или проверять саму программу или ее данные; программист не должен соблюдать какие-либо особые соглашения, касающиеся переместимости программ, ход же выполнения программы не нарушается, если не считать некоторого его замедления.
Динамическому преобразованию подвергаются так называемые логические адреса, т. е. адреса, которые полностью определены кодом программы и могут быть учтены при ее выполнении. При обращении к памяти логические адреса с помощью таблиц переадресации динамически преобразуются в реальные. Адреса образуют группы, называемые страницами. Адреса, относящиеся к одной странице, подвергаются одному и тому же численному преобразованию.
Динамическая переадресация в сочетании с соответствующим программным обеспечением в рамках операционной системы может быть использована для имитации основной памяти, большей, чем фактическая основная память данной вычислительной установки. Эта мнимая основная память называется виртуальной памятью, а логические адреса, которые используются как адреса областей в виртуальной памяти, называются виртуальными адресами. Виртуальная память, в которой хранится информация пользователя, может значительно превосходить по размеру реальную основную память вычислительной установки и обычно помещается на внешнем носителе. В каждый момент времени в реальной памяти могут находиться только те страницы, к которым недавно выполнялось обращение. В том случае, когда пользователь обращается к страницам своей виртуальной памяти, не находящимся в реальной основной памяти, последние заносятся в эту основную память, замещая те страницы, в которых предположительно ощущается меньшая потребность. Операционная система выполняет такой обмен страницами без ведома пользователя.
При обновлении содержимого основной памяти новой информацией с внешнего носителя приходится решать, содержимое какой области следует заменить и нужно ли это содержимое записывать и сохранять на внешнем носителе. Это решение принимается на основе анализа бита обращения и бита изменения, которые добавлены к ключу защиты памяти.
Динамически преобразуются адреса команд и данных, порождаемые процессором, однако к адресам данных и управляющих слов в операциях ввода-вывода динамическая переадресация не применяется. Чтобы упростить выполнение операций ввода-вывода при использовании виртуальной памяти, предусмотрена возможность косвенной адресации данных в канале.
Динамическая переадресация предполагает, что в процессоре предусмотрен режим расширенного управления (EC), в частности, выполнение динамической переадресации находится в зависимости от значения бита 5 в PSW для режима EC.
К средствам динамической переадресации также относятся команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА, СБРОСИТЬ БИТ ОБРАЩЕНИЯ и ОЧИСТКА TLB. При этом используются управляющий регистр 1 и биты 8-12 управляющего регистра 0.
5.1 Структура логического адреса
Переадресация основана на представлении адресов, используемых программой, в виде логических адресов. Когда динамическая переадресация действует, при обращении к памяти логический адрес преобразуется в соответствующий реальный, определяющий область реальной памяти. Если процессор не оборудован средствами динамической переадресации или эти средства не действуют, реальные адреса совпадают с соответствующими логическими адресами.
В процессе динамического преобразования адресов различают блоки информации двух видов: сегменты и страницы. Сегмент - это блок последовательных логических адресов, охватывающих 65 536 байтов (64 Кб) или 1 048 576 байтов (1 Мб), начальный адрес которого кратен его размеру. Размер сегмента зависит от значений битов 11 и 12 управляющего регистра 0. Страница - это непрерывная область памяти размером 2048 байтов (2 Кб) или 4096 байтов (4 Кб), начальный адрес которой кратен ее размеру. Размер страницы зависит от значений битов 8 и 9 управляющего регистра 0.
Логический адрес подразделяется на поле индекса сегмента, поле индекса страницы и поле индекса байтов. Размеры этих полей зависят от размеров сегмента и страницы.
Поле индекса сегмента начинается с бита 8 логического адреса и распространяется до бита 15 включительно при 64 Кб сегменте и до бита 11 при 1 Мб сегменте. Поле индекса страницы начинается с бита, следующего за последним битом индекса сегмента, и распространяется до бита 19 при 4 Кб странице и до бита 20 при 2 Кб странице. Индекс байтов включает в себя последние 11 или 12 младших битов логического адреса.
Логический адрес имеет следующие форматы:
??? 64 ?? ???????? ? 4 ?? ????????
+-------------------------------------------------------------+
¦ //////// ¦ ?????? ???????? ¦ ?????? ???????? ¦ ?????? ????? ¦
+-------------------------------------------------------------+
0 7 8 15 16 19 20 31
??? 64 ?? ???????? ? 2 ?? ????????
+-------------------------------------------------------------+
¦ //////// ¦ ?????? ???????? ¦ ?????? ???????? ¦ ?????? ????? ¦
+-------------------------------------------------------------+
0 7 8 15 16 20 21 31
??? 1 ?? ???????? ? 4 ?? ????????
+-------------------------------------------------------------+
¦ //////// ¦ ?????? ???????? ¦ ?????? ???????? ¦ ?????? ????? ¦
+-------------------------------------------------------------+
0 7 8 11 12 19 20 31
??? 1 ?? ???????? ? 2 ?? ????????
+-------------------------------------------------------------+
¦ //////// ¦ ?????? ???????? ¦ ?????? ???????? ¦ ?????? ????? ¦
+-------------------------------------------------------------+
0 7 8 11 12 20 21 31
Логические адреса преобразуются в реальные с помощью двух таблиц переадресации: таблицы сегментов и таблицы страниц, которые отражают текущее распределение реальной памяти. Реальная память распределяется страницами. В пределах страницы байтам присваивается непрерывная последовательность логических адресов. Страницы в реальной памяти могут не примыкать друг к другу, даже если они имеют последовательные логические адреса.
5.2 Управление
Управление динамической переадресацией осуществляется посредством одного из битов PSW и ряда битов управляющих регистров 0 и 1. Дополнительные возможности управления обеспечиваются таблицами переадресации.
Слово состояния программы
Если процессор оснащен средствами динамической переадресации, он может выполнять операции в двух режимах - с переадресацией и без нее - в зависимости от значения бита 5, называемого битом режима переадресации, PSW режима расширенного управления. Если бит 5 установлен в единицу, то переадресация выполняется; если - в нуль, то неявное динамическое преобразование адресов не производится и логические адреса воспринимаются как реальные.
Управляющий регистр 0
Размер страницы и сегмента зависит от содержимого 4 битов управляющего регистра 0:
-----------------------------
¦ ?????? ¦ 0 ¦ ?????? ¦
¦ ???????? ¦ ¦ ???????? ¦
-----------------------------
8 9 10 11 12
Значение этих битов определяется следующим образом.
Размер страницы (PS). Содержимое битов 8 и 9 управляющего регистра 0 задает размер страницы:
Содержимое битов 8 и 9 управляющего регистра 0 |
Размер страницы, байт |
|
01 |
2048 (2 Кб) |
|
10 |
4096 (4 Кб) |
Если содержимое битов 8 и 9 отличается от 01 и 10 (в двоичном коде), то в ходе выполнения команды, вызывающей динамическое преобразование адреса, распознается особый случай спецификации переадресации и операция подавляется. В исходном состоянии биты 8 и 9 устанавливаются в 0.
Размер сегмента (SS). Содержимое битов 11 и 12 задает размер сегмента:
Содержимое битов 11 и 12 управляющего регистра 0 |
Размер сегмента, байт |
|
00 |
65 536 (64 Кб) |
|
10 |
1 048 576 (1 Мб) |
Если бит 12 установлен в единицу, то при выполнении команды, вызывающей динамическое преобразование адресов, распознается особый случай спецификации переадресации и операция подавляется. В исходном состоянии биты 11 и 12 устанавливаются в нуль.
При выполнении команды, вызывающей динамическую переадресацию, бит 10 управляющего регистра 0 должен быть установлен в нуль, в противном случае распознается особый случай спецификации переадресации и операция подавляется. Если процессор не оборудован средствами динамической переадресации, то содержимое этого бита не проверяется.
Управляющий регистр 1
Содержимое битов 0-25 управляющего регистра 1 задает начало и длину таблицы сегментов:
+-------------------------------------------+
¦ ????? ¦ ????? ??????? ????????? ¦ ¦
+-------------------------------------------+
0 7 8 25 26 31
Поля регистра используются следующим образом:
Длина таблицы сегментов: содержимое битов 0-7 управляющего регистра 1 определяет длину таблицы сегментов в блоках по 64 байта каждый. Следовательно, размер таблицы сегментов может изменяться на целое число, кратное суммарной длине 16 строк такой таблицы. Длина таблицы сегментов в блоках по 64 байта в каждом равна увеличенному на 1 двоичному содержимому битов 0-7. Индекс сегмента служит для выбора строки таблицы сегментов, а содержимое поля длины позволяет проверить, указывает ли индекс сегмента на строку, находящуюся в пределах заданной таблицы сегментов.
Адрес таблицы сегментов: если к содержимому битов 8-25 управляющего регистра 1 приписать справа шесть нулей, то получится 24-битовый реальный адрес начала таблицы сегментов.
Замечания по программированию
Во время загрузки управляющих регистров корректность загружаемой информации, относящейся, в частности, к динамической переадресации, не проверяется. Эта информация проверяется во время ее использования и, если обнаруживается особый случай, производится индикация.
Считается, что информация, относящаяся к динамическому преобразованию адресов, используется при выполнении команды в режиме переадресации или при выполнении команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА. Вместе с тем эта информация не используется при задании в PSW режима переадресации, если перед выполнением команды происходит прерывание ввода-вывода, внешнее прерывание, прерывание повторного пуска или прерывание от схем контроля, а также если PSW задает состояние ожидание.
5.3 Таблицы переадресации
В процессе динамической переадресации используются таблицы переадресации двух видов: таблицы сегментов и таблицы страниц. Эти таблицы находятся в основной памяти.
Строки таблицы сегментов
Строка таблицы сегментов определяет длину, доступность и начало соответствующей таблицы страниц.
Строка таблицы сегментов имеет формат:
+-------------------------------------------------+
¦ ????? ¦ 0000 ¦ ????? ??????? ??????? ¦ 00 ¦ I ¦
+-------------------------------------------------+
0 3 4 7 8 28 29 30 31
Поля строки таблицы сегментов используются следующим образом.
Длина таблицы страниц. Содержимое битов 0-3 задает длину таблицы страницы в единицах, каждая из которых равна 1/16 максимального размера этой таблицы. Максимальный размер зависит от размеров сегмента и страницы. Длина таблицы страниц в единицах, каждая из которых равна длине 1/16 максимального размера, будет на единицу больше двоичного содержимого битов 0-3. Длина поля сравнивается с содержимым четырех старших битов индекса страницы логического адреса, чтобы определить, задает ли индекс страницы строку внутри данной таблицы страниц или нет.
Адрес таблицы страниц. Если к содержимому битов 8-28 приписать справа три нуля. то получится 24-битовый реальный адрес начала таблицы страниц.
Бит доступности сегмента. Бит 31 показывает, доступен ли сегмент, соответствующий данной строке таблицы сегментов. Если бит 31 установлен в нуль, процесс динамического преобразования адреса с использованием заданной таблицы страниц продолжается. Если бит равен единице, то распознается особый случай использования сегмента и данный элемент операции аннулируется.
Использование битов 4-7 и 29-30 строки таблицы сегментов зависит от модели. Если эти биты не равны нулю, то обычно распознается особый случай спецификации переадресации, и данный элемент операции подавляется; однако в некоторых моделях содержимое этих битов игнорируется.
Строки таблицы страниц
Строка таблицы страниц определяет доступность страницы и содержит старшие биты реального адреса. Формат таблицы страниц зависит от размера страницы.
Строка таблицы для 4-Кбайтовых страниц имеет следующий формат:
+-------------------------------+
¦ ????? ???????? ¦ I ¦ 00 ¦ / ¦
+-------------------------------+
0 11 12 13 14 15
Строка таблицы для 2 Кб страниц имеет формат:
+----------------------------+
¦ ????? ???????? ¦ I ¦ 0 ¦ / ¦
+----------------------------+
0 12 13 14 15
Поля строки таблицы страниц используются следующим образом.
Адрес страницы. В зависимости от размера страницы биты 0-11 или 0-12 содержат 12 или 13 левых битов 24-битового реального адреса. Реальный адрес памяти получается объединением индекса байтов логического адреса с адресом страницы, причем адрес страницы рассматривается как старшая часть реального адреса.
Бит доступности страницы. Бит 12 или 13 (в зависимости от размера страницы) показывает, доступна ли страница, соответствующая данной строке таблицы страниц. Если этот бит равен нулю, процесс динамического преобразования адреса с использованием этой строки таблицы продолжается. Если же он равен единице, то распознается особый случай использования страницы и данный элемент операции аннулируется.
Биты строки, расположенные между битом доступности страницы и самым правым битом строки, должны содержать нули; в противном случае при выполнении команды, использующей эту строку таблицы динамического преобразования адресов, распознается особый случай спецификации переадресации и данный элемент операции подавляется.
Замечания по программированию
Код длины таблицы сегментов и таблицы страниц является допустимым, если даже эта длина превышает максимальную длину, которую фактически можно использовать. Например, код длины допустим, если даже конец таблицы (определенный этим кодом) выходит за пределы имеющейся основной памяти или если к части таблицы нельзя адресоваться с помощью логического адреса.
Младший бит строки таблицы страниц не имеет специального назначения и проверка его содержимого на равенство нулю не производится. Таким образом, он может быть использован программой.
5.4 Преобразование адресов
Типы переадресации
Различаются два типа преобразования адресов: явная переадресация и неявная. Явная переадресация выполняется при преобразовании адреса операнда команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА. Преобразование адресов всех команд и адресов операндов, находящихся в основной памяти, для всех других команд называется неявной переадресацией.
Процесс переадресации
Динамическое преобразование адресов выполняется с помощью таблицы сегментов и таблицы страниц, находящихся в основной памяти. Управление динамической переадресацией осуществляется посредством бита режима переадресации в PSW и битов в управляющих регистрах 0 и 1.
??????????? ??????? 1 ?????????? ?????
+-------------------+ +------------------------------+
¦ ¦ ¦ ¦ ¦ ?????? ¦ ?????? ¦ ?????? ¦
¦ ¦ ¦ ¦ ¦ ???????? ¦ ???????? ¦ ????? ¦
+-------------------+ +------------------------------+
¦ +-----------------------------------------+ ¦ ¦
¦ ¦ ? +---------------+ +----------------------+ ¦
+-+--? + +---------------¦ 3 ¦ ? +---------------+ ¦
¦ ¦ +---?¦ ¦ ?--+---+---+-? + +---------------¦ 3 ¦
¦ ¦ +---------------¦ ¦ +---?¦ ¦ ?--+---+--+ ¦
¦ ¦ +---------------+ ¦ +---------------¦ ¦ ¦
¦ ¦ ??????? ?????????* ¦ L---------------- ¦ ¦
¦ ¦ ----------------------------- ??????? ???????* ¦ ¦
¦ ¦ ¦ ¦ ¦
? ? ? +----------------+ ¦ ¦
+-----+ ¦ ¦ ¦ ¦
+-----+ ¦ 3 ¦ 3 ¦ ¦
¦ +-----+----+ +---+---------------------------------¦ ¦
¦ ¦ ¦ ¦ ¦ ¦3 ¦
¦ +----+-------+---¦ ¦ ¦
+------?¦ ? ¦ ? ?-+---------------------------+ ¦ ¦
1 +----------------¦ 2 +-+-----+----+---+
¦ ¦ ¦ +-? ?-+¦ ? ¦
+----------------+ +----------------+
????? ??????? ???????? ?????
????????????? (TLB)
* В основной памяти
1. Информация, которая может включать части логического адреса и адреса таблицы сегментов, используется для поиска в TLB.
2. Если имеется совпадение, адрес из TLB используется для формирования реального адреса.
3. Если совпадения нет, производится выборка строк таблицы из основной памяти для преобразования адреса. Результат вместе с поисковой информацией используется для образования строки в TLB.
Рис. 5.1. Процесс переадресации
Индекс сегмента в логическом адресе применяется для выбора строки таблицы сегментов, длина и адрес начала которой указаны в управляющем регистре 1. Эта строка определяет таблицу страниц, которую следует использовать. Индекс страницы в логическом адресе используется для выборки строки таблицы страниц, ее формат зависит от размера страницы. Эта строка содержит старшие биты реального адреса, соответствующего исходному логическому адресу. Индекс байтов в логическом адресе используется без изменения в качестве младшей части реального адреса.
Чтобы избежать задержки, связанной с обращениями к таблицам переадресации, находящимся в основной памяти, информация, полученная при выборке из этих таблицы, обычно помещается в специальный буфер быстрой переадресации (TLB). Информация, записанная в TLB, может быть использована, если при последующих преобразованиях адресов приходится обращаться к тем же самым строкам.
Процесс переадресации с использованием буфера быстрой переадресации схематически показан на рис. 5.1.
Назначение управляющего регистра 0
При динамической переадресации логический адрес интерпретируется в зависимости от размера сегмента и размера страницы. Размер сегмента и размер страницы определяются содержимым битов 8-12 управляющего регистра 0. Если биты 8-9 или 11-12 содержат недопустимый код или если бит 10 равен единице, то распознается особый случай спецификации переадресации и операция подавляется.
Использование таблицы сегментов
Индекс сегмента в поле логического адреса служит для выбора строки таблицы сегментов, указывающей на таблицу страниц, которую следует использовать для получения реального адреса. Чтобы получить адрес строки таблицы сегментов, к содержимому битов 8-25 управляющего регистра 1 следует приписать справа шесть нулей и сложить значение индекса сегмента с полученным числом таким образом, чтобы младший бит индекса сегмента располагался в позиции, соответствующей биту 29 адреса таблицы сегментов.
В процессе использования таблицы сегментов для переадресации индекс сегмента сравнивается с длиной таблицы сегментов, представленной битами 0-7 управляющего регистра 1. Сравнение выполняется для того, чтобы установить, находится ли адресуемая строка в пределах таблицы. Если сегмент имеет размер 1 Мб, строки для всех адресуемых сегментов находятся в пределах таблицы с минимальной длиной (код длины равен 0). Если сегмент имеет размер 64 Кб, то к содержимому битов 8-11 логического адреса приписываются справа четыре нуля и расширенное таким образом число сравнивается с 8-битовым кодом длины таблицы сегментов. Если содержимое поля длины таблицы сегментов меньше, чем содержимое соответствующих битов логического адреса, то распознается особый случай использования сегмента и данный элемент операции аннулируется.
Если адрес памяти, сформированный для выборки строки таблицы сегментов, выходит за пределы основной памяти, имеющейся на данной вычислительной установке, распознается особый случай адресации и элемент операции подавляется.
Бит 31 строки таблицы сегментов показывает, доступен ли соответствующий сегмент. Этот бит проверяется и, если он равен единице, то распознается особый случай использования сегмента и данный элемент операции аннулируется. Использование битов 4-7 и 29-30 зависит от модели: если эти биты не содержат нулей, то обычно распознается особый случай спецификации переадресации и данный элемент операции подавляется, однако на некоторых моделях значение этих битов игнорируется.
Если в процессе использования таблицы сегментов для переадресации особые случаи не обнаруживаются, строка, полученная в результате выборки из таблицы сегментов, указывает длину и адрес начала соответствующей таблицы страниц.
Использование таблицы страниц
Для выбора строки таблицы страниц используется индекс страницы, являющийся составной частью логического адреса, в сочетании с адресом таблицы страниц, полученным из строки таблицы сегментов. Чтобы получить адрес строки таблицы страниц, к содержимому битов 8-28 строки таблицы сегментов приписываются справа три нуля и производится сложение индекса страницы с полученной величиной. При этом младший бит индекса страницы должен располагаться в позиции, соответствующей биту 30 адреса таблицы страниц.
В процессе использования таблицы страниц для переадресации четыре старших бита индекса страницы сравниваются с кодом длины таблицы страниц, представленными битами 0-3 строки таблицы сегментов. Сравнение выполняется для того, чтобы установить, находится ли адресуемая строка в пределах таблицы. Если величина в поле длины таблицы страниц меньше, чем содержимое четырех старших битов индекса страницы, то распознается особый случай использования страницы и данный элемент операции аннулируется.
Если адрес, сформированный для выборки строки таблицы страниц, указывает за пределы основной памяти вычислительной установки, то распознается особый случай адресации и данный элемент операции подавляется.
Строка, полученная в результате выборки из таблицы страниц, содержит старшие биты реального адреса и показывает, доступна ли страница. Для того чтобы определить, доступна ли соответствующая страница, проверяется бит доступности страницы. Если этот бит равен единице, распознается особый случай использования страницы и данный элемент операции аннулируется. Если в случае 4 Кб страницы один или оба бита 13-14, а в случае 2 Кб страницы бит 14 установлены в единицу, распознается особый случай спецификации переадресации и операция подавляется.
Формирование реального адреса
Если в процессе динамической переадресации особый случай не был обнаружен, реальный адрес получается в результате объединения адреса, полученного из строки таблицы страниц, и индекса байтов логического адреса, причем адрес страницы образует старшую часть реального адреса.
При обращении к основной памяти для выборки строки таблицы сегментов или таблицы страниц защита памяти не действует, т. е. обращение выполняется таким образом, как будто область памяти, содержащая данную строку таблицы переадресации, не защищена по выборке.
Замечания по программированию
Если в процессе динамической переадресации обнаруживается несколько (более одного) особых случаев, при программном прерывании указывается только особый случай, имеющий наивысший приоритет. Приоритеты особых случаев показаны в табл. 6.6.
Преобразуемые адреса
Все адреса, которые явно определяются программой и используются процессором для обращения к основной памяти за командой или операндом, являются логическими адресами и подвергаются динамической переадресации. Логическими являются и адреса, доступные программе в результате прерывания или выполнения команды, равно как и адреса в управляющих регистрах 10 и 11, указывающие начало и конец области, в которой производится регистрация программных событий (PER).
Динамическому преобразованию не подвергаются адреса, явно задающие ключ памяти (адреса операндов в командах УСТАНОВИТЬ КЛЮЧ ПАМЯТИ, ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ и СБРОСИТЬ БИТ ОБРАЩЕНИЯ), а также величины, которые формируются на основе содержимого полей B и D команды, но не используются для обращения к основной памяти. К последним относятся адреса операндов в командах ЗАГРУЗКА АДРЕСА, ОБРАЩЕНИЕ К МОНИТОРУ, а также в командах сдвига и ввода-вывода.
Не подвергаются динамическому преобразованию также адреса, которые неявно используются процессором или каналом при прерываниях и изменении содержимого интервального таймера по адресу 80, а также при динамической переадресации и регистрации, включая адрес области расширенной регистрации по сигналам от схем контроля в управляющем регистре 15. Однако, если программа явно использует эти области для размещения операндов или команд, их адреса подвергаются динамическому преобразованию.
Не подвергаются динамическому преобразованию адреса, которые используются каналом для обращения к данным, командам канала и словам косвенной адресации данных. Не подвергается динамическому преобразованию также адрес области расширенной регистрации ввода-вывода, хранящийся в основной памяти по адресу 172.
Интерпретация адреса памяти в команде ДИАГНОСТИКА зависит от модели.
Если префиксация должна выполняться, то она выполняется после динамической переадресации. Префиксация описана в разделе 7.2. Перечень операций, выполняемых над адресами, включая операции динамического преобразования и префиксации приведена ниже.
Типы адресов
Абсолютный, реальный и логический адреса отличаются преобразованием, которое выполняется над адресом при обращении к памяти.
Абсолютный адрес - это адрес, присвоенный области основной памяти. Абсолютный адрес используется для доступа к памяти, при котором отсутствует какое бы то ни было преобразование адреса.
Реальный адрес идентифицирует область в реальной основной памяти. Когда реальный адрес используется для обращения к основной памяти, он преобразуется в абсолютный адрес посредством префиксации.
Если для доступа к памяти используется логический адрес, он преобразуется посредством динамической переадресации в реальный адрес и затем в абсолютный посредством префиксации.
Классификация адресов
Логические адреса, явно заданные в программе
-- адрес команды в PSW;
-- адрес перехода;
-- адрес операнда в основной памяти;
-- адрес операнда в команде ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА;
-- начальный адрес PER в управляющем регистре 10 и конечный адрес PER в управляющем регистре 11.
Реальные адреса, явно заданные в программе
-- адреса операндов в командах УСТАНОВИТЬ КЛЮЧ ПАМЯТИ, ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ и СБРОСИТЬ БИТ ОБРАЩЕНИЯ;
-- адрес MCEL в управляющем регистре 15;
-- адрес таблицы сегментов в управляющем регистре 1;
-- адрес таблицы страниц в строке таблицы сегментов;
-- адрес страницы в строке таблицы страниц.
Абсолютные адреса, явно заданные в программе
-- значение префикса;
-- адрес CCW в CAW;
-- адрес данных в CCW;
-- адрес CCW в CCW, которая вызывает переход в канале;
-- адрес данных в словах косвенной адресации в канале;
-- адрес IOEL в слове по адресу 172 реальной памяти.
Адреса, которые не используются для обращения к памяти
-- адреса операндов, задающие величину сдвига в командах сдвига;
-- адрес операнда в команде ЗАГРУЗКА АДРЕСА;
-- адрес операнда в команде ОБРАЩЕНИЕ К МОНИТОРУ;
-- адрес второго операнда в команде СИГНАЛ ПРОЦЕССОРУ;
-- адреса внешних устройств в командах ввода-вывода.
Реальные адреса, используемые неявно
-- адреса PSW при прерываниях;
-- адрес, который используется процессором для изменения содержимого интервального таймера по адресу 80 реальной памяти;
-- адрес CAW, CSW и других областей, используемых при прерываниях ввода-вывода или во время выполнения команд ввода-вывода, в том числе команды ЗАПИСАТЬ ИДЕНТИФИКАТОР КАНАЛА.
Абсолютные адреса, используемые неявно
-- адреса, используемые при записи состояния.
Логические адреса, сообщаемые программе
-- адрес, записываемый при прерывании в поле адреса команды в старом PSW;
-- адрес, записываемый при выполнении команды ПЕРЕХОД С ВОЗВРАТОМ;
-- адрес, записываемый в регистр 1 при выполнении команды ПЕРЕКОДИРОВАТЬ И ПРОВЕРИТЬ и команды ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ;
-- адрес, записываемый в ячейку 144 реальной памяти в результате программного прерывания, которые вызвано особым случаем использования страницы или сегмента;
-- адрес, записываемый в ячейку 152 реальной памяти в результате программного прерывания, которое вызвано действием PER.
Реальные адреса, сообщаемые программе
-- динамически преобразованный адрес, формируемый при выполнении команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА;
-- адрес строки таблицы сегментов или страниц, сообщаемый командой ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА.
Абсолютные адреса, сообщаемые программе
-- адрес неисправной области памяти, запоминаемый в ячейке 248 реальной памяти;
-- адрес CCW в CSW.
Взаимосвязь обращений по логическим и реальным адресам
Если динамическая переадресация не действует, то по отношению к этому процессору результаты, записываемые при выполнении команды в память, оказываются завершенными, прежде чем начнется выполнение следующей команды, в частности ее выборка. В описании команды оговорено, как обрабатываются два перекрывающихся операнда в основной памяти.
Если динамическая переадресация действует и таблицы переадресации построены так, что любой байт реальной памяти имеет один и только один логический адрес, обработка перекрывающихся операндов и изменение последующих команд производятся так, как это делается при обращениях по реальным адресам.
При динамической переадресации ячейка реальной основной памяти может иметь несколько логических адресов. Если при обращении к ячейке реальной памяти за командой или операндом используется более чем один адрес, возможны следующие нарушения нормального взаимодействия.
1. Если команда изменяет содержимое ячейки памяти, из которой произведена предварительная выборка последующей команды, а для записи результата и выборки команды служат различные логические адреса, то использование одной и той же ячейки реальной памяти может и не учитываться. Преобразованный логический адрес применяется для предварительной выборки команды только в том случае, если соответствующие строки таблиц динамической переадресации присоединены и доступны. Если произведена предварительная выборка команд, то они интерпретируются только в рамках их выполнения при тех же самых логических адресах, по которым произведена их предварительная выборка. Если произведена предварительная выборка команд, все полученные таким образом копии сбрасываются в случае изменения в данном процессоре режима переадресации, при изменении параметров переадресации в управляющих регистрах 0 и 1 (если динамическая переадресация действует), при временной отмене совмещения операций и при переходе процессора в состояние “работа”.
2. Если в данном элементе операции операнды содержат общую ячейку (операнды перекрываются в реальной памяти) и эта ячейка имеет два различных логических адреса, то использование общей ячейки реальной памяти учитывается не всегда.
Если не учтено, что используется общая область реальной памяти, может оказаться, что к моменту выборки из этой области команды или операнда предшествующая запись в нее еще не завершена. В случае неучтенного перекрытия операндов операция может выполняться не так, как указано в ее описании. Любые изменения ключа памяти завершаются, прежде чем произойдут последующие обращения к соответствующему блоку памяти независимо от того, производится ли это обращение к памяти по логическому или по реальному адресу. Точно так же все предшествующие обращения к блоку памяти оказываются завершенными, прежде чем выполняются изменение или проверка ключа защиты этого блока.
Поскольку рассмотренная взаимосвязь между обращения относится к обращениям со стороны одного процессора, общей ячейке реальной памяти соответствует общая ячейка абсолютной (физической) памяти. Это объясняется тем, что при одном процессоре между реальными и абсолютными адресами имеется взаимно однозначное соответствие и изменение префикса, нарушающее это соответствие, вызывает временную отмену совмещения.
Случаи взаимосвязи при обращениях в память сведены в табл. 5.1.
Таблица 5.1. Взаимосвязи обращений к памяти
Взаимосвязь двух обращений одного процессора по различным адресам |
||||
Адреса ячеек |
Учитывается ли то, что обращения производятся |
|||
обращения в одной команде |
обращения в двух различных командах |
|||
операнд-операнд |
операнд-операнд |
операнд-команда |
||
Реальный X и |
Да |
Да |
Да |
|
Реальный X и |
Не бывает |
Да |
Да |
|
Логический A и |
Да |
Да |
Да |
|
Логический A и |
Нет |
Да |
Нет 1 |
|
Обозначения: реальный X - реальный адрес ячейки X в реальной памяти; логический А - логический адрес А ячейки X в реальной памяти; логический В - логический адрес В ячейки Х в реальной памяти. * Обращения к той же самой реальной ячейке учитываются, если между двумя обращениями производится временная отмена совмещений. |
5.5 Работа с таблицами
Буфер быстрой переадресации
Для повышения производительности процессора механизм динамической переадресации, как правило, реализуется таким образом, что некоторая информация, получаемая из таблиц сегментов и страниц, заносится в специальный буфер, называемый буфером быстрой переадресации (TLB). Процессору приходится обращаться за строкой таблицы в основную память только первый раз. В дальнейшем полученная при первом обращении информация может оставаться записанной в TLB, и все последующие динамические преобразования адреса, которые требуют строк таблиц переадресации из той же самой области основной памяти, могут выполняться с использованием информации, записанной в TLB. Наличие TLB сказывается на процессе динамической переадресации в том, что изменение содержимого строки таблицы, находящейся в основной памяти, не всегда оказывает немедленное влияние на результаты динамической переадресации или же вообще не оказывает никакого влияния.
Размер и структура TLB зависят от модели. Например, TLB может содержать только небольшое количество строк таблицы сегментов, указанной в данный момент управляющим регистром 1, причем каждая строка содержит старшую часть логического адреса и соответствующий реальный адрес; или же TLB может содержать массивы величин, где реальный адрес страницы выбирается на основе начального адреса текущей таблицы сегментов, размера страницы, размера сегмента и старших битов логического адреса. Программа не может явно обращаться к содержимому TLB.
В следующих разделах описаны условия, при которых можно поместить информацию в TLB и использовать ее для динамической переадресации, а также показано, как влияет изменение содержимого таблиц переадресации на процесс динамического преобразования адресов.
В TLB информация сохраняется не во всех случаях, когда это бывает возможным. Более того, информация может быть удалена из TLB не только тогда, когда такое удаление - очистка TLB - является необходимым.
Состояния строк таблиц переадресации
Результат изменения программой содержимого строки таблицы и запись его в TLB зависят от того, является ли эта строка доступной, присоединенной или активной.
Говорят, что строка таблицы доступна, если доступны соответствующий ей сегмент или страницы. Строка таблицы доступна, если бит доступности сегмента или бит доступности страницы данной строки равен нулю. Если в процессе динамической переадресации делается попытка использовать недоступную строку таблицы, то распознается особый случай использования сегмента или страницы.
Говорят, что строка таблицы является присоединенной, если процессор может пытаться воспользоваться содержимым этой строки для неявной переадресации, что зависит от состояния процессора, заданного словом состояния программы, управляющим регистром 1 и содержимым битов 8-12 управляющего регистра 0.
Строка таблицы сегментов является присоединенной, если выполняются следующие условия:
-- текущее PSW задает режим динамической переадресации;
-- данная строка принадлежит таблице, на которую указывает управляющий регистр 1;
-- строка может быть задана логическим адресом с учетом размера сегмента, определяемого управляющим регистром 0.
Считается, что PSW задает режим динамической переадресации, если бит 5 равен единице и задан режим EC независимо от того, вызывает ли содержимое других полей PSW какой-либо особый случай или нет.
Строка таблицы страниц является присоединенной, ели она принадлежит таблице, адрес и длина которой указаны в присоединенной и доступной строке таблицы сегментов или в копии присоединенной строки таблицы сегментов, находящейся в TLB, при этом размер страницы задан управляющим регистром 0.
Активное состояние строки таблицы переадресации означает, что данная строка таблицы может оставаться записанной в TLB.
Строка таблицы становится активной, когда она делается доступной и присоединенной или после очистки TLB, в котором строка таблицы была доступна и присоединена. Строка таблицы перестает быть активной на время очистки TLB. Хотя при очистке TLB все строки становятся неактивными, доступные и присоединенные строки становятся активными после завершения очистки.
Замечания по программированию
Размер сегмента определяет количество строк таблицы сегментов, к которым можно обратиться в процессе динамической переадресации. От размера страницы и размера сегмента зависит возможность выборки строки таблицы страниц и, следовательно, зависит, будет ли строка присоединенной.
Когда строка становится доступной и присоединенной, она активна. Она может оставаться активной, перестав быть доступной и присоединенной. Например, присоединенная строка таблицы остается активной, хотя бит доступности устанавливается в нуль; доступная строка таблицы остается активной и тогда, когда она перестает быть присоединенной.
Использование буфера быстрой переадресации
Строка таблицы сегментов или строка таблицы страниц может быть помещена в TLB, если только эта строка присоединена и ее бит доступности равен нулю. Строка может быть помещена в TLB, как только она станет присоединенной и доступной.
Копия строки таблицы сегментов в TLB может использоваться при неявной динамической переадресации только в том случае, когда при формировании этой строки TLB была использована информация, полученная в результате выборки из памяти присоединенной и доступной строки таблицы сегментов, и только тогда, когда выбор этой ячейки реальной основной памяти как строки таблицы производится в ходе динамической переадресации, причем эта строка таблицы присоединена в момент выборки.
Копия строки таблицы страниц в TLB может использоваться при неявной динамической переадресации только в том случае, если 1) при формировании этой строки TLB была использована информация, полученная в результате выборки из памяти присоединенной и доступной строки таблицы страниц; 2) выборка этой ячейки реальной основной памяти как строки таблицы страниц производится в ходе динамической переадресации, причем эта строка таблицы присоединена в момент выборки; и 3) размер страницы во время формирования этой копии TLB был равен текущему размеру страницы.
При преобразовании адреса операнда в команде ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА TLB не используется. В этом случае преобразование выполняется с использованием таблиц, находящихся в основной памяти.
Полная очистка TLB происходит только при выполнении команд ОЧИСТКА TLB и УСТАНОВИТЬ ПРЕФИКС, а также при сбросе процессора.
Замечания по программированию
Если в режиме EC не задан режим динамической переадресации, то ни одна строка таблиц переадресации не может попасть в TLB, так как в этом случае строки этих таблиц не будут присоединенными. В частности, преобразование адреса операнда команды ЗАГРУЗКА РЕАЛЬНОГО АДРЕСА в случае подавления режима динамической переадресации не вызывает копирования строк таблицы в TLB.
Наоборот, если задан режим динамической переадресации, в TLB может быть помещена информация из любых строк таблиц переадресации, которые могли бы быть использованы для преобразования адресов при текущих значениях размера страницы, размера сегмента, адреса и длины таблицы сегментов. Загрузка TLB не зависит от того, используется ли данная строка для переадресации при выполнении текущей команды, причем загрузка может иметь место и в том случае, когда задано состояние ожидания. Точно так же в TLB может попасть информация из строк таблицы сегментов или таблицы страниц, имеющая неправильный формат.
В TLB может храниться более одной копии строки таблицы страницы. Например, в некоторых реализациях TLB в него заносится копия доступной строки таблицы для каждого адреса таблицы сегментов, по которому эта строка становится присоединенной. В то же время в других реализациях TLB доступная строка таблицы страниц попадает в TLB для каждой присоединенной и доступной строки таблицы сегментов, которая указывает на данную строку таблицы страниц.
Модификация таблиц переадресации
Когда неактивная присоединенная и недоступная строка таблицы становится доступной, это изменение состояния сказывается немедленно. Точно так же изменения состояния сказывается немедленно, когда неактивная неприсоединенная и доступная строка таблицы страниц становится присоединенной вследствие того, что неактивная присоединенная и недоступная строка таблицы сегментов становится доступной.
Однако индикация особого случая использования сегмента или страницы может производиться в соответствии с состояниями строк таблицы в начале выполнения команды, так как наличие особых случаев, связанных с динамической переадресацией, может быть установлено путем предварительного тестирования доступности операндов, которое выполняется при инициировании выполнения команды. Следовательно, если в начале выполнения команды строка таблицы недоступна, то может произойти индикация особого случая использования сегмента или страницы даже в том случае, когда команда делает доступной используемую ею строку таблицы и эта строка доступна при побайтовой обработке операндов. Распознавание особых случаев при динамической переадресации в ходе выполнения прерываемых команд рассмотрено в разделе “Распознавание особых случаев доступа” главы 6.
Изменение, внесенное в активную строку таблицы, может воздействовать на результат неявной переадресации в любой момент после внесения изменения до завершения последующей очистки TLB.
Если активная строка таблицы изменяется и затем используется при неявной переадресации до того, как TLB очищается, программа не получает никакого извещения о времени начала использования нового значения. Использование нового значения может начаться в период между выполнением команд или во время выполнения команды, в частности во время выполнения команды, которая произвела это изменение. Более того, использование старого значения или значений строки в обязательном порядке прекращается только после очистки TLB, хотя использование нового значения, возможно, началось раньше.
Если активная строка изменяется так, что новое значение препятствует ее применению для переадресации, например строка становится недоступной или имеет неправильный формат, все последующие попытки использовать новое значение этой строки для неявной переадресации до того, как будет выполнена очистка TLB, могут привести к непредсказуемым результатам. Если попытка использовать новое значение строки таблицы делается во время выполнения команды, то в результате выполнения также могут быть получены непредсказуемые результаты. Прерывание из-за использования нового значения строки может как произойти, так и не произойти. Если прерывание происходит, программа не получает извещения о том, что операция не подавлена или не аннулирована.
Действия с присоединенными строками таблицы могут вызвать занесение в TLB ложного значения содержимого строки. Так, если изменения производятся порциями, изменение доступной присоединенной строки может вызвать запись в TLB частично измененной строки, и если в процессе изменения вводится промежуточное значение содержимого строки, то недоступная строка может оказаться временно доступной и попасть в TLB. Такое промежуточное значение может быть введено, если изменение производится повторно выполняемой операцией ввода-вывода или его промежуточное значение вводится во время выполнения всего одной команды.
Если команда ЗАГРУЗКА УПРАВЛЕНИЯ изменяет размер сегмента, размер страницы, адрес или длину таблицы сегментов, первоначальное значение содержимого соответствующих полей сохраняет силу на протяжении всей операции.
Связь между состояниями строк таблиц переадресации и их использованием представлена в табл. 5.2.
Таблица 5.2.
Состояния строки таблицы |
Может ли копия строки таблицы находиться в TLB? |
Может ли строка таблицы быть выбрана для переадресации? |
Может ли строка таблицы быть использована для переадресации? |
Может ли быть произведена выборка копии в TLB при неявной переадресации? |
|
Активная, присоединенная доступная |
|
|
|
|
|
Активная, неприсоединенная |
|
|
|
|
|
Неактивная, присоединенная |
|
|
|
|
|
Неактивная, неприсоединенная |
|
|
|
|
|
* В TLB может находиться копия ранее присоединенной доступной страницы. ** Такое состояние не может иметь места. Присоединенная и доступная строка таблицы активна. |
Замечания по программированию
Если команда, например команда ПЕРЕСЫЛКА, изменяет присоединенную строку таблицы, в частности делает эту строку недоступной, а затем использует ее для неявной переадресации, то измененная строка используется без предварительной очистки TLB, вследствие чего могут иметь место индикации особых случаев и непредсказуемый результат.
При всех программных изменениях таблиц переадресации следует учитывать влияние TLB на использование таблиц, находящихся в основной памяти, и возможное влияние промежуточных результатов при изменении порциями. При изменении таблиц переадресации необходимо соблюдать следующие правила:
1. Пока строка используется каким-либо процессором, можно изменять лишь младший бит при условии, что это строка таблицы страниц.
2. Если производится любое изменение строки таблицы помимо изменения самого младшего бита строки, то каждый процессор, в котором данная строка активна, должен выполнить команду ОЧИСТКА TLB после того, как изменение произведено, и до использования этим процессором данной строки при неявном преобразовании адресов.
Подобные документы
Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-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