Пространство ввода-вывода (адреса компонентов системной платы) ([5], с.49)
Обмен с внешними устройствами (портами) в процессорах семейства x86 может производиться либо непосредственно по командам процессора либо в режиме прямого доступа к памяти (ПДП или DMA – Direct Memory Access).
В первом случае возможны два варианта:
- адресация порта ввода-вывода в так называемом пространстве ввода-вывода и
- переназначение адресов памяти на адреса портов – прием который называют вводом-выводом с разметкой памяти (memory mapped input output).
При адресации в пространстве ввода-вывода для обращения к портам используются четыре основные команды процессора: IN – ввод в регистр аккумулятор EAX, OUT – вывод из регистра EAX, INS – ввод в элемент строки памяти, OUTS – вывод из элемента строки памяти. Причем последние две команды могут выполняться в цикле, задаваемом префиксом REP, что является основой для построения режима PIO (Programmable Input/Output – программно-управляемый ввод-вывод), используемого, например, для обмена с CD-ROM. Элементом строки памяти в этих командах может быть байт, слово или двойное слово.
Таким образом команды IN и OUT реализуют обмен данными между аккумулятором (регистром EAX) и портом ввода-вывода, а команды INS и OUTS – обмен между портом ввода-вывода и оперативной памятью.
При адресации порта ввода-вывода в режиме с разметкой памяти передача данных в порт и из него может осуществляться обычными командами пересылок и другими командами процессора.
Основные различия между этими вариантами заключаются в объеме адресного пространства, механизмах защиты и последовательности выполнения команд. В частности, команды ввода-вывода гарантированно будут выполнены до выполнения последующих команд (т.н., сериализация ввода-вывода), тогда как обычные команды в условиях конвейерного выполнения и изменения порядка выполнения такой гарантии дать не могут.
Диапазон адресов пространства ввода-вывода ограничен 64К, т.е. допускает указание до 64 К портов ввода-вывода, при их косвенной адресации через регистр DX. Прямой адресацией команда ввода-вывода может указать только 256 (512) портов.
В обоих случаях адреса пространства ввода-вывода и адреса памяти передаются по одним и тем же адресным линиям. Различие адресов обеспечивается :
в процессорах Pentium и более ранних моделях – управляющими сигналами, сопровождающими (идентифицирующими) каждый шинный цикл процессора: циклы обращения к памяти сопровождаются сигналами чтения или записи в память – MEMRD# и MEMWR#, в отличие от циклов ввода-вывода, сопровождаемых сигналами IORD# и IOWR# - чтение из порта ввода-вывода или запись в него
в процессорах Pentium Pro и более поздних – специальной фазой в начале каждого шинного цикла.
При прямом доступе к памяти обмен производится под управлением контроллера прямого доступа либо иного контроллера, способного получить управление системной шиной.
(В процессорах Pentium и более ранних сигналы IORD# и IOWR# вырабатываются также в циклах прямого доступа к памяти DMA, причем в этом случае на шине адреса выставлен адрес памяти, а не порта. Для блокировки его дешифрации как адреса порта в циклах прямого доступа используется сигнал не активный уровень сигнала разрешения адреса AEN - Address Enable).
Большинство устройств ПЭВМ: клавиатура, таймер, параллельный и последовательный порты, контроллеры прерываний, прямого доступа и др. имеют типовые адреса, начиная с самых ранних моделей ПЭВМ. Это обеспечивает совместимость сверху вниз новых моделей с имеющимся программным обеспечением. Часть адресов перечислена в таблице 4
Таблица 4. Часть адресов пространства ввода-вывода ПЭВМ
Адрес | Назначение |
000h – 00Fh | Контроллер DMA #1 |
020h – 021h | Контроллер прерываний #1 |
040h – 05Fh | Таймер |
060h | Диагностический регистр теста POST |
060h, 064h | Контроллер клавиатуры |
061h | Источники NMI и управление звуком |
070h – 07Fh | Память CMOS и маска NMI |
080h | Диагностический регистр |
Посмотреть назначение адресов портов ввода-вывода можно из панели управления Windows (или кликнув правой кнопкой мышки на значке “Мой компьютер” и выбрав из меню пункт “Свойства”) или диагностическими программами DOS.
- Средства тестирования и отладки пэвм
- Программные средства отладки
- Команда прерывания
- Пошаговый режим
- Регистры отладки
- Аппаратные средства отладки
- Режим системного управления smm
- Режим виртуального процессора 8086 (v86)
- Распределение областей системной памяти ([5], с.39)
- Пространство ввода-вывода (адреса компонентов системной платы) ([5], с.49)
- Автоматическое распределение системных ресурсов (Первоначальный заголовок – Спецификация Plug&Play для шины isa) ([5], с.69)
- Системный порт, таймер и динамик (компоненты системной платы) ([5], с.81)
- Интерфейс и контроллер клавиатуры ([5], с.85)
- Кмоп память и часы реального времени (cmos Memory и rtc – Real Time Clock)([5], с.89)
- Цифровой аудиоканал ([5], с.107)
- Rom bios.Тест начального включения([5], с.С.111,148)
- Rom bios.Конфигурирование пэвм –bios Setup([5], с.156)
- Адресация информации на жестких дисках и их разделы ([5], с.553)
- Блок питания пэвм ([5], с.783)
- Заземление пэвм ([5], с.769)