Программируемый контроллер режима прямого доступа к памяти КР580 ВТ57.

 

Механизм прямого доступа к памяти (Direct Memory Access, DMA) широко используется в современных микропроцессорных системах. Он позволяет организовать двунаправленную передачу больших массивов данных между памятью и внешними устройствами. Как известно, в микропроцессорной системе передача данных от внешнего устройства в память осуществляется в следующем порядке:

1. Микропроцессор по команде IN вводит данные из внешнего устройства

2. Микропроцессор по команде MOV передает эти данные в память.

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

Рисунок 4.23. Организация прямого доступа к памяти в микроЭВМ.

 

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

 

Рисунок 4.24. Структурная схема программируемого контроллера прерывания.

Назначение выводов контроллера ПДП

I/OR – строб чтения (RD)

I/OW – строб записи (WR)

CLK – вход сигнала синхронизации

RESET – сброс

A3 0 – младшие разряды шины адреса

CS – сигнал-выборка (переводит микросхему в активное состояние)

A74 – старшие разряды шины адреса (используются для формирования адреса при обмене)

READY – сигнал готовности основной памяти к обмену

HOLD – запрос прямого доступа к памяти

HLDA – подтверждение прямого доступа к памяти (микропроцессор отключился от управления шинами и передал управление шинами ПКПДП)

MEMR – чтение из памяти

MEMW – запись в память

AEN – разрешение адреса (разрешает выдачу старшего байта адреса на шину адреса)

ADSTB – строб адреса

TC – окончание счета (показывает последний цикл прямого доступа к памяти)

MARK – сигнал-маркер (выдает синхроимпульс на каждом 128 цикле передач)

DRQ – запрос прямого доступа от внешнего устройства

DACK – разрешение прямого доступа.

В БИС КР580ВТ57 реализованы четыре независимых канала ПДПК0, ..., К3. Управление работой каждого канала ПДП осуществляется с помощью двух 16-разрядных регистров: регистра начального адреса и регистра управления. В регистр начального адреса при программировании БИС заносится начальный адрес передаваемого массива данных. В 14 младших разрядах регистра управления размещается счетчик, в который заносится число на единицу меньше длинны передаваемого массива данных, т. е. размер массива не может превышать 16 Кбайт. 15-й и 14-й разряды регистра управления определяют тип операции обмена:

00 - контроль;

01 - запись в память;

10 - чтение из памяти;

11 - запрещенное состояние.

Связь контроллера с системным интерфейсом микроЭВМ осуществляется по шине данных D7...D0 через двунаправленный буфер шины данных. Запись информации в регистры начального адреса и управления каналов контроллера производится програмным путем. Адресуются внутренние регистры контроллера по линиям А3...А0.

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

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

Для формирования 16-ти разрядного адреса ячейки памяти на шине адреса системного интерфейса контроллеру прямого доступа требуется внешний 8-разрядный регистр. В этот регистр в начале цикла ПДП контроллер с использованием строба ADSTB по шине данных D7...D0 записывает восемь старших разрядов адреса А15...А8. Выходы внешнего регистра подключаются к линиям А15...А8 шины адреса системного интерфейса микро ЭВМ.

Помимо указанных регистров в состав контроллера входит регистр приоритетов PR с возможностью задания фиксированного и циклического приоритета.

Порядок работы контроллера.

При появлении запроса на линиях DRQ0-DRQ3 контроллер вырабатывает сигнал запроса прямого доступа к памяти HOLD у процессора. Если прямой доступ возможен, то микропроцессор выдает сигнал подтверждения прямого доступа (или захвата шин). По этому сигналу управление передается контроллеру прямого доступа к памяти, который вырабатывает синхроимпульсы шины управления и шины адреса, осуществляя обмен. После передачи всей информации контроллер прямого доступа к памяти вырабатывает сигнал TC для окончания счета. Этот сигнал подключается к контроллеру прерывания и микропроцессор выходит из режима захвата.