Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП МПУ-13.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
5.78 Mб
Скачать

3.6. Принцип прямого доступа к памяти

Область применения: значительные объемы данных, передаваемых между внешними блоками памяти и высокая частота обмена.

Такие задачи решаются, как правило, с использованием высокопроизводительных процессорных устройств (16/32 разрядные МК и ЦСП). Обмен с прямым доступом требует от процессора только настройки адресов приемника и передатчика, задания формата данных (байт, слово и пр.), определения количества передач и сигнала синхронизации передач, возможности авто-увеличения или уменьшения адресов приемника и передатчика, разрешения запроса прерывания после завершения заданного количества передач. Далее все действия выполняются аппаратно контроллером прямого доступа к памяти (ПДП) [Direct Memory Access - DMA] в фоновом режиме относительно работы процессора, для чего используются системная магистраль в интервалах, не занятых процессором. В современных МК устройства ПДП различаются по своим характеристикам и называются по разному: контроллер событий [Event Controller], массив процессоров событий [Event Processor Array], сервер периферийных транзакции [Peripheral Transaction Server] и пр.

Рассмотрим основные черты контроллера ПДП ЦСП.

Регистры управления и состояния:

- общий регистр управления ПДП (РУ ПДП) определяет режим работы контроллера и характер изменения адресов источника и приемника (инкремент, декремент, синхронный);

- регистры адресов источников (РАИ) и приемников (РАП) для каждого канала ПДП;

- регистры счетчиков пересылок (РСП), управляющие размером кадров и блоков пересылок по каждому каналу ПДП;

- регистр разрешения прерываний (РРП) ЦПУ/ПДП.

Структура передаваемых данных:

  1. Элемент программно выбираемого размера (1/2/4 байта);

  2. Кадр, состоящий из N элементов (обычно до 64 К);

  3. Блок, состоящий из K кадров (обычно до 64 К, т.е. до 4 G элементов).

Пересылка элемента в каждом канале выполняется за 2 шага:

  1. Чтение элемента данных по адресу РАИ;

  2. Запись прочитанного элемента по адресу РАП.

После этого модифицируются значения РАИ и РАП по правилам, выбранным в РУ ПДП и выполняется декремент РСП. По окончании пересылки блока генерируется прерывание.

Синхронизация каналов ПДП выполняется по внешним или внутренним прерываниям. Программно выбирается одно из прерываний и один из четырех способов синхронизации:

  1. нет синхронизации – все прерывания игнорируются, ПДП выполняет чтения/записи в максимально возможном темпе;

  2. синхронизация источника – чтение по выбранному прерыванию;

  3. синхронизация приемника – запись по выбранному прерыванию;

  4. синхронизация кадра – начать пересылку кадра по прерыванию.

Генерация адресов ПДП выполняется с использованием индивидуального набора индексных регистров: базовый адрес, индекс элемента (смещение на 1/2/4 байта) и индекс кадра (смещение при переходе к новому кадру).

Приоритеты ПДП/ЦПУ: приоритеты между каналами ПДП - фиксированные (0 – старший, 3- младший), для каждого канала программно задается приоритет по отношению к ЦПУ; порядок разбора состязания - сначала выявляется самый старший из активированных каналов ПДП, затем сравнение его приоритета с процессором. Устройство, не получившее право доступа ставится в очередь. Для сохранения данных от источника в очереди используется буфер FIFO (9 ячеек) и еще два регистра задержек.