Скачиваний:
51
Добавлен:
21.02.2014
Размер:
1.14 Mб
Скачать

4.3 Контроллер прямого доступа к памяти (кпдп)

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

Контроллер ПДП имеет четыре независимых канала ПДП, в состав каждого из которых входят: 16-разрядный регистр адреса, 14-разрядный счетчик длины блока данных и 2-разрядный регистр режима канала. Каждый канал ПДП имеет один входной сигнал запроса прямого доступа ЗПДП и один выходной сигнал подтверждения прямого доступа . Буфер ШД обеспечивает информационную связь КПДП с системной шиной.

На этапе инициализации МП загружает через него в КПДП начальные адреса областей ОЗУ, размер блоков данных и коды режимов, а в процессе работы может считывать содержимое любого регистра и счетчика, кроме регистра режима.

Кроме перечисленных функций, через буфер ШД контроллер, получая из МП разрешение на управление системной шиной, выдает в ШД старший байт адреса (А15-8) из регистра адреса инициированного канала ПДП. При этом на одной из линий управления (СТБА) генерируется сигнал строба адреса, по которому выданный байт адреса загружается во внешний МБР (К589ИР12), выходы которого в свою очередь подсоединяются к линиям А15-8 шины адреса.

Рисунок 20 - Схема контроллера прямого доступа к памяти (КПДП)

К580ВТ57

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

— чтение ввода—вывода. В зависимости от того, является КПДП ведомым или ведущим, данная линия может быть входной или выходной. По сигналу ЧТВ = 0 ведомого КПДП на ШД передается содержимое внутреннего регистра, адресуемого по линиям Аз-о. Ведущий КПДП формирует в этой линии управляющий сигнал, который используется для передачи байта данных из внешней памяти на ШД.

— запись ввода — вывода. Сигнал на этой линии также может быть входным или выходным. У ведомого КПДП входной сигнал 0 на линии ЗПВ управляет загруз­кой байта из ШД во внутренний регистр, адресуемый по линиям Аз-о. Ведущий КПДП выходным сигналом ЗПВ записывает байт из ШД в буферный регистр селектированного внешнего устройства.

Ф2 — входная линия, на которую подаются сигналы второй фазы синхронизации системы.

СБР — сигнал сброса, по которому сбрасывается в нуль содержимое регистра режима КПДП, что приводит к дезактивации контроллера: КПДП не реагирует на сигналы запроса ПДП до тех пор, пока не будет завершена програм­мная инициализация.

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

ВК - выбор корпуса. Сигнал на этот вход контроллера подается с одного из выходов адресного дешифратора. Сигнал ВК=0 задает контроллеру состояние ведомого и является разрешающим для входных сигналов ЧТВ и ЗПВ. Когда КПДП выступает в качестве ведущего, то вход ВК блокируется с тем, чтобы при адресации ОЗУ контроллер не мог сам себя выбрать.

А7-4 — четыре выходные адресные линии, которые подсоединяются к соответствующим линиям ША и на которые КПДП выдает второй полубайт адреса памяти.

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

ЗХВ — захват — выходной сигнал КПДП, который, поступая на вход ЗПДП микропроцессора К580, отключает его от системной шины после такта Т3 текущего машинного цикла.

ПЗХВ — подтверждение захвата—входной сигнал с одноименного выхода МП, свидетельствующий о том, что КПДП становится ведущим, а режим прямого доступа разрешен.

— чтение памяти — выходной сигнал 0 используется для управления чтением из ОЗУ в режиме ПДП. Во всех остальных случаях на выходе линии ЧТП — высокоимпедансное состояние.

— запись в память — выходной сигнал 0 управляет записью в ОЗУ при передачах с прямым доступом. Так же, как и линия ЧТП, она является трехстабильной, что позволяет эти линии прямо соединять с одноименными линиями, исходящими из системного контроллера (К580СК28).

РА — разрешение адреса — выходной сигнал, который применяется для перевода ША и ШД и некоторых линий ШУ других модулей системы в высокоимпедансное состояние. Линия сигнала РА заводится на входы разрешения вы­дачи РВ или выбора корпуса ВК шинных драйверов, через которые все модули системы (кроме ОЗУ) соединены с системной шиной.

СТБА — строб адреса — выходной сигнал, который сопровождает выдачу контроллером в ШД старшего байта адреса ОЗУ и используется для загрузки этого байта в МБР для последующей трансляции в ША.

КБ — конец блока — выходной сигнал, генерируемый контроллером в последнем цикле ПДП текущего блока данных. Так как. сигнал КБ формируется при переходе вычитающего счетчика байтов через нуль, то на этапе инициали­зации для задания длины блока байт в счетчик необходимо загрузить двоичный код N—1. Так как разрядность каналь­ных счетчиков 14 бит, то максимальный размер блока данных равен 16 Кбайт.

МАРК—маркер — выходной сигнал, генерируемый КПДП для сопровождения каждого 128-го байта от начала передачи блока данных в режиме ПДП. В основе схемы генерации сигнала МАРК лежит 7-разрядный счетчик по mod 128. Как правило, размерность блока данных N кратна 128.

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

Инициализация КПДП. С точки зрения программиста КПДП представляет собой массив из 18 специализированных регистров с форматами, показанными на рисунке 26. Все регистры КПДП программно-доступны, но в регистр режима КПДП можно только записать, а из регистра состояния КПДП можно только считать байт данных. Канальные регистры могут работать в режимах записи и считывания. Инициализация КПДП осуществляется загрузкой УС и исходных данных в адресуемые регистры по командам OUT или командам MOV в зависимости от способа раскраски адресной шины в МП-системе. При этом линии A15-4 ША после дешифрирования формируют сигнал ВК контроллера, а линии А3-0 адресуют один из внутренних регистров КПДП как это показано в таблице 3.

Назначение линий А3-0 шины адреса следующее: А3 селектирует обращение к регистрам каналов (А3=0 ) или к регистрам КПДП (A3=l), A2=1 выбирает один из четырех каналов ПДП, а А0 задает регистр адреса (А0=0) или счетчик (Ао=1) в выбранном канале.

Рисунок 21 – Массив регистров КПДП

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

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

Таблица 3 – Адреса регистров КПДП

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

Младшие полбайта регистра режима КПДП используются для маскирования сигналов ЗПДП. Если разряд разрешения канала PKi=0, то КПДП удовлетворяет запрос ПДП i-гo канала.

Разряд ЦП определяет порядок работы схемы управления приоритетами: при ЦП=0 распределение приоритетов между каналами ПДП фиксировано, и при ЦП = 1 реализуется режим циклической смены приоритетов.

Рисунок 22 - Форматы и назначение полей регистров режима

и состояния КПДП

Если в управляющем сигнале, загружаемом в регистр режима КПДП, разряд «длинной» записи Д3 = 1, то контроллер генерирует сигналы ЗПВ и ЗПП с удвоенной длительностью, что во многих применениях позволяет обеспечить временное согласование с памятью без использования сигнала готовности ГТ и перевода КПДП в состояние ожидания.

Сигнал 1 в разряде запрета по концу блока (3КБ) позволяет каждому каналу ПДП осуществить передачу только одного блока данных, так как по сигналу КБ сбрасывается в нуль разряд разрешения работы РК соответствующего канала. Эту маску можно снять только путем загрузки нового УС в регистр режима КПДП. При 3КБ=0 реализуются многоблочные передачи данных по каналам ПДП.

Сброс ПМ осуществляется загрузкой нового УС режима КПДП, в котором разряд автозагрузки АЗ = 0. На периоды инициализации и считывания КПДП прерывания в системе должны быть запрещены командой DI.

Контроллер ПДП после инициализации может работать в трех режимах: считывание, запись и проверка канала ПДП.

Соседние файлы в папке МП К1816ВЕ4