Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вывести.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.42 Mб
Скачать
  • логические операции.

    Характеристики АЛУ:

    1. разрядность,

    2. состав операций,

    3. форматы обрабатываемых данных,

    4. способ построения и функционирования,

    5. быстродействие,

    6. надежность.

    Классификация АЛУ:

    1. По способу обработки операндов:

    1. последовательные,

    2. параллельные,

    1. По способу организации:

    1. синхронные,

    2. асинхронные,

    1. По характеру использования элементов и узлов:

    1. блочные,

    2. многофункциональные.

    Полотно 110

    БМУ – блок местного управления

    Рисунок - Обобщенная структурная схема АЛУ

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

    Алгоритм операций АЛУ включает определенную последовательность элементарных действий (микроопераций). Основные микрооперации АЛУ:

    1. прием кода операнда,

    2. преобразование кода операции,

    3. суммирование кодов операндов,

    4. сдвиг кода операнда,

    5. выдача кода результата.

    Для выполнения перечисленных действий АЛУ должно содержать следующие функциональные узлы:

    • регистры для хранения кодов операндов на время выполнения действий над ними,

    • сдвигатели для выполнения сдвигов вправо/ влево на требуемое число разрядов,

    • преобразователи для преобразования прямого кода числа в обратный и дополнительный,

    • сумматор.

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

    1. Устройство управления мп. Понятия микропрограмм, микрокоманд и микроопераций.

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

    В ходе дешифрации команда разбивается на последовательность элементарных действий. Любое элементарное действие производится при поступлении соответствующего сигнала управления от устройства микропрограммного управления. Частота формирования сигналов управления определяется импульсами от ГТИ (генератора тактовых импульсов).

    Элементарные пересылки или преобразования информации, выполняемые в течение одного такта сигналов синхронизации, называются микрооперациями (примеры микроопераций: установка регистра в ноль, запись слова в регистр, сдвиг слова в регистре). Микрооперация – это преобразование информации в каком-либо функциональном узле. Для выполнения микроопераций обычно выделяется один управляющий сигнал. Конкретный состав микроопераций и последовательность их выполнения определяются системой команд микропроцессора.

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

    Последовательность микрокоманд, определяющую содержание и порядок реализации машинного цикла, называют микропрограммой. Хранение микропрограмм в оперативной памяти нерационально, так как приводит к снижению быстродействия микроЭВМ. Чаще всего для хранения микропрограмм используются управляющие ПЗУ.

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

    Модель УУ

    Полотно 65

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

    Входной информацией для устройства управления служат:

    • тактовые импульсы – с каждым тактовым импульсом УУ инициирует выполнение одной или нескольких микроопераций;

    • КОП – код операции текущей команды поступает из регистра команды и используется, чтобы определить, какие микрооперации должны выполняться в течение машинного цикла;

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

    • сигналы из системной шины – часть сигналов системной шины, обеспечивающая передачу в УУ запросов прерывания, подтверждений и т.п.

    В свою очередь УУ формирует следующую выходную информацию:

    • внутренние сигналы управления – эти сигналы воздействуют на внутренние схемы микропроцессора и относятся к одному из двух типов:

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

      2. сигналы, определяющие функции операционного устройства микропроцессора;

    • сигналы в системную шину – управляющие сигналы в память и управляющие сигналы в модули ввода/ вывода.

    1. Понятие о системе команд микропроцессоров. Основные группы команд.

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

    Структура команды с жестко установленным значением каждого бита в каждом поле команды называется форматом команды.

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

    По функциональному назначению все команды можно разделить на группы:

    1. команды передачи данных

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

    • команды ввода/ вывода,

    • команды загрузки исполнительного адреса в РОН,

    • команды передачи содержимого регистра флагов в память или стек;

    1. арифметические команды предназначены для выполнения арифметических операций и операций по преобразованию форматов данных;

    2. команды поразрядной обработки данных предназначены для выполнения логических операций, а также операций сдвигов;

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

    4. команды передачи управления предназначены для организации переходов в программе (условный, безусловный переход, управление циклами, команды прерываний);

    5. команды управления микропроцессором позволяют программно управлять различными функциями микропроцессора и делятся на 2 группы:

    • команды управления состоянием регистра флагов,

    • команды синхронизации работы микропроцессора с внешними событиями.

    1. Способы адресации операндов в микропроцессорах

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

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

    Способ адресации – это способ формирования адреса операнда по адресному коду команды

    Существуют следующие способы адресации:

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

    КОП

    Непосредственный операнд

    • прямая – адресный код команды указывает номер ячейки памяти, к которой производится обращение

    КОП

    Адрес операнда в ОП


    Прямая соединительная линия 535

    оПрямая соединительная линия 534 перанд

    ОП

    • регистровая - адресный код команды указывает на регистр микропроцессора

    КОП

    Имя РОН


    оПрямая соединительная линия 532 перанд

    РОН

    • косвенная - адресный код команды указывает на регистр микропроцессора, хранящий адрес операнда в оперативной памяти

    1. Модуль процессора микропроцессорной системы. Состав модуля – операционный блок, блок управления, интерфейсный блок. Выполняемые функции

    Основным модулем МПС является процессор, который осуществляет обработку информации внутри МПС и управление всей системой. В самом общем случае МП можно представить в виде трех функциональных блоков: операционного блока (ОБ), блока управления и интерфейсного блока.

    Операционный блок. Он предназначен для выполнения логических и арифметических операций. В его состав входят арифметико-логическое устройство (АЛУ), буферные регистры операндов, регистр результата (аккумулятор), регистр признаков (флагов) и блок регистров общего назначения (РОН).

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

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

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

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

    • считывает и запоминает текущую команду;

    • формирует адрес следующей команды;

    • реализует выполнение по тактам алгоритма поступившей команды.

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

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

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

    • формировать выходные сигналы на шинах адреса, данных и управления в режиме вывода;

    • формировать выходные сигналы адреса, управления и считывать (воспринимать) сигналы с шины данных в режиме ввода;

    • синхронизировать процессы внутри МП и на системной шине;

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

    1. Программно-доступные регистры микропроцессора

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

    Программно-доступными функциональными частями микропроцессора являются 14 регистров:

    1. РОН (AX, BX, CX, DX, SP, BP, SI, DI),

    2. Сегментные регистры (cs, ds, ss, es),

    3. Регистр адреса командIp,

    4. Регистр флагов f.

    Блок РОН можно рассматривать как внутреннюю сверхоперативную память микропроцессора. РОН – используют для хранения операндов и результатов выполнения команд, а также для формирования адреса при обращении к данным в памяти. По функциональному назначению РОН делятся на:

    1. регистры данных (AX, BX, CX, DX), которые используются для хранения данных,

    2. индексные регистры и регистры-указатели (SP, BP, SI, DI), которые хранят адресную информацию.

    Регистры данных (AX, BX, CX, DX) являются универсальными, каждый из них может использоваться для временного хранения любых данных. Любой из регистров данных состоит из двух 8-разрядных регистров, которые можно независимо адресовать. Адресация и обращение к регистру производится по имени. Каждый из универсальных регистров может использоваться и как специальный при выполнении некоторых конкретных команд программы:

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

    BX – базовый регистр – это единственный из РОН, который используется для вычисления адресов.

    CX – счетчик – используется для управления числом повторений циклов и как счетчик в операциях сдвига вправо/ влево.

    DX – регистр данных - используется для операций ввода/ вывода и операций умножения и деления в паре с регистром AX.

    Индексные регистры и регистры-указатели (SP, BP, SI, DI) или регистры смещений. Специальная функция индексных регистров и регистров-указателей - это хранение относительных

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

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

    Регистр флагов F хранит признаки результатов выполнения арифметических и логических операций и управляющие признаки.

    1. Регистр флагов (признаков) мп

    Признаки операций АЛУ, характеризующие результаты вычислений, запоминаются в битах регистра признаков. Признаки операций обычно называются флагами. Типичными признаками (флагами) являются: нулевой результат, наличие переноса, переполнение, четность, знак. Регистр флагов F хранит признаки результатов выполнения арифметических и логических операций и управляющие признаки. Управляющие признаки можно установить или сбросить программно.

    Таблица – Назначение флагов

    Флаг

    № бита

    Назначение флага

    CF

    0

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

    PF

    2

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

    AF

    4

    Флаг вспомогательного переноса – используется только для двоично-десятичной арифметики; устанавливается в единицу, если арифметическая операция приводит к переносу из младшей тетрады в старшую

    ZF

    6

    Флаг нулевого результата – устанавливается при нулевом результате операции

    SF

    7

    Флаг знака результата – дублирует значение старшего бита результата; SF=0 для положительных чисел и SF=1 – для отрицательных

    TF

    8

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

    IF

    9

    Флаг разрешения прерывания – при IF=1 микропроцессор воспринимает и реагирует на запросы прерывания (прерывания разрешены), при IF=0 прерывания запрещены

    DF

    10

    Флаг направления – используется для задания направления обработки строк данных; DF=0 – обработка строки от меньших адресов к большим, DF=1 – от больших адресов к меньшим

    OF

    11

    Флаг переполнения – сигнализирует о потере старшего бита результата сложения или вычитания в связи с переполнением разрядной сетки при работе со знаковыми числами

    1. Сегментная организация памяти мп. Сегментные регистры и сегменты.

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

    Полотно 1234

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

    Микропроцессор позволяет независимо адресовать 4 программных сегмента в памяти:

    1. сегмент команд,

    2. сегмент данных,

    3. сегмент стека,

    4. дополнительный сегмент.

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

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

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

    1. начального адреса сегмента,

    2. внутрисегментного смещения, которое определяет расстояние от начала сегмента до адресуемой ячейки памяти.

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

    Для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов) используются регистры смещений IP, SP, BP, SI, DI.

    Схема формирования физического адреса ячейки памяти представлена на рисунке.

    Полотно 1251

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

    Указательные регистры SP и BP предназначены для доступа к данным в текущем сегменте стека. Стековые команды всегда обращаются к текущему сегменту стека по адресу SS : SP. Если при вычислении адреса используется регистр BP, то ячейки стекового сегмента рассматриваются как оперативная память с произвольной выборкой.

    Индексные регистры SI и DI содержат смещения, которые относятся к текущему сегменту данных.

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

    1. Общие сведения о системе прерываний мп.

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

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

    Прерывания могут генерироваться

    1. микропроцессором,

    1. аппаратурой, входящей в состав микроЭВМ,

    1. программой.

    Разница между прерываниями и исключительными ситуациями состоит в различии их назначения в системе прерываний:

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

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

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

    Важная особенность каждой системы прерывания – возможность автоматически или по желанию программиста запретить (замаскировать) прерывания микропроцессора. Маскирование прерываний осуществляется флагом IF в регистре признаков микропроцессора. При IF=1 микропроцессор принимает и соответственно реагирует на запросы прерывания. При IF=0 прерывания запрещены (замаскированы), микропроцессор игнорирует поступающие запросы прерываний и переходит к следующей команде. Прерывания можно разделить на маскируемые и немаскируемые. Обработка маскируемых прерываний зависит от значения признака разрешения прерывания IF. Немаскируемый запрос прерывания обычно используется для прерывания работы микропроцессора при катастрофических событиях: пропадание питания, аппаратурный сбой, обнаружение ошибки памяти и т.д. Обработка немаскируемых прерываний не зависит от значения признака IF. Немаскируемое прерывание имеет самый высокий приоритет.

    1. Классификация типов прерываний мп. Механизм обработки прерываний.

    Микропроцессор может обрабатывать 256 типов различных прерываний. Каждому прерыванию соответствует свой вектор – адрес программы обработки прерывания. Под векторы прерываний в общем пространстве адресов памяти отводится 1Кбайт, начиная с нулевого адреса.

    В зависимости от источника все прерывания, возникающие в микроЭВМ, делятся на классы (типы). Классификация типов прерывания:

    Полотно 1279

    Аппаратные прерывания

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

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

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

    1. прерывание по ошибке деления (деление на 0),

    2. прерывание по переполнению (генерируется, если в регистре признаков установлен флаг OF),

    3. пошаговое прерывание (вырабатывается автоматически при TF=1 в регистре признаков микропроцессора),

    4. неопределенный код операции.

    Программные прерывания

    Программные прерывания не привязаны к конкретным аппаратным ресурсам и обычно рассматриваются как вызовы подпрограмм.

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

    Одно из главных назначений BIOS-прерываний – обеспечение доступа к аппаратуре микроЭВМ со стороны операционной системы и программ пользователя. BIOS является компонентом микроЭВМ и выполняет следующие функции:

    • инициализация микроЭВМ, т.е. приведение в исходное состояние всех элементов микроЭВМ при включении питания,

    • тестирование, т.е. проверка комплектности и работоспособности аппаратных и программных ресурсов микроЭВМ,

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

    • управление устройствами ввода-вывода микроЭВМ.

    DOS-прерывания обеспечивают доступ программ пользователя к системным ресурсам. Прерывания DOS часто называют прерываниями верхнего уровня, так как в этих прерываниях меньше учитываются технические особенности элементов микроЭВМ.

    Исключительные ситуации

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

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

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

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

    При появлении запроса на прерывание микропроцессор, после завершения выполнения текущей команды программы, анализирует допустимость (разрешенность и приоритетность) данного вида прерывания. Если прерывание разрешено, микропроцессор выполняет следующие действия: 1) запоминание в стековой памяти текущего состояния регистров микропроцессора, 2) выполнение подпрограммы обработки прерывания, 3) восстановление состояния регистров микропроцессора и возврат к выполнению прерванной программы.

    1. Регистровая структура 32-разрядного мп.

    Программная модель 32-разрядного микропроцессора содержит следующие группы регистров:

    1. регистры пользователя,

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

    Группа регистров пользователя включает:

    • РОН - используются для хранения операндов и результатов выполнения команд, а также для формирования адреса при обращении к данным в памяти,

    • указатель команд содержит смещение команды в пределах сегмента команд,

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

    • сегментные регистры применяются при формировании полного логического адреса.

    Группа системных регистров включает:

    • регистры управления управляют функционированием микропроцессора (управление режимами работы кэш-памяти, режимами работы устройства с плавающей точкой),

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

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

    • регистры тестирования служат для проверки внутренней кэш-памяти.

    1. Типы данных 32-разрядных мп.

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

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

    2. форматы данных математического сопроцессора (FPU).

    Базовые форматы данных:

      1. целые числа со знаком и без знака в формате байт, слово, двойное слово;

        7

        0

        знак

        двоичный код

        15

        0

        знак

        двоичный код

        31

        30

        0

        знак

        двоичный код

        7 0

        двоичный код

        15 0

        двоичный код

        31

        0

        двоичный код

      2. двоично-десятичные целые числа:

        • 8-битные упакованные, содержат две десятичные цифры в одном байте,

    7 4

    3 0

    BCD

    • 8-битные неупакованные, содержат одну десятичную цифру в одном байте,

      7 4

      3 0

      BCD

      BCD

    • 80-битные упакованные;

  • битовое поле – упорядоченная последовательность разрядов, которая может начинаться с любого разряда любого байта и содержать до 32 бит;