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

Лабораторная работа Режим прямого доступа к памяти.

Цель: изучить особенности прямого доступа к памяти.

Задание:

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

2. Вариант задания: 12-21-32-41-52.

Основные сведения о пдп.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сопряжение устройств в режиме пдп.

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

Рис. 2 Схема сопряжения устройств в режиме ПДП

В начале режима ПДП процессор инициализирует КПДП: задает режим работы передает начальный (стартовый) адрес ОП, число передаваемых байтов (слов) и т.д. Затем процессор выводит команды в КВЗУ, указывающие тип операции (запись, чтение или поиск и так далее). После подготовки данных КВЗУ устанавливает сигнал запрос ПДП (DMA) DRQ N (N - номер канала). КПДП (микросхема i8237) содержит 4 канала, работающие в режиме разделения времени.

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

Схема выполнения режима ПДП.

С этого момента времени задатчиком на интерфейсе становится КПДП под управлением которого осуществляется передача данных через KB3У между В3У и ОП по следующей схеме (рис. 3).

Рис. 3 Схема выполнения режима ПДП

Если в качестве ВЗУ используется накопитель гибких магнитных дисков (НГМД), то служебные функции базовой системы ввода-вывода (BIOS), управляющие работой дискеты и хранящиеся в ПЗУ, вызываются программным прерыванием INT 13H.

После захвата интерфейса КПДП передает в КВЗУ сигнал подтверждения ПДП DACK N. определяющий начало передачи данных. Сигнал Т/С (окончание счета) устанавливается КПДП после окончания счета числа пересылок данных. ПК PC/AT имеет 7 каналов ПДП (каскадное соединение двух микросхем i8237), причем каналы 0-3 поддерживают передачу только 8-разряд-ных данных, а каналы 5 -7 - 16 -разрядных данных. Канал 0 в ПК PC/XT предназначен для регенерации динамической памяти, а канал 2 -для дисковых операций.

Последовательность основных действий устройств в режиме ПДП при чтении байта данных из 0П (см. рис 2) следующая: КВЗУ (КНГМД) формирует сигнал DRQ 2; КПДП вырабатывает сигнал HRQ: процессор освобождает шину, и устанавливает сигнал HLDA; КПДП. захватив шину, передает адрес в ОП: КПДП формирует сигнал DACK 2, поступающий в КНГМД: КПДП вырабатывает сигнал MЕMR. осуществляющий чтение выбранной ячейки 0П : содержимое ячейки ОП запоминается в регистре данных КНГМД по сигналу IOW . установленному КПДП; КПДП снимает сигнал HRQ (режим одиночной передачи): П сбрасывает сигнал HLDA: КПДП увеличивает на 1 значение адреса и уменьшает на 1 число передаваемых байтов данных с появлением сигнала I/O CH RDY из ОП. Если число передаваемых байтов не равно FFFFh, то последовательность действий повторяется до тех пор. пока не будет сформирован сигнал Т/С. Сигнал Т/С используется для формирования сигнала прерывания IRQ 6 (при наличии сигнала разрешения прерывания), сообщающего П о завершении передачи блока данных. В ПК PC/XT и РС/АТ в качестве КПДП применяется микросхема i8237 (отечественный аналог 1810 ВТ37).

Каскадное соединение DMA1 и DMA2.

Режим прямого доступа к памяти предназначен для передачи блоков данных между оперативной памятью и периферийным устройством (внешней платой). В этом режиме КПДП управляет работой шины, т.е. является задатчиком а оперативная память исполнителем. В PC/AT для реализации режима ПДП используются 2 микросхемы i8237 (DMA), соединенные каскадно (рис. 4.) с целью увеличения числа каналов.

Каждая микросхема DMA содержит 4 канала (КО-КЗ), работающих в режиме разделения времени (в какой-либо момент времени только один канал является активным и обслуживает подключенное к нему периферийное устройство). Наивысшим приоритетом обладает канал 0 (К0). С увеличением номера канала приоритет уменьшается. Всякому каналу соответствует сигнал DRQN (N=0-3), называемый запросом ПДП. т.е. периферийное устройство, требующее режима ПДП. устанавливает этот сигнал. Здесь усматривается некоторая аналогия с сигналами запросов прерывания. Если одновременно поступает несколько сигналов запросов ПДП, то внутренняя схема арбитража в DMA выбирает наиболее приоритетный сигнал DRQN. После этого DMA устанавливает общий для всех каналов сигнал HRQ (запрос шины) и после поступления от процессора сигнала HLDA (подтверждения на захват шины) DMA становится задатчиком и формирует для N-гo периферийного устройства сигнал DACKN (подтверждение ПДП), разрешающий циклы ПДП. Для двух каскадно-соединенных DMA наивысший приоритет имеет сигнал DRQ0. а сигнал DRQ7 -наименьший. Кроме того, для реализации каскадного соединения четвертый по общему счету канал в DMA2 используется только для этой цели (его необходимо запрограммировать на выполнение режима каскадирования). Назначение каналов КПДП в PC/AT представлено в табл. 1.

Таблица 1.

Каналы | Назначение

КО

Резерв для PC/AT. регенерация памяти для PC/XT

К1

Резерв

К2

Работа с контроллером НГМД

КЗ

Резерв или для некоторых типов ПК работа с жестким диском

К4

Каскадирование

К5

Резерв

Кб

Резерв

К7

Резерв

Каналы КО-КЗ используются для байтовых передач данных, а каналы го-К7 – для передачи 16-битовых слов. Внешние платы (задатчики) употребляют резервные каналы для получения доступа к системной шине. Для выполнения этой цели внешняя плата формирует сигнал DACKN и устанавливает сигнал MASTER, блокирующий выход КПДП на системную шину.

Схема формирования адреса.

Рис. 5. Схема формирования адреса

Схема формирования адреса содержит внешние по отношению к DMA регистры страницы и регистр старшего адреса. Регистры страницы - это байтовые порты с адресами из диапазона 8 i h-8Ah. загружаемые заранее процес­сором по шипе XD7 - XD0 на этапе инициализации КПДП. Адресация реги­стров страницы каналов КО - К, 7 показана в табл. 2.

Таблица 2.

Канал Адреса регистров страницы

КО

87

К1

83

К2

81

КЗ

82

К5

88

Кб

89

К7

Необходимость использования внешнего регистра старшего адреса связа­на с тем, что старшая часть адреса выводится из DMA по шипе данных и запоминается в этом регистре по сигналам DMA. Младшая часть адреса вы­водится непосредственно по шине адреса DMA. На рис. 3.13 представлено, что в случае использования одного из каналов К5 -К7 связанных с 16-бито­выми передачами, регистр страницы храпит адресные биты А23 -А 17. регистр старшего адреса - адресные биты А16 - А9. а по адресной шине выводятся адресные биты А8 -А1. Адресный бит А0 в этом случае всегда равен 0, так как слова имеют четный адрес. Байтовые передачи данных связаны с обычным распределением битов адреса, которые (см. рис.5) указаны в скобках.

Схема портов DMA.

Внутренняя шина XD7-XD0 подключена к системной шине SD7-SD0 через соответствующий приемопередатчик (это подключение на рис. 5 не показано). Схема портов DMA изображена на рис. 6.

Рис. 6. Схема портов DMA

Перечень адресов регистров DMA1 и DMA2 приведен в табл. 3.

Регистр управления (команд) координирует работу DMA и доступен по записи со стороны процессора. Формат регистра управления представлен па рис. 7.

Биты D0 и D1 определяют режим память-память, когда данные передаются из одной области оперативной памяти в другую область, причем этот обмен осуществляется через регистр данных (порт 0Dh) каналами К0 и К1. В режиме память-память в К0 задается адрес памяти ( источник данных) и количество передаваемых данных, а в К1 - адрес памяти (получателя данных). Сброс бита D1 регистра управления позволяет тиражировать один и тот же байт данных из одной области памяти в различные ячейки другой области памяти.

Сжатая синхронизация (D3= 1) исключает некоторые такты в работе DMA. если старшая часть адреса (А8-А15) не изменяется. Циклический приоритет (D4=l) заключается в равноправном (последовательном) обслуживании каналов DMA. Например, при D4=l возможна следующая очередность приоритетов: К1 К0 КЗ К2, К0 КЗ К2 К1, КЗ К2 К1 К0 и т.д.. Фиксированный приоритет (приоритет места) устанавливает степень приоритета в зависимости от номера канала, т.е. канал К0 обладает наивысшим приоритетом, а канал К3 -низшим приоритетом.

Таблица 3.

Примечание:* - порт без передачи данных.

Формат регистров: управления (команд); состояния; регистра режима.

Рис. 7. Формат регистра управления (команд)

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

Биты D 7 и D6 регистра управления определяют активный уровень сигнала (0 или 1). Содержимое регистра состояния доступно по чтению со стороны процессора и имеет следующий формат (рис. 8).

Рис. 8. Формат регистра состояния

Содержимое регистра текущего числа циклов (счетчика ) канала N (N=0.3) уменьшается после каждого цикла ПДП, и как только оно станет равным FFFFh (обмен завершен), это состояние отмечается установкой бита DN регистра состояния и па выходе DMA формируется сигнал Т/С (окончание счета), используемый в контроллере периферийного устройства для формирования сигнала запроса прерывания.

В битах D4-D7 регистра состояния отмечается наличие программного запроса в регистре запросов DMA или аппаратного запроса DRQN. Программный запрос инициирует работу DMA так же как и аппаратный запрос DRQN и используется в прикладных программах, связанных с передачей массивов данных в оперативную память.

Каждому каналу соответствует 8-битовый регистр режима, имеющий адрес OBh (D6h). Кроме того, в байте данных режима необходимо указать в битах D1 и DO номер канала DMA, для которого предназначен этот байт данных. Формат регистра режима изображен на рис. 9.

Рассмотрим режимы обслуживания DMA. Блочная (монопольная) передача выполняется непрерывно до тех пор, пока содержимое регистра текущего числа циклов в KN не станет равным FFFFh (обмен завершен). Передача по требованию осуществляется, так же как и блочная, за исключением того, что она выполняется, пока удерживается сигнал DRQN. Снятие сигнала DRQN останавливает управление передачей данных, которая возобновляется с той же точки при появлении сигнала DRQN. Наиболее употребительным режимом является одиночная передача, состоящая в том, что после передачи очередного байта DMA освобождает системную шину и начинает затем запрос шины для управления передачей следующего байта. Этот процесс продолжается до тex пор пока содержимое регистра текущего числа циклов не станет разным FFFFh (обмен завершен). Режим каскадирования, как уже отмечалось, используется для увеличения числа каналов КПДП путем соединения нескольких DMA.

Рис. 9. Формат регистра режима

С помощью бита D5 программируется либо увеличение содержимого регистра текущего адреса KN либо его уменьшение.

Если бит D4=l и сигнал Т/С (ЕОР) равен 0 (обмен завершен), то осуществляется автоматическая перезагрузка регистров базового адреса и базового числа циклов соответственно в регистры текущего адреса и текущего числа циклов.

Биты D3 и D2 позволяют программировать тип цикла ПДП: запись в память (01), при выполнении которой формируется сигнал IOR и MEMW; чтение из памяти (10), вырабатывающее сигналы MEMR и IOW .

Цикл «проверка» (псевдопередача) заключается в том, что выполняется цикл записи (чтения) с формированием адреса, но без передачи данных.