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

4.2.5 Функционирование мп при обслуживании прерываний

Регистр указателя стека SP/ESP всегда указывает на вершину стека, то есть на адрес последнего записанного в стек элемента (байта). При занесении элемента в стек МП уменьшает содержимое регистра SP/ESP, а затем записывает элемент по адресу новой вершины.

Регистр SP/ESP всегда указывает на вершину стека, то есть на адрес последнего записанного в стек элемента (байта). При занесении элемента в стек МП уменьшает содержимое регистра SP/ESP, а затем записывает элемент по адресу новой вершины.

Регистр BP/EBR сохраняет первоначальный (стартовый) адрес вершины стека и служит для получения доступа к элементам внутри стека.

При естественном следовании команд МП, начав работу, выбирает из памяти и выполняет одну команду за другой, пока не дойдёт до команды «Останов» (HLT).

Особенности работы со стеком:

а) обращение осуществляются по принципу «первый пришёл – последний вышел»;

б) по мере записи данных стек растёт в сторону младших адресов;

71

в) адреса элементов стека отсчитываются от стартового адреса, занесённого в регистр сегмента стека SS.

Для работы со стеком существуют команды:

PUSH – «запись слова» записывает значение в вершину стека. По этой команде: а) уменьшается на 2 значение, занесённое в указатель стека SP, б) значение записывается по адресу, указываемому парой регистров SS, SP (см. рис. 2.6.4).

POP – команда, обратная PUSH - «считывание слова». По этой команде содержимое двух верхних ячеек стека считывается и помещается в соответствующие регистры W и Z, а содержимое регистра указателя стека SP увеличивается на 2.

Рисунок 4.2.4 – Принцип работы команды PUCH

Рисунок 4.2.5 – Принцип работы команды РОР

72

Тема 4.3 Прямой доступ к памяти

Прямой доступ к памяти ПДП (по английской терминологии DMA – Direct Memory Access) – это создание прямого тракта передачи данных от внешних устройств ВУ к памяти или от памяти к ВУ. При обычном обмене требуется в начале данные принять от источника в процессор, а затем выдать их из процессора приёмнику, что выполняется за два командных цикла. При ПДП данные не проходят через микропроцессор, и передача их осуществляется за один цикл. ПДП особенно удобен при передаче данных в высоком темпе, например, при обмене между внешней памятью и ОЗУ. В режиме ПДП процессор отключается от системных шин и передаёт управлении ими контроллеру прямого доступа к памяти. КПДП выпускаются в виде БИС.

Взаимодействие блоков МПС показано на рисунке 4.3.1.

Рисунок 4.3.1 – Схема взаимодействия блоков МПС при ПДП

МП программирует КПДП, настраивая его на определённый режим работы и может читать его состояние. Соответствующие связи показаны штриховой линией. При ПДП МП отключен, а КПДП вырабатывает сигналы управления обменом для ОЗУ и внешними устройствами ВУ. ОЗУ и ВУ связаны непосредственно.

При ПДП обмен осуществляется без участия программы и на вхождение в режим ПДП, не требуется дополнительных затрат времени, таких как при прерываниях (передачи в стек на хранение содержимого рабочих регистров МП). Содержимое рабочих регистров МП при этом не нарушается, ПДП предоставляется по завершении текущего машинного цикла.

Возможны два вида прямого доступа к памяти.

При ПДП с блочными передачами работа МП на всё время передачи блока дан-ных останавливается. При этом скорость обмена ограничивается длительностью 77ИК-лов ЗУ, быстродействием КПДП и скоростью приёма/выдачи данных ВУ.

КПДП при блочных передачах выполняет следующие действия:

-принимает начальный адрес памяти для размещения блока данных и его размер;

-транслирует запрос, исходящий от ВУ на ПДП, в запрос КПДП для МП с учётом маскирования и приоритетности запросов, поступающих на КПДП;

-принимает сигнал подтверждения ПДП, то есть сигнала о том, что МП отключился системных шин;

-вырабатывает сигналы управления для ЗУ и ВУ и адреса для ЗУ;

-фиксирует завершение ПДП;

-снимает запрос с соответствующего входа МП.

В этом режиме КПДП позволяет организовать режим память-память и тем самым решить задачу перемещения блоков данных в адресном пространстве.

При ПДП с одиночными передачами передача данных перемежается выполнением

73

программы, а для передач ПДП выделяются отдельные такты машинных циклов,

в которых в процессор не использует системные шины СШ. Каждый командный

цикл начинается с машинного цикла М1 – выборки команды. В этом машинном цикле есть такт декодирования принятой в МП команды, в котором СШ не используются. На это время СШ можно отдать для ПДП и передать одно слово.

Производительность МПС может возрасти в следствие параллелизма процессов обмена и обработки данных. Обмен не будет быстрым, темп обмена не будет регулярным, а ПДП может и замедлить выполнение программы, если цикл ПДП не уложится в тактовый интервал процессора.

Структурная схема ИС КПДП К580ВТ57 приведена на рисунке 4.3.2

Рисунок 4.3.2 – Структурная схема ИС контроллера ПДП К580ВТ57

КПДП работает на частоте 3 МГц, имеет четыре независимых канала и возможность каскадирования схем до любого числа каналов.

В каждом из каналов КПДП размещено по пять регистров: два регистра адреса (базовый Раiб и текущий Раiт, где I – номер канала), два регистра счёта слов (базовый Рсiб и текущий Рсiт) и регистр режима Ррi. Адресные регистры и регистры счёта слов – 16-разрядные, следовательно начальный адрес блока данных может располагаться в любом месте адресного пространства 64 К, а максимальный размер блока может составлять 64 Кбайт.

При программировании в оба адресных регистра загружается одно и то же значение адреса, а в оба регистра счёта слов – одно и то же значение размера блока.

При ПДП регистры Раiт и Рсiт работают в режиме счётчиков, их состояния меняются и при передаче очередного слова содержимое регистра адреса уменьшается или увеличивается на 1 (в зависимости от программирования КПДП), содержимое реги-2

стра счёта слов уменьшается на 1. Когда регистр-счётчик слов обнулится, вырабатывается сигнал конца счёта и режим блочного обмена закончится.

Базовые регистры адреса и счёта слов позволяют реализовать режим автоинициализации канала. В них начальные адреса и размеры блоков сохраняются неизменными и, если в конце ПДП вновь загрузить текущие регистры теми же кодами, то можно повторить вывод того же блока данных, что и в предыдущем ПДП.

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

74