Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект / МП К1816ВЕ48.doc
Скачиваний:
92
Добавлен:
21.02.2014
Размер:
1.24 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.

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