Какие функции выполняет контроллер пдп при работе в режиме прямого доступа к памяти

Обновлено: 01.07.2024

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

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

Возможны два вида ПДП - с блочными или одиночными передачами.

Рис. Схема взаимодействия блоков микропроцессорной системы при прямом доступе к памяти

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

При непрерывной передаче массива данных скорость обмена ограничивается длительностью циклов ЗУ, быстродействием самого контроллера и скоростью выдачи/приема данных внешним устройством.

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

Структура и функции КПДП. Примером КПДП может служить БИС Intel 8237 A (К580ВТ57), основные блоки которой показаны ниже.

Рис. Структура контроллера прямого доступа к памяти

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

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

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

- генерация адресов для ЗУ и сигналов управления для ЗУ и ВУ;

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

- снятие запроса ПДП с соответствующего входа процессора и возвращение управления основной программе.

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

КПДП 8237А работает на частоте 3МГц, его модификации 8237А-4 и 8237А-5 на частотах 4 и 5МГц соответственно. Контроллер имеет 4 независимых канала и возможность каскадирования схем до любого числа каналов. В каждом из каналов контроллера размещено по пять регистров, а именно: два регистра адреса (базовый Р Ci б и текущий PCi т, где i - номер канала), два регистра счета слов (базовый Р Ci б и текущий PCi т) и регистр режима PPi . Адресные регистры и регистры счета слов шестнадцатиразрядные, следовательно, начальный адрес блока данных может располагаться в любом месте адресного пространства емкостью 64К, а максимальный размер блока также составляет 64Кбайт.

При программировании в оба адресных регистра загружается одно и то же значение адреса, а в оба регистра счета слов - одно и то же значение размера блока. При ПДП меняются состояния текущих регистров адреса и счета слов. Оба они работают в режиме счетчиков и при передаче очередного слова регистр адреса инкрементируется или декрементируется (в зависимости от программирования контроллера), а регистр счета слов декрементируется. Когда регистр-счетчик PCi т дойдет до нулевого состояния (перейдет от состояния 0000Н к состоянию FFFFH ), выработается сигнал конца счета (т.е. в качестве начального значения в PCi т следует загружать число, на единицу меньшее размера блока). Этим заканчивается режим блочного обмена с ПДП.

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

Прямой доступ к памяти (DMA - Direct Memory Access)обеспечивает высокоскоростной обмен данными между устройствами ввода-вывода и ОЗУ без использования центрального процессора, что позволяет освобо-дить процессор для выполнения вычислений параллельно с обменом и независимо от него.

Наиболее часто возможности DMA используются при работе с дисковыми накопителями, однако реализовано использование DMA и адаптерами накопителей других типов, а также рядом других устройств.

Ощутимые преимущества дает использование DMA в процессе обмена данными с устройствами, принимающими или передающими данные достаточно большими порциями и с высокой скоростью.

В ПЭВМ функции DMA выполняет контроллер прямого доступа к памяти (ПДП), построенный на базе микросхемы i8237А (INTEL) или ее аналоги i8237А-4 и i8237А-5, работающие с тактовой частотой 4 и 5 Мгц соответствен-но (стандартная микросхема i8237А работает на частоте 3 Мгц). Контроллер имеет 4 независимых канала, каждый из которых может обслуживать одно периферийное устройство.

Основные задачи прямого доступа к памяти.

1. Управление инициализируемой периферийным устройством или центральным процессором передачей данных между ОЗУ и периферийным устройством.

2. Задание размера блока данных, который подлежит передаче, и область памяти, используемой при передаче.

3. Формирование адресов ячеек ОЗУ, участвующих в передаче.

4. Подсчет объема данных, передаваемых между периферийным устройством и ОЗУ, определение момента завершения операции ПДП.

Принципы работы контроллера прямого доступа к памяти.

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

2. В регистр текущего адреса заносится начальный адрес области памяти ОЗУ, используемой при передаче.

3. Центральный процессор освобождает шину данных и передает управление передачей данных контроллеру прямого доступа до завершения передачи (в соответствии с требованиями режима передачи данных).

4. В процессе передачи каждого байта (или слова) содержимое регистра текущего адреса уменьшается или увеличивается на единицу и через масштабный коэффициент формируется адрес очередной ячейки памяти.

5. Одновременно уменьшается на единицу содержимое текущего счетчика данных.

6. Обнуление текущего счетчика данных указывает на завершение операции по прямой передаче данных между периферийным устройством и ОЗУ.

7. Устройство управления формирует сигнал центральному процессору о завершении передачи данных.

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

При работе в режиме прямого доступа к памяти (ПДП) контрол­лер ПДП выполняет следующие функции:

• принимает запрос на ПДП от внешнего устройства;

• формирует запрос микропроцессору на захват шин системной ма­гистрали;

• принимает сигнал, подтверждающий вход микропроцессора в со­стояние захвата (перехода в z -состояние, при котором процессор отключается от системной магистрали);

• формирует сигнал, сообщающий внешнему устройству о начале выполнения циклов ПДП;

• выдает на шину адреса системной магистрали адрес ячейки ОП, предназначенной для обмена;

• вырабатывает сигналы, обеспечивающие управление обменом данными;

Рекомендуемые файлы

Ответы на сертификацию Google Рекламы по проведению кампаний для приложений 2021 Ноябрь

• по окончании ПДП либо организует повторение цикла ПДП, либо

прекращает режим ПДП, снимая запросы на него.

Циклы ПДП выполняются с последовательно расположенными ячейками памяти, поэтому контроллер ПДП имеет счетчик числа пе­реданных байтов.

На рис. 6.4 приведена схема взаимодействия устройств микропро­цессорной системы в режиме ПДП.


Рис. 6.4. Взаимодействие устройств в режиме ПДП

Контроллер ПДП может работать в двух основных режимах: в режиме программирования и в режиме выполнения циклов ПДП.

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

Системная магистраль (СМ) в режиме прямого доступа к памяти используется мультиплексно КПДП и микропроцессором, причем ос­новное управление системной магистралью выполняет КПДП, а МП получает к ней доступ на очень короткие промежутки времени для обмена информацией с основной памятью.

В качестве примера реализации принципов прямого доступа к памяти (ПДП) рассмотрим микросхему КР580ВТ57. Программируемый контроллер ПДП предназначен для высокоскоростного обмена данными между памятью системы и че­тырьмя внешними устройствами (ВУ).

Контроллер осуществляет двунаправленный обмен данными между памятью и ВУ (по требованию ВУ), при этом в адресном канале микропроцессорной систе­мы формируются параметры заданного массива адресов ячеек памяти (началь­ный адрес и число циклов) и управляющие сигналы. Каждый из четырех каналов контроллера обеспечивает адресацию (путем инкрементирования выработанного адреса) внешней памяти массивами объемом до 16К байт с возможностью зада­ния любого из 64К начальных адресов.

Состав контроллера ПДП

рис. 3.11.1

В контроллере можно выделить следующие блоки (рис. 3.11.1): блок обработки запросов, формирователь адреса, блок логики чте­ния–записи, блок управления, буфер данных и два регистра — регистр установки режима и регистр состояния каналов. Рассмотрим их особенности.

Блок обработки запросов предназначен:

● для приема сигналов запроса ЗПДП0–ЗПДП3 на прямой доступ к памяти от ВУ;

● для маскирования входов каналов К0–К3;

● для выдачи сигналов подтверждения запроса ¯ППДП0 – ¯ППДП3 прямого доступа к памяти, информирующих ВУ о готовности контроллера к обмену данными по каналу ПДП.

  • как выходы для передачи младших разрядов кода адреса при работе канала ПДП;
  • как входы для выбора регистра, с которым будет происходить обмен инфор­мацией. Такая необходимость возникает при записи программы начальной установки в контроллер ПДП, а также при чтении содержимого адресного ре­гистра, регистра числа циклов или регистра состояния.

Блок логики чтения–записи

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

● ¯Зп — двунаправленный управляющий трехстабильный вход/выход, использу­емый:

• как вход для получения сигнала из процессора на запись данных во внут­ренние регистры контроллера ПДП при его начальной установке;

• как выход,на котором формируется сигнал, разрешающий внешнему уст­ройству запись данных из памяти;

● ¯Чт — двунаправленный трехстабильный управляющий вход/выход, использу­емый:

• как вход для получения из процессора сигнала, разрешающего чтение (вы­вод) содержимого внутренних регистров контроллера;

• как выход длявыдачи сигнала на разрешение считывания данных из ВУ в память;

● ¯ЧтП, ¯ЗпП — выходы для управления чтением из памяти и записью в память;

Выводы ¯Зп, ¯Чт подключаются к процессору как входы и к ВУ как выходы, а вы­ходы ¯ЗпП, ¯ЧтП — к памяти микропроцессорной системы.

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

  • ЗЗх (Н RQ ) — выход, с которого снимается сигнал запроса захвата для микро­процессора;
  • ПЗх ( HLDA) — вход, на который поступает сигнал подтверждения захвата от микропроцессора;
  • Гт (RDY )— управляющий вход готовности. Сигнал Гт = 1 от ВУ активизирует работу контроллера ПДП; сигнал Гт = 0 переводит контроллер в состояние ожидания;
  • М128 — выход маркер 128–го цикла: М128 = 1 свидетельствует о том, что те­кущий цикл ПДП является по счету 128–м циклом от конца массива данных;
  • КС (ТС) — выход конец счета: КС = 1 указывает ВУ, что текущий цикл обмена по каналу ПДП является последним при передаче массива данных. Если раз­ряд «КС–стоп» в регистре установки режимов установлен в 1, то канал будет запрещен. Выход КС активизируется (КС = 1), когда содержимое 14–разряд­ного регистра числа циклов в данном канале устанавливается в 0;
  • РА (АЕ) — выход разрешения адреса: РА = 1 указывает системе, что происхо­дят циклы прямого доступа. При этом все шины отключаются от микропроцес­сора. Сигнал может быть использован для блокировки адресной шины в уст­ройствах, не участвующих в прямом доступе, а также для записи старших восьми разрядов кода адреса в буферный регистр адреса и отключения схе­мы выборки устройства. В режиме ПДП выборка устройства осуществляется сигналами ¯ППДП0 – ¯ППДП3;
  • СтА ( STBA ) — выходстроб адреса,сигнал которого стробирует старший байт адреса памяти, передаваемый через ШД в дополнительный буфер данных. Через этот буфер старший байт адреса поступает на адресную шину микро­процессорной системы;
  • ТИ — вход для тактовых импульсов;
  • Сброс —вход начальной установки устройства. Подача единичного сигнала на этот вход обнуляет содержимое всех программно доступных регистров, что приводит к отключению каналов К0 – К3.

Буфер данных представляет собой 8–разрядную двунаправленную шину с тремя состояниями, соединяющую контроллер ПДП с системной шиной дан­ных ШД.

Через буфер данных:

Регистр установки

табл. 3.11.1

режимов хранит информацию о запрограммированных режимах автозагрузки, удлиненной и обычной записи, фиксированного приорите­та и циклического сдвига приоритетов, КС–стоп и др. В него при программировании контроллера ПДП записывается 8–разрядное управляющее слово. Регистр установки режима обычно загружается после того, как установлены регистр ад­реса (РгА) и регистр циклов (РгЦ). Назначение разрядов регистра установки режимов приведено в табл. 3.11.1.

Регистр состояния каналов

табл. 3.11.2

указывает, в каком из четырех каналов окончился процесс передачи массива. Для этого в младшие разряды РС0–РС3 (флаги завершения обслуживания) записывается значение сигнала КС = 1 конца счета, появляющегося на выходе КС и указывающего на конец массива по соот­ветствующему каналу. Назначение разрядов регистра установки режимов приве­дено в табл. 3.11.2.

Основные состояния и режимы работы устройства.

Основными состояния­ми являются исходное состояние, программирование, ожидание и обслуживание.

Исходное состояние.

Программирование.

табл. 3.11.3

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

Ожидание.

В состоянииожиданияконтроллер принимает от ВУ сигнал за­проса на получение цикла ПДП (ЗПДП0–ЗПДП3) и вырабатывает для микропро­цессора сигнал запроса захвата (ЗЗх). В этом состоянии системные шины нахо­дятся под управлением микропроцессора.

Обслуживание.

После поступления от микропроцессора сигнала подтверж­дения захвата (ПЗх) при наличии сигнала запроса (ЗПДП0 – ЗПДП3) от ВУ контрол­лер вырабатывает сигнал подтверждения запроса (¯ППДП0 – ¯ППДП3) для одного из ВУ и переходит всостояние обслуживания. Вэтом состоянии системные шины находятся под управлением контроллера, и реализуется один из запрограм­мированных режимов ПДП:

  • младшие 8 разрядов адреса памяти поступают на шины А0–А3, А4–А7, стар­шие 8 разрядов — на шину данных ШД;
  • формируются соответствующие сигналы управления ¯ЧтП и ¯ЗпП, ¯Зп и ¯Чт, ко­торые позволяют ВУ получить из ячейки памяти или передать в ячейку памя­ти за один цикл байт данных.

В первом цикле работы устройство ПДП передает начальный адрес ячейки па­мяти. В последующих циклах адрес увеличивается, а число циклов уменьшается на единицу, до тех пор, пока содержимое регистра числа циклов (вернее его 14 раз­рядов) не станет равным нулю. После этого формируется сигналконца счетаКС и возможны следующие режимы работы:

При работе в режиме прямого доступа к памяти Контроллер ПДП (прямого доступа к памяти, DMA) выполняет следующие функции:

– принимает запрос на ПДП от внешнего устройства;

– формирует запрос микропроцессору на захват шин системной магистрали;

– принимает сигнал, подтверждающий вход микропроцессора в состояние захвата (перехода в состояние захвата, при котором процессор отключается от системной магистрали);

– формирует сигнал, сообщающий внешнему устройству о начале выполнения циклов ПДП;

– выдает на шину адреса системной магистрали адрес ячейки ОП, предназначенной для обмена;

– вырабатывает сигналы, обеспечивающие управление обменом данными;

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

Циклы ПДП выполняются с последовательно расположенными ячейками памяти, поэтому контроллер ПДП имеет счетчик числа переданных байтов.

glava 64.jpg

Рисунок – Взаимодействие устройств в режиме ПДП

Каждый Канал КПДП состоит из четырех 16-разрядных регистров: регистр текущего адреса (CAR), регистр циклов ПДП (CWR), регистр хранения базового адреса (BAR), регистр хранения базового числа Циклов ПДП (WCR) и 6-разрядный регистр режима (MR).

Регистр текущего адреса хранит текущий адрес ячейки памяти при выполнении цикла ПДП. После выполнения каждого цикла ПДП содержимое этого регистра увеличивается или уменьшается на единицу. Оно может быть прочитано или загружено с помощью двух команд IN или соответственно QUT, работающих каждая только с одним байтом. В режиме автоинициализации содержимое регистра текущего адреса при обновлении принимает базовый адрес из регистра хранения базового адреса.

glava 65.jpg

Рисунок – Структурная схема контроллера ПДП

Регистры BAR и WCR предназначены для хранения констант – базового адреса и базового числа циклов. Они загружаются в режиме программирования КПДП одновременно с регистрами CAR и CWR. В процессе выполнения циклов ПДП их содержимое не изменяется. Прочитать состояние этих регистров невозможно.

Регистр режима определяет режим работы канала. Он содержит информацию о номере канала, типе цикла ПДП, необходимости автоинициализации, режиме изменения регистра текущего адреса (CAR) – увеличение или уменьшение и режиме работы канала – передача по запросу, одиночная передача, блочная передача, каскадирование (работа в составе каскада КПДП).

Регистр команд блока управления режимом определяет основные параметры работы канала. Загружается при программировании КПДП микропроцессором.

Регистр условий хранит разрешение на ПДП каждому каналу (устанавливаемые программно) и запоминает факт перехода через 0 в регистре хранения базового числа циклов каждого канала.

Контроллер ПДП может работать в двух основных режимах: в режиме программирования и режиме выполнения циклов ПДП.

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

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

Несмотря на большую самостоятельность ПДП, ведущее положение в МП-системе остается все-таки за микропроцессором, который, запустив обмен информацией в режиме ПДП, продолжает выполнять свою работу.

Читайте также: