Технология I2O



I2O

I2O (Intelligent Input/Output) — спецификация, определяющая стандартную архитектуру интеллектуального ввода/вывода, не зависящую от специфических устройств и операционной системы. Спецификация I2O призвана решить две ключевые проблемы:

  • Занятость процессора операциями ввода-вывода
  • Необходимость в разработке драйверов для каждого устройства и для каждой операционной системы

Суть архитектуры I2O заключается в обработке низкоуровневых прерываний ввода-вывода, поступающих от устройств, не центральным процессором (CPU), а специализированным процессором ввода-вывода (IOP), разработанным специально для этой цели. В настоящий момент эта задача решается применением RISC-процессора i960, работающего на частоте 66 МГц со своей собственной памятью, объёмом до 64 МБ. При поддержке обмена сообщениями между несколькими процессорами, архитектура I2O разгружает центральный процессор и позволяет выполнение задач, требующих интенсивного ввода-вывода и широкой полосы пропускания, например видеоприложений или работы в среде клиент-сервер. Применения I2O не ограничены и она может быть использована как в однопроцессорных, так и многопроцессорных и кластерных системах.

Спецификация I2O определяет разбиение драйвера устройства на две части: ОС-зависимого и аппаратно-зависимого модуля, созданного для конкретного устройства. Эти модули работают автономно и могут выполнять задачи независимо. В настоящее время поддержка I2O обеспечивается в NetWare 4, Windows NT Server 5.0 и UnixWare. Таким образом, технология с разбиением драйвера, уменьшает общее число требуемых драйверов: производители операционных систем пишут по одному драйверу на каждый класс устройств, например дисковые контроллеры, а производители оборудования — по одному драйверу на каждое свое устройство, который может быть использован с любой операционной системой поддерживающий I2O.

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

Модель драйверов I2O

Краткий обзор

Две части драйвера I2O устройства представляют собой Operating System Services Module (OSM), модуль обслуживания операционной системы, обеспечивающий интерфейс с ней и Hardware Device Module (HDM), модуль устройства, обеспечивающий управление оборудованием. OSM работает со внешним устройством посредством HDM. Общение между этими модулями происходит на двух уровнях — уровне сообщений, на котором происходит установление связи и транспортном уровне, определяющим способы разделения информации. Как и в большинстве протоколов связи, уровень сообщений базируется на транспортном уровне.

Модель связи I2O, в комбинации со средой выполнения и конфигурационным интерфейсом, обеспечивает независимый интерфейс с HDM. Модули способны связаться друг с другом без знания архитектуры шины или топологии системы. Передаваемые сообщения формируют некий метаязык, не зависящий от аппаратной реализации. Вся эта технология сильно напоминает сеть TCP/IP. Такая реализация I2O, кроме всего прочего, обеспечивает мобильность устройств ввода-вывода.

Интерфейс сообщений I2O

Модель связи I2O

Модель связи для I2O — это система обмена сообщениями. Когда OSM получает запрос от операционной системы, он транслирует его в запрос I2O и передает его HDM для обработки. После обработки запроса, HDM возвращает результат обратно OSM, посылая сообщение посредством уровня сообщений I2O. Далее результат передается операционной системе, как от любого другого драйвера устройства.

Архитектура программного обеспечения I2O

Уровень сообщений

Уровень сообщений определяет открытый, стандартный и абстрактный механизм для связи между сервисными модулями, обеспечивая основу для интеллектуального ввода — вывода. Этот уровень, управляя пересылкой всех запросов, а также обеспечивая функционирование API (Application Programming Interface), связывает модель драйверов I2O.

Уровень сообщений состоит из трех основных компонент: дескриптора сообщения, сервисной программы сообщения (Message Service Routine — MSR), и очереди сообщений. Дескриптор по существу является адресом ресурса, к которому идет обращение. Для каждого сообщения, проходящего на уровне сообщений создается свой дескриптор. Очередь сообщений организуется между передающим и приемным устройствами.

Когда драйвер формирует сообщение, оно помещается в очередь и для его обработки активизируется MSR. Сообщение содержит две части — заголовок и тело. Заголовок содержит тип сообщения и адрес его отправителя.

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

Модуль обслуживания операционной системы — OSM

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

OSM переводит сообщения операционной системы в формат, который может быть понят HDM. Передача информации обратно, от HDM к операционной системе реализуется также через OSM посредством уровня сообщений I2O.

Один OSM может обслуживать множественные HDM. Благодаря существованию дескрипторов на уровне сообщений, OSM обладает возможностью рассылать свои сообщения многим адресатам, а также организовывать пересылку информации между ними.

Аппаратный модуль устройства — HDM

HDM — низкоуровневый модуль в среде I2O. HDM представляет собой аппартно-зависимую часть драйвера, обеспечивающую взаимодействие с контроллером или непосредственно устройством. Можно провести аналогию между HDM и аппаратно зависимой частью драйвера сети или драйвером SCSI в том виде, в котором он существует сегодня. Каждый HDM уникален для каждого конкретного устройства и производителя. Он поддерживает все низкоуровневые операции устройства, такие как синхронные и асинхронные запросы, а также транзакции управляемые событиями.

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

Системная среда

Модель I2O может быть применена в любых условиях — как и в однопроцессорных, так и многопроцессорных системах.

Интерфейсы OSM и HDM входят в основной API I2O. Среда выполнения OSM зависит от операционной системы, что оказывает влияние на реализацию некоторых функций API. В задачи OSM входит реализация связи между API, используемого операционной системой, и HDM, управляющим устройством.

Кроме основных функций в API HDM может быть введен дополнительный набор команд. Этот набор необходим для прямого общения операционной системы с HDM и применяется при ее загрузке для инициализации ядра. Примерно это и реализуется в основных многозадачных средах. Однако этот дополнительный набор также является единым для всех устройств одного класса. Так что технология I2O не несет в себе никаких ограничений для области ее использования.

Среда выполнения

Реализация архитектуры I2O

Гибкая, открытая архитектура I2O предоставляет разработчикам различные варианты для реализации. Основные три подхода следующие:

  • Установка IOP на материнскую плату. IOP устанавливается на материнскую плату и используется при интеллектуальном вводе-выводе. В этом случае IOP используется в качестве стандартного PCI Bridge и добавляет "интеллектуальности" к шине PCI
  • Установка IOP на дополнительной плате расширения. Интеллектуальный контроллер I2O инсталлируется как, например, обычная сетевая карта
  • Установка опциональной платы расширения с IOP в специализированный слот на материнской плате. Этот процессор будет функционировать со всеми устройствами, требующими интеллектуальный ввод-вывод

Практика использования I2O

Устройства, совместимые с технологией I2O будут маркироваться производителями как "I2O ready". Однако в одной системе можно будет применять, как и I2O устройства, так и обычные, неинтеллектуальные устройства. Это позволит организовать легкий переход к новой архитектуре. Тем более стоимость материнской платы с IOP возрастет максимум на $10-15.

Можно ожидать, что в связи со введением дополнительных устройств (IOP) и разбиения драйвера на части, скорость обмена информацией может упасть. В принципе, это мнение оправдано. Однако, в связи с тем что во-первых упрощается задача написания драйверов, а во-вторых разгружается центральный процессор, общая эффективность системы должна возрасти. Пример подобного роста эффективности — применение IDE Bus Master драйверов.

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

Заключение

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

Дополнительная информация о I2O может быть найдена на сайте фирмы Intel




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.