Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Волков.doc
Скачиваний:
26
Добавлен:
03.08.2013
Размер:
292.86 Кб
Скачать

4) Разработка контроллера прямого доступа к памяти

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

Для возможности сопряжения ЭВМ с несколькими ПУ разрабатываемый контроллер ПДП должен иметь централизованную структуру и уметь обрабатывать запросы от ПУ.

Контроллер ПДП, имеющий централизованную структуру, должен обеспечивать выполнение следующих функций:

1) Обнаружение запросов на ПДП от ПУ;

2) Возможность инициализации с шины данных начальными значениями: адреса и числа слов;

3) Распознавание характера обмена: чтение или запись в ОП;

4) Поддержание диалога с ПУ во время обмена с целью выяснить готовность ПУ к приёму или передаче данных;

5) Проверка возможности обращения к ОП;

6) Управление ОП во время обмена;

7) Информирование ЦП о завершении операции ввода-вывода.

Для построения контроллера целесообразно применить специализированную БИС 1804ВУ6, являющуюся генератором адреса ПДП (эта БИС имеет разрядность равную 8 бит, поэтому для получения 32-разрядного контроллера необходимо объединить 4 микросхемы). Для построения устройства управления используется секвенсор AM29331, который был использован при разработке ЦП. Сброс контроллера ПДП в исходное состояние при включении питания или в процессе работы будет производиться путём подачи на вход RST микросхемы AM29331 сигнала #RESET, имеющего активный низкий уровень при этом на входе МПП установится адрес "000 ....0". В отличие от сопроцессора ввода/вывода, КПДП не способен самостоятельно выбирать управляющие слова из памяти. Поэтому при осуществлении ПДП необходимо участие ЦП для выдачи управляющих слов. Подробную структуру контроллера вы сможете найти на рис. 4.1. данной работы.

Алгоритм работы контроллера ПДП

(на примере операции записи в ОП):

1) ЦП, получив директиву ввода-вывода, записывает по адресу нужного ПУ параметры ввода-вывода и делает пометку в ОП что данное ПУ занято;

2) Опрос процессором регистра состояния КПДП. Если контроллер не готов к работе то опрос продолжается.

3) Если КПДП готов, то он получает и дешифрирует команду – начать опрос входа запроса на ПДП от ПУ.

4) При обнаружении запроса – прерывание. Опрос регистра состояния процессором.

5) Параметры ввода/вывода передаются периферийному устройству. Контроллер получает параметры ввода, начинает подготовку к обмену.

6) При завершении подготовки к ПДП, контроллер выставляет запрос прерывания процессору. Опрос регистра состояния. КПДП получает команду на опрос входа готовности ПУ.

7) ПУ, подготовив данные, выставляет активный уровень сигнала на линию "Готовность ПУ";

8) Контроллер ПДП, получив данный сигнал, делает запрос на обращение к ОП (захват шины). Получив разрешение, выставляет начальный адрес ОП, сигнал "Готов к обмену" и сигналы управления памятью;

9) Получив последний сигнал, ПУ выставляет данные, и в этом же такте происходит запись слова в ОП;

10) Происходит инкрементация адреса и декрементация счётчика числа слов, проверка условия: "(Готовность ПУ) ИЛИ (DON)";

11) Если всё в порядке то продолжается обмен, до тех пор, пока не будет, определён конец обмена (встроенными средствами 1804ВУ6) или не кончится подготовленный ПУ блок данных;

12) Если условие "(Готовность ПУ) ИЛИ (DON)" даст отрицательный результат, то необходимо: установить сигнал "Готов к обмену" в пассивное состояние, освободить системную шину и выяснить причину такого результата:

a) ПУ не готово, обмен не завершен. Необходимо продолжить тестировать условие "(Готовность ПУ) ИЛИ (DON)" и по получении положительного результата продолжить работу. Если по прошествии определённого времени устройство всё ещё не готово, то необходимо выставить сигнал "Завершение обмена" и запрос прерывания ЦП.

b) Обмен завершен. Необходимо выставить сигнал "Завершение обмена" и запрос прерывания ЦП.

Программа-обработчик прерываний по вводу-выводу по меткам в ОП определяет самое приоритетное занятое ПУ, сбрасывает метку и читает регистр состояния этого ПУ (определение успешного или аварийного завершения операции).

Рис. 4.1. Укрупненная функциональная схема контроллера ПДП

Соседние файлы в папке doc92