- •Организация эвм и систем
- •1. Учебная программа
- •1.1. Примерный тематический план
- •1.2. Содержание дисциплины
- •Раздел 3 Алгебра логики и теоретические основы синтеза цифровых устройств
- •Тема 3.1 Элементы математической логики
- •Тема 3.2 Формы логических функций и их использование для синтеза логических схем
- •Тема 7.6. Особенности развития и структурной организации современных моделей микропроцессоров
- •Тема 8.1 Организация микроконтроллеров
- •Раздел 8 Однокристальные микроЭвм и микроконтроллеры
- •1.3. Примерный перечень практических и лабораторных занятий
- •2. Вопросы для самоконтроля
- •3. Методические указания
- •4. Варианты контрольной работы
- •5 Пример выполнения заданий контрольной
Тема 7.6. Особенности развития и структурной организации современных моделей микропроцессоров
Основные технические характеристики, отличительные особенности архитектуры 64-разрядных микропроцессоров. Обзор новых моделей микропроцессоров, сравнительный анализ их технических характеристик. Особенности архитектуры современных моделей микропроцессоров.
Литература [13,стр.447-474]
Краткое содержание раздела 7
Микропроцессор – это программно-управляемое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки. Микропроцессоры выполняются в виде одной или нескольких больших интегральных схем (БИС).
Функции микропроцессора:
вычисление адресов команд и операндов,
выборка команд из оперативной памяти и дешифрация команд,
выборка данных из оперативной памяти, регистров микропроцессорной памяти и регистров адаптеров внешних устройств,
выполнение арифметико-логических и других операций, закодированных в командах,
прием и обработка запросов и команд от адаптеров на обслуживание внешних устройств, в том числе обработка сигналов прерываний,
формирование синхронизирующих и управляющих сигналов для всех компонентов микроЭВМ,
управление передачей информации между регистрами микропроцессора и оперативной памятью, а также устройствами ввода-вывода.
По назначению микропроцессоры делят на универсальные и специализированные. Универсальными микропроцессорами являются микропроцессоры общего назначения, которые решают широкий класс задач вычисления, обработки и управления. Специализированные микропроцессоры предназначены для решения лишь определенного класса задач (микроконтроллеры, математические микропроцессоры и т.д.).
По количеству БИС в микропроцессорном комплекте (МПК) различают однокристальные и многокристальные микропроцессоры. Однокристальный микропроцессор – это конструктивно законченное изделие в виде одной БИС. Другое название однокристальных МП – микропроцессоры с фиксированной разрядностью обрабатываемых данных. При создании более быстродействующего процессора, большей разрядности или с расширенным набором команд его реализуют на нескольких БИС. Такие микропроцессоры называют многокристальными. Многокристальные микропроцессоры делятся на многокристальные модульные и многокристальные секционные.
В многокристальных модульных микропроцессорах каждый элемент логической структуры представляет собой БИС. Выбираемые из памяти команды распознаются и выполняются каждой частью микропроцессора автономно, и поэтому может быть обеспечен режим одновременной работы всех БИС микропроцессора.
В многокристальных секционных микропроцессорах в виде БИС реализуются части (секции) логической структуры микропроцессора. Микропроцессорная секция – это БИС, предназначенная для обработки нескольких разрядов данных или выполнения определенных управляющих операций. За счет параллельного включения микропроцессорных секций можно построить микропроцессор требуемой разрядности.
По способу управления различают микропроцессоры со схемным и микропрограммным управлением. Микропроцессоры со схемным управлением имеют фиксированный набор команд, разработанный компанией-производителем, который не может изменяться потребителем. В микропроцессорах с микропрограммным управлением систему команд разрабатывают при проектировании конкретного МПК на базе набора простейших микрокоманд с учетом класса задач, для решения которых предназначен МПК.
Архитектура микропроцессора определяет его составные части и взаимодействие между ними. Архитектура включает:
структурную схему микропроцессора,
программную модель микропроцессора (описание функций регистров),
информацию об организации памяти (емкость и способы адресации памяти),
описание организации процедур ввода-вывода.
По типу архитектуры, или принципу построения, различают МП с фон-неймановской архитектурой и МП с гарвардской архитектурой.
Особенностью фон-неймановской архитектуры является то, что программа и данные находятся в общей памяти, доступ к которой осуществляется по одной шине данных и команд.
Особенностью гарвардской архитектуры является то, что память данных и память программ разделены и имеют отдельные шину данных и шину команд, что позволяет повысить быстродействие микропроцессорной системы.
В Гарвардской архитектуре принципиально невозможно производить операцию записи в память программ, что исключает возможность случайного разрушения управляющей программы в случае неправильных действий над данными. Кроме того, в ряде случаев для памяти программ и памяти данных выделяются отдельные шины обмена данными. Эти особенности определили области применения этой архитектуры построения микропроцессоров. Гарвардская архитектура применяется в микроконтроллерах, где требуется обеспечить высокую надёжность работы аппаратуры и в сигнальных процессорах, где эта архитектура кроме обеспечения высокой надёжности работы устройств позволяет обеспечить высокую скорость выполнения программы, за счёт одновременного считывания управляющих команд и обрабатываемых данных, а так же записи полученных результатов в память данных.
Отличие архитектуры Фон Неймана заключается в принципиальной возможности работы над управляющими программами точно так же как над данными. Это позволяет производить загрузку и выгрузку управляющих программ в произвольное место памяти процессора, которая в этой структуре не разделяется на память программ и память данных. Любой участок памяти может служить как памятью программ, так и памятью данных. Причём в разные моменты времени одна и та же область памяти может использоваться и как память программ и как память данных. Для того чтобы программа могла работать в произвольной области памяти, её необходимо модернизировать перед загрузкой, то есть работать с нею как с обычными данными. Эта особенность архитектуры позволяет наиболее гибко управлять работой микропроцессорной системы, но создаёт принципиальную возможность искажения управляющей программы, что понижает надёжность работы аппаратуры. Эта архитектура используется в универсальных компьютерах и в некоторых видах микроконтроллеров.
По типу системы команд различают:
микропроцессоры с полным набором команд типа CISC (Complex Instruction Set Command),
микропроцессоры с сокращенным набором команд типа RISC (Reduced Instruction Set Command),
микропроцессоры с минимальным набором команд типа MISC (Minimum Instruction Set Command).
Большинство современных компьютеров используют микропроцессоры типа CISC. Микропроцессоры типа RISC содержат только набор простых, чаще всего встречающихся в программах команд. При необходимости выполнения более сложных команд в микропроцессоре производится их автоматическая сборка из простых. В RISC микропроцессорах все простые команды имеют один размер, и на выполнение каждой из них тратится один машинный такт. На выполнение даже самой короткой команды в CISC микропроцессорах обычно тратится четыре такта.
Основные технические характеристики микропроцессора:
тактовая частота,
разрядность (разрядность внутренних регистров микропроцессора, разрядность шины адреса и шины данных),
система команд, форматы команд и способы адресации данных,
типы обрабатываемых данных,
объем адресуемой оперативной памяти, число программно доступных регистров микропроцессора,
режимы работы микропроцессора,
схема обработки прерываний,
надежность.
Производительность современных компьютеров измеряют в миллионах операций в секунду. Оценка производительности всегда приблизительная, т.к. ориентируется на некоторые усредненные или, наоборот, на конкретные виды операций. Реально при решении различных задач используются различные наборы операций. Разработаны усредненные наборы операций (смеси Гибсона) для разных типов задач: экономических, технических, математических и т.д. По смесям Гибсона можно определять среднее быстродействие компьютера для этих типов задач. Существуют и более новые тесты: тестовые наборы фирм-изготовителей для определения быстродействия своих изделий – показатель iCOMP – Intel Comparative Microprocessor Performance для микропроцессоров фирмы Intel; специализированные тесты для конкретных областей применения компьютеров.
Для компьютеров, выполняющих самые разные задания, эти оценки будут неточными. Поэтому для характеристики микроЭВМ вместо производительности обычно указывают тактовую частоту. Каждая операция требует для своего выполнения определенного количества тактов. Зная тактовую частоту можно точно определить время выполнения любой машинной операции.
На рис. 1 представлена типовая структурная схема однокристального микропроцессора.
АЛУ выполняет одну из главных функций микропроцессора – обработку данных. Полученный после выполнения команды в АЛУ результат пересылается в регистр или ячейку памяти. АЛУ имеет два входных порта и один выходной порт. Оба входных порта снабжены буферными регистрами. Буферные регистры – это регистры временного хранения данных. Операционные блоки АЛУ не обладают внутренней памятью, поэтому до момента получения результата операции операнды должны сохраняться в буферных регистрах. Два входных порта позволяют АЛУ принимать данные с внутренней шины данных микропроцессора или из специального регистра-аккумулятора. Аккумулятор также используется для хранения результата операции, выполненной в АЛУ.
Совокупность РОН (регистры общего назначения) образует внутреннюю память микропроцессора. Использование РОН позволяет повысить быстродействие микропроцессора за счет уменьшения числа обращений к оперативной памяти. РОН являются программно-доступными и используются для хранения исходных данных, промежуточных и окончательных результатов вычислений, а также для хранения адресной информации.
Рис. 1. Типовая структурная схема однокристального
микропроцессора
Аккумулятор – это главный регистр микропроцессора при различных операциях над данными. Большинство арифметико-логических операций осуществляется путем использования АЛУ и аккумулятора. Любая из таких операций над двумя операндами предполагает размещение одного из операндов в аккумуляторе, а другого операнда – в памяти или каком-либо из РОН. После выполнения команды в аккумулятор вместо операнда помещается результат операции.
Микропроцессор может выполнять некоторые действия над данными непосредственно в аккумуляторе:
- инверсия содержимого аккумулятора;
- сдвиг содержимого аккумулятора вправо или влево на требуемое число разрядов и т. д.
Через аккумулятор выполняются операции ввода-вывода, т. е. программируемая передача данных из одной части микропроцессора в другую.
Регистр состояния (регистр флагов или признаков) микропроцессора предназначен для фиксации и хранения признаков (флагов), характеризующих результат последней выполненной арифметической или логической операции. Это признаки нулевого результата, знака результата, переноса, переполнения разрядной сетки и т. д. Содержимое регистра признаков обычно используется устройством управления для реализации условных переходов по результатам операции АЛУ. Под каждый из возможных признаков отводится один бит.
Устройство управления вырабатывает управляющие сигналы для всех блоков структурной схемы микропроцессора в соответствии с кодами команд, внешними управляющими сигналами и сигналами синхронизации, а также управляет обменом информацией между микропроцессором, памятью и устройствами ввода-вывода.
Счетчик команд или программный счетчик обеспечивает формирование адреса очередной команды программы. В процессе выборки текущей команды программы из оперативной памяти содержимое счетчика команд автоматически увеличивается на единицу. С этого момента счетчик команд указывает адрес следующей команды программы, которая будет выбрана из памяти после выполнения текущей. Содержимое счетчика команд может изменяться командами переходов и передачи управления.
Регистр команд микропроцессора предназначен для хранения текущей выполняемой команды в процессе ее дешифрации и выполнения. Входные данные поступают в регистр команд из памяти по мере последовательной выборки команд. После выполнения очередной команды в регистр команд автоматически записывается код следующей команды из ячейки памяти, адрес которой содержится в счетчике команд.
Дешифратор команд преобразует код операции команды в набор управляющих сигналов, определяющих последовательность действий микропроцессора при выполнении очередной команды программы.
Регистр адреса памяти используется при каждом обращении к оперативной памяти микро-ЭВМ. Он указывает адрес ячейки памяти, которая подлежит использованию микропроцессором. Регистр адреса памяти подключен к внутренней шине данных микропроцессора. Информация в регистр адреса памяти может загружаться от различных источников: РОН, указателя стека, счетчика команд.
Указатель стека – это регистр, который хранит адрес вершины стека, доступной для чтения-записи. Стек – это особым образом организованный участок оперативной памяти со специальной дисциплиной обслуживания. Стековая память используется для хранения содержимого внутренних регистров микропроцессора при возникновении и обработке прерываний.
Работа микропроцессора по реализации каждой команды программы пользователя основана на принципе микропрограммного управления. В ходе дешифрации команда разбивается на последовательность элементарных действий. Процесс функционирования микро-ЭВМ состоит из последовательности пересылок информации между ее узлами и элементарных действий, выполняемых в узлах. Любое элементарное действие производится при поступлении соответствующего сигнала управления от УМУ (устройство микропрограммного управления), упрощенная функциональная схема которого приведена на рис. 2.
Отличительной особенностью УМУ является наличие управляющего ПЗУ, в котором хранятся микропрограммы выполнения машинных команд. Код очередной команды программы поступает на вход УМУ. Далее вся команда разделяется на поле КОП (код операции) и адресную часть. Запуск микропрограммы выполнения команды осуществляется путем передачи КОП из регистра команд на вход дешифратора КОП, в котором КОП преобразуется в начальный (первый) адрес микрокоманды. Выбранная из управляющего ПЗУ микрокоманда заносится в регистр микрокоманд. Каждая микрокоманда содержит микрооперационную и адресную части. Микрооперационная часть микрокоманды поступает на дешифратор микрокоманды, на выходе которого образуются управляющие сигналы. Управляющие сигналы инициируют выполнение микроопераций в исполнительных устройствах и узлах микро-ЭВМ. Адресная часть микрокоманды поступает на вход формирователя адреса микрокоманды, где формируется адрес следующей микрокоманды. Этот адрес может зависеть от адресной части текущей микрокоманды, от значений сигналов состояния (флагов), поступающих от исполнительных устройств. Сформированный адрес микрокоманды снова записывается в регистр адреса микрокоманды, и процесс повторяется до окончания микропрограммы.
Рис. 2. Упрощенная функциональная схема УМУ
Программа представляет собой последовательность команд, выполнение которых приводит к решению задачи. Все множество команд микропроцессора, определяющих набор выполняемых им операций, и способов адресации операндов, называется системой команд микропроцессора.
Машинная команда – это элементарная инструкция микроЭВМ, выполняемая ею автоматически без каких-либо дополнительных указаний и пояснений. Структура команды с жестко установленным значением каждого бита в каждом поле команды называется форматом команды.
Машинная команда состоит из двух частей: операционной и адресной. Способ адресации – это способ формирования адреса операнда по адресному коду команды. Существуют следующие способы адресации:
непосредственная – в адресном поле команды содержится непосредственно сам операнд
-
КОП
Непосредственный операнд
Этот способ адресации может применяться при выполнении арифметических операций, операций сравнения, а также для загрузки констант в регистры.
прямая – адресный код команды указывает номер ячейки памяти, к которой производится обращение
-
КОП
Адрес операнда в ОП
операнд
ОП
регистровая - адресный код команды указывает на регистр микропроцессора
-
КОП
Имя РОН
операнд
РОН
косвенная - адресный код команды указывает на регистр микропроцессора, хранящий адрес операнда в оперативной памяти
В состав структурной схемы 32-разрядного микропроцессора 80486 (рис. 3) входят
целочисленное устройство,
устройство с плавающей точкой,
устройство управления,
диспетчер памяти,
устройство команд,
кэш-память,
шинное устройство.
В состав целочисленного устройства входят АЛУ, 8 32-разрядных РОН и многоразрядный сдвигатель, используемый при арифметических и циклических сдвигах, операциях умножения и деления. Команды сложения, вычитания, сдвига и логические операции выполняются за один такт. Содержимое РОН используется устройством сегментации для формирования адресов. Устройство с плавающей точкой по структуре и программному обеспечению соответствует математическому сопроцессору. Целочисленное устройство и устройство с плавающей точкой соединены двумя 32-разрядными двунаправленными шинами, которые применяются совместно для пересылки 64-разрядных операндов, а также для связи с кэш-памятью.
Диспетчер памяти состоит из устройства сегментации и страничного преобразования и обеспечивает двухступенчатое формирование физического адреса ячейки памяти сначала в пределах сегмента, а затем в пределах страницы. Диспетчер поддерживает реальный и защищенный режимы работы микропроцессора. В реальном режиме микропроцессор 80486 работает как очень быстрый микропроцессор 8086. При этом реализуется расширенный набор команд, допускается увеличение разрядности операндов и адресов до 32. В реальном режиме возможна адресация до 1 Мбайт физической памяти. В защищенном режиме допустимо выполнение нескольких задач (программ). Задачи в этом случае изолированы и защищены одна от другой. Механизмы защиты контролируют попытки выполнения недопустимых команд, выход за рамки отведенного пространства памяти и разрешенной области ввода-вывода.
В защищенном режиме микропроцессор позволяет адресовать до 4 Гбайт физической памяти. Сегментация обеспечивает мобильность и защищенность программ. Каждый сегмент разделяется на страницы размером по 4 Кбайт, которые могут размещаться в любом месте памяти. Устройство страничной адресации действует только в защищенном режиме.
Дополнением режимов является режим виртуальной адресации или виртуальный режим. Этот режим является особым состоянием защищенного режима, в котором микропроцессор функционирует как 8086, однако может адресовать до 4 Мбайт физической памяти.
Шинное устройство поддерживает обмен микропроцессора с памятью, контроллерами ввода-вывода и другими активными внешними устройствами. Оно содержит драйверы шины адреса и данных, схемы управления размером шины данных, шиной, пакетами, кэш-памятью, паритетом.
Шинное устройство осуществляет обмен посредством 32-разрядной двунаправленной шины данных, 34-разрядной шины адреса и 32-разрядной шины управления.
Разрядность шины данных микропроцессора 80486 может изменяться таким образом, что за один цикл осуществляется передача 8, 16 или32 разрядов. Шина адреса включает 30 адресных линий и четыре линии выбора байтов. Посредством сигналов выбора байтов реализуется выбор байтов 32-разрядной шины данных для текущего цикла обмена, что позволяет без дополнительного оборудования согласовать 32-разрядную шину данных микропроцессора с байтовой организацией памяти.
Схемы управления имеют два типа выводов:
сигналы управления циклами магистрали,
сигналы управления состоянием микропроцессора и взаимодействием микропроцессора с другими активными устройствами магистрали.
К основным отличиям в работе шинного устройства микропроцессора 80486 относятся:
машинный такт длительностью в один период внешнего синхросигнала,
возможность пакетной передачи для пересылки длинных операндов (при считывании максимальная длина пакета составляет 128 бит, а при записи – 32 бита),
управление паритетом. Каждый байт шины данных имеет бит паритета. Контроль четности (количество единиц в байте вместе с битом паритета должно быть четным) выполняется для всех байт, участвующих в конкретном цикле обмена.
Микропроцессор 80486 имеет внутреннюю кэш-память, единую для команд и данных. Кэш-память представляет собой быстродействующую память ограниченного объема, в которой хранятся копии последних считанных команд и операндов. Когда микропроцессор обращается за командой или данными, то сначала производится поиск требуемой информации в кэш-памяти. При отсутствии необходимой информации в кэш-памяти производится обращение к оперативной памяти и одновременная запись в кэш-память. При записи соответствие содержимого оперативной и кэш-памяти достигается с помощью механизмов сквозной записи. При сквозной записи осуществляется одновременное изменение содержимого как кэш-памяти, так и оперативной памяти.
Устройство команд содержит блок предвыборки для создания очереди команд, готовых к выполнению, и дешифратор команд. Блок предвыборки позволяет с опережением получить команды из памяти перед их фактическим исполнением. Дешифратор команд получает команды от блока предвыборки и преобразует их в управляющие сигналы. В дешифраторе одновременно обрабатываются коды операций, байты адресации и смещения. Выходные сигналы дешифратора определяют аппаратные микрокоманды для устройства сегментации, целочисленного устройства и устройства с плавающей точкой.
Блок микропрограммного управления формирует управляющие микропрограммы.
Программная модель 32-разрядного микропроцессора содержит следующие группы регистров:
регистры пользователя,
системные регистры (используются разработчиками операционной системы).
Группа регистров пользователя включает:
РОН - используются для хранения операндов и результатов выполнения команд, а также для формирования адреса при обращении к данным в памяти;
указатель команд содержит смещение команды в пределах сегмента команд;
регистр флагов отражает текущее состояние микропроцессора, а также служит для задания режима работы микропроцессора, управления вводом-выводом, маскируемыми прерываниями, отладкой, переключением задач;
сегментные регистры применяются при формировании полного логического адреса. В защищенном режиме работы микропроцессора сегментные регистры называются селекторными или просто селекторами.
Группа системных регистров включает:
регистры управления управляют функционированием микропроцессора (управление режимами работы кэш-памяти, режимами работы устройства с плавающей точкой);
системные адресные регистры используются для хранения базовых адресов дескрипторных таблиц;
регистры отладки предназначены для проверки и отладки программы. Эти регистры позволяют устанавливать контрольные точки для обнаружения мест возникновения ошибок;
регистры тестирования служат для проверки внутренней кэш-памяти.
КОП |
MOD R/ M |
SIB |
Смещение |
Операнд |
1 или 2 байт |
0 или 1 байт |
0 или 1 байт |
0, 1, 2 или 4 байт |
0, 1, 2 или 4 байт |
базовые форматы, которые используются стандартными командами при операциях с числами в регистрах и памяти,
форматы данных математического сопроцессора (FPU).
При обращении к оперативной памяти 32-разрядные микропроцессоры используют указатели:
«близкий» указатель – это 32-разрядный логический адрес, являющийся смещением внутри сегмента,
«дальний» указатель – это 48-разрядный логический адрес, состоящий из 16-разрядного селектора сегмента и 32-разрядного смещения.
Система команд микропроцессора 80486 – это расширенная система команд предыдущих моделей микропроцессоров фирмы Intel.
В набор команд микропроцессора 80486 входят безадресные, одно-, двух- и трехадресные команды, которые обеспечивают выполнение операций над операндами, находящимися в регистре, памяти или непосредственно в команде. Микропроцессор реализует следующие шесть типов двухадресных команд:
регистр – регистр,
память – регистр,
непосредственные данные – регистр,
регистр – память,
память – память,
непосредственные данные – память.
Обобщенный формат команды микропроцессора 80486 аналогичен формату предыдущих моделей (рис. 4).
Рис. 4. Обобщенный формат команды микропроцессора 80486
В среднем длина команды составляет 4-5 байт. Код операции (КОП) содержится в одном или в двух первых байтах. В коде операции могут быть определены поля, определяющие направление операции, разрядность операндов и т. д. Большинство команд, которые могут ссылаться на операнд в памяти, содержат байт режима адресации. Этот байт позволяет задать два операнда команды. Формат байта режима адресации:
REG |
MOD |
R/ M |
операнд 1 |
операнд 2 |
|
Поля MOD и R/ M задают адрес одного из операндов, который хранится в регистре или в ячейке памяти. Поле MOD совместно с полем R/ M может принимать 32 возможных значения и служит для указания 8 регистров и 24 режимов адресации.
Поле REG определяет имя регистра операнда, либо содержит дополнительные разряды кода операции команды. Назначение этого поля определяется первым байтом команды (КОП).
Поле R/ M задает имя регистра операнда или вместе с полем MOD определяет режим адресации.
32-битные базовые и индексные формы адресации требуют наличия SIB-байта. Определенная кодировка MOD R/ M-байта сигнализирует о присутствии SIB-байта. Формат SIB-байта:
-
SS
INDEX
BASE
Поле INDEX определяет индексный регистр. Поле BASE определяет базовый регистр. SS – это масштабный множитель для модификации значения индекса.
Если поле MOD указывает, что при вычислении адреса операнда будет использовано смещение, в состав команды включается поле смещения. Смещение представляет собой 8-, 16- или 32-разрядное целое число со знаком.
Непосредственные операнды в команде могут быть 8-, 16- или 32-разрядными. Непосредственный операнд всегда находится в последнем поле команды.
Классификация команд:
команды перемещения данных – позволяют перемещать операнды любого типа из памяти в регистр, из регистра в память, из регистра в регистр, допускают операции со стеком, выполняют ввод-вывод, производят операции с адресами,
команды целочисленной арифметики – выполняют арифметические действия над операндами всех размеров, поддерживается знаковая и беззнаковая арифметика. Во всех командах, кроме деления, допускается использование непосредственных операндов. Все команды умножения используют алгоритм с ранним выходом для уменьшения времени исполнения команды пропорционально количеству нулей в старших разрядах.
логические команды доступны при любом размере операндов. Во всех командах могут быть использованы непосредственные данные.
команды вращения и сдвига,
команды манипуляции битами – с их помощью можно осуществлять действия над определенными битами РОН,
команды обработки строк. Строка может быть обработана в любом направлении; строки могут перемещаться, сравниваться и сканироваться для нахождения конкретного значения, они также могут передаваться в область или из области ввода-вывода.
команды десятичной арифметики,
команды управления программой - команды условного и безусловного переходов,
команды управления системой позволяют загрузить и прочитать системные регистры, обеспечивают установку режима микропроцессора, устанавливают атрибуты защиты.
команды синхронизации данных сопроцессора.
Система прерываний в микроЭВМ предназначена для того, чтобы заставить микропроцессор обратить внимание на особые условия, возникающие в нем самом или другом оборудовании микроЭВМ, и переключиться на выполнение какой-то более важной или нужной в данный момент другой программы или процедуры. Непосредственной причиной переключения микропроцессора с одной программы на другую является сигнал прерывания. Причины прерываний могут быть различными: сбои и отказы в работе технических средств, запросы на обмен информацией от внешних устройств, программные ошибки и т.д. Прерывания возникают при работе микроЭВМ постоянно, например, все процедуры ввода-вывода информации выполняются по прерываниям. Программа, которую микропроцессор начинает выполнять в результате воздействия сигналов прерывания, называется программой обработки прерывания.
Прерывание позволяет микроЭВМ приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе микроЭВМ или ее компонентов. В большинстве случаев возникновение сигналов прерывания не планируется в выполняемой в данный момент текущей программе, а является по отношению к ней независимым, или внешним событием. Такие сигналы могут появиться на любом шаге выполнения программы. Возобновление прерванной программы должно быть произведено так, будто прерывание отсутствовало. Для этого в стеке запоминается адрес возврата (CS и IP) и содержимое регистра флагов F, а также содержимое тех регистров, которые потребуются для выполнения подпрограммы обработки прерывания. Содержимое регистров CS, IP и F запоминается и восстанавливается автоматически, а для запоминания и последующего восстановления содержимого других регистров микропроцессора должны быть предусмотрены соответствующие команды в начале и в конце подпрограммы обработки прерываний. Следует отметить, что в стек включается скорректированное содержимое указателя команд IP, соответствующее адресу команды, перед которой микропроцессор начал обслуживать прерывание. Необходимость коррекции вызвана тем, что IP адресует команды с опережением из-за существования внутренней очереди команд.
Разница между прерываниями и исключительными ситуациями состоит в различии их назначения в системе прерываний:
прерывания используются для обработки аппаратных и программных событий, связанных с различными ресурсами микроЭВМ,
исключительные ситуации предназначены для обработки ошибок, возникающих в процессе выполнения команды микропроцессором и препятствующих выполнению как текущей, так и последующей команды.
С точки зрения архитектуры микропроцессора программное прерывание также является исключительной ситуацией, но с точки зрения организации системы прерываний программное прерывание является самостоятельным средством, при помощи которого пользователь получает возможность доступа к системным и пользовательским ресурсам.
Важная особенность каждой системы прерывания – возможность автоматически или по желанию программиста запретить (замаскировать) прерывания микропроцессора. Маскирование прерываний осуществляется флагом IF в регистре признаков микропроцессора. При IF=1 микропроцессор принимает и соответственно реагирует на запросы прерывания. При IF=0 прерывания запрещены (замаскированы), микропроцессор игнорирует поступающие запросы прерываний и переходит к следующей команде. Прерывания можно разделить на маскируемые и немаскируемые. Обработка маскируемых прерываний зависит от значения признака разрешения прерывания IF. Немаскируемый запрос прерывания обычно используется для прерывания работы микропроцессора при катастрофических событиях: пропадание питания, аппаратурный сбой, обнаружение ошибки памяти и т.д. Обработка немаскируемых прерываний не зависит от значения признака IF. Немаскируемое прерывание имеет самый высокий приоритет.
Микропроцессор может обрабатывать 256 типов различных прерываний. Каждому прерыванию соответствует свой вектор – адрес программы обработки прерывания. Под векторы прерываний в общем пространстве адресов памяти отводится 1Кбайт, начиная с нулевого адреса.
В зависимости от источника все прерывания, возникающие в микроЭВМ, делятся на классы (типы). Классификация типов прерывания:
аппаратные прерывания (маскируемые и немаскируемые),
программные прерывания (BIOS-прерывания, DOS-прерывания, пользовательские прерывания),
исключительные ситуации.
Аппаратные прерывания.
Внешние аппаратные прерывания формируются внешними по отношению к микропроцессору устройствами (клавиатурой, принтером, дисководами) с требованием уделить им внимание и выполнить совместно с ними те или иные процедуры. Например, сигналы внешних аппаратных прерываний формируются устройствами ввода-вывода в момент готовности этих устройств передать или принять данные. Если бы в системе не было аппаратных прерываний, то микропроцессору пришлось бы периодически опрашивать все устройства, чтобы проверить, не нуждается ли в обслуживании какое-либо из них. Запросы на внешние прерывания поступают в микропроцессор по двум входам, и сами прерывания делятся соответственно на маскируемые и немаскируемые. Запросы на маскируемые прерывания от внешних устройств обычно поступают на входы программируемого контроллера прерываний. Внешние устройства имеют приоритеты на обслуживание при возникновении сигналов прерываний. Уровень приоритета назначается исходя из конструктивных особенностей и быстродействия конкретного внешнего устройства. Если одновременно возникают несколько сигналов прерываний, то микропроцессор в первую очередь обслуживает прерывание от устройства с наивысшим приоритетом. Второе прерывание запоминается и обрабатывается после окончания процедуры обработки первого прерывания. Для разрешения приоритетных конфликтов и управления маскированием используется программируемый контроллер прерываний. Контроллер принимает запрос на прерывание от внешних устройств, определяет уровень приоритета этого запроса и выдает сигнал прерывания в микропроцессор. Микропроцессор, получив этот сигнал, приостанавливает выполнение текущей программы и переходит к выполнению специальной программы обслуживания того прерывания, которое запросило внешнее устройство. После завершения программы обслуживания восстанавливается выполнение прерванной программы. Контроллер прерывания является программируемым.
Запросы на немаскируемое прерывание обычно используются для прерывания работы микропроцессора при катастрофических событиях, требующих немедленной реакции.
Внутренние аппаратные прерывания – это события, которые произошли внутри микропроцессора и распознаются им как сигналы прерывания. Внутренние аппаратные прерывания процессора возникают в следующих случаях:
прерывание по ошибке деления (деление на 0),
прерывание по переполнению (генерируется, если в регистре признаков установлен флаг OF),
пошаговое прерывание (вырабатывается автоматически при TF=1 в регистре признаков микропроцессора),
неопределенный код операции.
Программные прерывания.
Программные прерывания не привязаны к конкретным аппаратным ресурсам и обычно рассматриваются как вызовы подпрограмм.
Пользовательские прерывания – это обычные процедуры, которые вызывает текущая программа для выполнения предусмотренных в ней стандартных подпрограмм. При многопрограммной работе микропроцессора пользовательские прерывания устанавливаются для указания приоритета выполнения прикладных программ.
Одно из главных назначений BIOS-прерываний – обеспечение доступа к аппаратуре микроЭВМ со стороны операционной системы и программ пользователя. BIOS является компонентом микроЭВМ и выполняет следующие функции:
инициализация микроЭВМ, т.е. приведение в исходное состояние всех элементов микроЭВМ при включении питания,
тестирование, т.е. проверка комплектности и работоспособности аппаратных и программных ресурсов микроЭВМ,
инициализация операционной системы, обработка программных и аппаратных прерываний, выполняющих служебные процедуры и операции с внешними устройствами,
управление устройствами ввода-вывода микроЭВМ.
DOS-прерывания обеспечивают доступ программ пользователя к системным ресурсам. Прерывания DOS часто называют прерываниями верхнего уровня, так как в этих прерываниях меньше учитываются технические особенности элементов микроЭВМ.
Исключительные ситуации.
Исключительные ситуации, генерируемые микропроцессором, возникают в процессе и по результатам выполнения команд. Исключительные ситуации условно разделены на три типа в зависимости от того, чем они были вызваны и поддерживается ли рестарт вызвавшей их команды.
Ошибки представляют собой исключительные ситуации, которые обнаруживаются и обслуживаются после выборки до выполнения ошибочной команды. Чаще всего при возникновении ошибки возможен рестарт данной команды. Пример ошибки: обращение по адресу, находящемуся в отсутствующей в оперативной памяти странице.
Ловушки представляют собой исключительные ситуации, о которых сообщается сразу после выполнения команды, послужившей причиной возникновения данной исключительной ситуации.
Аварийные завершения - исключительные ситуации, которые возникают при невозможности точно обнаружить источник ошибки и используются при обнаружении крупных ошибок и технических неисправностей. Технические прерывания (или прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств микроЭВМ. Большинство технических прерываний не маскируется, т.е. они разрешаются всегда. При их возникновении даже не запрашивается причина прерывания, а, по-возможности, спасаются важные промежуточные результаты – записываются в безопасное место, на винчестер, например.
Механизм обработки прерываний. При появлении запроса на прерывание микропроцессор, после завершения выполнения текущей команды программы, анализирует допустимость (разрешенность и приоритетность) данного вида прерывания. Если прерывание разрешено, микропроцессор выполняет следующие действия: 1) запоминание в стековой памяти текущего состояния регистров микропроцессора, 2) выполнение подпрограммы обработки прерывания, 3) восстановление состояния регистров микропроцессора и возврат к выполнению прерванной программы.
Все 32-разрядные процессоры могут работать в двух режимах: реальном и защищенном.
Основное отличие режимов работы микропроцессора заключается в объеме адресуемой памяти и способе адресации информации. Способы адресации определяют последовательность действий микропроцессора при вычислении физического адреса для выбора одной ячейки из всех возможных ячеек в адресном пространстве памяти. Организация размещения и обмена информацией, обеспечивающая решение задачи, называется распределением памяти. Цель распределения памяти состоит в установлении соответствия между массивом информации и ячейками памяти, при котором достигается максимальная производительность микропроцессорной системы. Основным в управлении памятью является процесс преобразования адресов, используемых программами, в адреса, приемлемые для аппаратуры памяти. Процесс преобразования скрыт от разработчика прикладных программ.
Функции ОС по управлению памятью:
отслеживание свободной и занятой памяти,
выделение памяти программам и освобождение памяти по завершению программ,
перезапись команд и данных программ из оперативной памяти на диск (полное или частичное), когда размеры основной памяти не достаточны для размещения в ней всех программ, и возвращение их в оперативную память, когда в ней освобождается место,
настройка адресов программы на конкретную область физической памяти,
защита памяти.
В реальном режиме все современные процессоры действуют так же, как микропроцессор 8086. Некоторые различия состоят лишь в поддержке большего числа команд и во много раз более высокой скорости.
Основным режимом работы 32-разрядных микропроцессоров является защищенный режим. Отличительные особенности защищенного режима:
виртуальное адресное пространство,
защита,
многозадачность.
Защищенный режим обеспечивает защиту аппаратных и программных ресурсов одной задачи от возможного влияния другой. Основным защищаемым ресурсом является память, в которой хранятся команды, данные и системные таблицы.
