Информационные технологииStfw.Ru 🔍

Возможности адресации памяти процессорами различных поколений

  • 🕛
Сложность обращения к памяти в PC обусловлена свойствами процессоров х86 разных поколений и требованием обратной совместимости новых процессоров и компьютеров со старым ПО.

Процессоры х86

  • 🕛
Все программы в IBM PC-совместимом компьютере исполняются центральным процессором, принадлежащим к семейству х86. Любое устройство для процессора представляет собой лишь набор регистров (ячеек), отображенных в пространство памяти и (или) ввода-вывода, и необязательно источник аппаратных прерываний. Современные процессоры х86, работающие в защищенном режиме, имеют довольно сложные механизмы виртуализации памяти, ввода-вывода и прерываний, из-за которых приходится различать физические и логические пространства (адреса памяти и ввода-вывода) и события (операции ввода-вывода, прерывания). Физический адрес ячейки памяти или порта ввода-вывода - это адрес, формируемый для обращения к данной ячейке на физических шинах компьютера (системной шине процессора, шине PCI, ISA). Логический адрес - это тот адрес, который формируется исполняемой программой (по замыслу программиста) для доступа к требуемой ячейке. Физическая операция ввода-вывода или обращения к памяти - это процесс (шинный цикл), во время которого генерируются электрические сигналы, обеспечивающие доступ к данной ячейке (порту). Логическая операция - это исполнение программной инструкции (команды) обращения к интересующей ячейке. Логическая операция не всегда порождает ожидаемую физическую операцию: при определенных условиях она может блокироваться средствами защиты процессора, вызывая даже принудительное завершение программы, или же эмулироваться, создавая иллюзию физического исполнения.
Безопасность в защищенном режиме базируется на 4-уровневой системе привилегий. В большинстве современных ОС ради упрощения и экономии процессорного времени используются только два крайних уровня - нулевой (supervisor), с неограниченными возможностями, и третий (user), с самыми жесткими ограничениями. Смена уровней привилегий при исполнении программы занимает много тактов процессора, но это вынужденная плата за реализацию защиты, без которой устойчивую ОС не построить. Более подробно механизмы защиты и виртуализации памяти, ввода-вывода и прерываний в процессорах х86 описаны в литературе [6, 7], здесь же изложены лишь некоторые прикладные аспекты их работы.

Контроллер прямого доступа 8237А

  • 🕛
Микросхема 8237А, применявшаяся в PC вплоть до первых моделей AT, представляет собой четырехканальный контроллер прямого доступа к памяти, допускающий каскадирование.

Прямой доступ к памяти — DMA

  • 🕛
Прямой доступ к памяти (Direct Memory Access, DMA) позволяет выполнять пересылку данных между регистрами устройств и памятью, минуя центральный процессор. Для устройств, использующих DMA, различают два типа доступа.

Совместное использование прерываний

  • 🕛
Линии запросов прерываний в компьютере, насыщенном дополнительными адаптерами, являются самым дефицитным ресурсом, поэтому возникает желание использовать эти линии совместно, то есть применять разделяемые прерывания между несколькими устройствами (shared interrupts).

Аппаратные прерывания

  • 🕛
Аппаратные прерывания обеспечивают реакцию процессора на события, происходящие асинхронно по отношению к исполняемому программному коду.

Пространство ввода-вывода

  • 🕛
Пространство ввода-вывода в IBM PC, как и в процессорах х86, отделено от пространства памяти.

Пространство физической памяти

  • 🕛
Основную часть физического адресного пространства PC занимает оперативная память (ОЗУ), начинающаяся с нулевого адреса. В нее вклинивается область адресов AOOOOh-FFFFFh - Upper Memory Area (UMA), 384 Кбайт - верхняя память, зарезервированная со времен IBM PC для системных нужд.

Программно-управляемая реализация последовательных интерфейсов

  • 🕛
Рассмотренные выше интерфейсы - PC, SMBus, SMI, SPI и JTAG - имеют общее свойство: они управляются и синхронизируются контроллером и не требуют фиксированной частоты синхронизации. Это позволяет для многих применений программно реализовать их на любом компьютере или микроконтроллере.

Интерфейс JTAG

  • 🕛
Интерфейс JTAG (Joint Test Action Group) предназначен для тестирования сложных логических схем, установленных в целевое устройство.

Интерфейс SPI

  • 🕛
применяется для связи микроконтроллеров с периферийными микросхемами и микросхемами памяти.

Шина управления SMI интерфейса МП

  • 🕛
В спецификации IEEE 802.3u сетевой технологии Ethernet от 1995 г. появился интерфейс МП (Media Independent Interface - интерфейс, независимый от среды передачи), позволяющий отделять специфические устройства физического уровня (PHY) от вышестоящих уровней.

Сравнение шин I2C, ACCESS.bus и SMBus

  • 🕛
Как видно из вышеприведенных описаний, все эти три шины являются «близкими родственниками»; однако они имеют ряд электрических, конструктивных и протокольных отличий.

Шина SMBus

  • 🕛
Шина SMBus (System Management Bus - шина системного управления) - двухпроводной интерфейс для обмена данными между микросхемами различных системных компонентов компьютера, а также связи их с самим компьютером.

Шина ACCESS.Bus

  • 🕛
Последовательная шина ACCESS.Bus (Accessory Bus) разрабатывалась фирмой DEC как унифицированный недорогой интерфейс взаимодействия компьютера с внешними устройствами - клавиатурой, координатными устройствами, текстовыми устройствами (принтеры, считыватели штрих-кодов), мониторами (в плане обмена управляющей и конфигурационной информацией по каналу VESA DDC).

Шина I2C

  • 🕛
Шина Inter 1C Bus (шина соединения микросхем), или, кратко, PC, - синхронная последовательная шина, обеспечивающая двустороннюю передачу данных между подключенными устройствами.

Статьи и документация

Подборка статей и документации по IT-технологиям: от программирования до администрирования серверов. Практические гайды для веб-разработчиков и IT-профи на stfw.ru.