Chapter_15 (1110567), страница 6
Текст из файла (страница 6)
Частичное решение этой проблемы предоставляют периферийные устройства типа Plugand Play (хорошего перевода нет, что-то вроде "Вставь и сразу пользуйся"). Эти устройства привключении компьютера сами уведомляют операционную систему о своём присутствии и характеристиках, посылая по общей шине соответствующие сигналы.Исходя из таких очевидных недостатков архитектуры с общей шиной, была разработана и другаяархитектура связи устройств компьютера между собой. Обычно в литературе она называется архитектурой с каналами ввода/вывода [1,3].115.2.3. Архитектура ЭВМ с каналами ввода/выводаАрхитектура ЭВМ с каналами ввода/вывода предполагает возможность параллельной работы нескольких устройств компьютера. Поймём сначала, какие же работы при общении с внешними устройствами нам надо производить параллельно.
Оказывается, что в основном нужно обеспечить параллельный обмен данными нескольких устройств с оперативной памятью (такая оперативная памятьназывается многовходовой). Действительно, когда мы рассматривали мультипрограммный режимработы ЭВМ, мы говорили, что для эффективного использования аппаратных ресурсов необходимообеспечить как можно более полную загрузку всех устройств компьютера.Например, одна программа может выполнять свои команды на центральном процессоре, другая –читать массив данных с диска в оперативную память, третья – выводить результаты работы из оперативной памяти на печать и т.д. Как видим, здесь оперативная память должна параллельно работать снесколькими устройствами: центральным процессором (он читает из памяти команды и данные, азаписывает в память результат выполнения некоторых команд), диском, печатающим устройством ит.д. Скорость работы оперативной памяти должна быть достаточна для такого параллельного обслу1Эта архитектура первоначально использовалась на больших ЭВМ и возникла до архитектуры с общейшиной, последняя, как уже говорилось, была разработана для малых ЭВМ массового выпуска.14живания нескольких устройств (здесь, как мы уже говорили, сильно помогает расслоение оперативной памяти и использование вспомогательной памяти типа кэш).1Как мы знаем, центральный процессор выполняет обращения к оперативной памяти, подчиняяськомандам выполняемой программы.
Ясно, что и все другие обмены данными с оперативной памятьюв этой новой для нас архитектуре должны выполняться под управлением достаточно "интеллектуальных" устройств ЭВМ. Вот эти устройства и называются каналами ввода/вывода, так как ониуправляют обменом данными между оперативной памятью и, как говорят, периферией.
По существу,канал ввода/вывода является специализированным процессором со своей системой команд (своиммашинным языком). Машинные языки каналов ввода/вывода обычно проще машинного языка центрального процессора, так как они предназначены только для узкой задачи описания алгоритмов обмена данными между компьютером и "внешним миром".В современной литературе по архитектуре ЭВМ у термина "канал ввода/вывода" есть много синонимов. Часто их называют процессорами ввода/вывода или периферийными процессорами (смыслэтих названий легко понять из назначения данных устройств). Наиболее "навороченные" каналы называют иногда машинами переднего плана (front-end computers). Здесь имеется в виду, что всевнешние устройства, а, следовательно, и пользователи, могут общаться с центральной частью компьютера (обычно это супер-ЭВМ) только через эти машины переднего плана.
Кроме того, эти машины могут разгрузить центральный процессор, взяв на себя, например, обработку прерываний отвнешних устройств, весь диалог с пользователями, компиляцию программ в объектный код, получение загрузочного модуля и т.д. Центральный процессор супер-ЭВМ при этом будет выполнять толькосвою основную работу – быстрый счёт уже подготовленных для него загрузочных модулей.Чаще всего на больших компьютерах есть несколько каналов ввода/вывода, так как эти каналывыгоднее делать специализированными. Обычно один канал ввода/вывода успевает обслуживатьвсе медленные внешние устройства (клавиатура, печать, дисплеи, линии связи и т.д.), такой каналназывается мультиплексным.2 Один или несколько других каналов работают с быстрыми внешнимиустройствами (обычно это дисковая память), такие каналы называются селекторными.
В отличие отмультиплексного канала, который успевает, быстро переключаясь с одного медленного внешнегоустройства на другое, обслуживать их все как бы одновременно, селекторный канал в каждый моментвремени может работать только с одним быстрым внешним устройством. На рис. 15.4 показана архитектура ЭВМ с каналами ввода/вывода.Оперативнаяпамять.Мультиплексный каналКонтроллерУстр-во 1Центральныйпроцессор.Селекторныйканал···Устр-во nКонтроллерУстр-во 1···Устр-во nРис. 15.4. Схема ЭВМ с каналами ввода/вывода.Как видно из этого рисунка, внешние устройства подключаются к каналам не напрямую, а черезспециальные электронные схемы, которые называются контроллерами.
Это связано с тем, что каналыявляются универсальными, они должны допускать подключение внешних устройств, очень разных посвоим характеристикам. Таким образом, канал работает как бы с некоторыми обобщёнными (абст1Отсюда ясно, что свой кэш может использоваться как буфер между оперативной памятью и внешнимиустройствами. Например, обмен между оперативной памятью и магнитным диском производиться через дисковый кэш, выполняющий те же функции, что и кэш между оперативной и регистровой памятью, и т.д.2На современных персональных ЭВМ некоторым приближением к такому мультиплексному каналу является так называемый контроллер USB шины, к нему может подключаться до 127 различных внешних устройств.
Правда, это не совсем канал, а именно контроллер, так как он не допускает программирование для негопроцедур ввода/вывода.15рактными) внешними устройствами, а все особенности связи с конкретными устройствами реализуются в контроллерах. Например, один контроллер предназначен для подключения к каналу жёсткихдисков, другой – архивных накопителей на магнитной ленте (так называемых стримеров), третий –накопителей на лазерных дисках и т.д. Примерами таких устройств на массовых персональных ЭВМявляются, например, контроллеры IDE1 и IDE2, к каждому из которых можно подключить по двадостаточно быстрых устройства для работы с жёсткими и оптическими дисками.
Правда, на персональных ЭВМ эти контроллеры подключаются не к каналу ввода/вывода, а к более примитивным (непрограммируемым) так называемым устройствам прямого доступа к памяти (DMA – Direct MemoryAccess).Как мы уже говорили, для компьютеров с общей шиной при выполнении системного вызова центральный процессор переключается на процедуру-обработчика прерывания, и эта процедура выполняет программу, реализующую требуемое действие, например, чтение массива с диска в оперативнуюпамять. Другими словами, во время выполнения процедуры-обработчика прерывания программапользователя, естественно, не считается, так как центральный процессор занят счётом служебнойпроцедуры.Совершенно по-другому производится обработка системного вызова на компьютере с каналамиввода/вывода.
После того, как программа пользователя произведёт системный вызов, вызваннаяпроцедура-обработчик прерывания посылает соответствующему каналу приказ начать выполнениепрограммы канала, реализующей требуемое действие, после чего может производиться немедленный возврат на продолжение выполнения программы пользователя. Далее начинается параллельнаяработа центрального процессора по выполнению программы пользователя и канала, выполняющегосвою собственную программу по обмену с внешними устройствами, например, по чтению массива сдиска в оперативную память.1Естественно, что немедленное продолжение выполнения программы пользователя после системного вызова возможно только в том случае, если этой программе не требуется немедленно обрабатывать данные, которые должен предоставить канал.
Например, если программа обратилась к каналу для чтения массива с диска в свою оперативную память, и пожелает тут же начать суммироватьэлементы этого массива, то такая программа будет переведена диспетчером в состояние ожидания,пока канал полностью не закончит чтения заказанного массива в память. Аналогично программа будет переведена в состояние ожидания, если она обратилась к каналу для записи некоторого своегомассива из оперативной памяти на диск, и пожелала тут же начать присваивать элементам этого массива новые значения. Для предотвращения таких ситуаций существуют особые аппаратные и программные средства, позволяющие, как говорят, синхронизировать параллельную работу несколькихустройств. С этими средствами Вы познакомитесь в другом курсе. Эти примеры, в частности, показывают, насколько усложняются большинство программ операционной системы в архитектуре с каналами ввода/вывода по сравнению с архитектурой с общей шиной.В заключение нашего краткого рассмотрения организации взаимодействия центральных и периферийных частей компьютера стоит отметить, что в настоящее время архитектура с общей шиной вчистом виде встречается только в самых простых ЭВМ (обычно в тех специализированных компьютерах, которые встраиваются в стиральные машины, холодильники, автомобили и т.д.).