Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тсис_экз.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

24. Ввод-вывод: программный, по прерываниям и пдп.

Основные способы ввода-вывода, три принципиальных возможности ввода-вывода:

— путем обмена кодами непосредственно между памятью и устройством ввода-вывода. Этот вид обмена называется прямым доступом к памяти (ПДП). ПДП инициирует устройство ввода-вывода. Центральный процессор в ПДП не участвует. В микро-ЭВМ он просто отключается от общей магистрали соответствующим запросом режима ПДП. Режим ПДП обеспечивает наибольшую скорость обмена информацией. В малых микропроцессорных системах он используется редко;

— путем обмена кодами между центральным процессором и устройством ввода-вывода по командам, заложенным пользователем в основную выполняемую программу. Такой обмен, происходящий по инициативе и под управлением основной программы, называют программно-управляемым вводом-выводом. Этот режим мало эффективен и ведет к большим потерям машинного времени из-за низкой скорости работы большинства устройств ввода-вывода. Тем не менее, используется очень широко, особенно в малых системах;

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

Программная поддержка работы портов условного ввода-вывода состоит из двух фрагментов. Первый – об6еспечивает циклический опрос дополнительного порта, работающего в режиме прямого ввода. Такой опрос позволяет надежно фиксировать момент готовности порта к обмену. Защита от перекоса информации при прямом вводе здесь не требуется, так как вводится и далее проверяется всего один бит. Второй фрагмент осуществляет вывод кода в основной порт или ввод кода из этого порта.

Основным недостатком программно-управляемого ввода-вывода является нерациональное использование машинного времени микропроцессора. Оно, в основном, тратится на циклы ожидания изменений во входном коде при поддержке портов безусловного ввода или на циклы ожидания готовности порта при поддержке портов условного ввода-вывода. Число циклов ожидания может быть очень большим из-за низкой скорости работы большинства внешних устройств.

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

Порты, использующие этот вид обмена, не имеют средств для пересылки в микропроцессор сигнала готовности по шине данных. На основе сигналов готовности они формируют запросы на обслуживание IRQ.

25. Адресация памяти и ввода-вывода. Циклы обмена между процессором и памятью.

Одна из особенностей процессоров х86 заключается в том, что в процессоре 8086 с целью сокращения общего числа контактов для шины адреса и шины данных использовались одни и те же контакты. Соответственно, для получения информации из памяти вначале процессор должен был выработать адрес нужного байта, который запоминался одной из микросхем системной платы, а уже потом его прочитать. Начиная с процессора 80286, шина адреса получила на корпусе процессора отдельные контакты. Но по традиции все равно приходится считать, что процессор сначала устанавливает адрес, а уж потом данные. (Ограничения на количество контактов коснулись также и ряда микросхем оперативной памяти, где одни и те же контакты используются для адресации и ввода/вывода данных.)

Другая особенность процессоров х86 — это различная размерность шины данных и адреса. Для 16-разрядного процессора 8086 использовалась 20-разрядная шина адреса, а для 80286 — 24-разрядная. В 32-разрядных процессорах 386 и 486 шина адреса была увеличена до 32 битов, а в процессорах Pentium до 64 битов.

Так как компьютеры оперируют адресным пространством, кратным 2", где п — разрядность шины, то получается следующий практический ряд:

16 линий (битов) — 65 536 байтов, или 64 Кбайт;

20 линий (битов) — 1 048 576 байтов, или 1 Мбайт;

22 линии (бита) — 4 194 304 байтов, или 4 Мбайт;

24 линии (бита) — 16 777 216 байтов, или 16 Мбайт;

26 линий (битов) — 67 108 864 байтов, или 64 Мбайт;

28 линий (битов) — 268 435 456 байтов, или 256 Мбайт;

30 линий (битов) — 1 073 741 824 байт, или 1024 Мбайт, или 1 Гбайт;

32 линии (бита) — 4 294 967 296 байтов, или 4 Гбайт.

Кроме всего прочего, у первых микропроцессоров количество выводов было ограничено, поэтому адрес передавался по шине данных в два этапа — сначала младшую половину бита, а потом старшую. В дальнейшем от такого способа отказались, но потом снова стали использовать для адресации ячеек памяти в микросхемах динамической памяти.