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

Альтернативой программно управляемому обмену служит прямой доступ к памяти — способ быстродействующего подключения внешнего устройства, при котором оно обращается к оперативной памяти, не прерывая работы процессора. Такой обмен происходит под управлением отдельного устройства — контроллера прямого доступа к памяти (КПДП).

Операция ПДП сводится к пересылке информации из устройства ввода/вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали. Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме.

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

N

Выполнение

команд

Запрос ПДП

Точка остановки на время ПДП

Продолжение

выполнения

команд

Команда 1 Команда 2 Команда 3

Команда N Команда N + 1 Команда Л/ + 2 Команда Л/ + 3 Команда N + 4 Команда Л/ + 5

> Программа

у

Рис. 6.6. Обслуживание ПДП

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

Системная магистраль

Рис. 6.7. Информационные потоки в режиме ПДП

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

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

Схема включения КПДП в состав микропроцессорной системы представлена на рис. 6.8.

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

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

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

Последовательность действий КПДП при запросе на прямой доступ к памяти со стороны внешнего устройства следующая.

  • 1. Принять запрос на ПДП (сигнал DRQ) от ВУ.
  • 2. Сформировать запрос к МП на захват шин (сигнал HRQ).
  • 3. Принять сигнал от МП (HLDA), подтверждающий факт перевода микропроцессором своих шин в третье состояние.
  • 4. Сформировать сигнал, сообщающий устройству ввода/вывода о начале выполнения циклов прямого доступа к памяти (DACK).
  • 5. Сформировать на шине адреса компьютера адрес ячейки памяти, предназначенной для обмена.
  • 6. Выработать сигналы, обеспечивающие управление обменом (.IOR, MWдля передачи данных из ВУ в оперативную память и IOW, MR — для передачи данных из оперативной памяти в ВУ).
  • 7. Уменьшить значение в счетчике данных на длину переданных данных.
  • 8. Проверить условие окончания сеанса прямого доступа (обнуление счетчика данных или снятие сигнала запроса на ПДП). Если условие окончания не выполнено, то изменить адрес в регистре текущего адреса на длину переданных данных и повторить шаги 5—8.

Прямой доступ к памяти позволяет осуществлять обмен данными между внешним устройством и оперативной памятью параллельно с выполнением процессором программы. Структура КПДП представлена на рис. 6.9.

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

В состав каждого канала входят следующие регистры:

  • 1) MR (Mode Register) — регистр режима. Определяет следующие параметры передачи:
    • • порядок изменения (увеличения или уменьшения) адреса ОП при передаче;
    • • возможность автоинициализации;
    • • режим обслуживания:
    • • одиночная передача (контроллер возвращает магистраль процессору после каждого цикла ПДП);
    • • блочная передача (контроллер владеет магистралью в течение передачи всего массива);
    • • по требованию (окончание передачи определяется снятием сигнала DRQ или подачей сигнала IEOP на внешний вход КПДП);
    • • каскадирование;
  • 2) CAR (Current Address Register) — регистр текущего адреса;

Данные

-4-?

< l0R >

<l0W >

Адрес

?*-?

AEN

MR

MW

READY

HRQ

<-?

HLDA

IEOP

<-?

Буферный

регистр

Регистр

команд

Регистр

условий

Регистр

запросов

Регистр

маски

TR

CR

SR

RR

MASK

CAR

BAR

CWR

WCR

MR

Канал 0

Канал 1

Канал 2

Канал 3

DRQ0

->- DACK0

DRQ1 DACK1

DRQ2 *? DACK2

DRQ3 DACK3

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

  • 3) BAR (Base Address Register) — базовый регистр адреса;
  • 4) CWR (Current Word Register) — текущий счетчик данных;
  • 5) WCR (Word Control Register) — базовый счетчик данных. Значения в регистрах BAR и WCR устанавливаются при инициализации и в ходе циклов ПДП не меняются. В регистры CAR и CWR в начале выполнения ПДП заносятся значения из регистров BAR и WCR соответственно. При выполнении ПДП эти регистры изменяются.

Управляющие регистры, общие для всего контроллера:

  • 1) CR (Command Register) — регистр команд, определяет:
    • • режим память—память или обычный. В режиме память/память осуществляется обмен по схеме ПДП между двумя областями ОП (только для каналов 0 и 1) с использованием буферного регистра TR (Temporary Register);
    • • запрет/разрешение ПДП;
    • • порядок изменения приоритетов каналов:
    • • фиксированный приоритет;
    • • циклическое изменение приоритета после обработки запроса на ПДП по одному из каналов;
    • • явное указание наиболее приоритетного канала;
    • • уровень сигналов DRQ и DACK (настройка на активный уровень сигналов под особенности работы внешних устройств);
  • 2) SR (Status Register) — регистр условий, используется для фиксации признаков обмена по каждому из каналов и программных запросов на ПДП.

Во избежание ложных срабатываний внешних устройств, не использующих в данный момент режим прямого доступа, контроллер ПДП во время режима ПДП вырабатывает сигнал AEN, который блокирует работу остальных внешних устройств:

AEN - Я — шиной УпРавляет контроллер ПДП;

[2 — шиной управляет М П или другой задатчик.

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

канал О канал 1 канал 2 канал 3

Рис. 6.10. Каскадное включение контроллеров прямого доступа к памяти

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

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

 
< Пред   СОДЕРЖАНИЕ     След >