Отдельное адресное пространство ввода-вывода.

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

Теперь поговорим о том, как эти способы реализации работают:

  1. Отдельное адресное пространство ввода-вывода. Для адресации портов используется та же самая шина адреса, но при этом задействованы только ее 16 младших битов, то есть когда нужно обратиться к УВВ, процессор выставляет адрес порта, использую 16 младших битов. Чтобы было понятно, к кому он обращается – к памяти или УВВ, используется специальная управляющая линия, которая на логической схеме компьютера была названа как M/IO. Cпомощью этой линии процессор указывает, к чему он обращается , то есть устанавливает на ней либо ноль, либо единицу. При использовании этой схемы для записи и чтения для общения с УВВ используется две команды – inи out. Команда outзаписывает содержимое регистра аккумулятора ( ax, eax) в указанный порт, то есть в регистр внешнего устройства. Данная команда имеет два параметра – первый, приемник, а на втором месте источник. При этом в качестве устройства можно указать константу от 0 до 255, если же номер порта устройства превышает 255, то нужно сначала его заслать в регистр dx, а в команде указать уже не константу, а этот регистр. Команда чтения, которая читает управляющий регистр порта в аккумулятор, для него действуют те же самые правила насчет константы. Итак, когда процессор встречает эти две команды, он знает, что осуществляется обращение к внешнему устройству, и формируя адрес порта для запроса, он отправляет еще и соответствующий сигнал на линию M/IO для УВВ. Простой пример использования этих команд – печать на принтере. Номер его порта – 378h. Мы хотим записать туда информацию. Поскольку номер порта превышает 255, мы его заносим в регистр  dx, в регистр  alзаносим тот символ, который хотим распечатать (естественно его код ASCII), и дает команду outdx, al. Достоинство такой схемы заключается в том, что не расходуются адреса пространства памяти. Второе преимущество – команда чтения/записи в порт будет гарантированно завершена до выполнения следующей такой команды. В общем случае это правило не выполняется, так как работает конвейерный принцип действия процессора. Недостатки: нельзя использовать обычные команды работы с памятью, данные от внешних устройств сначала необходимо считать в процессор. Следующий недостаток – пространство ввода-вывода имеет малый размер, ограниченный размеров пространством ввода-вывода, то есть  байт.

Общее адресное пространство. Пример из лабораторной работы, где мы работали с видеопамятью. С буферной памятью монитора можно работать как с обычной памятью. Как работает такая схема адресации? Когда процессор обращается к памяти или к УВВ, он поставляет адрес обычным способом на шину адреса, он уже не использует управляющую линию M/IO. Чтобы понять к какому именно устройству обратился процессор, каждое устройство должно проверять все запросы, выставленные на шину адреса, и контроллер памяти в том числе. Достоинства этой схемы адресации – можно использовать любые команды работы с памятью. Второе достоинство – не требуется специального механизма защиты внешних устройств от внешних программ, достаточно обычного механизма ОС защиты памяти. Недостатки этого способа – потребляется адресное пространство памяти, и кэширование памяти не может применяться к управляющим регистрам, и необходима специальная аппаратура, защищающая отдельные участки памяти от кэширования. Почему нельзя применять в данном случае кэширование? Например процессор поместил содержимое ячейки в кэш-память, он пометил, что в оперативной памяти он ее изменил, а когда у нас общее адресное пространство, инициатором изменения ячейки памяти может быть не процессор, а УВВ, и если мы будет кэшировать эти регистры, мы будет иметь в

Ссылка на основную публикацию
Adblock detector