Remkomplekty.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Очистить кеш браузер яндекс

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

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

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

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

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

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

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

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

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

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

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

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

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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

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

Особое место занимает адресное пространство ввода-вывода, используемое для связи центрального процессора с периферийными устройствами. Подключение периферийного оборудования (клавиатуры, дисплея, дисковых накопителей, принтера, «мыши» и т.д.) и обмен данными с центральным процессором осуществляется через специальные устройства, называемые адаптерами или контроллерами. В состав компьютерной системы входят как специализированные адаптеры (например, видеоадаптер, контроллер прерываний, контроллер дисковода и др. ), так и универсальные адаптеры последовательного (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, обеспечивающей этот процесс.

Отображение портов ввода–вывода в адресном пространстве

Каждому регистру управления назначается уникальный адрес из адресного пространства. Порты ввода — вывода могут также быть отображены в адреса физического адресного пространства (в область оперативной памяти). Процессор тогда способен связаться с устройством ввода — вывода, издавая команды ассемблера, которые работают непосредственно на памяти (например, mov, or, and, и так далее). Как правило, для регистров управления используются верхние адреса адресного пространства. Другими словами на адресное пространство процессов накладывается адресное пространство устройств. Это пространство не может быть использовано в работе процессов.

Например, для управления IDE жестких дисков использует пул из 16 адресов 0xf000 –0xf00f. Это ресурсный узел. При этом определяется, что первые 8 адресов 0xf000 – 0xf007 используются для доступа к master-дискам а 8 адресов 0xf008-0xf00f для slave-дисков. Эти пулы также делятся 0xf000-0xf003 – для доступа блочных устройств(кешируемых), 0xf004-0xf007 для доступа символьных устройств (не кешируемых). (остальное разбиение касается primaryпартиций. Их может быть не более 4.)

Ядро сопровождает этот пул с помощью драйвера жесткого диска. Этот драйвер имеет номер в таблице ресурсов ядра и называется мажором. Адрес, точно указывающий на устройство называется минором. Таким образом, чтобы обратится блочному устройству намастер диску к первой primary таблице нужно обратится к специальному файлу в директории /dev/hda1 c 3 номером ядра и адресом 0xf000

Управление вводом-выводом

Со стороны операционной системы процесс обработки информации – это выполнение команд процессора над данными, лежащими в основной памяти. Все остальные операции – операции ввода-вывода.

Читать еще:  Какой самый нетребовательный браузер

Проектирование операций ввода – вывода самая сложная часть проектирования ОС, поскольку должна универсально работать с большим классом устройств.не мешать им работать в параллельном режиме.

Поэтому операции по вводу-выводу являются особыми операциями (привилегированными операциями), и могут выполняться только самой ОС. Для этого используют разграничение на супервизор и пользователей. Использование операция ввода-вывода пользователем «на прямую» запрещено и называет исключение, а управление передается супервизору через механизм прерываний.

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

Супервизор выполняет следующие действия:

Проверяет корректность запроса пользовательского запроса. Если запрос соответсвует спецификации он принимается, если нет – выдается исключение.

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

При получении сигналов прерываний от устройства ввода-вывода супервизор идентифицирует прерывания и передает управление соответствующей программе обработки прерываний (секция продолжения драйвера).

Передает сообщение об ошибке в центральную систему для обработки

Передает сообщение об окончании процесса ввода-вывода процессу, если процесс ожидает завершения операции.

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

Каждое устройство ввода-вывода содержит 4 магистрали – питание, данные, адреса и управление. Если учесть, что для каждой магистрали требуется как минимум 2 проводника (ввод и вывод) – получим 8 проводов. Добавим ещё сигнальную шину и получим 10 проводников. Эти проводники формирую порт, к которому можно подключить практически любое устройство.

Суммарное количество портов ограничено значение счетчика 65535 (2**16). Это 8-ми битные порты. Для организации работы 16 битных устройств требуется соединить 2 порта, при этом может использоваться только 2**15 портов. Для современных 64 битных устройств остается всего 8192 порта (2**13), а для 128 битных устройств остается всего 4096 адресов. Пока это не выглядит серьезным ограничением для персональных компьютером.

В системных таблицах устройств, кроме адреса, содержится информация, необходимая для перепрограммирования контролера прямого доступа в память. Эта двоичная информация содержит …

Как же работать с устройством, если набор команд к портам одинаков, а устройства разные. Для этого со стороны ОС используются драйверы, а со стороны устройств – контролеры.

Драйвера

Драйвера работают в двух режимах: режим обмена с опросом готовности и режим обмена с прерывания.

Если управление осуществляет центральный процессор, он посылает устройству управления команду выполнить некоторое действие. Исполнительное устройство выполняет операции и транслирует ЦП понятные ему сигналы.

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

Конечно ЦП выгоднее выдав команду ввода – вывода вообще отключиться от этой задачи. А сигналы готовности от устройств можно трактовать как прерывания и передавать их на обработку драйверу устройства. Работа с прерываниями – асинхронное управление.

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

Секция запуска– инициирует операции ввода-вывода. Эта секция загружается в основную память, для включения устройства в состав ОС.

Секция продолжения – осуществляет на основании некоего алгоритма операции передачи данных с прерываниями. Секция основной обработчик прерываний. Если секций выполнения несколько — они поочередно передают друг другу управление.

Секция завершения выключает устройство вводы-вывода из состава ОС.

Драйвера в режиме прерываний сложнее драйверов на основе опроса. Попытка смешивания драйверов обоих типов в одной системе приводит к зависаниям. Так в ОС WindowsNT драйвера печати работают в режиме опроса и при печати загружают систему на 100%.

Закрепление устройств

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

Называется spool – simultaneous peripheral operation on-line – имитацияработысустройствомврежиме On-Line).Его задача создать видимость параллельного асинхронного работы с устройством нескольких процессов.

Каждому устройству предоставляется виртуальный драйвер, вывод собирается в специальных файлах. Сервис управляющий процессов чтением и записью в спул файл – спуллер. (spool-readerspool-writer)

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

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

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

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

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

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

Читать еще:  Сколько браузеров существует

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×