Основы микропроцессорной техники экзамен

Микропроцессорная система какого типа разрабатывается чаще всего?

  • разработка не требуется, используются готовые системы
  • компьютер
  • микрокомпьютер
  • (Правильный ответ) микроконтроллер

Микропроцессорная система какого типа не обеспечивает управление внешними устройствами?

  • компьютер
  • контроллер
  • (Правильный ответ) все типы обеспечивают управление внешними устройствами
  • микроконтроллер

Какая структура шин адреса и данных обеспечивает большее быстродействие?

  • (Правильный ответ) немультиплексированная
  • быстродействие от структуры не зависит
  • двунаправленная
  • мультиплексированная

Какой тип обмена обеспечивает гарантированную передачу информации любому исполнителю?

  • синхронный и асинхронный
  • ни синхронный, ни асинхронный
  • (Правильный ответ) асинхронный
  • синхронный

Что такое операнд?

  • (Правильный ответ) код данных
  • адрес данных
  • адрес адреса данных
  • адрес команды
  • код команды

Какой метод адресации предполагает размещение операнда внутри выполняемой программы?

  • абсолютная адресация
  • операнд всегда находится внутри программы
  • косвенная адресация
  • (Правильный ответ) непосредственная адресация
  • регистровая адресация

К какой группе относятся команды сдвига кодов?

  • (Правильный ответ) логические команды
  • команды управления процессором
  • арифметические команды
  • команды пересылки
  • команды переходов

Какие команды не формируют выходной операнд?

  • арифметические команды
  • логические команды
  • команды сдвигов
  • команды пересылки
  • (Правильный ответ) команды переходов

Чем ограничена глубина вложений циклов вызова подпрограмм в микроконтроллере?

  • разрядностью счетчика команд
  • (Правильный ответ) глубиной стека
  • объемом памяти программ
  • объемом памяти данных

Сколько раз можно изменить содержимое памяти программ на основе ПЗУ масочного типа?

  • около 1000 раз
  • (Правильный ответ) один раз на стадии изготовления МК
  • одни раз на стадии программирования пользователем
  • неограниченное число раз

Какой параметр выходного сигнала изменяется при широтно-импульсной модуляции?

  • (Правильный ответ) скважность
  • уровень логической «1»
  • уровень логического «0»
  • частота

Какой тип логической функции позволяет реализовать объединение «квазидвунаправленных» выходов микроконтроллера?

  • константа «1«
  • «ИЛИ«
  • сложение по модулю 2
  • (Правильный ответ) «И«

Как зависит ток потребления микроконтроллера от напряжения питания?

  • квадратично
  • не зависит
  • (Правильный ответ) приблизительно линейно
  • обратно пропорционально

Где хранятся биты признаков результата операций микроконтроллеров подгруппы PIC16F8Х?

  • в регистре таймера/счетчика
  • в регистре OPTION
  • в регистре INTCON
  • (Правильный ответ) в регистре STATUS

Какова разрядность таймера/счетчика TMR0 микроконтроллеров подгруппы PIC16F8Х?

  • (Правильный ответ) 8
  • 14
  • 16
  • 4

Что дает двухступенчатый конвейер исполнения команд в PIC-микроконтроллерах?

  • возможность удвоения тактовой частоты
  • возможность динамического предсказания переходов
  • возможность параллельного исполнения двух команд
  • (Правильный ответ) возможность одновременной выборки и исполнения команд

Где хранится указатель адреса при косвенной адресации данных в микроконтроллерах подгруппы PIC16F8Х?

  • в регистре STATUS
  • в регистре PCLATH
  • (Правильный ответ) в регистре FSR
  • недоступен пользователю

Какой бит определяет режим работы таймера/счетчика микроконтроллеров подгруппы PIC16F8Х?

  • бит TO регистра STATUS
  • бит T0IE регистра INTCON
  • бит PSA регистра OPTION
  • (Правильный ответ) бит T0CS регистра OPTION

Какой бит определяет режим использования предделителя микроконтроллеров подгруппы PIC16F8Х?

  • (Правильный ответ) бит PSA регистра OPTION
  • бит TO регистра STATUS
  • бит T0CS регистра OPTION
  • бит T0IE регистра INTCON

Где хранится информация о содержимом пределителя микроконтроллеров подгруппы PIC16F8Х?

  • в регистре OPTION
  • (Правильный ответ) недоступна
  • в регистре TMR0
  • в регистре FSR

Где хранятся биты конфигурации микроконтроллеров подгруппы PIC16F8Х?

  • в регистре EEDATA
  • в регистре OPTION
  • в регистре INTCON
  • (Правильный ответ) в энергонезависимой памяти данных

Какие команды микроконтроллеров подгруппы PIC16F8Х используются для организации условных переходов в программе?

  • команды RETFIE и RETLW k
  • команды CALL k и GOTO k
  • (Правильный ответ) команды DECFSZ f, d, INCFSZ f, d, BTFSC f, b и BTFSS f, b
  • любая команда

Какие команды микроконтроллеров подгруппы PIC16F8Х могут изменить все биты состояния?

  • (Правильный ответ) команды ADDWF f, d , SUBWF f, d , ADDLW k и SUBLW k
  • любая команда
  • команды ANDWF f, d и IORWF f, d
  • команды CALL k и SLEEP

Что такое «виртуальное» периферийное устройство МК?

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

Что такое «текстовая строка» в ассемблере MPASM?

  • (Правильный ответ) последовательность любых допустимых ASCII символов, заключенная в двойные кавычки и длиной до 132 колонок
  • последовательность любых допустимых ASCII символов, заключенная между точками с запятой, длиной до 132 колонок
  • последовательность любых допустимых ASCII символов, заключенная между тире, длиной в пределах 80 колонок
  • последовательность любых допустимых ASCII символов, заключенная в двойные кавычки, длиной в пределах 80 колонок

К какой шине персонального компьютера подключается больше всего устройств?

  • (Правильный ответ) к системной шине
  • к шине памяти
  • к локальной шине
  • к шине AGP
  • к каждой шине подключается по одному устройству

Какая функция не выполняется программой из ROM BIOS?

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

Какой сигнал используется для организации асинхронного обмена по магистрали ISA?

  • I/O CS16
  • SBHE
  • AEN
  • I/O CH CK
  • (Правильный ответ) I/O CH RDY

Выберите неверное утверждение:

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

Какое значение сигнала считывается при вводе данных с порта микроконтроллера?

  • содержимое триггера регистра управления
  • логическое «И» над содержимым триггера данных и значением сигнала на внешнем выводе МК
  • (Правильный ответ) значение сигнала на внешнем выводе МК
  • содержимое триггера данных

В какое состояние переходят порты ввода/вывода PIC-микроконтроллеров по умолчанию (после сброса)?

  • в состояние вывода логического «0»
  • в состояние вывода логической «1»
  • в третье (высокоимпедансное) состояние
  • (Правильный ответ) в состояние ввода

Какой режим обмена используется чаще всего?

  • (Правильный ответ) программный обмен
  • обмен по прямому доступу к памяти
  • обмен по прерываниям
  • все режимы используются одинаково часто

Какие действия выполняет команда CLRWDT системы команд микроконтроллеров подгруппы PIC16F8Х?

  • сбрасывает контроллер
  • сбрасывает в 0 содержимое сторожевого таймера
  • (Правильный ответ) сбрасывает в 0 содержимое сторожевого таймера и пределителя (если он используется)
  • сбрасывает в 0 содержимое счетчика команд

Что входит в транзакцию на шине PCI?

  • одна или несколько фаз пересылки данных
  • фаза адреса
  • запрос и предоставление прерывания
  • полный процесс автоконфигурации
  • (Правильный ответ) фаза адреса и несколько фаз пересылки данных

Как компьютер узнает об отсутствии бумаги в принтере при использовании Centronics?

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

Какой тип обмена используется в системной магистрали ISA?

  • асинхронный
  • мультиплексированный
  • синхронный
  • (Правильный ответ) синхронный с возможностью асинхронного обмена

Что определяет директива EQU ассемблера MPASM?

  • (Правильный ответ) ассемблерную константу
  • равенство переменных
  • начальный адрес программы
  • метку замены текста

Что устанавливается на системной плате компьютера?

  • системная память и контроллер дисплея
  • слоты всех шин и внешние разъемы компьютера
  • (Правильный ответ) основные узлы компьютера и слоты расширения
  • процессор и некоторые контроллеры
  • контроллер дисплея и контроллер локальной сети

Какой основной недостаток у памяти DRAM?

  • большой ток потребления
  • (Правильный ответ) невысокое быстродействие
  • высокая цена
  • малый объем памяти на одну микросхему
  • память DRAM — наилучшая по всем параметрам

Что слабее других влияет на процесс обмена сигналами по магистрали?

  • нельзя сказать однозначно
  • радиальное прерывание
  • прямой доступ к памяти
  • (Правильный ответ) векторное прерывание

К какой группе команд относятся команды работы со стеком?

  • арифметические команды
  • (Правильный ответ) команды пересылки
  • к отдельной группе
  • команды переходов
  • логические команды

АЦП какого типа чаще всего используют в составе микроконтроллера?

  • (Правильный ответ) последовательного приближения
  • на основе преобразователей напряжение-частота
  • параллельные
  • интегрирующие

46

Основные определения:

Электронная
система

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

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

Быстродействие —
это показатель скорости выполнения
электронной системой ее функций.

Гибкость — это
способность системы подстраиваться
под различные задачи.

Избыточность —
это показатель степени соответствия
возможностей системы решаемой данной
системой задаче.

Интерфейс —
соглашение об обмене информацией,
правила обмена информацией, подразумевающие
электрическую, логическую и конструктивную
совместимость устройств, участвующих
в обмене. Другое название — сопряжение.

Микропроцессорная
система может рассматриваться как
частный случай электронной системы,
предназначенной для обработки входных
сигналов и выдачи выходных сигналов
(рис. 1.1). В качестве входных и выходных
сигналов при этом могут использоваться
аналоговые сигналы, одиночные цифровые
сигналы, цифровые коды, последовательности
цифровых кодов. Внутри системы может
производиться хранение, накопление
сигналов (или информации), но суть от
этого не меняется. Если система цифровая
(а микропроцессорные системы относятся
к разряду цифровых), то входные аналоговые
сигналы преобразуются в последовательности
кодов выборок с помощью АЦП, а выходные
аналоговые сигналы формируются из
последовательности кодов выборок с
помощью ЦАП. Обработка и хранение
информации производятся в цифровом
виде.

Характерная
особенность традиционной цифровой
системы состоит в том, что алгоритмы
обработки и хранения информации в ней
жестко связаны со схемотехникой системы.
То есть изменение этих алгоритмов
возможно только путем изменения структуры
системы, замены электронных узлов,
входящих в систему, и/или связей между
ними. Например, если нам нужна дополнительная
операция суммирования, то необходимо
добавить в структуру системы лишний
сумматор. Или если нужна дополнительная
функция хранения кода в течение одного
такта, то мы должны добавить в структуру
еще один регистр. Естественно, это
практически невозможно сделать в
процессе эксплуатации, обязательно
нужен новый производственный цикл
проектирования, изготовления, отладки
всей системы. Именно поэтому традиционная
цифровая система часто называется
системой на «жесткой логике».

Рис. 1.1. Электронная
система.

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

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

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

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

Путь преодоления
этого недостатка довольно очевиден:
надо построить такую систему, которая
могла бы легко адаптироваться под любую
задачу, перестраиваться с одного
алгоритма работы на другой без изменения
аппаратуры. И задавать тот или иной
алгоритм мы тогда могли бы путем ввода
в систему некой дополнительной управляющей
информации, программы работы системы
(рис. 1.2). Тогда система станет универсальной,
или программируемой, не жесткой, а
гибкой. Именно это и обеспечивает
микропроцессорная система.

Рис. 1.2. Программируемая
(она же универсальная) электронная
система.

Но любая
универсальность обязательно приводит
к избыточности. Ведь решение максимально
трудной задачи требует гораздо больше
средств, чем решение максимально простой
задачи. Поэтому сложность универсальной
системы должна быть такой, чтобы
обеспечивать решение самой трудной
задачи, а при решении простой задачи
система будет работать далеко не в
полную силу, будет использовать не все
свои ресурсы. И чем проще решаемая
задача, тем больше избыточность, и тем
менее оправданной становится
универсальность. Избыточность ведет к
увеличению стоимости системы, снижению
ее надежности, увеличению потребляемой
мощности и т.д.

Кроме того,
универсальность, как правило, приводит
к существенному снижению быстродействия.
Оптимизировать универсальную систему
так, чтобы каждая новая задача решалась
максимально быстро, попросту невозможно.
Общее правило таково: чем больше
универсальность, гибкость, тем меньше
быстродействие. Более того, для
универсальных систем не существует
таких задач (пусть даже и самых простых),
которые бы они решали с максимально
возможным быстродействием. За все
приходится платить.

Таким образом,
можно сделать следующий вывод. Системы
на «жесткой логике» хороши там, где
решаемая задача не меняется длительное
время, где требуется самое высокое
быстродействие, где алгоритмы обработки
информации предельно просты. А
универсальные, программируемые системы
хороши там, где часто меняются решаемые
задачи, где высокое быстродействие не
слишком важно, где алгоритмы обработки
информации сложные. То есть любая система
хороша на своем месте.

Однако за последние
десятилетия быстродействие универсальных
(микропроцессорных) систем сильно
выросло (на несколько порядков). К тому
же большой объем выпуска микросхем для
этих систем привел к резкому снижению
их стоимости. В результате область
применения систем на «жесткой логике»
резко сузилась. Более того, высокими
темпами развиваются сейчас программируемые
системы, предназначенные для решения
одной задачи или нескольких близких
задач. Они удачно совмещают в себе как
достоинства систем на «жесткой логике»,
так и программируемых систем, обеспечивая
сочетание достаточно высокого
быстродействия и необходимой гибкости.
Так что вытеснение «жесткой логики»
продолжается.

1.1. Что такое
микропроцессор?

Ядром любой
микропроцессорной системы является
микропроцессор или просто процессор
(от английского processor). Перевести на
русский язык это слово правильнее всего
как «обработчик», так как именно
микропроцессор — это тот узел, блок,
который производит всю обработку
информации внутри микропроцессорной
системы. Остальные узлы выполняют всего
лишь вспомогательные функции: хранение
информации (в том числе и управляющей
информации, то есть программы), связи с
внешними устройствами, связи с
пользователем и т.д. Процессор заменяет
практически всю «жесткую логику»,
которая понадобилась бы в случае
традиционной цифровой системы. Он
выполняет арифметические функции
(сложение, умножение и т.д.), логические
функции (сдвиг, сравнение, маскирование
кодов и т.д.), временное хранение кодов
(во внутренних регистрах), пересылку
кодов между узлами микропроцессорной
системы и многое другое. Количество
таких элементарных операций, выполняемых
процессором, может достигать нескольких
сотен. Процессор можно сравнить с мозгом
системы.

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

Рис. 1.3. Информационные
потоки в микропроцессорной системе.

Итак, микропроцессор
способен выполнять множество операций.
Но откуда он узнает, какую операцию ему
надо выполнять в данный момент? Именно
это определяется управляющей информацией,
программой. Программа представляет
собой набор команд (инструкций), то есть
цифровых кодов, расшифровав которые,
процессор узнает, что ему надо делать.
Программа от начала и до конца составляется
человеком, программистом, а процессор
выступает в роли послушного исполнителя
этой программы, никакой инициативы он
не проявляет (если, конечно, исправен).
Поэтому сравнение процессора с мозгом
не слишком корректно. Он всего лишь
исполнитель того алгоритма, который
заранее составил для него человек. Любое
отклонение от этого алгоритма может
быть вызвано только неисправностью
процессора или каких-нибудь других
узлов микропроцессорной системы.

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

Для выполнения
команд в структуру процессора входят
внутренние регистры, арифметико-логическое
устройство (АЛУ, ALU — Arithmetic Logic Unit) ,
мультиплексоры, буферы, регистры и
другие узлы. Работа всех узлов
синхронизируется общим внешним тактовым
сигналом процессора. То есть процессор
представляет собой довольно сложное
цифровое устройство (рис. 1.4).

Рис. 1.4. Пример
структуры простейшего процессора.

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

1.2. Шинная структура
связей

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

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

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

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

Рис. 1.6. Шинная
структура связей.

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

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

Типичная структура
микропроцессорной системы приведена
на рис. 1.10. Она включает в себя три
основных типа устройств:

процессор;

память, включающую
оперативную память (ОЗУ, RAM — Random Access
Memory) и постоянную память (ПЗУ, ROM —Read
Only Memory), которая служит для хранения
данных и программ;

устройства
ввода/вывода (УВВ, I/O — Input/Output Devices),
служащие для связи микропроцессорной
системы с внешними устройствами, для
приема (ввода, чтения, Read) входных сигналов
и выдачи (вывода, записи, Write) выходных
сигналов.

Рис. 1.10. Структура
микропроцессорной системы.

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

шина адреса (Address
Bus);

шина данных (Data
Bus);

шина управления
(Control Bus);

шина питания (Power
Bus).

Шина адреса служит
для определения адреса (номера) устройства,
с которым процессор обменивается
информацией в данный момент. Каждому
устройству (кроме процессора), каждой
ячейке памяти в микропроцессорной
системе присваивается собственный
адрес. Когда код какого-то адреса
выставляется процессором на шине адреса,
устройство, которому этот адрес приписан,
понимает, что ему предстоит обмен
информацией. Шина адреса может быть
однонаправленной или двунаправленной.

Шина данных — это
основная шина, которая используется
для передачи информационных кодов между
всеми устройствами микропроцессорной
системы. Обычно в пересылке информации
участвует процессор, который передает
код данных в какое-то устройство или в
ячейку памяти или же принимает код
данных из какого-то устройства или из
ячейки памяти. Но возможна также и
передача информации между устройствами
без участия процессора. Шина данных
всегда двунаправленная.

Шина управления
в отличие от шины адреса и шины данных
состоит из отдельных управляющих
сигналов. Каждый из этих сигналов во
время обмена информацией имеет свою
функцию. Некоторые сигналы служат для
стробирования передаваемых или
принимаемых данных (то есть определяют
моменты времени, когда информационный
код выставлен на шину данных). Другие
управляющие сигналы могут использоваться
для подтверждения приема данных, для
сброса всех устройств в исходное
состояние, для тактирования всех
устройств и т.д. Линии шины управления
могут быть однонаправленными или
двунаправленными.

Наконец, шина
питания предназначена не для пересылки
информационных сигналов, а для питания
системы. Она состоит из линий питания
и общего провода. В микропроцессорной
системе может быть один источник питания
(чаще +5 В) или несколько источников
питания (обычно еще –5 В, +12 В и –12 В).
Каждому напряжению питания соответствует
своя линия связи. Все устройства
подключены к этим линиям параллельно.

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

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

Таким образом, в
микропроцессорной системе все
информационные коды и коды команд
передаются по шинам последовательно,
по очереди. Это определяет сравнительно
невысокое быстродействие микропроцессорной
системы. Оно ограничено обычно даже не
быстродействием процессора (которое
тоже очень важно) и не скоростью обмена
по системной шине (магистрали), а именно
последовательным характером передачи
информации по системной шине (магистрали).

Важно учитывать,
что устройства ввода/вывода чаще всего
представляют собой устройства на
«жесткой логике». На них может быть
возложена часть функций, выполняемых
микропроцессорной системой. Поэтому у
разработчика всегда имеется возможность
перераспределять функции системы между
аппаратной и программной реализациями
оптимальным образом. Аппаратная
реализация ускоряет выполнение функции,
но имеет недостаточную гибкость.
Программная реализация значительно
медленнее, но обеспечивает высокую
гибкость. Аппаратная реализация функций
увеличивает стоимость системы и ее
энергопотребление, программная — не
увеличивает. Чаще всего применяется
комбинирование аппаратных и программных
функций.

Иногда устройства
ввода/вывода имеют в своем составе
процессор, то есть представляют собой
небольшую специализированную
микропроцессорную систему. Это позволяет
переложить часть программных функций
на устройства ввода/вывода, разгрузив
центральный процессор системы.

1.3. Режимы работы
микропроцессорной системы

Как уже отмечалось,
микропроцессорная система обеспечивает
большую гибкость работы, она способна
настраиваться на любую задачу. Гибкость
эта обусловлена прежде всего тем, что
функции, выполняемые системой, определяются
программой (программным обеспечением,
software), которую выполняет процессор.
Аппаратура (аппаратное обеспечение,
hardware) остается неизменной при любой
задаче. Записывая в память системы
программу, можно заставить микропроцессорную
систему выполнять любую задачу,
поддерживаемую данной аппаратурой. К
тому же шинная организация связей
микропроцессорной системы позволяет
довольно легко заменять аппаратные
модули, например, заменять память на
новую большего объема или более высокого
быстродействия, добавлять или
модернизировать устройства ввода/вывода,
наконец, заменять процессор на более
мощный. Это также позволяет увеличить
гибкость системы, продлить ее жизнь при
любом изменении требований к ней.

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

Практически любая
развитая микропроцессорная система (в
том числе и компьютер) поддерживает три
основных режима обмена по магистрали:

программный обмен
информацией;

обмен с использованием
прерываний (Interrupts);

обмен с использованием
прямого доступа к памяти (ПДП, DMA — Direct
Memory Access).

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

Процессор читает
(выбирает) из памяти коды команд и
исполняет их, читая данные из памяти
или из устройства ввода/вывода, обрабатывая
их, записывая данные в память или
передавая их в устройство ввода/вывода.
Путь процессора по программе может быть
линейным, циклическим, может содержать
переходы (прыжки), но он всегда непрерывен
и полностью находится под контролем
процессора. Ни на какие внешние события,
не связанные с программой, процессор
не реагирует (рис. 1.11). Все сигналы на
магистрали в данном случае контролируются
процессором.

Рис. 1.11. Программный
обмен информацией.

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

В общем случае
организовать реакцию на внешнее событие
можно тремя различными путями:

с помощью постоянного
программного контроля факта наступления
события (так называемый метод опроса
флага или polling);

с помощью прерывания,
то есть насильственного перевода
процессора с выполнения текущей программы
на выполнение экстренно необходимой
программы;

с помощью прямого
доступа к памяти, то есть без участия
процессора при его отключении от
системной магистрали.

Проиллюстрировать
эти три способа можно следующим простым
примером. Допустим, вы готовите себе
завтрак, поставив на плиту кипятиться
молоко. Естественно, на закипание молока
надо реагировать, причем срочно. Как
это организовать? Первый путь — постоянно
следить за молоком, но тогда вы ничего
другого не сможете делать. Правильнее
будет регулярно поглядывать на молоко,
делая одновременно что-то другое. Это
программный режим с опросом флага.
Второй путь — установить на кастрюлю
с молоком датчик, который подаст звуковой
сигнал при закипании молока, и спокойно
заниматься другими делами. Услышав
сигнал, вы выключите молоко. Правда,
возможно, вам придется сначала закончить
то, что вы начали делать, так что ваша
реакция будет медленнее, чем в первом
случае. Наконец, третий путь состоит в
том, чтобы соединить датчик на кастрюле
с управлением плитой так, чтобы при
закипании молока горелка была выключена
без вашего участия (правда, аналогия с
ПДП здесь не очень точная, так как в
данном случае на момент выполнения
действия вас не отвлекают от работы).

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

Во втором случае
в режиме прерывания процессор, получив
запрос прерывания от внешнего устройства
(часто называемый IRQ — Interrupt ReQuest),
заканчивает выполнение текущей команды
и переходит к программе обработки
прерывания. Закончив выполнение программы
обработки прерывания, он возвращается
к прерванной программе с той точки, где
его прервали (рис. 1.12).

Здесь важно то,
что вся работа, как и в случае программного
режима, осуществляется самим процессором,
внешнее событие просто временно отвлекает
его. Реакция на внешнее событие по
прерыванию в общем случае медленнее,
чем при программном режиме. Как и в
случае программного обмена, здесь все
сигналы на магистрали выставляются
процессором, то есть он полностью
контролирует магистраль. Для обслуживания
прерываний в систему иногда вводится
специальный модуль контроллера
прерываний, но он в обмене информацией
не участвует. Его задача состоит в том,
чтобы упростить работу процессора с
внешними запросами прерываний. Этот
контроллер обычно программно управляется
процессором по системной магистрали.

Рис. 1.12. Обслуживание
прерывания.

Естественно,
никакого ускорения работы системы
прерывание не дает. Его применение
позволяет только отказаться от постоянного
опроса флага внешнего события и временно,
до наступления внешнего события, занять
процессор выполнением каких-то других
задач.

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

Операция ПДП
сводится к пересылке информации из
устройства ввода/вывода в память или
же из памяти в устройство ввода/вывода.
Когда пересылка информации будет
закончена, процессор вновь возвращается
к прерванной программе, продолжая ее с
той точки, где его прервали (рис. 1.13). Это
похоже на режим обслуживания прерываний,
но в данном случае процессор не участвует
в обмене. Как и в случае прерываний,
реакция на внешнее событие при ПДП
существенно медленнее, чем при программном
режиме.

Понятно, что в этом
случае требуется введение в систему
дополнительного устройства (контроллера
ПДП), которое будет осуществлять
полноценный обмен по системной магистрали
без всякого участия процессора. Причем
процессор предварительно должен сообщить
этому контроллеру ПДП, откуда ему следует
брать информацию и/или куда ее следует
помещать. Контроллер ПДП может считаться
специализированным процессором, который
отличается тем, что сам не участвует в
обмене, не принимает в себя информацию
и не выдает ее (рис. 1.14).

Рис. 1.13. Обслуживание
ПДП.

Рис. 1.14. Информационные
потоки в режиме ПДП.

В принципе контроллер
ПДП может входить в состав устройства
ввода/вывода, которому необходим режим
ПДП или даже в состав нескольких устройств
ввода/вывода. Теоретически обмен с
помощью прямого доступа к памяти может
обеспечить более высокую скорость
передачи информации, чем программный
обмен, так как процессор передает данные
медленнее, чем специализированный
контроллер ПДП. Однако на практике это
преимущество реализуется далеко не
всегда. Скорость обмена в режиме ПДП
обычно ограничена возможностями
магистрали. К тому же необходимость
программного задания режимов контроллера
ПДП может свести на нет выигрыш от более
высокой скорости пересылки данных в
режиме ПДП. Поэтому режим ПДП применяется
редко.

Если в системе уже
имеется самостоятельный контроллер
ПДП, то это может в ряде случаев существенно
упростить аппаратуру устройств
ввода/вывода, работающих в режиме ПДП.
В этом, пожалуй, состоит единственное
бесспорное преимущество режима ПДП.

1.4. Архитектура
микропроцессорных систем

До сих пор мы
рассматривали только один тип архитектуры
микропроцессорных систем — архитектуру
с общей, единой шиной для данных и команд
(одношинную, или принстонскую,
фон-неймановскую архитектуру).
Соответственно, в составе системы в
этом случае присутствует одна общая
память, как для данных, так и для команд
(рис. 1.15).

Рис. 1.15. Архитектура
с общей шиной данных и команд.

Но существует
также и альтернативный тип архитектуры
микропроцессорной системы — это
архитектура с раздельными шинами данных
и команд (двухшинная, или гарвардская,
архитектура). Эта архитектура предполагает
наличие в системе отдельной памяти для
данных и отдельной памяти для команд
(рис. 1.16). Обмен процессора с каждым из
двух типов памяти происходит по своей
шине.

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

Рассмотрим некоторые
достоинства и недостатки обоих
архитектурных решений.

Архитектура с
общей шиной (принстонская, фон-неймановская)
проще, она не требует от процессора
одновременного обслуживания двух шин,
контроля обмена по двум шинам сразу.
Наличие единой памяти данных и команд
позволяет гибко распределять ее объем
между кодами данных и команд. Например,
в некоторых случаях нужна большая и
сложная программа, а данных в памяти
надо хранить не слишком много. В других
случаях, наоборот, программа требуется
простая, но необходимы большие объемы
хранимых данных. Перераспределение
памяти не вызывает никаких проблем,
главное — чтобы программа и данные
вместе помещались в памяти системы. Как
правило, в системах с такой архитектурой
память бывает довольно большого объема
(до десятков и сотен мегабайт). Это
позволяет решать самые сложные задачи.

Рис. 1.16. Архитектура
с раздельными шинами данных и команд.

Архитектура с
раздельными шинами данных и команд
сложнее, она заставляет процессор
работать одновременно с двумя потоками
кодов, обслуживать обмен по двум шинам
одновременно. Программа может размещаться
только в памяти команд, данные — только
в памяти данных. Такая узкая специализация
ограничивает круг задач, решаемых
системой, так как не дает возможности
гибкого перераспределения памяти.
Память данных и память команд в этом
случае имеют не слишком большой объем,
поэтому применение систем с данной
архитектурой ограничивается обычно не
слишком сложными задачами.

В чем же преимущество
архитектуры с двумя шинами (гарвардской)?
В первую очередь, в быстродействии.

Дело в том, что при
единственной шине команд и данных
процессор вынужден по одной этой шине
принимать данные (из памяти или устройства
ввода/вывода) и передавать данные (в
память или в устройство ввода/вывода),
а также читать команды из памяти.
Естественно, одновременно эти пересылки
кодов по магистрали происходить не
могут, они должны производиться по
очереди. Современные процессоры способны
совместить во времени выполнение команд
и проведение циклов обмена по системной
шине. Использование конвейерных
технологий и быстрой кэш-памяти позволяет
им ускорить процесс взаимодействия со
сравнительно медленной системной
памятью. Повышение тактовой частоты и
совершенствование структуры процессоров
дают возможность сократить время
выполнения команд. Но дальнейшее
увеличение быстродействия системы
возможно только при совмещении пересылки
данных и чтения команд, то есть при
переходе к архитектуре с двумя шинами.

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

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

1.5. Типы
микропроцессорных систем

Диапазон применения
микропроцессорной техники сейчас очень
широк, требования к микропроцессорным
системам предъявляются самые разные.
Поэтому сформировалось несколько типов
микропроцессорных систем, различающихся
мощностью, универсальностью, быстродействием
и структурными отличиями. Основные типы
следующие:

микроконтроллеры
— наиболее простой тип микропроцессорных
систем, в которых все или большинство
узлов системы выполнены в виде одной
микросхемы;

контроллеры —
управляющие микропроцессорные системы,
выполненные в виде отдельных модулей;

микрокомпьютеры
— более мощные микропроцессорные
системы с развитыми средствами сопряжения
с внешними устройствами.

компьютеры (в том
числе персональные) — самые мощные и
наиболее универсальные микропроцессорные
системы.

Четкую границу
между этими типами иногда провести
довольно сложно. Быстродействие всех
типов микропроцессоров постоянно
растет, и нередки ситуации, когда новый
микроконтроллер оказывается быстрее,
например, устаревшего персонального
компьютера. Но кое-какие принципиальные
отличия все-таки имеются.

Микроконтроллеры
представляют собой универсальные
устройства, которые практически всегда
используются не сами по себе, а в составе
более сложных устройств, в том числе и
контроллеров. Системная шина
микроконтроллера скрыта от пользователя
внутри микросхемы. Возможности подключения
внешних устройств к микроконтроллеру
ограничены. Устройства на микроконтроллерах
обычно предназначены для решения одной
задачи.

Контроллеры, как
правило, создаются для решения какой-то
отдельной задачи или группы близких
задач. Они обычно не имеют возможностей
подключения дополнительных узлов и
устройств, например, большой памяти,
средств ввода/вывода. Их системная шина
чаще всего недоступна пользователю.
Структура контроллера проста и
оптимизирована под максимальное
быстродействие. В большинстве случаев
выполняемые программы хранятся в
постоянной памяти и не меняются.
Конструктивно контроллеры выпускаются
в одноплатном варианте.

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

Наконец, компьютеры
и самые распространенные из них —
персональные компьютеры — это самые
универсальные из микропроцессорных
систем. Они обязательно предусматривают
возможность модернизации, а также
широкие возможности подключения новых
устройств. Их системная шина, конечно,
доступна пользователю. Кроме того,
внешние устройства могут подключаться
к компьютеру через несколько встроенных
портов связи (количество портов доходит
иногда до 10). Компьютер всегда имеет
сильно развитые средства связи с
пользователем, средства длительного
хранения информации большого объема,
средства связи с другими компьютерами
по информационным сетям. Области
применения компьютеров могут быть
самыми разными: математические расчеты,
обслуживание доступа к базам данных,
управление работой сложных электронных
систем, компьютерные игры, подготовка
документов и т.д.

Любую задачу в
принципе можно выполнить с помощью
каждого из перечисленных типов
микропроцессорных систем. Но при выборе
типа надо по возможности избегать
избыточности и предусматривать
необходимую для данной задачи гибкость
системы.

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

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

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

Правильные ответы выделены зелёным цветом.
Все ответы: Разъясняются основные понятия микропроцессорной техники, рассматриваются принципы функционирования микропроцессорных систем, предлагаются методы проектирования микропроцессорных систем на основе микроконтроллеров.

В чем главное преимущество микропроцессорной системы?

(1) высокое быстродействие

(2) малое энергопотребление

(3) низкая стоимость

(4) высокая гибкость

Сколько видов сброса реализовано в микроконтроллерах подгруппы PIC16F8Х?

Какая сфера применения является наиболее типичной для цифровых устройств на микроконтроллерах?

(1) обработка данных эксперимента

(2) решение задач математического моделирования

(3) задачи управления объектами

(4) распознавание образов

В каком порядке следуют типы информации в ассемблерной строке?

(1) мнемоника, метки, операнды, комментарий

(2) метки, мнемоника, операнды, комментарий

(3) операнды, метки, мнемоника, комментарий

(4) метки, операнды, мнемоника, комментарий

Какая шина персонального компьютера наиболее быстрая?

(1) все шины одинаково быстрые

(2) шина памяти

(3) локальная шина

(4) все зависит от конкретной ситуации

(5) системная шина

Какой основной недостаток у памяти DRAM?

(1) невысокое быстродействие

(2) высокая цена

(3) малый объем памяти на одну микросхему

(4) большой ток потребления

(5) память DRAM — наилучшая по всем параметрам

В чем основное преимущество шины ISA перед другими шинами компьютера?

(1) большее число разрядов данных

(2) более высокое быстродействие

(3) больший выбор напряжений питания

(4) большее число слотов расширения

(5) большее число разрядов адреса

Когда компьютер начинает цикл обмена по интерфейсу Centronics?

(1) при наличии кода, требующего передачи

(2) при готовности принтера

(3) сразу после окончания предыдущего цикла обмена

(4) при поступлении запроса от принтера

Какая из приведенных операций не требует проведения цикла обмена информацией?

(1) чтение данных из памяти

(2) все операции требуют проведения цикла обмена

(3) запись данных в память

(4) чтение записи из устройства ввода-вывода

(5) чтение команды из памяти

Для чего предназначены регистры процессора?

(1) для буферизации внешних шин

(2) для выполнения арифметических операций

(3) для временного хранения информации

(4) для ускорения выборки команд из памяти

(5) для управления прерываниями

Что такое операнд?

(1) код команды

(2) адрес команды

(3) код данных

(4) адрес адреса данных

(5) адрес данных

К какой группе команд относятся команды работы со стеком?

(1) арифметические команды

(2) логические команды

(3) команды пересылки

(4) команды переходов

(5) к отдельной группе

Какие преимущества дает модульная организация микроконтроллера?

(1) повышение быстродействия

(2) снижение потребляемой мощности

(3) создание разнообразных по структуре МК в пределах одного семейства

(4) повышение надежности работы

(5) увеличение числа обслуживаемых прерываний

Какое значение сигнала считывается при вводе данных с порта микроконтроллера?

(1) содержимое триггера данных

(2) содержимое триггера регистра управления

(3) логическое «И» над содержимым триггера данных и значением сигнала на внешнем выводе МК

(4) значение сигнала на внешнем выводе МК

Какой модуль микроконтроллера прекращает работу в режиме ожидания?

(1) центральный процессор

(2) тактовый генератор

(3) таймер

(4) блок прерываний

Какой формат команд используется в семействе микроконтроллеров среднего уровня PIC16CXXX?

(1) 12 бит

(2) 14 бит

(3) 16 бит

(4) 32 бита

Какой режим обмена предполагает отключение процессора?

(1) процессор никогда не отключается

(2) программный обмен

(3) обмен по прямому доступу к памяти

(4) обмен по прерываниям

Можно ли стереть бит защиты программного кода в микроконтроллерах подгруппы PIC16F8Х?

(1) нельзя

(2) можно, только если знать идентификационный код МК

(3) только вместе с содержимым памяти программ и данных МК

(4) можно, через последовательный доступ

Что такое «программный симулятор»?

(1) программа, заменяющая МК в составе устройства

(2) средство для исполнения разработанной программы на программно-логической модели МК

(3) программа для оптимизации размещения данных в памяти МК

(4) программа, подменяющая внутреннее ЗУ программ МК

Какая система счисления принимается по умолчанию в ассемблере MPASM?

(1) двоичная

(2) восьмеричная

(3) десятичная

(4) шестнадцатеричная

Какой процессор ПК был первым полностью 32-разрядным?

(1) 8088

(2) 80286

(3) 80386

(4) 486

(5) Pentium

Какая из тактовых частот ПК обычно наименьшая?

(1) Host Bus Clock

(2) CPU Clock

(3) ISA Bus Clock

(4) PCI Bus Clock

(5) все частоты одинаковые

Какая операция на магистрали ISA не требует обмена сигналами?

(1) чтение данных из памяти

(2) запрос ПДП

(3) чтение данных из устройства ввода-вывода

(4) пересылка данных в режиме ПДП

(5) запрос прерывания

Как приемник сигнала RS-232C принимает биты данных?

(1) по фронту специального стробирующего сигнала

(2) по уровню специального стробирующего сигнала

(3) в момент поступления стартового бита

(4) с временной привязкой к стоповому биту

(5) через равные промежутки времени, начиная от стартового бита

Какой тип обмена обеспечивает гарантированную передачу информации любому исполнителю?

(1) синхронный

(2) асинхронный

(3) синхронный и асинхронный

(4) ни синхронный, ни асинхронный

Для чего нужен селектор адреса в составе модуля памяти?

(1) для выделения адресов зоны стека системы

(2) для выделения адресов памяти начальной загрузки

(3) для выделения адресов устройств ввода-вывода

(4) для выделения адресов этого модуля в адресном пространстве системы

(5) для выделения адресов кэш-памяти системы

Какой метод адресации предполагает размещение операнда внутри выполняемой программы?

(1) абсолютная адресация

(2) регистровая адресация

(3) косвенная адресация

(4) непосредственная адресация

(5) операнд всегда находится внутри программы

К какой группе относятся команды сдвига кодов?

(1) арифметические команды

(2) логические команды

(3) команды пересылки

(4) команды переходов

(5) команды управления процессором

Что отличает процессоры с RISC-архитектурой от процессоров с CISC–архитектурой?

(1) тактовая частота

(2) возможность параллельного исполнения нескольких команд

(3) система команд

(4) способ обращения к памяти команд

При каких условиях триггер переполнения таймера/счетчика генерирует запрос на прерывание микроконтроллера?

(1) при переполнении таймера/счетчика

(2) при сбросе таймера/счетчика

(3) при сбросе запроса на прерывания

(4) при переполнении таймера/счетчика, если прерывания от таймера разрешены

Какой способ тактирования микроконтроллера обеспечивает наивысшую стабильность частоты?

(1) с использованием RC-цепи

(2) с использованием кварцевого резонатора

(3) с использованием керамического резонатора

(4) с использованием LC-цепи

Что дает двухступенчатый конвейер исполнения команд в PIC-микроконтроллерах?

(1) возможность одновременной выборки и исполнения команд

(2) возможность удвоения тактовой частоты

(3) возможность параллельного исполнения двух команд

(4) возможность динамического предсказания переходов

Микропроцессорная система какого типа не обеспечивает управление внешними устройствами?

(1) микроконтроллер

(2) контроллер

(3) все типы обеспечивают управление внешними устройствами

(4) компьютер

Что может использоваться в качестве регистра назначения в системе команд микроконтроллеров подгруппы PIC16F8Х?

(1) рабочий регистр W или регистр, используемый в команде

(2) любой адресуемый регистр

(3) регистр INDF

(4) регистр FSR

Какую функцию выполняет «монитор» на плате развития?

(1) устройство для контроля напряжения питания МК

(2) простейшее средство отладки

(3) устройство для контроля температуры корпуса МК

(4) средство для крепления платы развития в устройстве

Что определяет директива ORG ассемблера MPASM?

(1) параметры листинга

(2) начальный адрес программы

(3) ассемблерную переменную

(4) программный заголовок

Какова основная функция кэш-памяти?

(1) она дополнительно увеличивает объем системной памяти

(2) она позволяет использовать защищенный режим

(3) она обеспечивает многозадачный режим

(4) она ускоряет обмен процессора с системной памятью

(5) она ускоряет обмен процессора с устройствами ввода-вывода

На основе чего организован внутренний календарь ПК?

(1) на основе системного таймера

(2) на основе часов реального времени

(3) на основе программного счетчика времени

(4) на основе сетевого таймера

Какие адресные разряды участвуют в цикле регенерации памяти?

(1) SA0…SA7

(2) SA0…SA9

(3) SA0…SA15

(4) SA0…SA19

(5) LA17…LA23

Выберите неверное утверждение:

(1) PCI — быстродействующая шина

(2) PCI — немультиплексированная шина

(3) на шине PCI возможен синхронный и асинхронный обмен

(4) на шине PCI предусмотрена автоконфигурация

(5) количество слотов шины PCI мало

При каком типе прерываний число различных прерываний может быть больше?

(1) при векторных прерываниях

(2) при радиальных прерываниях

(3) максимальное число прерываний постоянно при любом типе прерываний

(4) максимальное число прерываний не ограничено

Что такое порт?

(1) простейшее устройство ввода-вывода

(2) одно из самых сложных устройств ввода-вывода

(3) устройство связи магистрали с системной памятью

(4) буфер магистрали внутри процессора

(5) внешнее устройство, с которым осуществляется сопряжение

Какой регистр определяет адрес текущей выполняемой команды?

(1) это может быть любой из регистров

(2) специализированный регистр

(3) любой из адресных регистров

(4) регистр-аккумулятор

(5) регистр-указатель стека

Какие команды обычно не меняют флаги PSW?

(1) арифметические команды

(2) логические команды

(3) команды пересылки

(4) команды переходов

(5) все команды обязательно меняют флаги

Какая память не изменяет своего содержимого в ходе выполнения программы?

(1) память данных

(2) регистры МК

(3) энергонезависимая память данных

(4) память программ

Для чего в первую очередь предназначен модуль выходного сравнения микроконтроллера?

(1) для формирования временных интервалов заданной длительности

(2) для сравнения информации на двух портах МК

(3) для измерения интервалов времени между событиями на выходах МК

(4) для выдачи импульсов фиксированной частоты

Что используется в качестве простейшего устройства аналогового ввода информации в микроконтроллере?

(1) АЦП

(2) компаратор напряжения

(3) резистивный делитель

(4) емкостной делитель

Для каких целей используются регистры специальных функций PIC-микроконтроллера?

(1) для управления работой МК

(2) для реализации специальных команд МК

(3) для хранения промежуточных данных

(4) для защиты от несанкционированного доступа

Какие команды микроконтроллеров подгруппы PIC16F8Х используются для организации условных переходов в программе?

(1) команды DECFSZ f, d, INCFSZ f, d, BTFSC f, b и BTFSS f, b

(2) команды RETFIE и RETLW k

(3) команды CALL k и GOTO k

(4) любая команда

Для чего используется файл инициализации .INI при работе симулятора MPSIM?

(1) для запуска процесса симуляции МК

(2) для задания всех используемых в программе параметров

(3) для моделирования внешних воздействий

(4) для ограничения времени симуляции

Каков типичный объем памяти данных микроконтроллера?

(1) единицы бит

(2) десятки и сотни байт

(3) десятки килобайт

(4) мегабайты

Где хранится содержимое младшего байта счетчика команд микроконтроллеров подгруппы PIC16F8Х?

(1) в регистре STATUS

(2) в регистре OPTION

(3) в регистре PCLATH

(4) в регистре PCL

Какова разрядность портов ввода/вывода микроконтроллеров подгруппы PIC16F8Х?

(1) порт А8 разрядов и порт В5 разрядов

(2) порт А8 разрядов и порт В8 разрядов

(3) порт А5 разрядов и порт В8 разрядов

(4) порт А5 разрядов и порт В5 разрядов

Какова разрядность таймера/счетчика TMR0 микроконтроллеров подгруппы PIC16F8Х?

(1) 4

(2) 8

(3) 14

(4) 16

Когда происходит инкремент таймера/счетчика в режиме счетчика без пределителя в микроконтроллерах подгруппы PIC16F8Х?

(1) каждый такт

(2) каждые 8 тактов

(3) при смене сигнала на входе T0CKI

(4) каждый командный цикл

Какие регистры управляют процессом чтения и записи энергонезависимой памяти данных микроконтроллеров подгруппы PIC16F8Х?

(1) регистр EEDATA

(2) регистр EEADR

(3) регистры EECON1 и EECON2

(4) регистры INTCON и EEADR

Разрядность какой шины прямо определяет быстродействие микропроцессорной системы?

(1) шины адреса

(2) шины данных

(3) шины управления

(4) шины питания

От какого генератора работает сторожевой таймер в микроконтроллерах подгруппы PIC16F8Х?

(1) от тактового генератора МК

(2) от собственного внутреннего RC-генератора

(3) от внешнего генератора

(4) от собственного внутреннего кварцевого генератора

Что включает в себя понятие «работа в реальном времени»?

(1) максимально достижимое на данный момент быстродействие

(2) обеспечение реакции на внешние события в течение определенного интервала времени

(3) возможность выдачи сигналов строго определенной длительности

(4) включение и выключение устройства по сигналам точного времени

Какова максимальная длина ассемблерной строки ассемблера MPASM?

(1) 80

(2) 128

(3) 255

(4) 512

К какой шине персонального компьютера подключается больше всего устройств?

(1) к шине памяти

(2) к локальной шине

(3) к шине AGP

(4) к системной шине

(5) к каждой шине подключается по одному устройству

Какая функция не выполняется программой из ROM BIOS?

(1) начальная загрузка операционной системы с диска

(2) самотестирование компьютера

(3) ускорение обмена с системной памятью

(4) задание текущих базовых параметров аппаратуры компьютера

(5) поддержка обмена с системными устройствами

Какой сигнал используется для организации асинхронного обмена по магистрали ISA?

(1) I/O CH RDY

(2) I/O CS16

(3) I/O CH CK

(4) AEN

(5) SBHE

Как компьютер узнает об отсутствии бумаги в принтере при использовании Centronics?

(1) с помощью специального сигнала от принтера

(2) принтер долго не дает разрешения на обмен

(3) компьютер посылает специальный запрос о наличии бумаги

(4) компьютер не может узнать об отсутствии бумаги

(5) принтер выдает особую комбинацию нескольких сигналов

Какой тип обмена обеспечивает более высокую скорость передачи информации?

(1) синхронный

(2) асинхронный

(3) нельзя сказать однозначно

(4) синхронный обмен с возможностью асинхронного обмена

Для чего служит регистр признаков?

(1) для хранения флагов результатов выполненных операций

(2) для хранения кодов специальных команд

(3) для хранения кода адреса

(4) для определения режима работы микропроцессорной системы

(5) для обслуживания стека

Какой метод адресации наиболее удобен для последовательной обработки массивов данных?

(1) абсолютная адресация

(2) непосредственная адресация

(3) автоинкрементная адресация

(4) косвенно-регистровая адресация

(5) прямая адресация

Для чего используются команды программных прерываний?

(1) для управления устройствами ввода-вывода

(2) для обработки аварийных ситуаций

(3) для вызова подпрограмм

(4) для управления режимами работы процессора

(5) для управления режимами работы памяти

Какие возможности отсутствуют при использовании микроконтроллеров с «закрытой» архитектурой?

(1) возможность изменения тактовой частоты МК

(2) возможность подключения памяти программ и данных по параллельным магистралям

(3) возможность использования всей совокупности системы команд МК

(4) возможность подключения внешних устройств

Какой тип логической функции позволяет реализовать объединение «квазидвунаправленных» выходов микроконтроллера?

(1) сложение по модулю 2

(2) «И»

(3) «ИЛИ»

(4) константа «1»

Как зависит ток потребления микроконтроллера от напряжения питания?

(1) не зависит

(2) приблизительно линейно

(3) обратно пропорционально

(4) квадратично

Какая архитектура используется в PIC-микроконтроллерах?

(1) фон-неймановская с RISC-процессором

(2) фон-неймановская с СISC-процессором

(3) гарвардская с RISC-процессором

(4) гарвардская с CISC-процессором

Какой режим обмена обеспечивает наибольшую скорость передачи информации?

(1) обмен по прямому доступу к памяти

(2) программный обмен

(3) обмен по прерываниям

(4) все режимы одинаковы по быстродействию

Где хранятся биты конфигурации микроконтроллеров подгруппы PIC16F8Х?

(1) в энергонезависимой памяти данных

(2) в регистре OPTION

(3) в регистре EEDATA

(4) в регистре INTCON

Что такое «внутрисхемный эмулятор»?

(1) программа для контроля состояния внутренних регистров МК

(2) аппаратное устройство для реализации пошагового режима работы МК

(3) программно-аппаратное средство для замены МК в реальной схеме

(4) программа, подменяющая внутреннее ЗУ программ МК

Что определяет директива #DEFINE ассемблера MPASM?

(1) систему счисления

(2) метку замены текста

(3) тип контроллера

(4) ассемблерную константу

Какая фирма является основным поставщиком процессоров для персональных компьютеров?

(1) IBM

(2) Intel

(3) Motorola

(4) Apple

(5) Toshiba

Сколько всего прерываний может быть в ПК?

(1) 8

(2) 16

(3) 32

(4) 64

(5) 256

Что такое удлиненный цикл обмена?

(1) цикл записи данных в память

(2) цикл чтения данных из устройства ввода-вывода

(3) цикл регенерации

(4) цикл с использованием сигнала I/O CH RDY

(5) цикл с использованием сигнала I/O CS16

Что входит в транзакцию на шине PCI?

(1) фаза адреса и несколько фаз пересылки данных

(2) одна или несколько фаз пересылки данных

(3) полный процесс автоконфигурации

(4) фаза адреса

(5) запрос и предоставление прерывания

Какой тип прерываний требует более сложной аппаратуры устройства-исполнителя?

(1) векторный

(2) радиальный

(3) тактируемый

(4) сложность не зависит от типа прерывания

Каков принцип работы стековой памяти?

(1) первый записанный код читается первым

(2) первый записанный код читается последним

(3) запись и чтение могут следовать в произвольном порядке

(4) содержимое стековой памяти не меняется за время работы системы

(5) стековая память ускоряет работу памяти векторов прерываний

Каково разделение функций между внутренними регистрами процессора?

(1) назначение регистров зависит от типа процессора

(2) все регистры выполняют одни и те же функции

(3) половина регистров используется для данных, половина — для адресации

(4) каждый регистр выполняет свою функцию

(5) одни регистры специализированные, другие — универсальные

Какие команды не формируют выходной операнд?

(1) арифметические команды

(2) логические команды

(3) команды пересылки

(4) команды переходов

(5) команды сдвигов

Каково типичное соотношение между требуемыми объемами памяти программ и данных микроконтроллера?

(1) объем памяти данных больше объема памяти программ

(2) объем памяти данных меньше объема памяти программ

(3) объем памяти данных равен объему памяти программ

(4) типичное соотношение отсутствует

Для чего в первую очередь предназначен модуль входного захвата микроконтроллера?

(1) для отслеживания изменений сигнала на входе МК

(2) для подсчета количества событий на входе МК

(3) для измерения временных интервалов между событиями на входах МК

(4) для выдачи импульсов фиксированной продолжительности

Зачем нужна задержка времени при запуске тактового генератора микроконтроллера?

(1) для стабилизации частоты генератора

(2) для минимизации энергопотребления при запуске МК

(3) для перевода регистров МК в начальное состояние

(4) для исключения выдачи ложных сигналов на выходах МК

Сколько тактов занимает выполнение одного командного цикла PIC-микроконтроллером?

Какая архитектура обеспечивает более высокое быстродействие?

(1) принстонская

(2) гарвардская

(3) фон-неймановская

(4) быстродействие не зависит от архитектуры

Какие команды микроконтроллеров подгруппы PIC16F8Х могут изменить все биты состояния?

(1) команды CALL k и SLEEP

(2) команды ANDWF f, d и IORWF f, d

(3) команды ADDWF f, d , SUBWF f, d , ADDLW k и SUBLW k

(4) любая команда

Что такое «эмулятор ПЗУ»?

(1) устройство для расширения объема внешней памяти МК

(2) устройство для «вскрытия» содержимого памяти программ МК

(3) схема для сопряжения МК с внешней памятью программ

(4) программно-аппаратное средство для замещения ПЗУ

Что использует в своей работе симулятор MPSIM?

(1) файл листинга программы

(2) выходной файл ошибок

(3) выходные данные ассемблера MPASM

(4) ассемблерный файл

В каких случаях кэш-память малоэффективна?

(1) когда в исполняемой программе много переходов

(2) когда в исполняемой программе мало переходов

(3) когда объем системной памяти компьютера невелик

(4) когда системная память имеет малое быстродействие

(5) когда объем системной памяти компьютера очень большой

Какие коды и когда вырабатываются клавиатурой?

(1) при нажатии — коды символов, соответствующих клавишам

(2) при нажатии — коды номеров клавиш

(3) при нажатии и отпускании — коды символов, соответствующих клавишам

(4) при нажатии и отпускании — коды номеров клавиш

(5) при отпускании — коды символов, соответствующих клавишам

Что подразумевает технология PnP?

(1) распределение ресурсов с помощью переключателей на плате

(2) распределение ресурсов с помощью программы-драйвера платы

(3) автоматическое распределение ресурсов

(4) отсутствие распределения ресурсов

(5) распределение ресурсов изготовителем компьютера

Какое главное преимущество интерфейса USB?

(1) максимальная скорость обмена

(2) минимальное число соединительных проводов

(3) максимальная длина соединительного кабеля

(4) скоростная последовательная передача

(5) максимально простой протокол обмена

Какой параметр слабее других влияет на процесс обмена сигналами по магистрали?

(1) длина линии связи магистрали

(2) отражение сигналов от концов линий связи

(3) положительная или отрицательная логика шины данных

(4) различие длин линий связи магистрали

(5) неодновременное выставление сигналов на линиях шины

Какое устройство не относится к устройствам ввода-вывода?

(1) контроллер видеомонитора

(2) устройство сопряжения клавиатуры

(3) интерфейсная плата локальной сети

(4) адаптер дискового накопителя

(5) селектор адреса

Какой регистр процессора 8086/8088 определяет адрес ввода/вывода?

(1) АХ

(2) BX

(3) CX

(4) DX

(5) CS

К какой группе относится команда «Исключающее ИЛИ«?

(1) арифметические команды

(2) логические команды

(3) команды пересылки

(4) команды переходов

(5) команды загрузки

Сколько раз можно изменить содержимое памяти программ на основе ПЗУ масочного типа?

(1) неограниченное число раз

(2) один раз на стадии изготовления МК

(3) один раз на стадии программирования пользователем

(4) около 1000 раз

Какой параметр выходного сигнала изменяется при широтно-импульсной модуляции?

(1) частота

(2) уровень логического «0»

(3) скважность

(4) уровень логической «1»

АЦП какого типа чаще всего используют в составе микроконтроллера?

(1) интегрирующие

(2) параллельные

(3) последовательного приближения

(4) на основе преобразователей напряжение-частота

Где хранится информация о выборе банка памяти данных микроконтроллеров подгруппы PIC16F8Х?

(1) в бите IRP регистра STATUS

(2) в бите RP0 регистра STATUS

(3) в стеке МК

(4) в памяти программ

Какие действия выполняет команда CLRWDT системы команд микроконтроллеров подгруппы PIC16F8Х?

(1) сбрасывает в 0 содержимое сторожевого таймера

(2) сбрасывает контроллер

(3) сбрасывает в 0 содержимое счетчика команд

(4) сбрасывает в 0 содержимое сторожевого таймера и пределителя (если он используется)

Для чего используется файл стимуляции .STI при работе симулятора MPSIM?

(1) для запуска процесса симуляции МК

(2) для задания контрольных точек останова при симуляции

(3) для моделирования внешних воздействий

(4) для задания скорости исполнения программы

Чем ограничена глубина вложений циклов вызова подпрограмм в микроконтроллере?

(1) объемом памяти программ

(2) глубиной стека

(3) объемом памяти данных

(4) разрядностью счетчика команд

Где хранится указатель стека микроконтроллеров подгруппы PIC16F8Х?

(1) недоступен пользователю

(2) в регистре OPTION

(3) в регистре PCLATH

(4) в регистре PCL

Где хранится информация о направлении передачи информации портов ввода/вывода микроконтроллеров подгруппы PIC16F8Х?

(1) в регистрах TRISA и TRISB, соответственно

(2) в регистре INTCON

(3) в регистре INDF

(4) в регистрах PORTA и PORTB, соответственно

Какой бит определяет режим работы таймера/счетчика микроконтроллеров подгруппы PIC16F8Х?

(1) бит T0CS регистра OPTION

(2) бит PSA регистра OPTION

(3) бит TO регистра STATUS

(4) бит T0IE регистра INTCON

Какой бит определяет режим использования предделителя микроконтроллеров подгруппы PIC16F8Х?

(1) бит T0CS регистра OPTION

(2) бит PSA регистра OPTION

(3) бит TO регистра STATUS

(4) бит T0IE регистра INTCON

Сколько источников запросов прерываний имеют микроконтроллеры подгруппы PIC16F8Х?

Структура какой шины влияет на разнообразие режимов обмена?

(1) шины данных

(2) шины управления

(3) шины питания

(4) шины адреса

В какое состояние переходит счетчик команд микроконтроллеров подгруппы PIC16F8Х после сброса?

(1) в состояние ноль

(2) в состояние 0004h

(3) в состояние, задаваемое битами конфигурации МК

(4) в случайное состояние

Что включает в себя понятие «закрытая архитектура» микроконтроллера?

(1) невозможность доступа к памяти программ МК

(2) невозможность доступа к памяти данных МК

(3) отсутствие возможности изменения тактовой частоты МК

(4) реализация большинства функций устройства внутренними средствами

Что такое «текстовая строка» в ассемблере MPASM?

(1) последовательность любых допустимых ASCII символов, заключенная в двойные кавычки и длиной до 132 колонок

(2) последовательность любых допустимых ASCII символов, заключенная между тире, длиной в пределах 80 колонок

(3) последовательность любых допустимых ASCII символов, заключенная между точками с запятой, длиной до 132 колонок

(4) последовательность любых допустимых ASCII символов, заключенная в двойные кавычки, длиной в пределах 80 колонок

Что устанавливается на системной плате компьютера?

(1) основные узлы компьютера и слоты расширения

(2) системная память и контроллер дисплея

(3) процессор и некоторые контроллеры

(4) слоты всех шин и внешние разъемы компьютера

(5) контроллер дисплея и контроллер локальной сети

Для чего используется теневая память?

(1) для ускорения обмена с оперативной памятью

(2) для ускорения обмена с постоянной памятью

(3) для ускорения обмена с устройствами ввода-вывода

(4) для ускорения работы процессора

(5) для увеличения объема системной памяти

Какой сигнал на время ПДП отключает устройства, не участвующие в ПДП?

(1) DRQ

(2) DACK

(3) AEN

(4) RESET DRV

(5) BALE

Каковы основные преимущества интерфейса Centronics перед RS-232C?

(1) большая длина кабеля, наличие линий питания

(2) двунаправленная передача, последовательная передача

(3) более высокая скорость, более простой протокол обмена

(4) более высокая скорость, меньше проводов

(5) большая помехоустойчивость, большая длина кабеля

Какая структура шин адреса и данных обеспечивает большее быстродействие?

(1) мультиплексированная

(2) немультиплексированная

(3) двунаправленная

(4) быстродействие от структуры не зависит

Какова функция конвейера?

(1) ускорение выполнения логических операций

(2) увеличение объема системной памяти команд

(3) уменьшение количества команд процессора

(4) ускорение выборки команд

(5) распараллеливание выполнения арифметических операций

Каково основное преимущество сегментирования памяти?

(1) сегментирование упрощает задание адреса операнда

(2) сегментирование упрощает структуру процессора

(3) сегментирование упрощает переключение между сегментами данных и между сегментами программ

(4) сегментирование позволяет увеличить объем памяти системы

(5) сегментирование увеличивает быстродействие процессора

Какие команды чаще других используются для организации подпрограммы?

(1) арифметические команды

(2) команды переходов

(3) логические команды

(4) команды пересылки

(5) команды управления процессором

Что не входит в состав процессорного ядра микроконтроллера?

(1) схема управления

(2) схема синхронизации

(3) внутриконтроллерная магистраль

(4) ОЗУ

Какова типичная разрядность таймера/счетчика в составе микроконтроллера?

(1) 32

(2) 64

(3) 8 или 16

(4) 4

Как зависит ток потребления КМОП микроконтроллера от частоты тактового генератора?

(1) не зависит

(2) пропорционально корню квадратному от частоты

(3) квадратично

(4) приблизительно линейно

Сколько циклов занимает исполнение одной команды PIC-микроконтроллером?

(1) 1

(2) 2

(3) 4

(4) 1, кроме команд переходов (2 цикла)

Какой режим обмена используется чаще всего?

(1) обмен по прерываниям

(2) все режимы используются одинаково часто

(3) обмен по прямому доступу к памяти

(4) программный обмен

Каковы разрядность и количество команд микроконтроллеров подгруппы PIC16F8Х?

(1) 12 разрядов, 33 команды

(2) 16 разрядов, 58 команд

(3) 14 разрядов, 35 команд

(4) 16 разрядов, 74 команды

Что такое «плата развития»?

(1) конструктор для макетирования электронных устройств

(2) устройство для увеличения тактовой частоты МК

(3) схема для сопряжения МК с внешними устройствами

(4) плата, выставленная на пробную продажу

Что определяет директива EQU ассемблера MPASM?

(1) равенство переменных

(2) метку замены текста

(3) начальный адрес программы

(4) ассемблерную константу

В каком процессоре впервые появился защищенный режим?

(1) 8086

(2) 80286

(3) 80386

(4) 486

(5) Pentium

Чем определяется адрес памяти в режиме ПДП?

(1) программой инициализации контроллера ПДП

(2) самим контроллером ПДП

(3) устройством ввода-вывода, запросившим ПДП

(4) программой инициализации и контроллером ПДП

(5) в разных случаях по-разному

При каком цикле одновременно выставляются стробы обмена с памятью и с устройством ввода-вывода?

(1) цикл запроса прерывания

(2) цикл ПДП

(3) цикл регенерации

(4) цикл записи в 16-разрядную память

(5) удлиненный цикл записи в устройство ввода-вывода

Какого цикла нет на шине PCI?

(1) чтение конфигурации

(2) запись конфигурации

(3) подтверждение прерывания

(4) множественное чтение памяти

(5) изменение конфигурации

Какой тип обмена используется в системной магистрали ISA?

(1) синхронный

(2) асинхронный

(3) синхронный с возможностью асинхронного обмена

(4) мультиплексированный

В какой памяти сохраняется содержимое регистра признаков при прерывании?

(1) в стековой памяти

(2) в памяти векторов прерываний

(3) в памяти программ начального запуска

(4) в памяти устройств, подключенных к магистрали

(5) в любой из ячеек системной памяти

Какой бит отсутствует в PSW процессора 8086?

(1) бит нулевого результата

(2) бит переноса

(3) бит переполнения

(4) бит четности

(5) бит разрешения ПДП

К какой группе команд относится команда декремента?

(1) арифметические команды

(2) логические команды

(3) команды переходов

(4) команды пересылок

(5) команды сдвигов

Какие команды исполняет булевый или битовый процессор микроконтроллера?

(1) команды управления отдельными битами

(2) команды сдвига на 1 бит

(3) команды пересылки данных

(4) логические команды

Какие ошибки измерения позволяет исключить использование режима входного захвата таймера/счетчика микроконтроллера?

(1) ошибки, связанные с временем перехода к подпрограмме обработки прерывания

(2) потери времени при перезагрузке таймера/счетчика

(3) потери времени при фиксации события захвата

(4) потери времени при чтении содержимого регистра входного захвата

Что происходит при переполнении сторожевого таймера микроконтроллера?

(1) формирование сигнала запроса прерывания

(2) переход в режим пониженного энергопотребления

(3) сброс МК

(4) инкремент таймера/счетчика МК

Какова глубина аппаратного стека микроконтроллеров подгруппы PIC16F8Х?

(1) 4

(2) 8

(3) 16

(4) 32

Микропроцессорная система какого типа разрабатывается чаще всего?

(1) микрокомпьютер

(2) компьютер

(3) разработка не требуется, используются готовые системы

(4) микроконтроллер

Какие команды микроконтроллеров подгруппы PIC16F8Х могут использоваться для реализации последовательного ввода или вывода данных?

(1) команды MOVF f, d и MOVWF f

(2) команды RLF f, d и RRF f, d

(3) команды SUBWF f, d и SUBLW k

(4) любая команда

Что такое «виртуальное» периферийное устройство МК?

(1) периферийный модуль, поставляемый только на заказ

(2) периферийный модуль, реализованный программными средствами

(3) периферийный модуль, находящийся в стадии разработки

(4) периферийный модуль с изменяемыми режимами работы

Что определяет команда E [addr] симулятора MPSIM?

(1) выполнение программы с текущего или указанного адреса

(2) останов исполнения программы по достижении указанного адреса

(3) просмотр содержимого памяти данных по указанному адресу

(4) просмотр содержимого памяти программ по указанному адресу

Для чего применяется кэширование диска?

(1) для увеличения объема дискового пространства

(2) для ускорения процесса записи информации на диск

(3) для уменьшения количества обращений к диску

(4) для ускорения работы системной памяти

(5) для сокращения времени вращения диска

Какие ресурсы компьютера не нуждаются в разделении при использовании ISA?

(1) каналы запроса прерываний

(2) адреса устройств ввода-вывода

(3) каналы запроса ПДП

(4) номера слотов плат расширения

(5) адреса ПЗУ

Выберите неверное утверждение:

(1) шина PC-card быстрее шины ISA

(2) шина PC-card последовательная

(3) шина PC-card имеет ту же разрядность данных, что и ISA

(4) шина PC-card допускает адресацию 64 Мбайт

(5) шина PC-card поддерживает режим PnP

Что слабее других влияет на процесс обмена сигналами по магистрали?

(1) прямой доступ к памяти

(2) векторное прерывание

(3) радиальное прерывание

(4) нельзя сказать однозначно

Выберите верное утверждение.

(1) устройство ввода-вывода всегда имеет множество адресов на магистрали

(2) устройство ввода-вывода может иметь один адрес на магистрали

(3) устройство ввода-вывода предназначено исключительно для двунаправленного обмена с внешними устройствами

(4) устройства ввода-вывода почти не отличаются друг от друга

Что такое регистр указателя?

(1) адрес начала сегмента

(2) адрес текущей выполняемой команды

(3) номер сегмента

(4) размер сегмента

(5) смещение относительно начала сегмента

Какая команда используется для возврата из программного прерывания?

(1) команда условного перехода

(2) команда безусловного перехода

(3) команда перехода с возвратом

(4) команда вызова прерывания

(5) специальная команда возврата из прерывания

Какое излучение требуется для изменения содержимого памяти программ на основе ПЗУ типа Flash?

(1) рентгеновское

(2) ультрафиолетовое

(3) изменение информации производится электрическим способом

(4) нейтронное

Что называется «вектором прерывания» микроконтроллера?

(1) уровень приоритета данного типа прерывания

(2) состояние линии приема запросов на прерывание

(3) адрес перехода к подпрограмме обработки прерывания

(4) состояние бита разрешения прерываний МК

Что используется в качестве простейшего ЦАП на выходе микроконтроллера?

(1) широтно-импульсный модулятор с фильтром нижних частот

(2) операционный усилитель

(3) электронный ключ

(4) усилитель напряжения

Где хранятся биты признаков результата операций микроконтроллеров подгруппы PIC16F8Х?

(1) в регистре STATUS

(2) в регистре OPTION

(3) в регистре таймера/счетчика

(4) в регистре INTCON

Сколько времени занимает выход микроконтроллера подгруппы PIC16F8Х из режима ожидания?

(1) 1024 такта

(2) 1024 цикла

(3) 128 тактов

(4) 128 циклов

На чем основан программный метод подавления «дребезжания» контактов при вводе данных в микроконтроллер?

(1) на увеличении частоты опроса

(2) на использовании специальных команд подавления «дребезжания»

(3) на блокировании соответствующего порта на время «дребезжания»

(4) на повторном чтении через небольшой интервал времени и сравнении результатов

При какой минимальной тактовой частоте работы микроконтроллера сохраняется информация в памяти данных?

(1) вплоть до нулевой

(2) не ниже 10 Гц

(3) не ниже 32768 Гц

(4) не ниже 1 МГц

Какова разрядность счетчика команд микроконтроллеров подгруппы PIC16F8Х?

(1) 11

(2) 12

(3) 13

(4) 16

Где хранится указатель адреса при косвенной адресации данных в микроконтроллерах подгруппы PIC16F8Х?

(1) недоступен пользователю

(2) в регистре FSR

(3) в регистре PCLATH

(4) в регистре STATUS

В какое состояние переходят порты ввода/вывода PIC-микроконтроллеров по умолчанию (после сброса)?

(1) в состояние вывода логического «0»

(2) в третье (высокоимпедансное) состояние

(3) в состояние ввода

(4) в состояние вывода логической «1»

Когда происходит инкремент таймера/счетчика в режиме таймера без пределителя в микроконтроллерах подгруппы PIC16F8Х?

(1) каждый такт

(2) каждые 8 тактов

(3) при смене сигнала на входе T0CKI

(4) каждый командный цикл

Где хранится информация о содержимом пределителя микроконтроллеров подгруппы PIC16F8Х?

(1) недоступна

(2) в регистре OPTION

(3) в регистре FSR

(4) в регистре TMR0

Что называется «вектором прерывания» микроконтроллера?

(1) уровень приоритета данного типа прерывания

(2) состояние линии приема запросов на прерывание

(3) адрес перехода к подпрограмме обработки прерывания

(4) состояние бита разрешения прерываний МК

Главная / Аппаратное обеспечение /
Основы микропроцессорной техники / Тест 1

Упражнение 1:


Номер 1

В чем главное преимущество микропроцессорной системы?

Ответ:

(1) высокое быстродействие 

(2) малое энергопотребление 

(3) низкая стоимость 

(4) высокая гибкость 


Номер 2

Разрядность какой шины прямо определяет быстродействие микропроцессорной системы?

Ответ:

(1) шины адреса 

(2) шины данных 

(3) шины управления 

(4) шины питания 


Номер 3

Структура какой шины влияет на разнообразие режимов обмена?

Ответ:

(1) шины данных 

(2) шины управления 

(3) шины питания 

(4) шины адреса 


Упражнение 2:


Номер 1

Какой режим обмена предполагает отключение процессора?

Ответ:

(1) процессор никогда не отключается 

(2) программный обмен 

(3) обмен по прямому доступу к памяти 

(4) обмен по прерываниям 


Номер 2

Какой режим обмена обеспечивает наибольшую скорость передачи информации?

Ответ:

(1) обмен по прямому доступу к памяти 

(2) программный обмен 

(3) обмен по прерываниям 

(4) все режимы одинаковы по быстродействию 


Номер 3

Какой режим обмена используется чаще всего?

Ответ:

(1) обмен по прерываниям 

(2) все режимы используются одинаково часто 

(3) обмен по прямому доступу к памяти 

(4) программный обмен 


Упражнение 3:


Номер 1

Микропроцессорная система какого типа не обеспечивает управление внешними устройствами?

Ответ:

(1) микроконтроллер 

(2) контроллер 

(3) все типы обеспечивают управление внешними устройствами 

(4) компьютер 


Номер 2

Какая архитектура обеспечивает более высокое быстродействие?

Ответ:

(1) принстонская 

(2) гарвардская 

(3) фон-неймановская 

(4) быстродействие не зависит от архитектуры 


Номер 3

Микропроцессорная система какого типа разрабатывается чаще всего?

Ответ:

(1) микрокомпьютер 

(2) компьютер 

(3) разработка не требуется, используются готовые системы 

(4) микроконтроллер 


ВОПРОСЫ
К ЭКЗАМЕНУ

по
дисциплине «Основы микропроцессорной техники»

1.Структура микропроцессорных
систем. Шинная структура связей. Типы микропроцессорных систем. Особенности.

2.Архитектура микропроцессорных систем. Гарвардская.
Принстонская.

3.Микропроцессор. Структура. Основные характеристики.
Назначение основных узлов.

4.Режимы работы микропроцессорной системы. Программный обмен
информацией. Обмен по прерываниям. Прямой доступ к памяти.

5.Однокристалльный микроконтроллер. Классификация.
Структура. Характеристики. Основные направления применения.

6. Слово состояния программ (PSW) МП. Пояснить его назначение.

7. Программный счетчик (счетчик команд) микропроцессора.
Назначение.

8. Стековая память. Принцип работы стека. Указатель стека.

9. Организация памяти микроконтроллеров.. Распределение
адресного пространства. Логическая структура памяти.

10. Процессорное ядро микроконтроллера HC908GP32.

11. Архитектура центрального процессора микроконтроллера HC908GP32. Особенности.

12. Регистр флажков( признаков) СCR.
Назначение.

13. Функционирование центрального процессора
микроконтроллера HC908GP32.
Блок управления. Вычислительный блок.

14. Прерывания микроконтроллера HC908GP32. Маскирование прерываний. Распознавание и обработка
прерываний.

15. Распознавание и обработка прерывания по переполнению
таймера микроконтроллера HC908GP32.

16. Способы адресации в  микроконтроллере HC908GP32. Неявная, прямая, относительная адресации.

17. Способы адресации в  микроконтроллере HC908GP32. Индексная адресация. Непосредственная адресация.

18. Организация ветвлений в программе.

19. Организация подпрограмм. Команды обращения к
подпрограммам.

20. Организация ввода/вывода в  микроконтроллере HC908GP32.

21. Структура, назначение таймерного модуля TIM08 микроконтроллера HC908GP32.

22. Режимы работы таймерного модуля TIM08
микроконтроллера HC908GP32.
Режим захвата.

23. Режимы работы таймерного модуля TIM08
микроконтроллера HC908GP32.
Режим сравнения/совпадения.

24. Программирование на языке ассемблера. Особенности. Этапы
разработки и отладки программ на языке ассемблера. Интегрированные среды
разработки программ.

25. Директивы/псевдокоманды языка  ассемблера. Процесс
трансляции программ на языке ассемблера.

Разработал                                                                     
                 Ахметвалеева Л.В.

доцент кафедры Промышленная электроника

Согласовано                                                                           Голенищев-Кутузов
А.В. 

зав. кафедрой Промышленная электроника

Форма обучения:

дистанционная

Стоимость самостоятельного обучения:

бесплатно

Качество курса:

4.44 | 4.22

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

Микропроцессорная техника — наиболее быстро развивающаяся область электроники, для успешного овладения которой необходимо с самого начала усвоить современные принципы организации микропроцессорных систем. Освоение ключевых понятий микропроцессорной техники — это первая задача курса. Успех при этом может принести только комплексный подход к проектированию аппаратных и программных средств. Рассматриваются особенности систем различных уровней сложности и различного назначения, принципы архитектурных решений, способы и средства организации обмена информацией. Особое внимание уделено принципам организации персональных компьютеров как наиболее сложных и гибких микропроцессорных систем, позволяющих решать самые сложные задачи.

Вторая задача курса — обучение навыкам проектирования систем на основе микроконтроллеров, как наиболее распространенного типа микропроцессорных систем. Для ее решения приводятся описание микроконтроллеров семейства PIC, а также специальных программных средств проектирования, рассматриваются примеры решения задач проектирования нескольких устройств.

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

ISBN: 978-5-9556-0082-6

Теги: bios, EEPROM, isa, sleep, WDT, алгоритмы, архитектуры, библиотеки, интерфейсы, кабели, клавиатура, логика, магистраль, микроконтроллер, микроконтроллеры, микропроцессорная система, микропроцессоры, память, ПДП, подгруппа, принтеры, процессоры, счетчик команд, шины

Дополнительные курсы

Философия микропроцессорной техники

В этой лекции рассказывается о базовой терминологии микропроцессорной техники, о принципах организации микропроцессорных систем, о структуре связей, режимах работы и об основных типах микропроцессорных систем.

Шины микропроцессорной системы и циклы обмена

В этой лекции речь идет об обмене информацией по шинам микропроцессорных систем, о циклах обмена информацией и их фазах, о принципах синхронизации обмена, принципах организации прерываний и ПДП.

Функции устройств магистрали

В этой лекции рассказывается о функциях основных устройств микропроцессорной системы: процессора, памяти, устройств ввода-вывода, о принципах их устройства и подключения к магистрали.

Адресация операндов

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

Система команд процессора

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

Процессорное ядро и память микроконтроллеров

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

Вспомогательные аппаратные средства микроконтроллера

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

Аппаратные средства микроконтроллеров серии PIC

В этой лекции рассказывается об особенностях организации и параметрах популярных PIC-микроконтроллеров фирмы «Microchip», а также более подробно о составе, структуре и возможностях аппаратных средств микроконтроллеров подгруппы PIC16F8X.

Архитектура и процессоры персональных компьютеров

В этой лекции рассказывается об особенностях архитектуры персональных компьютеров семейства IBM PC, о процессорах, применяемых в персональных компьютерах, об их функциях, характеристиках, этапах их эволюции.

Системная магистраль ISA

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

Индекс материала

Глава 3

3.2. Программная модель МП IA-16

3.2.2. Порты ввода/вывода

2.2.3. Регистровый файл

3.2.4. Структура команд.

3.3. Программная модель 32-х битового микропроцессора

3.3.2. Модель памяти

3.3.3. Регистровый файл

3.3.4. Структура команд и режимы адресации

3.3.5. Структура данных

Все страницы

Глава 3. Программная модель МП Intel

3.1. Режимы работы

Корпорация Intel для использования в РС выпускала микропроцессоры различной разрядности. Наиболее известные из них:

  • шестнадцатиразрядные микропроцессоры (МП i8086),

  • двадцатичетырехразрядные микропроцессоры (МП i8286),

  • тридцатидвухразрядные микропроцессоры (от МП i8386 – до Pentium IV),

  • шестидесятичетырехразрядные микропроцессоры (Itanium.). Но это уже принципиально новая модель архитектуры EPIC (Explicitly Parallel Instruction Computing – вычисления с явным параллелизмом команд).

Имеется еще расширение архитектуры МП, совместимых c IBM PC, до 64 бит (модели МП Hammer (К-8) корпорации АМD), но это расширение коснулось только формата данных и РОН.

Первые МП корпорация Intel выпускала, находясь в составе корпорации IBM. Программное обеспечение для этих РС производила корпорация Microsoft, также входящая в состав корпорации IBM. По этой причине, когда говорят о МП, используют термин «МП Intel архитектуры (МП IА)» или «МП, совместимые с IBM PC».

В МП этих архитектур можно выделить по режимам работы четыре программные модели:

  • Реальный режим шестнадцатиразрядного микропроцессора МП i8086,

  • Защищенный режим работы,

  • Реальный режим тридцатидвухразрядного микропроцессора,

  • Виртуальный режим 86.

Реальный режим шестнадцатиразрядного микропроцессора МП i8086

Это основной режим 8-и 16-разрядных первых персональных ЭВМ, программно совместимых с IBM PC (режим МП IA-16).

Защищенный режим работы

Это основной 32-разрядный режим работы для 32-разрядных микропроцессоров МП IA (Intel архитектуры). В этом режиме доступны все команды и все архитектурные возможности. Используется механизм виртуальной памяти, все встроенные средства защиты, процедура переключения задач (режим МП IA-32). Дополнительными режимами для них являются реальный и виртуальный 86 (режим V86).

Реальный режим 32-разрядного микропроцессора

Это 16-разрядный режим адресации и обработки данных с прямым обращением к памяти. Режим эмулирует программную среду (модель) МП 8086 с некоторыми дополнительными возможностями, включая новые РОНы, часть новых команд и расширений как адресов, так и данных. Но в любом случае, 32-разрядное смещение в сегменте не должно превышать значения 65 535 (64 Кбайт).

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

Виртуальный режим 86

Это разновидность формы эмуляции модели 8086. Здесь нет прямой адресации памяти. В этом режиме применяются механизмы защиты и виртуальной памяти. Виртуальный режим 86 устанавливается из защищенного (для запуска программ, написанных для реального режима) с возможностью возврата в защищенный режим.

Вопросы для самопроверки:

1. Характеристики защищенного режима работы МП, возможности использования разрядности операндов и других средств архитектуры.

2. Характеристика реального режима работы МП, назначение режима, возможности использования разрядности операндов и других средств архитектуры.

3. Характеристика виртуального режима 86, назначение режима и возможности использования разрядности операндов и других средств архитектуры.


3.2. Программная модель 16-ти битового микропроцессора
МП IA-16

3.2.1. Модель памяти

Одна из особенностей МП Intel – это использование сегментированной памяти. Полнокровное развитие персональных ЭВМ (PC) началось с появления 16-разрядных микропроцессоров. Изначально микропроцессоры предназначались для управляющих систем. Персональные ЭВМ проектировались для широкого круга пользователей как максимально дешевых индивидуальных (одна для одного) ЭВМ для эксплуатации без посредников (профессиональных программистов). Для этого они должны были быть снабжены определенными средствами программирования на основе простейших языков программирования (типа Бейсик), управляющей (операционной) программной системой и простейшими офисными системами: текстовыми редакторами, электронными таблицами и т.д.

16-разрядная адресация позволяла адресовать только 216 = 65 536 байт (64 Кбайт). Этого было достаточно для управляющих ЭВМ, но не для PC. Вероятно, по этой причине была выбрана модель структурированной математической памяти (Рис. 3.1.), состоящая из 16 сегментов по 65 536 байт (64 Кбайт). Этот прием позволил увеличить адресное пространство математической памяти в реальном режиме до 220 = 1 048 576 (1 Мбайт).

При этом первые 10 сегментов определялись как память пользователей, а остальные 6 сегментов – как системные (для операционной системы). Кроме этого, вводился еще один дополнительный сегмент (64 Кбайт) для адресации портов. Порты – это программно-доступные (адресуемые) регистры контроллеров устройств ввода-вывода. Это отдельное (дополнительное) адресное пространство процессора.

Биты в памяти, как и в регистрах, нумеруются с младших разрядов. Многобайтные операнды адресуются по номеру младшего байта. Размещение программных объектов без соблюдения правил целочисленных границ не рекомендуется

Использование сегментированной математической памяти для расширения адресного пространства имеет и отрицательные стороны. Это несоответствие адресных структур математической и физической (линейной) памяти.

При каждом обращении к физической памяти необходима процедура преобразование адреса обращения из адреса сегментированной математической памяти в адрес линейной физической памяти. Это процедура трансляции сегмента.

Процедура трансляции сегментов заключается в вычислении адреса линейной, плоской физической оперативной памяти по адресу сегмента и смещению в сегменте.

Вопросы для самопроверки:

1. Понятие сегментированной памяти.

2. Размер сегмента в МП IA-16.

3. Максимальное число сегментов в МП IA-16.

4. Процедура трансляции сегментов в МП IA-16.

5. Место хранения базовых адресов сегментов.


3.2.2. Порты ввода/вывода

МП позволяет адресовать порты в адресном пространстве портов (64 Кб) и адресном пространстве оперативной памяти.

Для адресации портов используются команды IN, INS (для ввода) и OUT, OUTS (для вывода), а для адресации ячеек памяти – любые адресные команды.

Для доступа к порту ввода/вывода, расположенному в адресном пространстве памяти могут использоваться любые работающие с памятью команды. Это дает некоторую гибкость работы с портами. Например, команда MOV позволяет пересылать данные между портом и любым регистром. Команды AND, OR, и TEST позволяют манипулировать с отдельными битами управляющих регистров портов при программировании процедур ввода/вывода. Сегменты логической памяти, порты ввода/вывода и их отображение (возможное размещение) в памяти представлены на рис. 3.1.

Если при отображении портов на адресное пространство памяти используется сегментация, то поля AVL в дескрипторах сегментов позволяют отметить сегменты как неперемещаемые и не подлежащие подкачке.

Все сегменты (включая сегменты портов) в плоской памяти задаются двумя независимыми параметрами: сегментом (базовый адрес сегмента) и адресом объекта в сегменте (смещением в сегменте).

Адресное пространство портов:

  • 216 = 65 536 однобайтных портов с нумерацией от 0 до 65 535 или

  • 215 = 32 768 двухбайтных портов с нумерацией от 0 до 65 534 или

  • 214 = 16 384 четырехбайтовых портов с нумерацией от 0 до 65 532.

В командах ввода/вывода адреса портов от 1 до 255 могут задаваться прямыми адресами:

  • IN al, 24 – ввод байта из 24-го порта в регистр al,

  • IN ax, 24 – ввод слова из 24-го порта в регистр ax,

  • IN eax, 24 – ввод двойного слова из 24-го порта в регистр eax,

Задание в командах портов с адресами больших 255 производится с использованием регистра dx:

  • MOV dx, 1024 ;засылка адреса порта в dx

  • IN al, dx ;ввод байта из 1024-го порта в регистр al,

  • IN ax, 24 ;ввод слова из 1024-го порта в регистр ax,

Вопросы для самопроверки:

1. Понятие портов.

2. Методы адресации портов.

3. Адресация портов в МП IA.

4. Команды обращения к портам в МП IA-16.


2.2.3. Регистровый файл

Регистровый файл МП IA-16 содержит 14 пользовательских регистров:

  • регистры общего назначения (РОНы) – 8 регистров,

  • сегментные регистры – 4 регистра,

  • указатель команд – 1 регистр,

  • регистр состояния (флагов) – 1 регистр.

Все эти регистры в той или иной степени доступны программам пользователей.

Регистры общего назначения

РОНы МП Intel (Рис.3.2) не являются классическими регистрами общего назначения. Они могут задаваться и явными адресами, и по умолчанию (кодом операции, постбайтом и т.д.).

C точки зрения использования регистров по умолчанию, они делятся на две группы:

  • регистры данных – ax, cx, dx и bx (по возрастанию адресов),

  • регистры адресов – sp, bp, si и di (по возрастанию адресов).

Регистр bx, хоть его и относят к группе регистров данных, является и одним из регистров адреса базы данных (для сегмента DS).

Регистр dx может использоваться в качестве адресного регистра портов в командах ввода/вывода.

Регистры cx, si и di по умолчанию используются при обработке строк.

При работе с 16-разрядными операндами и компонентами адреса используются 16-разрядные РОНы – ax, cx, dx, bx, sp, bp, si и di (по возрастанию адресов).

При работе с байтовыми операндами используются 8-разрядные РОНы: al, cl, dl, bl, ah, ch, dh и bh (по возрастанию адресов).

15

8

7

0

ax

ah

al

Аккумулятор

cx

ch

cl

Счетчик

dx

dh

dl

Данные

bx

bh

bl

База (для DS)

sp

Указатель стека

bp

База кадра стека SS)

si

Индекс источника

di

Индекс приемника

Рис. 3.2 РОНы

Сегментные регистры и трансляция сегментов

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

Адрес объекта в сегментированной памяти задается двумя компонентами: базовым адресом сегмента и смещением в сегменте. В команде задается только смещение в сегменте. Базовый адрес сегмента задается содержимым одного из четырех сегментных регистров (рис. 3.3).

МП IA-16 содержали четыре 16-разрядных сегментных регистра:

  • ES – регистр дополнительного сегмента данных,

  • CS – регистр сегмента кода,

  • SS – регистр сегмента стека,

  • DS – регистр сегмента данных,

19

Базовые адреса сегментов

4

3

0

00

ES – Доп. сегмент данных

0000

01

CS – Сегмент кода

0000

10

SS – Сегмент стека

0000

11

DS – Сегмент данных

0000

Рис.3.3. Сегментные регистры IA-16.

Использование регистров CS, SS, DS и ES возможно по умолчанию и с использованием префикса замены сегмента. Базовые адреса сегментов используются для преобразования адреса сегментированной памяти в адрес линейной.

Емкость физической памяти в МП IA-16 позволяет разместить одновременно до 16 полных сегментов по 64 Кбайт (216 байт). Но одновременно, без изменения содержимого сегментных регистров, в реальном режиме IA-16 можно обращаться только к четырем сегментам, по числу сегментных регистров.

Обращатся к другим сегментам (кроме кодовых сегментов), размещенным в оперативной памяти можно:

  • при помощи загрузки базовых адресов в соответствующие сегментные регистры командами пересылки (mov),

  • при помощи команд загрузки сегментных регистров (LES, LDS и LSS).

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

Переходы на новые кодовые сегменты производятся командами межсегментных передач управления.

Преобразование адреса сегментированной памяти в адрес линейной (плоской) памяти производится процедурой трансляции сегмента: сложением базового адреса сегмента с адресом операнда в сегменте.

Но сегментные регистры — 16-битные, а базовые адреса должны быть 20- битными. Поэтому при использовании сегментных регистров их содержимое умножается на 16 добавлением четырех нулей после младшего разряда

Таким образом, адрес в сегменте математической памяти МП IA-16 задается тремя компонентами: B (база), X (индекс) и disp (смещение).

Для вычисления адреса обращения к физической памяти (при сегментированной структуре математической памяти) требуются, по крайней мере, две процедуры:

  • вычисление прямого адреса в сегменте по компонентам (В), (Х) и disp,

  • преобразование адреса в сегменте сегментированной памяти в адрес линейной физической памяти.

Результатом первого преобразования адреса является получение одной компоненты логического адреса – смещения в сегменте, результатом второго преобразования – получение смещения в линейной памяти.

Для уменьшения неопределенности при использовании вышеописанных смещений используют термины:

  • disp – для обозначения смещения в кадре сегмента,

  • offset – для обозначения смещения в сегменте,

  • линейный адрес – для обозначения адреса (смещения) в линейной (не сегментированной) памяти.

Схема вычисления смещения в сегменте (offset) по компонентам адреса, включая смещение в кадре сегмента (disp) и трансляцию сегмента (вычисление линейного адреса в несегментированной памяти) представлена на рис.3.4.

Трансляция сегментов связана с проблемой 20-й адресной шины оперативной памяти. Эта проблема заключается в следующем.

Максимальный адрес сегмента, который может быть записан с сегментный регистр (с учетом четырех нулей в младших разрядах) составляет А max = 220 -24 –1. При использовании этого адреса как базового адреса сегмента, в оставшиеся ячейки памяти можно будет записать только 16 слов. В МП с 20-разрядной адресной шиной остальные данные сегмента запишутся в ячейки оперативной памяти, начиная с нулевого адреса.

В МП IA-32 при работе в реальном режиме (эмуляции МП IA-16) приходится учитывать это явление, используя прием (заворота) 20-й шины адреса

В защищенном режиме, если включен механизм виртуальной памяти, происходит еще одно преобразование адреса – трансляция страниц.

В (МП IA-16) – трансляция страниц (виртуальная память) не реализована.

Указатель команд IP.

Это 16-ти битный регистр – счетчик, вычисляющий адрес следующей команды (в кодовом сегменте) по числу байт в текущей команде. Программе указатель команд доступен только частично по командам передачи управления. В начальное состояние IP устанавливается автоматически при включении процессора. Прямой доступ к IP по записи или чтению не предусмотрен (но возможен доступ к содержимому IP после его копирование в стеке).

Регистр состояния (флагов).

Это 16-разрядный регистр, в котором сгруппированы управляющие сигналы режимов работы основных систем процессора и флаги кодов условий для условных команд передач управления.

Флаги кодов условий передач управления:

  • CF – арифметический перенос в старшие разряды,

  • PF – четность (наличие четности кода результата),

  • AF – дополнительный (десятичный) перенос из младшей тетрады,

  • ZF – нулевой результат,

  • SF – знак результата (для дополнительного кода),

  • OF – переполнение,

  • TF – трассировка (прерывание после выполнения каждой команды для работы в режиме отладки программы),

  • IF – разрешение прерывания,

  • DF – направление обработки строк.

Вопросы для самопроверки:

1. Основные группы пользовательских регистров.

2. Группа регистров данных в составе РОН МП IA-16.

3. Группа регистров адресов в составе РОН МП IA-16.

4. Предназначение регистра IP в МП IA-16.

5. Предназначение регистра F (флагов) в МП IA-16.

6. Основные биты кода условий передачи управления в регистра F (флагов).

7. Назначение сегментных регистров в МП IA-16.

8. Число сегментных регистров в МП IA-16.

9. Спецификации сегментных регистров в МП IA-16.

10. Команды загрузки сегментных регистров в МП IA-16.

11. Причины использования задания адреса в сегменте тремя компонентам.

12. Компоненты адреса, используемые при задании адресов объектов в сегменте памяти.

13. Компонента disp при задании адреса в МП IA.

14. Компонента offset при задании адреса в МП IA.

15. Термин «линейный адрес» при задании адреса в МП IA.

16. Процедура трансляции сегмента при обращении к памяти в МП IA-16.

3.2.4. Структура команд.

Имеется две формы представления машинных команд:

  • на языке программирования машинного уровня (ассемблере),

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

Команды на языке ассемблера.

На языке ассемблера команды содержат символьный код операции и один или два адреса. Команды могут быть одноадресными или двухадресными. Первый адрес в команде – адрес приемника, второй – источника. Оба адреса могут быть адресами РОНов, Адресом оперативной памяти может быть только один.

Исключением являются:

  • команды обработки строк (адреса приемника и источника задаются парами регистров – сегментный регистр:индексный регистр)

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

Адрес оперативной памяти может задаваться прямым адресом (offset) или компонентами (D, X, disp).

Примеры команд на языке ассемблера:

1. mov ax, bx

;копирование в ax содержимого bx,

2.mov ax,[365]

;копирование в ax содержимого ячейки памяти по адресу 356,

3.mov ax, СS:[bх +356]

;копирование в ax содержимого ячейки памяти в сегменте CS по адресу, равному сумме содержимого регистра bx и смещения – 356,

4.mov ax, [bp +si+356]

;копирование в ax содержимого ячейки памяти по адресу, равному сумме содержимого регистров bp, si и смещения 356,

5.mov ax, byte ptr z

; копирование в ax содержимого ячейки памяти по адресу z (конструкция byte ptr z уточняет, что адрес z является адресом одного байта, а не слова).

Машинная кодировка команд IA – 16.

МП IA-16 используют команды переменного формата от 1 до 7 байт. Кодировка команд производилась с учетом частоты использования команды в типовых программах.

Команда может иметь (рис. 3.5.):

  • возможно, префикс (1 или 2 однобайтных префикса),

  • код операции (1 байт),

  • возможно, постбайт (1байт),

  • возможно, байты смещения – disp (1 или 2 байта),

  • возможно, байты непосредственного операнда (1 или 2 байта).

0, 1 или 2

байта

1 байт

0 или 1 байт

0,1 или 2

байта

0,1 или 2

байта

префикс

код

операции

постбайт

байты

смещения

непосредственный операнд

Рис.3.5. Структура команд МП IA -16.

Элементы команды:

Префикс

Это необязательный байт, модифицирующий процедуру выполнения команды.

МП IA – 16 предусматривает использование двух префиксов:

  • повторения,

  • замены сегмента памяти, используемого по умолчанию (только для данной команды).

Префикс повторения

В МП IA–16 строковые команды обрабатывают один элемент строки за один раз. Обработка всей строки обеспечивается префиксами повторения. Один префикс задает повторение действия над следующими элементами до тех пор, пока не будут обработаны все элементы строки, другие – до тех пор, пока выполняется заданное условие. Количество повторений указывается в регистре cx,

Префикс замены сегмента памяти

В МП IA-16 предусмотрены 4 сегментных регистра. Использование любого из них может быть задано по умолчанию или явно, кроме сегмента команд.

По умолчанию используются сегменты:

  • CS – для выборки команд по IP (счетчику команд),

  • DS – для выборки данных, адреса которых используют базу bx,

  • SS – для выборки данных, адреса которых используют базу bp,

  • ES – в командах обработки строк.

Префикс замены сегмента применяется в тех случаях, когда данные находятся не в том сегменте, который принимается по умолчанию. Например:

mov ax, CS:[bх +356]

; база указывает на использование сегмента данных DS, но запись CS: явно указывает на работу с данными, помещенными в кодовый сегмент, поэтому в машинной команде появится префикс замены сегмента DS на сегмент CS

mov ax, ma [bх +356]

; ma это метка, значением ее является адрес ячейки памяти. Если эта ячейка расположена не в сегменте DS, то в машинной команде появится префикс замены сегмента

Код операции

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

  • w – размер операнда (7-й бит), при w = 0 размер операнда – байт, при w = 1 размер операнда – слово.

  • d– направление передачи результата для двухместной команды (6-й бит);

1. при d = 1 – адресом приемника является РОН, заданный полем reg постбайта,

2. при d = 0 – адресом приемника является адрес памяти;

3. в одноместной команде используется только источник и 6-й бит байта кода операции (s=1) определяет автоматическое расширение байта данных до размера слова.

Возможен однобайтовой вариант одноместной команды, в котором адрес данных (номер РОНа) размещается в трех младших разрядах кода операции.

Постбайт

Это необязательный элемент команды. Задает один (для одноадресной команды) или два адреса операндов, один из которых используется и как адрес результата.

7

6

5

3

2

0

md

reg

r/m

Рис. 3.6. Структура постбайта

Постбайт (рис. 3.6) содержит 3 поля:

  • md – поле режима адресации,

  • reg – поле адреса регистра,

  • r/m – поле адреса второго регистра или кода, определяющего способ вычисления адреса ячейки памяти.

Поле md. Это поле режима адресации.

Задает тип команды:

  • регистр/регистр (r/r);

  • регистр/память (r/m).

Для команд типа регистр-память задает процедуру вычисления адреса операнда в памяти:

  • md =00 – режим адресации r/m без использования смещения,

  • md =01 – режим адресации r/m с использованием смещения 1 байт),

  • md =10 – режим адресации r/m с использованием смещения 2 байт),

  • md =11 – режим адресации r/r.

Задании md ¹ 11 определяет команду типа регистр-память. В этом случае поле r/r содержит номер РОНа, в котором находится один из операндов, а поле r/m, – номер алгоритма вычисления адреса памяти, по которому хранится второго операнда.

Исключение:

В адресации операндов, в качестве исключения, имеется возможность задавать адрес операнда в памяти прямым 16-ти разрядным адресом. Признаком прямой адресации является комбинация значений md = 00 и r/m=110 (в табл.1 выделены жирным шрифтом).

Количество байтов смещения disp, расположенных после постбайта, определяется по полю постбайта – md.

В табл.1. представлены все формулы для вычисления адресов РОН и ячеек памяти в зависимости от значений полей постбайта: md, reg, r/m.

На рис. 3.7 представлена структура команд МП Intel в реальном режиме и схемы вычисления адресов операндов.

Таблица 1.Постбайтовые режимы адресации МП IA-16

Поле

r/m

Поле md

00

01

10

11

w = 0

w = 1

000

DS:[bx + si]

DS:[bx + si + disp(1 байт)]

DS:[bx + si + disp(2 байт)]

al

ax

001

DS:[bx + di]

DS:[bx + di + disp(1 байт)]

DS:[bx + di + disp(2 байт)]

cl

cx

010

SS:[bp + si]

SS:[bp + si + disp(1 байт)]

SS:[bp + si + disp(2 байт)]

dl

dx

011

SS:[bp + di]

SS:[bp + di + disp(1 байт)]

SS:[bp + di + disp(2 байт)]

bl

bx

100

DS:[si]

DS:[si + disp(1 байт)]

DS:[si + disp(2 байт)]

ah

si

101

DS:[di]

DS [di + disp(1 байт)]

DS [di + disp(2 байт)]

ch

di

110

DS:[disp-2 байта]

SS:[bp + disp(1 байт)]

SS:[bp + disp(2 байт)]

dh

bp

111

DS:[bx]

DS [bx + disp(1 байт)]

DS [bx + disp(2 байт)]

bh

bx

Структура команд МП Intel в реальном режиме.

0,1 байт

1 байт

0,1 байт

0,1,2 байта

0,1,2 байта

Префикс

Код операции.

Постбайт

Disp

# d

md

r

r/M

2 бита

3 бита

3 бита

если

r/M11,

то – команда типа r/M; базовая индексная адресация; 1-й операнд находится в регистре, указанном полем r, адрес M

вычисляется как (B)+(X)+ #d16, где В и Х задаются кодом поля r/M.

при:

00 ü

Disp – отсутствует

01 ý

Disp = 1 байт

10 þ

Disp = 2 байта

При

11

Команда типа r/r, операнды находятся в регистрах,

указанными полями r и r/M.

Вариант относительно-индексной адресации памяти

если

r/M100,

то команда типа r/M, первый операнд находится в регистре, указанном полем r, адрес M вычисляется как (B)+ Disp, где B– задается кодом поля r/M постбайта.

при

00 ü

Disp – отсутствует

01 ý

Disp = 1 байт

10 þ

Disp = 2 байта

Исключение: при md=00 и r/M = 110, адрес задается прямым 16-ти битным смещением (#d16).

Выбор сегмента: при указании в качестве компоненты адреса – (bp), используется сегмент стека (SS), иначе – сегмент данных (DS)

Рис.3.7. Структура команд МП Intel в реальном режиме и схемы вычисления адресов операндов.

Вопросы для самопроверки:

1. Структура команд в МП IA-16.

2. Назначение префикса в командах МП IA-16.

3. Назначение постбайта в командах МП IA-16.

4. Поля постбайта в командах МП IA-16.

5. Поля постбайта в командах МП IA-16.

6. Тип сегмента используемого по умолчанию при выборке команд в МП IA-16.

7. Тип сегмента используемого по умолчанию при выборке операнда в МП IA-16.

8. Тип сегмента используемого по умолчанию при работе со стеком в МП IA-16.

9. Тип сегмента используемого по умолчанию при работе с командами обработки строк в МП IA-1.

10. Способы замены сегментов, используемых по умолчанию.

11. Назначение постбайта в МП IA-16.

12. Основные поля постбайта в МП IA-16.

13. Назначение поля md постбайта в МП IA-16.

14. Назначение поля reg постбайта в МП IA-16.


3.3. Программная модель 32-х битового микропроцессора

3.3.1. Основные особенности организации

В программной модели МП IA-32 от МП IA-16 с поправками на разрядность ширины обработки данных сохранились следующие решения:

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

  • задание адресов в сегменте компонентами, но с расширением возможностей по заданию адреса в массиве (использование возможности индексирования элементов массива в произвольном порядке),

  • выделение адресного пространства для портов (программно-доступных регистров контроллеров устройств ввода-вывода).

Основной особенностью программной модели МП IA-32, кроме расширения разрядности адресов данных и команд, индексирования элементов массива в произвольном порядке и многократного расширения адресного пространства математической памяти, является встроенная аппаратная система защиты программ от взаимных помех.

Эта система предусматривает:

  • использование специальных программных структур:

1. дескрипторов сегментов, определяющих сегменты (данных, программ),

2. дескрипторов шлюзов (точек входов в программные сегменты).

  • введение системных и пользовательских таблиц дескрипторов,

  • введение новой процедуры программных переходов «переключения задач».

  • введение набора системных регистров дескрипторов.

Дескрипторы сегментов. В реальных режимах МП IA-16 и МП IA-32, сегментные регистры содержат непосредственно базовый адрес сегмента.

В защищенном режиме МП IA-32 задание сегментов производится с использованием специальных программных объектов – дескрипторов сегментов.

Дескриптор сегмента (рис.3.8) является 64-х битовым поисковым образом сегментов. Дескриптор сегмента определяет тип сегмента, расположение в памяти (базовый адрес и размер), права доступа и использования.

Основными полями дескрипторов являются:

  • базовый адрес сегмента (32 бита),

  • размер сегмента (20 бит),

  • поле атрибутов (12 бита).

Поле атрибутов содержит:

  • бит дробности G (Granularity – 4 разряда),

  • тип сегмента,

  • настройки прав доступа и использования (8 разрядов).

Впервые дескрипторы появились в промежуточной 16-битной по данным и 24-битной по адресу модели МП 80286 для организации защищенного режима. В МП 80386, с переходом на полную 32-разрядную архитектуру пришлось изменять разрядность полей сегментных регистров. Но в целях программной совместимости моделей, расположение полей дескрипторов МП 80286 оставили без изменений и в расширенных дескрипторах МП 386 и старше. В результате биты расширений дескрипторов в МП 386 оказались в адресах, несмежных с адресами основных полей.

На рис.2.6. биты полей дескрипторов для наглядности сгруппированы в отдельные массивы смежных адресов.

63

32

31

12

11

8

7

0

Базовый адрес сегмента (B)

Предел (L)

Атрибуты

AR

G

G

P

DPL

S

Type(4бита)

Рис.3.8. Структура дескриптора сегмента

Базовый адрес сегмента (32 бита) определяет адрес сегмента в линейной памяти (оперативной или внешней). Используется в процедурах трансляции сегмента. Для указания о присутствии сегмента в оперативной памяти используется бит P – Present в поле прав доступа AR.

Предел L определяет размер сегмента. Используется для обнаружения обращений к адресам за пределами сегмента, при каждом обращении к сегменту по записи или чтению. Значение предела может быть задано в байтах и в страницах (по 4 Кбайта) битом дробности G (Granularity) в поле атрибутов.

Поле атрибутов содержит бит дробности G, байт прав доступа AR. (тип сегмента, права доступа и использования).

Поле типа сегмента Type в поле ARопределяет тип сегмента. По типу сегменты делятся на системные и несистемные. К несистемным сегментам относятся сегменты, программно доступные программам пользователей. Это ­ кодовые сегменты (программы), сегменты данных и стеков.

По возможностям использования сегменты характеризуются так:

CSисполняемые и читаемые безусловно, записываемые – по биту разрешения,

SS – неисполняемые, читаемые и записываемые безусловно,

ES, DS, FS, GS – неисполняемые и читаемые безусловно, записываемые – по биту разрешения,

Дескрипторы шлюзов программ.

Дескрипторы шлюзов программ. Шлюзы (Gate) – это точки входа в программы (программный сегмент). В МП IA-32 вызов процедур операционной системы (передача управления с повышением уровня привилегий) производится только с использованием шлюзов и только по командам передачи управления с возможностью возврата (запрещено использование команды Jmp).

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

Но все это справедливо только при использовании процедур передачи управления, но не процедур переключения задач.

Структура дескриптора шлюза программных сегментов представлена на рис. 3.9.

Дескриптор шлюза программных сегментов содержит три поля:

  • селектора сегмента,

  • смещения в сегменте (offset),

  • атрибутов.

63

48

47

16

15

0

Селектор

Offset (Смещение в сегменте)

Атрибуты

Индекс(13 бит)

G/L

RPL (2 бита)

Счетчик двойных слов

P

DPL

0

Tipe(4бита)

Рис.3.9. Структура дескриптора шлюза программных сегментов.

Селектор сегмента.

Все дескрипторы, кроме дескрипторов прерываний, (сегментов, задач, шлюзов сегментов или задач) хранятся в оперативной памяти в специальных таблицах GDT (глобальная таблица дескрипторов) и LDT (локальная таблица дескрипторов).

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

Локальные таблицы дескрипторов формируются на каждую задачу (программу, находящуюся в стадии исполнения, возможно, с разделением по времени). Но в каждый момент времени активны только две таблицы: GDT и одна из LDT. Обращение к таблицам производится по селектору сегмента.

Селектор сегмента определяет дескриптор используемого кодового сегмента, т.е. целевой сегмент. Селектор сегмента содержит следующие поля:

  • индекс (13 бит) – используется как адрес в таблице целевого дескриптора (указателя «целевой» строки таблицы дескрипторов),

  • бит типа «целевой» таблицы дескрипторов; при нулевом значении G/Lвыбирается GDT, иначе LDT,

  • поле уровня привилегии запроса (в рассматриваемой конструкции не используется).

Бит G/L селектора допускает возможность использования по обращению к дескрипторам задач как задачам операционной системы, так и пользовательским. Но это выборочный доступ только к определенным «сервисным процедурам», предоставление которых пользовательским задачам является одной из главных функций ОС. Контроль корректности использования сервисных процедур задачами пользователей осуществляется механизмом проверок обращений по уровням привилегий.

Смещение в сегменте (offset)

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

Атрибуты сегмента

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

Процедура переключения задач

Межсегментные переключения задач – это переходы с использованием механизма переключения задач. Возможны две модели переключения задач:

  • прямое переключение задач;

  • переключение задач с использованием шлюзов (косвенное переключение задач).

Модели переключения задач могут использоваться

  • для переключения независимых задач при параллельном их выполнении в режиме разделения времени;

  • вызова процедур:

  • вызова программ обработки прерываний и ловушек;

  • возврата из программ обработки прерываний и ловушек.

Переключение задач при параллельном выполнении программ в режиме разделения времени.

Переключение задач производится с использованием специальных сегментов состояния задач (TSS). Это системные сегменты, предназначенные для копирования основных программно-доступных регистров процессора, хранящих «контекст» программы. Иногда переключение задач называют сменой контекста. В многозадачном режиме работы в стадии выполнения могут находиться несколько задач. Для каждой из них создается сегмент состояния задачи – TSS. Выполнение этих задач может производиться одним процессором в режиме разделения времени. Основным назначением механизма переключения задач является организация очередных переходов между выполняемыми программами.

Переключение программ может производиться командами JMP и CALL типа FAR (межсегментные переходы), командами вызова прерываний, например, INT n, или командой IRET. Кроме этого, переключения задач могут инициироваться прерываниями и ловушками.

В защищенном режиме команды межсегментных переходов содержат полный указатель CS (сегмента) и IP (адрес команды в сегменте – offset). Указатель CS, в свою очередь, может указывать на:

  • дескриптор сегмента,

  • шлюз дескриптора сегмента,

  • дескриптор TSS,

  • дескриптор шлюза TSS.

Все зависит от выбора стратегии разработчиками ОС.

В первых двух случаях реализуется процедура передачи управления:

  • прямой передачи управления (без изменения уровней привилегий) или

  • через шлюз (с возможностью увеличения уровня привилегий, но по командам, предусматривающим возвращение, – например Call).

В двух последних случаях реализуется процедура переключения задач:

  • прямого переключения задач, если селектор указывает на дескриптор задачи (используется при переключениях задач на одном уровне привилегий),

  • косвенного переключения задач, если селектор указывает на шлюз задачи (используется при переключениях с изменениями уровня привилегий).

При косвенном переключении задач производится дополнительное обращение к таблице дескрипторов GDT. Обращение производится по значению указанного в шлюзе селектора дескриптора целевого кодового сегмента.

Сегмент состояния задачи (TSS) является сегментом, но системным. Дескриптор TSS по структуре совпадает с дескриптором программных сегментов (см. рис. 3.8.), в поле атрибутов которых отмечено, что они системные.

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

Процедура переключения задач состоит из 3-х пересылок
(см. рис.3.10):

1. сохранение содержимого всех программно-доступных регистров процессора в сегменте TSS; базовый адрес сегмента TSS берется из системного регистра TR,

2. адрес сегмента TSS новой задачи по селектору из прямой команды перехода или по содержимому поля CS дескриптора шлюза задачи переписывается в системный регистр TR.

3. содержимое TSS новой задачи переписывается в регистры процессора, и процессор начинает выполнение программы — цели.

Длительность процедуры переключения задач – 200 тактов.

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

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

Обработка ловушек

Обработка ловушек– это обработка события, непосредственно связанная с выполнением текущей программы. Следовательно, обработчик прерывания должен попадать в контекст выполняемой программы. В общем случае, смена контекста здесь противопоказана. Но в некоторых случаях механизм переключения задач и при обработке ловушек может быть полезен.

Прерывания

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

Механизм выполнения команды IRET

Механизм выполнения команды IRET определяется способом вызова процедуры обработки прерывания.

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

Если переключение задач вызывается командами CALL, командой вызова прерываний, например, INT n, или прерыванием, то процессор устанавливает бит вложенности NT в регистре флагов FLAGS и бит занятости B в поле прав доступа дескриптора. Затем записывает селектор дескриптора TSS прерываемой программы в специальное поле «селектора возврата» TSS принимающей программы, и производится процедура переключения задач по схеме 3.10. После этого обе задачи становятся занятыми. Это запрещает применение рекурсивных процедур и реентерабельных программ.

Если переключение задач вызывает команда JMP, то селектор возврата, бит вложенности и бит занятости не устанавливаются.

При выполнении команды возврата процессор проверяет бит вложенности (NT) и выбирает механизм перехода. В случае использования переключения задач читается селектор TSS программы возврата.

Отсутствие прямого взаимодействия программ при переходах с использованием механизма переключения задач позволяет значительно смягчить требования к доступности программ по условиям корректности переходов с изменением уровня привилегий. Но все проверки, непосредственно не связанные с уровнями привилегий, выполняются в том же объеме.

Но по чтению и по записи TSS программно недоступен. Создание, модификацию и чтение TSS операционные системы могут производить путем отображения в тот же адрес памяти дескриптора сегмента данных.

Вопросы для самопроверки:

1. Назначение дескриптора сегментов в защищенном режиме МП IA-32.

2. Назначение дескриптора шлюзов в защищенном режиме МП IA-32.

3. Процедура переключения задач в защищенном режиме МП IA-32.

4. Основные поля дескрипторов сегментов и шлюзов.

5. Использование поля базового адреса сегмента и поля предела в дескрипторе сегмента.

6. Назначение поля атрибутов в дескрипторе сегмента.

7. Возможности использования сегментов CS, SS, ES, CS..

8. Понятие селектора сегмента.

9. Процедура переключения задач.

10. Термины: TSS, шлюз TSS.

11. Этапы процедуры переключения задач.

3.3.2. Модель памяти

В защищенном 32-х разрядном режиме МП Intel сегментная структура памяти сохранилась, но изменились размеры сегментов и максимальный размер математической памяти:

  • максимальный размер сегмента стал равен:
    – 232 = 4 294 967 296 байт (4 Гбайта),

  • максимальное количество сегментов – 214 = 16384 (16 Кбайт),

    • адресное пространство математической памяти
      – 246 = 70 368 744 177 664 = (64 Тбайт).

Максимальный объем физической линейной памяти определяется разрядностью шин адреса и разрядностью сегментного регистра. При разрядности шин адреса – 32 бита, возможность наращивания емкости оперативной памяти ограничивается величиной 4 Гбайта, т.е. – адресным пространством 1 сегмента.

При добавлении разрядных шин адреса ограничение определяется разрядностью сегментного регистра (32 бита). При использовании максимального значения сегмента в 4 Гбайта и максимального значения начального адреса сегмента в линейной памяти – возможность наращивания емкости оперативной памяти ограничивается величиной 8 Гбайт (2 сегмента по 4 Гбайт).

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

Схема сегментированной математической памяти и адресация физической памяти в МП IA-32 представлена на рис. 3.11.

Вопросы для самопроверки:

1. Максимальный размер сегмента в МП IA-32.

2. Максимальное количество сегментов в МП IA-32.

3. Чем определяется максимальное количество сегментов в МП IA-32.

4. Максимальный размер математической памяти сегментов в МП IA-32.

5. Максимальный адрес обращения к оперативной памяти без использования трансляции страниц.


3.3.3. Регистровый файл

По сравнению с реальным режимом МП IA-16 в защищенном режиме МП IA-32 регистровый файл увеличился до 32 регистров. К регистрам пользователей (16) добавились системные регистры (16).

Регистры пользователей:

  • регистры общего назначения (РОНы): 8 регистров по 32 бита,

  • указатель команд: 1 регистр – 32 бита,

  • регистр состояния (флагов): 1 регистр – 32 бита

  • сегментные регистры: 6 регистров по 16 бит,

В состав системных регистров входят:

  • регистры системных адресов: 4 регистра,

  • регистры управления, отладки и тестирования: 16 регистров.

Регистры пользователей

Регистры общего назначения (рис. 3.12).

Как и в МП IA-16, с точки зрения использования регистров, они не являются классическими регистрами общего назначения. Они могут задаваться по умолчанию (кодом операции, постбайтом и т.д.) По использованию регистров по умолчанию, они делятся на две группы:

  • регистры данных – eax, ecx, edx и ebx (по возрастанию адресов),

  • регистры адресов – esp, ebp, esi и edi (по возрастанию адресов)

31

16

15

8

7

0

eax

Расширения

ah (4)

al (0)

ax

Аккумулятор

ecx

(до 32 бит)

ch (5)

cl (1)

cx

Счетчик

edx

Могут

dh (6)

dl (2)

dx

Данные

ebx

использоваться

bh (7)

bl (3)

bx

База (для DS)

esp

и

sp (4)

Указатель стека

ebp

в реальном

bp (5)

База кадра стека SS)

esi

si (6)

Индекс источника

edi

режиме

di (7)

Индекс приемника

Рис3.12 Регистры общего назначения (РОНы)

Регистр ebx, хотя его и относят к группе регистров данных, но он же является одним из регистров адреса базы сегмента данных.

При работе с 16-ти битовыми операндами и компонентами адреса используются 16-битовые РОНы – ax, cx, dx, bx, sp, bp, si и di (по возрастанию адресов).

При работе с байтовыми операндами используются 8-битовые РОНы: al, cl, dl, bl, ah, ch, dh и bh (по возрастанию адресов).

В защищенном режиме по отношению к их содержимому (данные, компоненты адреса) регистры стали более симметричными.

Для улучшения симметричности в использовании РОНов в защищенном режиме работы предусмотрена возможность использования любых РОНов, кроме esp, в качестве хранения компонент адреса. Они могут участвовать в операциях и как регистры данных. Специализация регистров заключается в том, что при выполнении ряда команд используются один, два или три регистра, определенных по умолчанию.

Например, команды обработки строк по умолчанию используют содержимое регистров ecx, esi и edi. Это обеспечило некоторую оптимальность кодирования. Но нерегулярная структура РОНов требует от программистов осторожности при распределении и использовании РОНов.

На рис.3.12 РОНы в таблице представлены не в алфавитном порядке их обозначений, а по возрастанию их номеров.

Указатель команды (EIP)

Это 32-х битный регистр (рис.3.13), который содержит адрес команды в кодовом сегменте (смещение в кодовом сегменте). После выборки очередной команды содержимое регистра увеличивается на количество байт в выбранной команде. Младшие 16 разрядов указателя команд (IP) используются в реальном (шестнадцатибитном) режиме работы МП.

Регистр состояния (EFLAGS)

Это 32-битный регистр (рис. 3.13), содержащий флаги, управляющие некоторыми операциями и отражающие состояние процессора. Все флаги регистра можно разбить на группы:

  • флаги состояния,

  • управляющие флаги,

  • системные флаги.

31

16

15

0

EIP

Могут использоваться

IP

Eflags

и в реальном режиме

Fflags

Рис 3.13. Указатель команд и регистр флагов

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

В эту группу флагов входят:

  • OF – переполнение: результат превысил предел для чисел,

  • SF–знак: результат отрицательный ,

  • ZF–нуль: результат равен нулю,

  • AF–перенос (вспом.): перенос из третьего бита (десятичный),

  • PF–четность : мл. байт содержит четное число единиц,

  • CF–перенос: перенос за пределы значащих цифр.

Управляющий флаг DF

Управляющий флаг DF определяет порядок выполнения операций со строками. Непосредственно управляет счетчиком. При DF=0 счетчик инкрементируется, иначе – декрементируется.

Системные флаги

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

Некоторые из указанных выше регистров в защищенном режиме имеют разрядность, расширенную до 32.

Они могут быть использованы программами и в реальном режиме.

Сегментные регистры

Архитектура IA-32 поддерживает сегментированную память. При этом адрес объекта в сегментированной памяти задается двумя компонентами: базовым адресом сегмента и смещением в сегменте. В команде задается только смещение в сегменте. Количество сегментных регистров увеличилось на два (FS и GS). Изменилось и содержимое сегментных регистров. В МП IA-16 сегментные регистры содержат базовые адреса сегментов, а в МП IA-32 – селекторы сегментов.

Сегментные регистры в защищенном режиме дополняются 64-разрядными регистрами дескрипторов сегментов (рис.3.14) В системе не предусмотрено ни одной команды прямого обращения к ним. В этом смысле они программно невидимы. Это регистры аппаратных средств системы защиты программ от взаимных помех.

15

0

64

0

ES

Селектор ES

Дескриптор сегмента ES

Доп. сегмент данных

CS

Селектор CS

Дескриптор сегмента CS

Сегмент кода

SS

Селектор SS

Дескриптор сегмента SS

Сегмент стека

DS

Селектор DS

Дескриптор сегмента DS

Сегмент данных

FS

Селектор FS

Дескриптор сегмента FS

Доп. сегмент данных

GS

Селектор GS

Дескриптор сегмента GS

Доп. сегмент данных

Сегментные

регистры

Регистры дескрипторов сегментов

Рис.3.14. Сегментные регистры

Назначение сегментных регистров в защищенном режиме осталось прежним: использование в процедуре трансляции адресов, но сама функция и содержимое этих регистров существенно изменились.

Селектор сегмента в защищенном режиме МП IA-32 – это указатель номера строки таблицы дескрипторов, в которой находится заданный дескриптор. Преобразование логического адреса в линейный (адрес плоской памяти) производится процедурой трансляции сегмента.

МП содержит 6 шестнадцатибитных сегментных регистров:

  • CS – сегмента кода,

  • SS – сегмента стека,

  • DS – сегмента данных,

  • ES – дополнительный сегмент данных,

  • FS – дополнительный сегмент данных,

  • GS – дополнительный сегмент данных.

Использование регистров CS, SS, DS и ES принято по умолчанию. Для использования регистров FS и GS необходима явная ссылка на них в префиксе замены сегментов. Использование сегментных регистров зависит от режима работы МП.

Системные регистры

Регистры системных адресов.

В защищенном режиме задание и работа с сегментами и шлюзами производится с использованием соответствующих дескрипторов, которые сохраняются в специальных таблицах:

  • GDT (глобальная таблица дескрипторов) – используется для хранения системных дескрипторов и шлюзов.

  • LDT – локальная таблица дескрипторов, формируется индивидуально для дескрипторов каждой прикладной задачи.

  • IDT таблица дескрипторов прерываний; может содержать до 256 дескрипторов шлюзов прерываний, ловушек или шлюзов состояния задач (TSS).

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

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

47

База

16

15

Предел

0

GDTRR

Базовый адрес

Предел

IDTR

Базовый адрес

Предел

Рис. 2.15. Системные регистры (адресов GDTR и IDTR)

Таблица GDT используется:

  • программами операционной системы для поиска программных объектов дескрипторов сегментов и шлюзов в глобальной таблице дескрипторов (GDT) при выполнении команд загрузки (активизации) сегментов данных и программ.

  • прикладными программами при межсегментных передачах управления.

Таблицы LDT формируются для всех задач пользователей.

Любая задача пользователя имеет доступ к таблице GDT и только к своей таблице LDT для обращения к локальным (своим) сегментам данных и программ.

Использование индивидуальных таблиц LDT является одним из элементов разделения адресных пространств задач аппаратного механизма защиты программ от взаимных помех при многозадачных режимах работы.

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

  • по селектору команды передачи управления делается обращение к регистру GDTR для чтения базового адреса таблицы GDT,

  • производится трансляция сегмента (вычисление линейного адреса строки таблицы сложением базового адреса таблицы GDT с индексом селектора, заданного командой передачи управления)

  • производится обращение к таблице GDT для чтения дескриптора.

Здесь возможны четыре случая:

  • чтение дескриптора целевого программного сегмента,

  • чтение дескриптора шлюза программного сегмента,

  • чтение дескриптора TSS,

  • чтение дескриптора шлюза TSS.

В первом случае процессор производит прямую передачу управления на команду нового программного сегмента по смещению (offset), заданному в команде.

Во втором случае, по селектору, заданному шлюзом, производится новое обращение к таблице GDT для чтения самого программного сегмента и только после этого производится процедура прямой передачи управления.

В третьем случае производится прямое переключение задач.

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

15

0

47

16

15

0

LDTR

Селектор

Базовый адрес

Предел

TR

Селектор

Базовый адрес

Предел

Рис. 3.16. Системные регистры (адресов LDTR и TR)

Таблица IDT содержит до 256 строк для хранения шлюзов прерывания,

ловушки или TSS. Каждому из перечисленных типов шлюза соответствует своя особенность процедуры прерывания.

В состав системных регистров входят (рис.3.17):

  • регистры управления, отладки и тестирования – 17 регистров,

  • регистры системных адресов – 4 регистра,

Регистры управления, отладки и тестирования

В состав регистров управления, отладки и тестирования (рис.3.17) входят:

  • 4 управляющих регистра (CR0, CR1, CR2, CR3) по 32 бита,

  • 8 регистров отладки (DR0 ¸ DR7) по 32 бита,

  • 5 тестовых регистров (TR3 ¸ TR7) по 32 бита.

31

0

CR0– СR3

В реальном

Управляющие регистры

DR0-DR7

режиме

Регистры отладки

TR3-TR7

доступны

Тестовые регистры

Рис. 3.17. Системные регистры

Вопросы для самопроверки:

1. Количество и разрядность РОН в МП IA-32,

2. В чем выражается увеличение симметричности использование РОН в МП IA-32.

3. Назначение регистра флагов в МП IA-32.

4. Флаги кодов условий регистра флагов в МП IA-32.

5. Содержимое полей сегментных регистров в МП IA-32.

6. Размерность, поля и использование дескрипторных регистров, ассоциативно связанных с сегментными регистрами в МП IA-32.

7. Количество сегментных регистров и их назначение в МП IA-32.

8. Назначение и максимальный размер таблицы GDT в МП IA-32.

9. Назначение и максимальный размер таблицы LDT в МП IA-32.

10. Назначение и максимальный размер таблицы IDT в МП IA-32.

11. Назначение и содержимое GDTR в МП IA-32.

12. Поля GDTR в МП IA-32.

13. Назначение и содержимое IDTR в МП IA-32.

14. Поля IDTR в МП IA-32.

15. Назначение и поля селектора IDTR в МП IA-32.

16. Назначение и поля дескриптора IDTR в МП IA-32.

17. Назначение и поля селектора TR в МП IA-32.

18. Назначение и поля дескриптора TR в МП IA-32.

3.3.4. Структура команд и режимы адресации

Команды архитектуры МП IA-32 могут определять до трех операндов. При этом один из операндов задается непосредственным значением (#d), второй операнд – номером РОНа или адресом памяти, а адрес результата – номером РОНа. Это двухместная команда типа #d, r/M, r с явным задание заданием двух операндов и адреса результата.

Пример: команда IMUL – умножение целых со знаком.

Большинство команд архитектуры IA-32 используют только два адреса. Они образуют пять основных групп команд:

  • регистр-регистр (r/r),

  • регистр-память (r/m),

  • память-регистр (m/r),

  • непосредственный операнд-регистр (#d/r),

  • непосредственный операнд-память (#d/m).

Исключением является команда MOVS – команда строковой передачи данных типа память–память (адреса ячеек памяти задаются содержимым пар регистров базы/индекс) и команды работы со стеком, которые перемещают данные из памяти в стек, который также находится в памяти. Эта команды типа память–память, но в них явно задается только один адрес памяти в форме непосредственного операнда (#d).

Структура команды. Команда в защищенном режиме (рис. 3.17) может содержать от 1 до 17 байт:

0, 1,2,3,4

или 5 байта

1 байт

0 или1 байт

0 или1 байт

0,1,2 или 4

байта

0,1,2

или 4 байта

префикс

код

операции

постбайт

SIB — байт

байты

смещения

байты

операнда

Рис.3.17. Структура команд МП IA -32.

1. Префиксы (0,1,2,3 или 4 байт):

  • префикс блокировки шины реализует блокировку шин к общим ресурсам.

  • префикс замены сегмента в явной форме указывает сегментный регистр, используемый программой,

  • префикс переключения разрядности адреса изменяет принятую по умолчанию разрядность адреса на альтернативную (с 2-х байт на 4 или наоборот),

  • префикс размер операнда изменяет разрядность операнда, принятую по умолчанию.

  • префикс повторения используется с командами обработки строк, задает условие окончания операции.

2. Код операции (1или 2 байта) – задает операцию.

3. Постбайт (0 или 1 байт) – если присутствует, задает тип команды регистр/регистр (r/r) или регистр/память(r/m), а также определяет режим адресации памяти для команды типа регистр/память.

4. Байт SIB (scale-index-base – масштаб-индекс-база) – может отсутствовать; если присутствует – является дополнением к постбайту, модифицирующим процедуру базово-индексной адресации; присутствие байта SIB определяется полем постбайта r/m =100.

5. Смещение – компонента адреса; задает смещение, размер которого (1, 2. или 4 байта). Смещение может отсутствовать, его присутствие определяется постбайтом.

6. Непосредственный операнд – определяется кодом операции, если присутствует, то используется в качестве одно, двух или четырехбайтного операнда.

Режим адресации операндов

Режим адресации операндов в команде определяется кодом операции, постбайтом и байтом SIB. Режим адресации определяет местонахождение компонент и алгоритм вычисления адреса операнда в памяти.

В защищенном режиме МП IA –32 используются следующие виды адресаций:

  • непосредственная (константа) MOV еax, 0002h,

  • прямая (#d – смещение) MOV еbx, [0002h],

  • регистровая (любой РОН, кроме ebp) MOV еbx, еах,

  • косвенная регистровая MOV еах, [еbx],

  • базовая со смещением MOV еах, [еbx+001Ah],

  • базовая индексная без смещения MOV еах, [еbp+esi*8],

  • базовая индексная со смещением MOV еах, [еbp+esi*8+1Ah],

Предусмотрены два способа задания смещения операнда в таблицах.

1. Для обращения к элементам таблицы (спискам) последовательно по смежным адресам; устанавливается значением поля r/m ¹ 100 в постбайте,

2. Для обращения к элементам таблицы в произвольном порядке их адресов; устанавливается значением поля r/m = 100 в постбайте при разрядности по адресу в 32 бита.

Постбайт

Это необязательный элемент команды. Задает один (для одноадресной команды) или два адреса операндов, один из которых используется и как адрес результата.

7

6

5

3

2

0

md

r/r

r/m

Рис. 3.18. Структура постбайта

Постбайт (рис. 3.18), как и в МП IA-16, содержит 3 поля:

  • md – поле режима адресации,

  • r/r – поле адреса регистра,

  • r/m – поле адреса второго регистра или кода алгоритма вычисления адреса памяти.

Поле md

Это поле режима адресации, задающее тип команды: регистр/регистр (r/r) или регистр/память (r/m).

Для команд регистр/память задает процедуру вычисления адреса операнда в памяти:

  • md =00 – режим адресации r/m без использования смещения,

  • md =01 – режим адресации r/m с использованием смещения 1 байт,

  • md =10 – режим адресации r/m с использованием смещения 2 или 4 байта в зависимости от установки разрядности данных для конкретной программы. Предусмотрена возможность изменения разрядности данных для отдельных команд с использованием префикса.

    • md =11 – режим адресации r/r.

Задание md ¹ 11 определяет команду типа регистр/регистр. В этом случае поле r содержит номер РОНа, в котором находится один из операндов, а поле r/m, – номер РОНа, в котором находится второй операнд.

В 32-х разрядном режиме адресации, правила вычисления адреса операндов в сегменте (offset) определяются полям r/m постбайта. Значения поля r/m, кроме значения r/m ¹ 100, задают формулы вычисления адреса второго операнда по 2-м компонентам: B и смещению (disp). Смещение, в зависимости от значения поля md постбайта и установки разрядности данных, может быть нулевым, однобайтным, двухбайтным или четырехбайтным.

Значение поля r/m = 100 задает новый способ задания адресов, упрощающий процедуру вычисления при обращении к таблицам по произвольным адресам. Этот способ использует дополнительный байт SIB.

Имеется исключение: при значении полей постбайта r/m = 101 и md = 00 адрес операнда задается прямым адресом (4 байта) в поле смещения (см. табл. 2)

Таблица 2.Режимы адресации МП IA-32 без использования SIB-байта (r/m ¹ 100).

Поле

r/m

Поле md

00

01

10

000

DS:[еах]

]

DS:[еах+disp (1 байт)]

]

DS:[еах+disp (4 байт)]

]

001

DS:[еcх]

DS:[еcх+disp (1 байт)]

DS:[еcх+disp (4байт)]

010

SS:[еdх]

SS:[еdх+disp (1 байт)]

]

SS:[еdх+disp (4 байт)]

]

011

SS:[еbх]

SS:[еbх+disp (1 байт)]

]

SS:[еbх+disp (4 байт)]

]

100

SIB

SIB

SIB

101

DS:disp (4 байт).

SS:[ebp+disp (1 байт)]

SS:[ebp+disp (4 байт)]

110

DS:[еsх]

]

DS:[еsх+disp (1 байт)]]

]

DS:[еsх+disp (4 байт)]]

]

111

DS:[еdх]

DS:[еdх+disp (1 байт)]]

DS:[еdх+disp (4 байт)]]

Режимы адресации МП IA-32 с использованием SIB-байта

Режимы адресации МП IA-32 с использованием SIB-байта (r/m = 100) означают, что следующий байт команды является SIB-байтом, а адрес операнда в упорядоченном массиве данных (таблицах) памяти вычисляется по формуле:

(B) + 2S (I) + Disp,

где: B, I и S – поля байта SIB.

Режимы адресации с использованием SIB-байта представлены в табл. 3.

Таблица 3. Режимы адресации МП IA-32 с использованием SIB- байта(r/m = 100)

Поле r/m постбайта

Поле md

00

01

10

100

DS:[eax + I´2S ]

]

DS:[eax + I 2S + disp (16 )] та)]

]

DS:[eax + I 2S + disp (32)]

DS:[ecx + I´2S ]

DS:[ecx + I´2S + disp (16)]

DS:[ecx + I´2S + disp (32)]

DS:[edx + I´2S ]

DS:[edx + I´2S + disp (16)]

DS:[edx + I´2S + disp (32)]

DS:[ebx + I´2S ]

DS:[ebx + I´2S + disp (16)]

DS:[ebx + I´2S + disp (32)]

SS:[esp + I´2S ]

SS:[esp + I´2S + disp (16)]

SS:[esp + I´2S + disp (32)]

DS:disp (32 бита)

DS:[ebp + I´2S + disp (16)]

DS:[ebp + I´2S + disp (32)]

DS:[esi + I´2S ]

DS:[esi + I´2S + disp (16)]

DS:[esi + I´2S + disp (32)]

DS:[edi + I´2S ]

DS:[edi + I´2S + disp (16)]

DS:[edi + I´2S + disp (32)]

Примечание:

В качестве индексного регистра может быть указан любой РОН, кроме указателя стека (100).

Когда поле индекса содержит 100, указывающее, что индексный регистр не используется, поле SS должно содержать 00, иначе линейный адрес, будет считаться неопределенным

Трансляция сегментов в защищенном режиме МП IA-32

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

Для решения этой проблемы процессор содержит шесть сегментных регистров. С каждым 16-битным сегментным регистром ассоциативно связаны по одному из шести программно-недоступных 64-битных регистров дескрипторов (см. рис. 3.12). Эти регистры предназначены для хранения шести дескрипторов сегментов после их активизации.

Активизация дескрипторов осуществляется командами загрузки сегментного регистра (кроме CS) или командами межсегментных передач управления (для активизации сегментов программ). При этом в дескрипторном регистре запоминается дескриптор, а в 16-битном регистре – адрес его расположения в таблице дескрипторов.

Схема трансляции сегментов

МП содержит 6 регистров сегментов. Это означает, что одновременно могут быть активными и участвовать в процедуре трансляции только 6 сегментов. Для загрузки сегментов данных, включая сегмент стека, имеются специальные команды «загрузить сегмент».

В работе механизма защиты при обращении к данным можно выделить два этапа:

  • загрузка (активизация) сегмента данных,

  • обращение к сегменту данных для чтения или записи операндов при выполнении команд программы (с использованием процедуры трансляции сегмента).

Загрузка сегментов данных (включая стековые) производится командами «Загрузка указателя в регистр смещения». Это команда типа регистр — память:

(LDS, LES, LFS, LGS, LSS) reg, mem.

Основные этапы выполнения команды:

  • чтение по адресу «mem»;

  • прочитанные данные интерпретируются как: селектор целевого сегмента, смещение (адрес в целевом сегменте),

    • сохранение выбранных значений в буферных регистрах,

    • обращение к таблице дескрипторов по выбранному целевому селектору,

    • сохранение значения дескриптора целевого сегмента в дескрипторный регистр, ассоциативно связанный с заданным сегментным регистром;

    • загрузка в РОН, указанный полем reg команды, смещения, выбранного при чтении по адресу «mem». В дальнейшим этот адрес может использоваться в качестве базового для задания адресов компонентами.

Схема выполнения команды загрузки сегментного регистра (рис. 3.19).

Обобщенная схема вычисления линейного адреса в защищенном режиме представлена на рис. 3.20.

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

Вопросы для самопроверки:

1. 5 групп двуместных команд.

2. Структура команд МП IA-32 (побайтно).

3. Префикс блокировки шины.

4. Префикс блокировки замены сегмента.

5. Префикс переключения разрядности адреса.

6. Префикс переключения разрядности адреса.

7. Префикс повторения.

8. Поля и назначение постбайта в МП IA-32.

9. Поля и назначение SIB-байта в МП IA-32.

10. Процедура активации сегментов в МП IA-32.

11. Процедура трансляции сегментов в МП IA-32.

12. Определите и расшифруйте коды поля md постбайта в МП IA-32.

13. Определите и расшифруйте коды поля r/r постбайта в МП IA-32.

14. Определите и расшифруйте коды поля r/m постбайта в МП IA-32.


3.3.5. Структура данных

Архитектура IA-32 предполагает наличие не менее двух процессоров, даже если они интегрированы в одном блоке. В поздних моделях МП их называют не процессорами, а модулями обработки данных. Здесь речь идет, скорее, о множестве структур данных, в зависимости от реализованных в процессоре «арифметик».

Основным модулем обработки данных является модуль обработки чисел с фиксированной запятой (точкой). В настоящее время – это целочисленная арифметика, обработка двоично-десятичных чисел и строк символов.

Дополнительным модулем является модуль обработки чисел с плавающей запятой (модуль обработки вещественных чисел).

В МП, начиная с Pentium MMX, используется дополнительный мультимедийный модуль обработки векторных данных.

Модуль обработки чисел с фиксированной запятой использует основной набор регистров общего назначения (РОНы) и следующие форматы данных:

1. Целые числа без знака:

  • байт диапазон: от 0 до 255,

  • слово диапазон: от 0 до 65 535,

  • двойное слово диапазон: от 0 до 4 294 967 295.

2. Целые со знаком:

  • знак и 7 бит диапазон: от (–128) до 127,

  • знак и 15 бит диапазон: от (–32 768) до 32 767,

  • знак и 31 бит диапазон: от (–от 2 147*109) до 2 147 *109.

3. Двоично-десятичные числа.

  • неупакованный формат BCD – одна беззнаковая цифра в байте; цифровое значение определяется младшим полубайтом; старший полубайт должен быть нулевым при операциях умножения или деления; в других операциях старший полубайт может быть любым,

  • упакованный формат BCD – две цифры в байте; цифра в старшем полубайте является более значимой; диапазон – от 0 до 99.

4. Близкий указатель – 32-битное смещение в сегменте.

5. Дальний указатель – 48-битный логический адрес; содержит селектор сегмента (16 бит) и смещение в сегменте (32 бита).

6. Строка – непрерывная последовательность байт, слов или двойных слов длиной до 4 Гбайт.

7. Битовое поле – непрерывная последовательность бит, в которой каждый бит рассматривается как независимая переменная. Битовое поле может начинаться с любого бита в любом байте и быть длиной до 32 бит.

8. Битовая строка – непрерывная последовательность бит; может начинаться с любого бита в любом байте и быть длиной до 4 Гбайт.

Модуль обработки чисел с плавающей запятой использует свой набор регистров общего назначения (РОНы), свои команды, свои форматы данных и свой регистр слова состояния FGU модуля (аналог регистра EFLAGS) .

Особенностью модуля с плавающей запятой является то, что набор РОН (восемь 80-битных регистров) организован в виде стека. Указатель стека TOP расположен в регистре слова состояния FGU модуля. Стековая организация РОНов упрощает процедурное программирование, в частности передачу параметров через стек. Структура регистра общего назначения модуля FGU представлена на рис. 3.21.

Регистры содержат три поля: знака, порядка и мантиссы.

Знак – это знак числа и знак мантиссы. Для задания отрицательных значений мантиссы используется прямой код (0 – положительные значения, 1 – отрицательные).

Характеристика – это смещенный (нормализованный) порядок числа (10 бит), диапазон представления чисел: 2±1634 = 10±4932.

Мантисса – нормализованная дробь типа 1,a1,a2, ai…a63, где: аi – двоичная цифра, причем дробная часть мантиссы 0.

79

78

64

63

0

Знак

Характеристика

Мантисса

Рис.3.21. Структура регистра общего назначения FGU модуля

Команды используют числа с плавающей запятой следующих форматов:

  • обычной точности: знак – 1 бит, порядок – 8 бит, мантисса – 24 бита, первая цифра мантиссы (всегда 1) в поле команды не пишется; всего фиксируются 32 бита.

  • двойной точности: знак – 1 бит, порядок – 11 бит, мантисса – 53 бита, первая цифра мантиссы (всегда 1) в поле команды не пишется.

  • расширенной точности: знак – 1 бит, порядок – 15 бит, мантисса – 64 бита, включая первую цифру.

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

Мультимедийный модуль

Мультимедийный модуль обработки векторных данных. Этот модуль, появившись в МП Pentium Pro в варианте 57 команд обработки векторных 64-битных данных с фиксированной запятой, в последующих моделях непрерывно совершенствовался.

В моделях МП Pentium 4 стало использоваться второе поколение потоковых команд расширения SSE2 (Streaming SIMD Extensions 2). Набор из 144 команд SSE2 поддерживает новые форматы упакованных данных с использованием 128-разрядных регистров (XMM-регистров) как при операциях с плавающей запятой, так и при операциях с фиксированной запятой.

Вопросы для самопроверки:

1. Диапазон представления чисел без знака в формате байта.

2. Диапазон представления чисел без знака в формате слова.

3. Диапазон представления чисел без знака в формате двойного слова.

4. Диапазон представления чисел со знаком в формате байта.

5. Диапазон представления чисел со знаком в формате слова.

6. Диапазон представления чисел со знаком в формате двойного слова.

7. Неупакованный формат представления двоично-десятичных чисел.

8. Упакованный формат представления двоично-десятичных чисел.

11. Понятие строка.

12. Понятие битовая строка.

13. Понятие битовое поле.

14. Количество и структура РОН для данных в форме с плавающей запятой.

15. Команды расширения SSE2.

Понравилась статья? Поделить с друзьями:
  • Основы менеджмента подготовка к экзамену
  • Основы математики для сдачи егэ
  • Основы логистики экзамен
  • Основы логики егэ информатика
  • Основы криптографии экзамен