Лекция 4. Режимы работы микропроцессора Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит следующим образом: 1. на шину адреса выставляется либо адрес оперативной памяти, либо адрес устройства, к которому обращается МП; 2. по шине данных передаются данные, над которыми необходимо выполнить заданное действие, которое распознаётся по управляющему сигналу, передаваемое по шине управления. Взаимодействие микропроцессора с ОЗУ Поэтапное взаимодействие микропроцессора с оперативной памятью выглядит следующим образом: 1. на шине адресу МП устанавливает адрес ячейки памяти, которую хочет прочитать; 2. на шине управления МП выставляет сигнал готовности и сигнал чтения; 3. заметив сигнал готовности, все устройства проверяют, не стоит ли на шине адреса их адрес; 4. оперативная память, заметив, что выставлен её адрес, считывает управляющий сигнал (например, в нашем случае – сигнал чтения); 5. память читает адрес; 6. память выставляет на шине данных требуемую информацию; 7. память выставляет на шине управления сигнал готовности; 8. МП читает данные с шины данных. Фазы цикла обмена информацией в МПС Адресная фаза: МП выставляет адрес устройства ввода/вывода (УВВ) или ячейки памяти, к которой хочет обратиться (исполнитель). Фаза данных: Цикл записи: МП выставляет данные, предназначенные для записи, и выдает строб записи. Исполнитель принимает данные от МП. Цикл чтения: МП выдает строб чтения. Исполнитель выставляет данные для передачи МП. МП принимает данные от исполнителя. Стробирование — метод выделения некоторого интервала на временной оси для увеличения вероятности обнаружения полезных сигналов на фоне помех. Фаза подтверждения (не обязательная): исполнитель выдает МП сигнал подтверждения выполнения операции. Режимы обмена информацией Любая развитая МПС поддерживает три основных режима обмена по магистрали: программный обмен информацией; обмен с использованием прерываний; обмен с использованием прямого доступа к памяти (ПДП). Программный обмен информацией Программный обмен информацией является основным в любой МПС. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме МП является единоличным хозяином системной магистрали. Все операции (циклы) обмена информацией в данном случае инициирующие только МП, все они выполняются строго в порядке, предложенном выполняемой программой. Программный обмен информацией Путь МП по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем МП. Выполнение программы Последовательно Цикл Прыжок Команда 1 Команда 2 Команда 3 . . . Команда N Команда N+1 Команда N+2 . . . Программа МП читает (выбирает) из памяти коды команд и выполняет их, считывая данные из памяти или из УВВ, и обрабатывает их, записывая данные в память или передавая их в УВВ. Обмен с использованием прерываний Обмен с прерываниями используется тогда, когда необходимая реакция МПС на какое-то внешнее событие, на приход внешнего сигнала. В общем случае организовать реакцию на внешнее событие можно тремя различными путями: с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага); с помощью прерывания, то есть насильственного перевода МП из выполнения текущей программы на выполнение экстренно необходимой программы; с помощью прямого доступа к памяти, то есть без участия МП при его отключении от системной магистрали. Обмен с использованием прерываний Прерывание - механизм МП, который используется для выполнения незапланированных действий, который перерывает выполнение основного потока команд и переводит МП на выполнение потока команд для обработки прерывания со следующим возвращением к исходным командам. Основная программа Выполнение команд Запрос прерывания Выполнение команд Команда 1 Команда 2 Команда 3 . . . . Команда N Команда N+1 Команда N+2 . . Программа обработки прерывания Команда 1 Команда 2 Команда 3 . . . . Команда М Обмен с использованием прерываний В зависимости от источника прерывания разделяются на три класса: 1. Внешние (аппаратные) прерывания — возникают в результате представления некоторой аппаратурой (например, контролером клавиатуры) электрического сигнала, который передается на специальный вход прерывания МП. 2. Внутренние прерывания (исключения) — возникают при появлении аварийной ситуации в ходе выполнения некоторой инструкции программы и обрабатываются специальными модулями ядра. 3. Программные прерывания — возникают при выполнении особой команды МП, выполнение которой имитирует прерывание. Обмен с использованием прерываний Существуют два способа реализации прерываний: векторный — в МП передается информация об уровне приоритета прерывания, а также информация о начальном адресе программы обработчика возникшего прерывания; опрашиваемый — в МП передается только приоритет прерывания, МП самостоятельно определяет, каким устройством вызвано прерывание путем вызова всех обработчиков прерываний для данного уровня приоритета, пока один из обработчиков не подтвердит, что прерывание пришло из устройства, которое им обслуживается. Обмен с использованием ПДП Прямой доступ к памяти (ПДП, DMA) — это режим, который принципиально отличается от двух ранее рассмотренных режимов тем, что обмен по системной шины происходит без участия МП. Внешнее устройство, которое требует обслуживания, сигнализирует МП, что режим ПДП необходим. В ответ на это МП заканчивает выполнение текущей команды и отключается от всех шин, сигнализируя запросом устройства, что обмен в режиме ПДП можно начинать. Операция ПДП сводится к пересылке информации из УВВ в память или же из памяти в УВВ. Когда пересылка информации будет закончена, МП опять возвращается к прерванной программе, продолжая ее из той точки, где его прервали. Выполнение команд Запрос ПДП Точка остановки на время ПДП Продолжение выполнения команд МП Команда 1 Команда 2 Команда 3 . . . . Команда N Команда N+1 Команда N+2 . . Программа Обмен с использованием ПДП Контроллер ПДП системная магистраль Память УВВ