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

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

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

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

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

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

К580ВТ57

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

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

— чтение ввода—вывода. В зависимости от того, является КПДП ведомым или ведущим, данная линия может быть входной или выходной. По сигналу ЧТВ = 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.

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

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

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

Обмен с каждым из 16-разрядных регистров канала осуществляется парой команд OUT на этапе загрузки и парой команд IN при считывании.

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

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

На рисунке 27 показаны форматы и назначение полей регистров режима и состояния КПДП.

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

КПДП

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

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

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

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

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

В некоторых применениях МП-систем необходимо обес­печить повторную передачу блока данных или передачу двух «связанных» блоков данных. С целью исключения не­обходимости программной перенастройки КПДП между передачами блоков вводится специальный режим автозагрузки, который инициируется старшим битом A3 регистра ре­жима КПДП. Повторная передача блока данных возможна только через канал 2. Если А3 = 1, то при загрузке исход­ных значений регистра адреса и счетчика канала 2 они автоматически переписываются в соответствующие регистры канала 3. После окончания передачи первого блока данных через канал 2 и генерации сигнала КБ исходные параметры блока данных из регистров канала 3 в цикле модификации переписываются в регистры канала 2, инициируя, таким образом, повторную передачу блока данных.

В регистре состояния КПДП четыре младших разряда КБ3-0 фиксируют сигналы окончания передачи блока данных в соответствующих каналах. Содержимое разрядов КБ3-0 автоматически обнуляется при считывании микропроцессором содержимого регистра состояния.

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

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

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