- •Раздел 1 Архитектура микропроцессорного вычисления
- •Тема 1.1 Архитектура микропроцессора
- •1 Архитектура микропроцессора. Классификация
- •Контрольные вопросы:
- •Тема 1.2 Организация управления процессом обработки информации
- •1 Структура микропроцессора
- •2 Аппаратный принцип управления выполнением операций
- •3 Микропрограммный принцип управления выполнением операций
- •Контрольные вопросы:
- •Тема 1.3 Общая схема микропроцессора. Cisc и risc архитектура, основные принципы
- •1 Построение микропроцессорных систем
- •2 Режим выполнения основной программы
- •3 Режим вызова программы
- •4 Режим обслуживания прерываний и исключений
- •5 Режим прямого доступа к памяти
- •6 Конвейерный принцип выполнения команд
- •При идеальной (а) и реальной (б) загрузке 6-ступенчатого конвейера
- •Контрольные вопросы:
- •Тема 1.4 Ассемблерная мнемоника. Структура и форматы команд. Виды адресации. Система команд микропроцессора
- •1 Язык ассемблера. Основные понятия
- •Структура программы на ассемблере. Синтаксис ассемблера.
- •2 Символы языка ассемблера
- •3 Типы операторов ассемблера
- •Директивы ассемблера
- •Система команд процессора
- •Контрольные вопросы:
- •Тема 1.5 Организация памяти микропроцессорных вычислителей
- •1 Общие сведения о запоминающих устройствах (зу)
- •2 Основные параметры запоминающих устройств Основными параметрами запоминающих устройств являются:
- •3 Классификация запоминающих устройств
- •4 Основные структуры запоминающих устройств
- •Структура 3d
- •Контрольные вопросы:
- •Тема 1.6 Адресация в микропроцессорном вычислителе. Понятие адресного пространства. Методы полной и частичной дешифрации адресов
- •1 Форматы команд
- •2 Способы адресации операндов
- •Тема 1.7 Интерфейс и его функции. Параллельный и последовательный обмен информацией. Способы обмена данными.
- •1 Общие сведения об интерфейсах
- •2 Иерархия шин
- •4 Параллельные периферийные адаптеры
- •Режим 0
- •Режим 1
- •5 Программируемые связные адаптеры
- •6 Программируемые контроллеры прерываний
- •7 Контроллеры прямого доступа к памяти
- •8 Программируемые интервальные таймеры
- •Раздел 2 Системы на основе однокристальных микропроцессоров и микроконтроллеров
- •Тема 2.1 Особенности архитектуры однокристальных микропроцессоров. Обобщенная структура
- •1 Основные характеристики однокристальных микропроцессоров
- •2 Эволюция архитектуры однокристальных микропроцессоров Intel x86
- •3 Семейства однокристальных микроконтроллеров. Базовая органи-зация
- •4 Набор регистров мк - 51
- •5 Организация памяти мк-51
- •Периферийные средства мк – 51
- •Контрольные вопросы:
- •Тема 2.2 Система команд
- •3 Отладка и настройка микроконтроллерных систем
- •1 Типы команд
- •2 Расширение памяти программ и данных
- •3 Отладка и настройка микроконтроллерных систем
- •Глоссарий
- •Итоговый тест
- •Литература
7 Контроллеры прямого доступа к памяти
Прямой доступ к памяти (ПДП) - создание прямого тракта передач данных от внешних устройств к памяти или от памяти к внешним устройствам. В английской терминологии это DMA - Direct Memory Access. При обычном обмене передачи между ВУ и памятью требуют вначале принять данные от источника в процессор, а затем выдать их из процессора приемнику, т.е. реализуются за два командных цикла. При ПДП данные не проходят через процессор, и передача слова производится за один цикл. Для реализации ПДП разработаны специальные аппаратные средства, выпускаются БИС КПДП, способные благодаря программированию обслуживать ПДП с учетом конкретных требований различных систем.
Взаимодействие блоков микропроцессорной системы при ПДП показано на рисунке 48. Микропроцессор выполняет операцию программирования КПДП, настраивая его на определенный режим работы, и может читать состояние контроллера. Соответствующие связи показаны штриховой линией. При осуществлении ПДП микропроцессор отключен, а контроллер вырабатывает сигналы управления обменом для ВУ и ОЗУ. Тракт передачи данных связывает ВУ с ОЗУ непосредственно.
Возможны два вида ПДП - с блочными или одиночными передачами.
Рисунок 48 - Схема взаимодействия блоков
микропроцессорной системы при прямом доступе к памяти
В первом работа процессора останавливается на все время передачи блока данных, во втором передачи слов в режиме ПДП перемежаются с выполнением программы, и для передач ПДП выделяются отдельные такты машинных циклов, в которых процессор не использует системные шины. Каждый командный цикл начинается с машинного цикла Ml - выборки команды. В этом машинном цикле есть такт декодирования принятой процессором команды, в котором системные шины не используются. На это время системные шины можно отдать для ПДП и передать одно слово. Производительность системы может возрасти из-за параллелизма процессов обмена и обработки данных, благодаря тому, что ПДП будет для процессора "невидимым". Сам обмен с ПДП будет не быстрым, темп обмена нерегулярен, т.к. длительности циклов различных команд различны, и, кроме того, ПДП может и замедлить выполнение программы, если цикл ПДП не уложится в интервал, соответствующий такту процессора.
При непрерывной передаче массива данных скорость обмена ограничивается длительностью циклов ЗУ, быстродействием самого контроллера и скоростью выдачи/приема данных внешним устройством.
В отличие от процессов прерывания при ПДП, обмен выполняется без участия программы, поэтому содержимое рабочих регистров МП не нарушается и на вхождение в режим ПДП не требуется затрат времени (нет передачи в стек на хранение содержимого рабочих регистров МП). ПДП предоставляется по завершении текущего машинного цикла.
Структура и функции КПДП. Примером КПДП может служить БИС Intel 8237A (К580ВТ57), основные блоки которой показаны на рисунке 49.
Рисунок 49 - Структура контроллера прямого доступа к памяти
Действия, выполняемые КПДП при блочных передачах, состоят в следующем:
прием сведений об области памяти, отведенной для блока данных, подлежащих передаче (начальный адрес и размер блока);
трансляция запроса на ПДП, исходящего от ВУ, в запрос ПДП для процессора с учетом маскирования и приоритетности запросов, поступающих на КПДП. Прием сигнала подтверждения ПДП, свидетельствующего о том, что процессор отключился от системных шин;
генерация адресов для ЗУ и сигналов управления для ЗУ и ВУ;
фиксация завершенности ПДП;
снятие запроса ПДП с соответствующего входа процессора и возвращение управления основной программе.
Возможности КПДП позволяют организовать обмен типа "память-память", т.е. решать задачу перемещения блока данных в адресном пространстве системы.
КПДП 8237А работает на частоте 3МГц, его модификации 8237А-4 и 8237А-5 на частотах 4 и 5МГц соответственно. Контроллер имеет 4 независимых канала и возможность каскадирования схем до любого числа каналов. В каждом из каналов контроллера размещено по пять регистров, а именно: два регистра адреса (базовый РCiб и текущий PCiт, где i - номер канала), два регистра счета слов (базовый РCiб и текущий PCiт) и регистр режима PPi. Адресные регистры и регистры счета слов шестнадцатиразрядные, следовательно, начальный адрес блока данных может располагаться в любом месте адресного пространства емкостью 64К, а максимальный размер блока также составляет 64Кбайт.
При программировании в оба адресных регистра загружается одно и то же значение адреса, а в оба регистра счета слов - одно и то же значение размера блока. При ПДП меняются состояния текущих регистров адреса и счета слов. Оба они работают в режиме счетчиков и при передаче очередного слова регистр адреса инкрементируется или декрементируется (в зависимости от программирования контроллера), а регистр счета слов декрементируется. Когда регистр-счетчик PCiт дойдет до нулевого состояния (перейдет от состояния 0000Н к состоянию FFFFH), выработается сигнал конца счета (т.е. в качестве начального значения в PCiт следует загружать число, на единицу меньшее размера блока). Этим заканчивается режим блочного обмена с ПДП.
Базовые регистры адреса и счета слов позволяют реализовать режим автоинициализации канала. В них начальные адреса и размеры блоков сохраняются неизменными и, если в конце ПДП вновь загрузить текущие регистры теми же кодами, то можно вновь повторить вывод того же блока данных, что и в предыдущем ПДП. Такой режим нужен, например, при управлении дисплеем, который для поддержания на экране какого-либо изображения нуждается в повторении блока данных с частотой в несколько десятков герц.
