Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Адресное пространство ввода вывода

Адресное пространство системы ввода/вывода;

Как и обращение к памяти, операции ввода/вывода также предполагают наличие некоторой системы адресации, позволяющей выбрать один из модулей СВВ, а также одно из подключенных к нему внешних устройств. Адрес модуля и ВУ является составной частью соответствующей команды, в то время как расположение дан­ных на внешнем устройстве определяется пересылаемой на ВУ информацией.

Адресное пространство ввода/вывода может быть совмещено с адресным пространством памяти или быть выделенным.

При совмещении адресного пространства для адресации модулей ввода/вывода отводится определенная область адресов (рис. 2). Обычно все операции с модулем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, данных. Фактически процедура ввода/вывода сводится к записи информации в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной памяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода и вывода. Так, модификацию регистров МВВ можно производить непосредствен­но с помощью арифметических и логических команд. Адреса регистрам МВВ на­значаются в области адресного пространства памяти, отведенной под систему ввода/вывода.

Рис. 2.Распределение совмещенного адресного пространства

Достоинства совмещенного адресного пространства:

— Расширениенабора команд для обращения к внешним устройствам, что позво­ляет сократить длину программы и повысить быстродействие;

— Значительное увеличение количества подключаемых внешних устройств;

— возможность внепроцессорного обмена данными между внешними устройствами, если в системе команд есть команды пересылки между ячейками памяти;

— возможность обмена информацией не только с аккумулятором, но и с любым регистром центрального процессора.

Недостатки совмещенного адресного пространства:

— сокращение области адресного пространства памяти;

— усложнение декодирующих схем адресов в СВВ;

— трудности распознавания операций передачи информации при вводе/выв среди других операций.

Сложности в чтении и отладке программы, в которой простые команды вызывают выполнение сложных операций ввода/вывода;

В случае выделенного адресного пространства для обращения к модулям ввода/вывода применяются специальные команды и отдельная система адресов. Это позволяет разделить шины для работы с памятью и шины ввода/вывода, что дает возможность совмещать во времени обмен с памятью и ввод/вывод. Кроме того, адресное пространство памяти может быть использовано по прямому назначению в полном объеме.

Достоинства выделенного адресного пространства:

— адрес внешнего устройства в команде ввода/вывода может быть коротким. В большинстве СВВ количество внешних устройств намного меньше количества ячеек памяти. Короткий адрес ВУ подразумевает такие же короткие команды ввода/вывода и простые дешифраторы;

— программы становятся более наглядными, так как операции ввода/вывода выполняются с помощью специальных команд;

— разработка СВВ может проводиться отдельно от разработки памяти.

Недостатки выделенного адресного пространства:

— ввод/вывод производится только через аккумулятор центрального процессора. Для передачи информации от ВУ в РОН, если аккумулятор занят, требуется выполнение четырех команд (сохранение содержимого аккумулятора, ввод из ВУ, пересылка из аккумулятора в РОН, восстановление содержимого аккумулятора);

— перед обработкой содержимого В У это содержимое нужно переслать в ЦП.

Адресное пространство ввода-вывода

Особое место занимает адресное пространство ввода-вывода, используемое для связи центрального процессора с периферийными устройствами. Подключение периферийного оборудования (клавиатуры, дисплея, дисковых накопителей, принтера, «мыши» и т.д.) и обмен данными с центральным процессором осуществляется через специальные устройства, называемые адаптерами или контроллерами. В состав компьютерной системы входят как специализированные адаптеры (например, видеоадаптер, контроллер прерываний, контроллер дисковода и др. ), так и универсальные адаптеры последовательного (COM1. COM4) и параллельного (LPT1. LPT4) каналов, к которым может подключаться различное программно-управляемое оборудование.

Адаптер содержит несколько информационных регистров (как правило, однобайтовых), через которые и происходит обмен данными между процессором и внешним устройством. Множество регистров всех подключенных адаптеров образуют адресное пространство ввода-вывода, доступ к которому со стороны центрального процессора осуществляется по 16-разрядной шине.

Множество всех регистров одного адаптера объединены понятием порт ввода-вывода, первый регистр порта называется базовым регистром, а его адрес в адресном пространстве ввода-вывода называется базовым адресом порта. Базовые адреса установленных портов определяются в процессе начального тестирования системы и записываются в ОЗУ (в область данных BIOS). Обращение к остальным регистрам порта производится по смещению относительно его базового адреса.

Учебные задания

Для исследования информационной структуры адресного пространства ПК необходимо использовать одну из программ – анализаторов памяти — рекомендуется использовать программу Peek Poke resident (файл PEEK.com) или функционально подобную ей программу FX Show (файл FXShow.com). Указанные программы позволяют просматривать на экране содержимое памяти в шестнадцатеричном или символьном форматах, изменять содержимое памяти «вручную» с помощью простого встроенного редактора, а также копировать в дисковый файл экранный образ фрагмента памяти.

Полезно использовать также резидентный калькулятор (CALC.com), позволяющий выполнять арифметические действия над целыми числами в десятичной и шестнадцатеричной системах счисления. После запуска калькулятора его можно активизировать нажатием комбинации клавиш Alt+ScrollLock или непосредственно из программы PEEK нажатием функциональной клавиши F9.

Более подробная информация о структуре служебных областей памяти ПК содержится в электронном справочнике HELP (файлы Help.exe и Help.dat).

Задание 1.Определите линейные адреса базовой памяти, соответствующие следующим адресам, заданным в сегментной форме: 0000:041Eh; 0040:001Eh; 0000:0408h; 0000:0408h. Результаты представьте в шестнадцатеричной и двоичной системах счисления. Поясните алгоритм работы сумматора адреса.

Задание 2.Оцените количество вариантов записи одного линейного адреса в сегментной форме.

Задание 3. Определите содержимое старшего и младшего байтов двухбайтового машинного слова, расположенного по адресу 0000:041Eh. Запишите это машинное слово в шестнадцатеричной и двоичной системах счисления. Нажимая (не менее 16 раз) на любую из символьных клавишей клавиатуры, проследите за изменениями этого машинного слова. Какая информация содержится в машинном слове по указанному адресу?

Задание 4. Определите состав параллельных и последовательных адаптеров (LPT* и COM*), установленных в Вашем компьютере, и их базовые адреса. Поясните термины: адресное пространство ввода-вывода, адаптер, порт ввода-вывода, базовый адрес.

Задание 5. Поясните термины: «аппаратное прерывание», «программное прерывание», «внешнее прерывание», «внутреннее прерывание», «номер прерывания», «вектор прерывания», «обработчик прерывания».

Задание 6.Опишите структуру таблицы векторов прерываний и алгоритм определения адреса программы обработки N-го прерывания.

Задание 7. Определите начальные адреса программ обработки прерываний №8, №9, №10h, №16h и №21h. Используя электронный справочник HELP, определите назначение этих программ.

Задание 8. Определите начальный адрес программы обработки прерывания клавиатуры (№9). Выведите на экран карту памяти. Определите, какие из программ загружены в память вашего ПК и какие из прерываний «перехвачены» этими программами.

Читать еще:  Пример правильного электронного адреса

Задание 9. Определите вектора прерываний №1Fh и № 43h. Используя электронный справочник HELP, определите назначение этих векторов.

Контрольные вопросы

Как влияет разрядность процессора и адресной шины на размер адресного пространства ? Определите диапазон линейных адресов для процессоров с 16-, 24- и 32- разрядной адресными шинами.

Какую функцию выполняют сегментные регистры процессора ?

Поясните назначение и алгоритм работы сумматора адреса.

Каковы действия DOS при поступлении сигнала аппаратного прерывания в процессе обработки предыдущего прерывания ?

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

0000:0014h, 0000:0408h, 0040:0008h, 0000:0024h, С000:FFFFh.

Лабораторная работа № 5

КЛАВИАТУРА ПК

Цель лабораторной работы – исследование алгоритма реализации процесса ввода данных с клавиатуры и информационной структуры области данных BIOS, обеспечивающей этот процесс.

Вопрос 21.Адресация пространства системы ввода/вывода.

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

Технически система ввода/вывода в рамках ВМ реализуется совокупностью моду­лей ввода/вывода (МВВ). Модуль ввода/вывода выполняет сопряжение ПУ с ядром вычислительной машины и различные коммуникационные операции между ними. Две основные функции МВВ:

— обеспечение интерфейса с ЦП и памятью («большой» интерфейс);

— обеспечение интерфейса с одним или несколькими периферийными устройства­ми («малый» интерфейс).

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

Второй вариант — с совместно используемыми линиями данных и адреса (см. рис. 6.1, б). Память и СВВ имеют общие для них линии адреса и линии данных, раз­деляя их во времени. В то же время управление памятью и СВВ, а также синхрони­зация их взаимодействия с процессором осуществляются независимо по раздель­ным линиям управления. Это позволяет учесть особенности процедур обращения к памяти и к модулям ввода/вывода и добиться наибольшей эффективности доступа к ячейкам памяти и периферийным устройствам.

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

Адресное пространство ввода/вывода может быть совмещено с адресным простран­ством памяти или может быть выделенным.

При совмещении адресного пространства для адресации модулей ввода/вывода отводится определенная область адресов (рис. 6.2). Обычно все операции с моду­лем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, данных. Фактически процедура ввода/вывода сводится к записи информации в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной па­мяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода и вывода. Так, модификацию регистров МВВ можно производить непосредственно с помощью арифметических и логических команд. Адреса регистрам МВВ назна­чаются в области адресного пространства памяти, отведенной под систему ввода/ вывода.

Рис. 6.2. Распределение совмещенного адресного пространства

Такой подход представляется вполне оправданным, если учесть, что ввод/вывод обычно составляет малую часть всех операций, выполняемых вычислительной ма­шиной, чаще всего не более 1% от общего числа команд в программе.

К достоинствам совмещенного адресного пространства можно отнести:

■ унификацию операций обращения к памяти и периферийным устройствам;

■ возможность увеличения числа подключаемых периферийных устройств;

■ возможность внепроцессорного обмена данными между периферийными устрой­ствами, если в системе команд есть команды пересылки между ячейками памяти;

■ возможность обмена информацией не только с аккумулятором, но и с любым регистром центрального процессора.

Недостаткисовмещенного адресного пространства:

■ сокращение области адресного пространства памяти;

■ усложнение декодирующих схем адресов в СВВ;

■ трудности распознавания операций передачи информации при вводе/выводе среди других операций.

Совмещенное адресное пространство используется в вычислительных машинах MIPSи SPARC.

В случае выделенного адресного пространства для обращения к модулям ввода/ вывода применяются специальные команды и отдельная система адресов. Это по­зволяет разделить тракты для работы с памятью и тракты ввода/вывода, что дает возможность совмещать во времени обмен с памятью и ввод/вывод. Кроме того, адресное пространство памяти может быть использовано по прямому назначению в полном объеме. В вычислительных машинах фирмы IBMи ВМ на базе процессо­ров фирмы Intelсистема ввода/вывода, как правило, организуется в соответствии с концепцией выделенного адресного пространства.

Достоинства выделенного адресного пространства:

■ адрес периферийного устройства в команде ввода/вывода может быть коротким, благодаря чему сокращается длина таких команд и упрощаются схемы дешиф­рации адреса;

■ программы становятся более наглядными, так как операции ввода/вывода вы­полняются с помощью специальных команд;

■ разработка СВВ может проводиться отдельно от разработки памяти.

Недостатки выделенного адресного пространства:

■ ввод/вывод производится только через аккумулятор центрального процессора;

■ малая разрядность адреса периферийного устройства ограничивает число под­ключаемых ПУ.

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Читать еще:  Одинаковый mac адрес в сети

Система управления вводом-выводом

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

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

Объяснение того, что именно делает процессор при обработке информации, как он решает задачу и какой алгоритм выполняет, не входит в задачи нашего курса. Это скорее относится к курсу «Алгоритмы и структуры данных», с которого обычно начинается изучение информатики. Как операционная система управляет обработкой информации, мы разобрали ранее, в деталях описав два состояния процессов – исполнение (а что его описывать то?) и готовность (очереди планирования и т. д.), а также правила, по которым осуществляется перевод процессов из одного состояния в другое (алгоритмы планирования процессов).

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

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

Физические принципы организации ввода-вывода

Существует много разнообразных устройств, которые могут взаимодействовать с процессором и памятью: таймер , жесткие диски, клавиатура, дисплеи, мышь , модемы и т. д., вплоть до устройств отображения и ввода информации в авиационно-космических тренажерах. Часть этих устройств может быть встроена внутрь корпуса компьютера, часть – вынесена за его пределы и общаться с компьютером через различные линии связи: кабельные, оптоволоконные, радиорелейные, спутниковые и т. д. Конкретный набор устройств и способы их подключения определяются целями функционирования вычислительной системы, желаниями и финансовыми возможностями пользователя. Несмотря на все многообразие устройств, управление их работой и обмен информацией с ними строятся на относительно небольшом наборе принципов, которые мы постараемся разобрать в этом разделе.

Общие сведения об архитектуре компьютера

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

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

Количество линий, входящих в состав шины, принято называть разрядностью ( шириной ) этой шины. Ширина адресной шины , например, определяет максимальный размер оперативной памяти, которая может быть установлена в вычислительной системе. Ширина шины данных определяет максимальный объем информации, которая за один раз может быть получена или передана по этой шине.

Операции обмена информацией осуществляются при одновременном участии всех шин. Рассмотрим, к примеру, действия, которые должны быть выполнены для передачи информации из процессора в память. В простейшем случае необходимо выполнить три действия.

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

Естественно, что приведенные выше действия являются необходимыми, но недостаточными при рассмотрении работы конкретных процессоров и микросхем памяти. Конкретные архитектурные решения могут требовать дополнительных действий: например, выставления на шину управления сигналов частичного использования шины данных (для передачи меньшего количества информации, чем позволяет ширина этой шины); выставления сигнала готовности магистрали после завершения записи в память, разрешающего приступить к новой операции, и т. д. Однако общие принципы выполнения операции записи в память остаются неизменными.

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

Читать еще:  Защита документа word паролем

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

  • На адресной шине процессор должен выставить сигналы, соответствующие адресу порта, в который будет осуществляться передача информации, в адресном пространстве ввода-вывода .
  • На шину данных процессор должен выставить сигналы, соответствующие информации, которая должна быть передана в порт.
  • После выполнения действий 1 и 2 на шину управления выставляются сигналы, соответствующие операции записи и работе с устройствами ввода-вывода (переключение адресных пространств!), что приведет к передаче необходимой информации в нужный порт.

Существенное отличие памяти от устройств ввода-вывода заключается в том, что занесение информации в память является окончанием операции записи, в то время как занесение информации в порт зачастую представляет собой инициализацию реального совершения операции ввода-вывода. Что именно должны делать устройства, приняв информацию через свой порт, и каким именно образом они должны поставлять информацию для чтения из порта, определяется электронными схемами устройств, получившими название контроллеров . Контроллер может непосредственно управлять отдельным устройством (например, контроллер диска), а может управлять несколькими устройствами, связываясь с их контроллерами посредством специальных шин ввода-вывода (шина IDE, шина SCSI и т. д.).

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

  • Устройства ввода-вывода подключаются к системе через порты.
  • Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода .
  • Порты, как правило, отображаются в адресное пространство ввода-вывода и иногда – непосредственно в адресное пространство памяти.
  • Использование того или иного адресного пространства определяется типом команды, выполняемой процессором, или типом ее операндов.
  • Физическим управлением устройством ввода-вывода, передачей информации через порт и выставлением некоторых сигналов на магистрали занимается контроллер устройства .

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

Достоинства отображаемого на адресное пространство памяти ввода-вывода

1. обращения к устройствам ввода-вывода не требуются специальные команды процессора, такие как IN и OUT. В результате программу, общающуюся с таким устройством, можно написать целиком на языке С или C++, без вставок на ассемблере.

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

3. при отображении регистров ввода-вывода на память каждая команда процессора, обращающаяся к памяти, может с тем же успехом обращаться к управляющим регистрам устройства.

Недостаткиотображаемого на адресное пространство памяти ввода-вывода.

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

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

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

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

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

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

Первый способ решения проблемы. Чтобы отображение регистров ввода-вывода могло работать на системах с несколькими шинами необходимо чтобы сначала все обращения к памяти посылались процессором по выделенной быстрой шине напрямую памяти (чтобы не снижать производительности). Если память не может ответить на эти запросы, процессор пытается сделать это еще раз по другим шинам.

Такое решение работоспособно, но требует дополнительного увеличения сложности аппаратуры.

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

Третий способ решения проблемы. Фильтрация адресов микросхемой моста PCI. Эта микросхема содержит регистры диапазона, заполняемые во время загрузки компьютера. Например, диапазон адресов от 640К до 1М может быть помечен как не относящийся к памяти. Все адреса, попадающие в подобный диапазон, передаются не памяти, а на шину PCI. Недостаток этой схемы состоит в необходимости принятия во время загрузки решения о том, какие адреса не являются адресами памяти.

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