- •Основы микропроцессорной техники
- •В.И. Енин
- •В.И. Енин
- •Введение
- •После изучения дисциплины необходимо знать
- •После изучения дисциплины необходимо уметь
- •В.1. Роль и место курса “Микропроцессорная техника” в учебном процессе
- •1. Микропрограммные автоматы
- •После изучения главы необходимо знать
- •1.1. Автомат без памяти
- •1.2. Микропрограммный автомат
- •1.2.1. Автомат с памятью
- •1.2.2. Микропрограммный автомат в системе управления
- •1.2.3. Структурный автомат
- •1.3. Схемная реализация микропрограммных автоматов
- •2. МикропрограмМируемые контроллеры и микропроцессоры
- •После изучения главы необходимо знать
- •2.1. Блок микропрограммного управления
- •2.2. Блок обработки цифровых данных.
- •3. Принципы организации эвм
- •После изучения главы необходимо знать
- •3.1. Выполнение команд в эвм
- •Система команд и методы адресации
- •Подпрограммы
- •3.2. Общие принципы организации ввода-вывода
- •3.2.1. Программный режим ввода-вывода
- •3.2.2. Обмен информацией в режиме прерывания программы
- •3.2.3. Прямой доступ к памяти
- •3.2.4. Подключение внешних устройств
- •4. Архитектура однокристального микропроцессора
- •После изучения главы необходимо знать
- •4.1. Архитектура микропроцессора к580ик80а
- •4.1.1. Формат команд микропроцессора к580ик80а
- •4.1.2. Методы адресации микропроцессора к580ик80а
- •4.1.3. Команды безусловной и условной передач управления
- •4.1.4. Примеры команд процессора к580ик80а
- •4.2. Организация обмена в однокристальных микроЭвм
- •4.2.1. Функционирование микропроцессора
- •4.2.2. Подключение озу и регистров внешних устройств
- •5. Системы счисления и арифметические операции над числами
- •После изучения главы необходимо знать
- •5.1. Системы счисления для представления чисел в эвм
- •5.2. Представление в эвм целых двоичных чисел без знака
- •5.3. Представление в эвм целых чисел со знаком
- •5.3.1. Представление чисел со знаком в прямом коде
- •5.3.2. Представление чисел со знаком в дополнительном коде
- •5.3.3. Особенности выполнения сложения двоичных чисел без знака и со знаком
- •1. Примеры сложения чисел без знака.
- •2. Примеры сложения чисел со знаком.
- •5.4. Двоично-десятичная система представления чисел
- •5.5. Представление чисел в формате с плавающей точкой
- •Примеры представления чисел типа single
- •Примеры представления чисел типа real
- •6. Семейство процессоров х86
- •После изучения главы необходимо знать
- •6.1. Архитектура процессора 8086
- •Регистры процессора
- •Инструкции процессора
- •Сегментация памяти
- •Методы адресации
- •Распределение памяти
- •Прерывания
- •Функционирование
- •6.2. Процессоры 80286
- •Реальный режим
- •Защищенный режим
- •Прерывания
- •Регистр состояния задачи
- •Некоторые особенности функционирования
- •Функциональная схема pc at
- •7. Шина isa и интерфейсы сопряжения с устройствами управления
- •После изучения главы необходимо знать
- •7.1. Конструкция шины isa
- •Выводы шины isa
- •Распределение адресов на системной плате ат
- •Циклы магистрали
- •Прямой доступ к памяти
- •Регенерация памяти
- •Основные электрические характеристики линий isa
- •7.2. Проектирование устройств сопряжения для шины isa
- •7.2.1. Селекторы (дешифраторы) адреса
- •7.2.2. Операционная часть интерфейса
- •7.2.3. Микросхемы для построения интерфейсов Условные графические обозначения элементов цифровой техники
- •7.2.4. Микросхемы приемопередатчиков сигналов магистрали
- •Микросхемы селекторов адреса выходных регистров
- •8. Интерфейс centronics
- •После изучения главы необходимо знать
- •8.1. Порядок обмена по интерфейсу Centronics
- •8.2. Программируемый параллельный интерфейс ( ппи)
- •9. Обмен данными по интерфейсу rs-232
- •После изучения главы необходимо знать
- •9.1. Назначение линий связи rs-232
- •9.2. Подключение модема к rs-232
- •9.3. Подключение терминалов к rs-232
- •9.4. Подключение удаленных объектов управления
- •9.5. Назначение портов rs-232
- •10. Отсчёт реального времени в эвм
- •После изучения главы необходимо знать
- •10.1. Программируемый таймер
- •10.1.1. Режимы работы таймера
- •10.1.2. Таймер на системной плате ibm pc
- •10.2. Программируемый контроллер прерываний
- •10.2.1. Режимы работы пкп
- •10.2.2. Программирование пкп
- •10.3. Прерывания в ibm pc
- •10.3.1. Векторы прерывания
- •10.3.2. Прерывания bios и dos
- •10.3.3. Написание собственных прерываний
- •10.4. Отсчёт реального времени в эвм
- •10.5. Процедуры и функции для работы с прерываниями
- •После изучения главы необходимо знать
- •11.1. Архитектура 32-разрядных процессоров
- •11.1.1. Регистры процессора
- •11.1.2. Организация памяти
- •11.1.3. Режимы адресации
- •11.1.4. Ввод и вывод
- •11.1.5. Прерывания и исключения
- •11.1.6. Процессоры Pentium
- •11.2. Страничное управление памятью
- •11.3. Кэширование памяти
- •Кэш прямого отображения
- •Ассоциативный кэш
- •12. Однокристальные микроконтроллеры
- •После изучения главы необходимо знать
- •12.1. Однокристальный микроконтроллер к1816
- •12.2. Avr микроконтроллеры
- •12.3. Процессоры обработки сигналов
- •12.3.1. Однокристальный цифровой процессор обработки
- •12.3.2. Цифровые процессоры обработки сигналов (цпос)
- •13. Промышленное оборудование для цифровых систем управления
- •После изучения главы необходимо знать
- •13.1. Оборудование для централизованных систем управления
- •13.1.1. Персональные компьютеры для целей управления
- •13.1.2. Промышленные рабочие станции
- •13.1.3. Шасси для ibm совместимых промышленных компьютеров
- •13.1.4. Модульные промышленные компьютеры mic-2000
- •13.1.5. Процессорные платы
- •13.1.6. Устройства для сбора данных и управления
- •13.2. Оборудование для распределенных систем сбора данных и управления
- •13.2.1. Модули удаленного сбора данных и управления adam-5000
- •13.2.2. Модули удаленного сбора данных и управления adam-4000
- •13.3. Прикладное программное обеспечение
- •Заключение
- •Список использованных источников
- •Оглавление
- •Системы счисления и арифметические
3.2.2. Обмен информацией в режиме прерывания программы
Существенным недостатком программного режима обмена является неэффективное использование процессорного времени. Концепция прерывания программы позволяет устранить этот недостаток. Механизм, реализующий прерывания, включает в себя как аппаратные средства ЭВМ, так и программные.
Инициатива обмена информацией в этом случае принадлежит внешнему устройству. При обмене по инициативе ВУ осуществляется прерывание выполняемой процессором программы и принудительный перевод процессора на выполнение программы обслуживания внешнего устройства, затребовавшего прерывание, по окончании которой процессор возвращается к выполнению прерванной ранее выполняемой программы.
Для организации работы ЭВМ в режиме прерывания программы в памяти ЭВМ помимо основной программы (программ) размещаются программы обработки прерываний, т.е. программы обслуживания внешних устройств, вызывающих прерывания.
Часть памяти отводится по стек - память магазинного типа, доступ к ячейкам которой осуществляется через регистр-указатель стека по принципу “последние записанные данные первыми считываются”. Такая организация стека необходима для реализации вложенных подпрограмм и прерываний.
Кроме того, часть памяти отводится под так называемые векторы прерывания. Обычно векторы прерывания - это ячейки памяти, адреса которых жестко закреплены за конкретными внешними устройствами. В ячейках вектора помещен адрес программы обслуживания прерывания от соответствующего внешнего устройства. Векторы прерывания внешних устройств обычно располагаются в начальной области оперативной памяти, занимая несколько сот ячеек. Понятно, что в этой области не следует размещать какие-либо программы.
Алгоритм обработки прерывания выглядит следующим образом.
1. Внешнее устройство, которому необходим обмен информацией с ЭВМ, посылает процессору по специальной линии (общей для всех внешних устройств) сигнал запроса (требования) прерывания.
2. Получив сигнал запроса прерывания, процессор выполняет действия, обеспечивающие возврат в прерванную программу после выполнения программы обслуживания ВУ. Процессор завершает выполнение команды основной программы; запоминает в стеке содержимое регистра состояния процессора; вслед за этим в стеке запоминает содержимое регистра-счетчика команд, т.е. адрес возврата.
3. Обеспечив сохранение текущего состояния выполняемой программы, процессор посылает внешнему устройству (по общей для всех внешних устройств линии) сигнал предоставления прерывания, сообщая о своей готовности к обслуживанию прерывания.
4. Получив от процессора сигнал предоставления прерывания, внешнее устройство передает процессору адрес своего вектора прерывания. Адреса векторов прерывания, которые уникальны для каждого внешнего устройства, по сути, являются их идентификаторами.
5. Процессор, получив от внешнего устройства адрес его вектора прерывания, пересылает в свой счетчик команд содержимое ячеек вектора, т.е. адрес программы обслуживания данного ВУ. Выполняя команду, адрес которой находится в его счетчике команд, т.е. первую команду программы обслуживания прерывания, процессор обычным образом начинает выполнение программы обслуживания. Выполнение программы обслуживания ВУ завершается специальной командой "ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ ".
6. Получив команду "ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ", завершающую программу обслуживания, процессор выталкивает (считывает) из стека ранее сохраненный там адрес возврата и пересылает его в свой счетчик команд, затем выталкивает из стека и записывает в свой регистр состояния прежнее слово состояния процессора, полностью восстанавливая тем самым свое состояние.
7. Процессор возобновляет выполнение ранее прерванной программы с точки прерывания.
Адреса векторов для каждого ВУ жестко фиксированы в памяти ЭВМ, размещение программ обслуживания прерываний в памяти определяется пользователем или операционной системой. Адреса этих программ или устанавливаются аппаратно или заносятся в соответствующие ячейки векторов операционной системой или основной программой пользователя.
Использование стека для сохранения адреса возврата из прерывания и текущего слова состояния процессора позволяет реализовать процесс обслуживания вложенных прерываний. Вопросы приоритетности, конфликтов и запретов при прерываниях решаются следующими архитектурными средствами.
Существует возможность программного запрета обслуживания следующего прерывания от ВУ путем установки/снятия определенного разряда (разрядов) регистра состояния процессора при обслуживании текущего прерывания. Запись слова состояния процессора (PSW) может осуществляться специальной командой программным путем. Это обеспечит запрет прерываний, если этот разряд не будет очищен программным путем.
В отдельных внешних устройствах существует также возможность запрета прерывания путем установки/снятия определенного разряда в регистрах состояния внешних устройств. Сигнал требования прерывания внешним устройством в этом случае не вырабатывается.
В некоторых ЭВМ используется так называемая цепочечно-групповая схема установления приоритета устройства при прерываниях. В этом случае сигнал предоставления (подтверждения) прерывания проходя последовательно через интерфейсы всех внешних устройств, доходит до устройства, затребовавшего прерывание. Само же это устройство запрещает дальнейшее распространение этого сигнала к другим, более удаленным от процессора устройствам. Таким образом, если два устройства одновременно затребуют прерывание, сигнал предоставления прерывания поступит только на то из них, которое расположено ближе по цепочке к процессору. Фактический приоритет устройства в обслуживании прерывания будет определяться "близостью" расположения его интерфейса к центральному процессору.
В других ЭВМ для организации прерываний и разрешения конфликтов используется специализированный контроллер прерываний, на который поступают запросы от внешних устройств. Контроллер обеспечивает вызовы прерываний от внешних устройств в соответствии с их приоритетом и передачу соответствующих векторов процессору при обработке прерывания.
Во многих ЭВМ выделяют, кроме того, так называемые немаскируемые прерывания. Обычно ими являются прерывания, сигнализирующие процессору о внешних событиях особой важности (носящих катастрофический характер - таких, как отключение питания, сбой памяти и т.п.). Немаскируемые прерывания признаются процессором всегда независимо от установки его приоритета, т.е. они обладают наивысшим приоритетом. Обслуживание такого рода прерываний позволяет в ряде случаев спасти данные и программу пользователя от необратимых нарушений.
Кроме прерываний, вызываемых внешними по отношению к ЭВМ событиями, в ЭВМ обычно реализованы и так называемые внутренние прерывания, называемые еще ловушками. Такие прерывания возникают автоматически по сигналам в самом процессоре, например, в случае получения процессором несуществующего кода команды, обращения по несуществующему адресу, ошибки деления и др. Как и внешние, внутренние прерывания обеспечивают переход процессора на программы обслуживания этих нештатных ситуаций, задаваемых соответствующими векторами прерываний.
В системе команд многих ЭВМ существуют также специальные команды, вызывающие командные прерывания, или команды-ловушки. Командные прерывания являются способом обращения из основной программы к программным блокам с последующим возвратом в основную программу. Командные прерывания подобны подпрограммам, но используют несколько отличный механизм работы. Командное прерывание- это команда с особым форматом и алгоритмом выполнения, как при аппаратном прерывании. При обработке этих команд также осуществляется переход на программы, адреса которых задаются векторами прерывания, связанными с этими командами. Каждая команда имеет свой вектор прерывания, содержащий адрес программы обработки прерывания (новое значение счетчика команд процессора PC). При выполнении команды значения счетчика команд (PC) берется из вектора прерывания, а его предыдущее значение (адрес возврата) заносятся в стек.
Использование командных прерываний в какой-то мере напоминает подпрограммы, однако является более удобным в программах операционных систем для организации библиотек системных макрокоманд, операций ввода-вывода и других операций, связанных с взаимодействием пользовательских и системных программ. Особенно широко они используются в микро-ЭВМ на базе INTEL 80286.
Обработка прерывания должна завершаться командой возврата из прерывания, по которой происходит возврат в основную программу.