Интерфейсы систем экзамен. АВ. Вопросы к экзамену по дисциплине Интерфейсы вычислительных систем
Скачать 1.07 Mb.
|
Приоритеты передач по USB шине. Все операции по передаче данных инициируются хост-системой независимо от того, принимает ли она данные или пересылает в периферийное устройство. Все невыполненные операции хранятся в виде четырех списков по типам передач: - изохронные передачи; - передачи прерываний; - передачи управляющих команд; - передачи данных больших объемов. Списки постоянно обновляются новыми запросами. Планирование операций по передаче информации в соответствии с упорядоченными в виде списков запросами выполняется хостом с 1-миллисекундным интервалом. В начале каждого такого интервала хост посылает по шине пакет SOF (Start Of Frame - начало кадра), после чего начинается обслуживание запросов из списка изохронных передач (т.к. они имеют наивысший приоритет). После того, как все запросы из этого списка будут обслужены, хост-система переходит к списку операций по передачи прерываний, затем к списку запросов на передачу данных большого объема. По истечении 90% указанного 1-миллисекундного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет. Тем самым гарантируется, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передачи данных большого объема (до конца указанного 1-миллисекундного интервала). Таким образом: - изохронные передачи гарантированно получают 90% пропускной способности шины; - передачи прерываний занимают оставшуюся часть изохронных операций часть этой 90-процентной доли; - под передачу данных большого объема выделяется все время, оставшееся после изохронных передач и передач прерываний (по-прежнему в рамках 90%-ой доли пропускной способности); - управляющим передачам гарантируется 10% пропускной способности; - если передача всех управляющих пакетов будет завершена до истечения выделенного для них 10%-го интервала, то оставшееся время будет использовано для передачи данных большого объема. Идентификация и классификация устройств. Обнаружив подключение устройства (по сообщению от хаба), система USB считывает его дескрипторы, чтобы определить, какие программные компоненты необходимо загрузить и кого уведомлять о появлении нового устройства. В любом устройстве USB обязательно должны присутствовать дескрипторы устройства, конфигурации, интерфейсов и конечных точек. В дескрипторе устройства имеются 2-байтные поля, идентифицирующие устройство в целом: idVendor — идентификатор производителя (VID — Vendor Id), назначаемый USB-IF; idProduct и bcdDevice — идентификатор продукта (PID — Product Id) и его версии (DID — Device Id), определяются производителем. Кроме того, здесь могут присутствовать ссылки на строковые дескрипторы, в которых содержатся текстовые названия изготовителя и устройства, а также его серийный номер. Для определения назначения, возможностей и протоколов, поддерживаемых устройством и его отдельными интерфейсами, в его дескрипторах указываются коды класса, подкласса и протокола. Коды класса, подкласса и протокола имеют непосредственное отношение к интерфейсам — по ним могут быть подобраны подходящий драйвер и клиентское приложение. Эти коды содержатся в дескрипторах интерфейсов, поддерживаемых устройством. «Штатные» коды в диапазоне 01h–FEh назначает USB-IF, но только для уже стандартизованных устройств. Значение 00h означает отсутствие определения. Сообщение штатного кода обязывает устройство соответствовать стандартным требованиям, предъявляемым к интерфейсам с указанным протоколом для заданного класса и подкласса, в том числе и выполнять все специфические запросы и сообщать специфические дескрипторы, если таковые имеются. Классификация устройств USB относится не к потребительским функциям, выполняемым устройствами, а к способам коммуникаций между хостом и устройствами. Классификация позволяет обобщать характеристики интерфейсов, при этом, как правило, код протокола задает состав, тип конечных точек и правила их использования, а подкласс определяет форматы данных, передаваемых через те или иные конечные точки. Классификация позволяет сократить многообразие (разнотипность) драйверов, требуемых для различных устройств, — драйвер может абстрагироваться от конкретного устройства-функции, которое он обслуживает. Операционная система связывает имеющиеся в ее распоряжении клиентские драйверы с конкретными интерфейсами устройств, используя коды классов/подклассов и протокола, а также идентификаторы производителя, продукта и его версии. Стандартные запросы к устройствам. Стандартные запросы относятся ко всем устройствам USB, хотя для ряда устройств есть исключения: управление альтернативными установками интерфейсов не требуется, если нет альтернатив; установка меток времени нужна (и возможна) только для устройств с изохронными точками. Стандартные запросы адресуются к EP0. Запрос установки адреса Set_Address адресуется только ко всему устройству, в поле wValue передается адрес, назначаемый устройству. Запросы обращения к дескрипторам Get_Descriptor и Set_Descriptor адресуются только ко всему устройству. Поле wIndex используется только для строковых дескрипторов для задания языка (Languge ID). Поле wLength задает длину дескриптора. Если реальная длина считываемого дескриптора больше запрошенной, то считывается только его начало; если меньше, то устройство в транзакции возвращает только реальное количество байтов. Запросы управления конфигурацией Get_Configuration и Set_Configuration адресуются только к устройству. В запросе установки (Set) используется только поле wValue — в его младшем байте передается номер устанавливаемой конфигурации. В запросе чтения (Get) используется только поле wLength (= 1) — ожидается один байт ответа, содержащий номер текущей конфигурации. Запросы управления альтернативными установками Get_Interface и Set_Interface адресуются к интерфейсу, номер которого указывается в поле wIndex. В запросе установки (Set) в младшем байте поля wValue передается номер альтернативной установки. В запросе чтения (Get) поле wLength (= 1) указывает на ожидание одного байта ответа, содержащего номер установки для данного интерфейса. wLength (= 2) указывает на 2 байта передаваемых данных — номера кадра для данной метки. Запрос чтения состояния Get_Status может адресоваться к устройству, интерфейсу или конечной точке. Здесь поле wIndex определяет номер объекта (интерфейса или точки, для устройства — ноль), поле wLength указывает число байтов ожидаемых данных состояния. Запросы управления свойствами Set_Feature (установить свойство) и Clear_Feature (сбросить свойство) также могут адресоваться к устройству, интерфейсу или конечной точке. Здесь поле wIndex определяет номер объекта (интерфейса или точки, для устройства — ноль), поле wValue задает номер свойства. Отличие USB 3.0 от предыдущих версий. Между 2.0 и 3.0 есть несколько существенных отличий. Во-первых, скорость передачи данных: USB 2.0 предлагает скорость передачи 480 Мбит/с, а 3.0 – от 4,8 Гбит/с – это в 10 раз быстрее. Обратите внимание, что скорость передачи также зависит от используемого устройства, типа шины, USB-портов и качества провода. Вторым основным отличием является добавление ещё одной физической шины – удвоение количества проводов, с 4 до 8. Дополнительные провода требуют больше места как в кабелях, так и в разъёмах. Наконец, последнее основное отличие заключается в доступной мощности и управлении питанием продуктов 3.0. USB 2 обеспечивает до 500 мА, тогда как версия 3 обеспечивает до 900 мА, что позволяет энергосберегающим устройствам питаться от шины. Кроме того, технология версии 3.0 позволяет повысить энергоэффективность при меньшем энергопотреблении в режиме ожидания или полностью отключить питание, когда оно не используется. Быстрая визуальная проверка USB-порта покажет разницу и поможет определить, с каким портом вы имеете дело. Внутри 2.0 должна быть полоса серого цвета, в то время как 3.0 будет иметь полосу синего цвета. Такое решение было утверждено в качестве международного стандарта. Поэтому, где бы вы ни покупали какие-либо комплектующие, эти цвета должны быть одинаковыми. Если есть возможность, всегда используйте версию 3.0. Они быстры и могут справиться с большей мощностью. Кабели 3.0 обеспечивают более высокую скорость передачи данных – 4,8 Гбит/с, а также дополнительную передачу мощности в 900 мА, удваивая количество проводов в кабеле с 4 в кабелях 2.0 до 8 в кабелях 3.0. Кабели USB 2.0 передают данные со скоростью 480 Мбит/с и обеспечивают мощность до 500 мА. Кабели USB 3.0 также имеют разные разъёмы, отличающиеся синим цветом с внутренней стороны. Это означает, что любое устройство, использующее разные разъёмы, не может использовать кабели, эквивалентные 2.0. Кроме того, хотя слот 2.0 физически вписывается в порт 3.0, другая конфигурация проводки всё равно не позволяет правильно передавать данные. Обратная совместимость USB 3.0 и USB 2.0. Архитектура xHCI предусматривает построение контроллера в виде двух раздельных подсистем: USB2 и USB3. Каждая из них использует свою группу сигналов на разъеме USB3. Это сделано для совместимости со "старыми" USB устройствами (Low-, Full-, High-Speed) без использования контроллеров-компаньонов и Rate Matching Hub (RMH). При всех различиях сохраняется обратная совместимость USB 3.0 c USB 2.0. То есть в спецификации USB 3.0, кроме режима SuperSpeed, оставлены и режимы Hi-Speed, Full-Speed и Low-Speed. Кроме того, разъемы USB 3.0 совместимы с разъемами USB 2.0. Это означает, что все периферийные устройства с интерфейсом USB 2.0 можно будет подключать к шине USB 3.0. — USB 2.0 устройство с разъёмом USB типа А, например, «флешку», можно подключить к USB 3.0 контроллеру, и оно будет там работать. — USB 2.0 устройство с разъёмом USB типа В, например, принтер, можно подключить к USB 3.0 контроллеру стандартным кабелем USB 2.0 и он будет там работать, разъёмы на кабеле просто не достанут до отвечающих за USB 3.0 контактов. — USB 3.0 устройство с разъёмом USB типа А можно подключить к контроллеру USB 2.0, и оно должно там работать в режимах USB 2.0. — USB 3.0 устройство не будет работать с контроллером USB 1.1. — Кабель USB 3.0 типа В невозможно подключить к разъёму USB 2.0, разъёмы старого типа недостаточно глубоки для него. Теоретическое улучшение скорости USB 3.0 и реальные показатели Контроллер USB 3.0 eXtensible Host Controller Interface поддерживает новый, более скоростной режим передачи данных, который называется SuperSpeed. Он обеспечивает обмен данными по шине до пяти гигабит в секунду. Для сравнения, контроллер USB 2.0 EHCI в режиме High Speed поддерживает скорость до 480 мегабит в секунду. Спецификацией USB 3.0 предусмотрен режим SuperSpeed со скоростью передачи данных до 5 Гбит/с (640 Мбайт/с), то есть более чем в 10 раз превышающей ту, что предусмотрена спецификацией USB 2.0. Конечно, реальная скорость передачи данных будет, скорее всего, ниже, однако даже с учетом этого для большинства периферийных устройств такой пропускной способности шины USB 3.0 более чем достаточно. Накопители USB 2.0 способны выдавать скорость записи от 7,9 до 9,5 Мб/с, тогда как диски USB 3.0 от 11,9 Мб/с и вплоть до 286,2 Мб/с. Наихудший USB 3.0 диск быстрее чем все USB 2.0, но немного. А лучший, быстрее более чем в 28 раз. Физическая архитектура шины USB 3.0. Важное отличие спецификации USB 3.0 от USB 2.0 заключается в том, что стандартом предусмотрена двунаправленная передача данных по разным витым парам. Таким образом, контактов в разъемах USB 3.0 стало больше. Увеличилось и количество проводов в USB-кабеле. Так, в стандарте USB 2.0 одна витая пара использовалась для приема/передачи данных, а другая - для питания, то есть в разъемах USB 2.0 было четыре контакта, а USB-кабель содержал четыре провода. В спецификации USB 3.0 первая витая пара применяется для передачи данных, вторая - для приема данных, третья - для питания, а для совместимости со стандартом USB 2.0 предусмотрена четвертая витая пара, по которой осуществляется прием/передача данных в режиме USB 2.0 (Hi-Speed, Full-Speed и Low-Speed). Кроме того, в обязательном порядке присутствует еще одна "земля" (GND_DRAIN) в виде оплетки двух витых пар. Таким образом, в кабеле USB 3.0 не четыре провода (как в кабеле USB 2.0), а восемь (рис.3), а в разъемах USB 3.0 как минимум девять контактов (оплетки витых пар подключаются к контакту GND_DRAIN). Рис. 3 Кабель USB 3.0 Рис. 4 Схема разреза кабеля USB 3.0 С учетом разнообразия разъемов USB 3.0 будут предлагаться следующие типы USB-кабелей: USB 3.0 типа A (штепсель) - USB 3.0 типа A (штепсель); USB 3.0 типа A (штепсель) - USB 3.0 типа B (штепсель); USB 3.0 типа A (штепсель) - USB 3.0 Micro-B (штепсель); USB 3.0 Micro-A (штепсель) - USB 3.0 Micro-B (штепсель); USB 3.0 Micro-A (штепсель) - USB 3.0 типа B (штепсель); кабель, жестко связанный с устройством с одного конца и штепсельным разъемом USB 3.0 Micro-A с другого конца; кабель, жестко связанный с устройством с одного конца и штепсельным разъемом USB 3.0 Powered-B с другого конца; кабель, жестко связанный с устройством или присоединяемый к нему с помощью фирменного (нестандартного) разъема с одного конца и штепсельным разъемом USB 3.0 типа A с другого конца. Механический ресурс коннекторов USB 3.0. Механический ресурс обычных полноразмерных USB 3.0 коннекторов рассчитан на полторы тысячи циклов «подключение-отключение», коннекторов повышенной прочности — на пять тысяч таких циклов, а коннектор USB 3.0 Micro наиболее «живучий» — он должен выдерживать до десяти тысяч подключений и отключений. Концентраторы (хабы) в архитектуре USB. Хаб - ключевой элемент системы РпР в архитектуре USB. Хаб является кабельным концентратором. Точки подключения называются портами хаба. У каждого хаба имеется один восходящий порт (upstream port), предназначенный для подключения к хосту или к хабу верхнего уровня. Остальные порты являются нисходящими (downstream) и предназначены для подключения функций и хабов нижнего уровня. Каждый хаб преобразует одну точку подключения в их множество. Архитектура допускает соединение нескольких хабов. Хаб в USB выполняет коммутацию сигналов и выдачу питающего напряжения, а также отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повторитель представляет собой управляемый ключ, соединяющий выходной порт со входным. Он имеет средства поддержки сброса и приостановки передачи сигналов. Контроллер содержит регистры для взаимодействия с хостом. Доступ к регистрам осуществляется по специфическим командам обращения к хабу. Команды позволяют конфигурировать хаб, управлять нисходящими портами и наблюдать их состояние. Нисходящие (Downstream) порты хабов могут находиться в следующих состояниях: * Powered (*(питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих питание). Выходные буферы переводятся в высокоимпедансное состояние, входные сигналы игнорируются. * Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключение устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled, а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства. s* Disabled (запрещен) - порт передает только сигнал сброса (по команде от контроллера), сигналы от порта (кроме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO) порт переходит в состояние Disconnect, а если отключение обнаружено "спящим" хабом, контроллеру будет послан сигнал Resume. Enabled (разрешен) - порт передает сигналы в обоих направлениях. По команде контроллера или по обнаружении ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect. * Suspended (приостановлен) - порт передает сигнал перевода в состояние останова ("спящий" режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещенных портов, подавая "пробуждающие" сигналы от активизировавшегося устройства даже через цепочку "спящих" хабов. Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Имеется общий регистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во время EOF). Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнить состояние. Cравнение протоколов USB, FireWire и ESATA. Интерфейс USB 2.0 существует уже на протяжении многих лет, и не будет преувеличением сказать, что он есть на каждом компьютере - не важно, о каком именно компьютере идёт речь: о настольном ПК, ноутбуке или сервере Windows или Apple. И хотя интерфейс USB 2.0 является надёжным, обладает высокой степенью совместимости и лёгок в использовании, у него есть недостаток, который не даёт индустрии стоять на месте: USB 2.0 ограничен скоростью 480 Мбит/с, что равносильно максимальной пропускной способности 30-35 Мбайт/с для типичных накопителей. Конечно, этого более чем достаточно для большинства типов устройств и для повседневных задач хранения, но как только вам понадобится постоянно оперировать большим количеством гигабайт данных, то захочется иметь большую пропускную способность. Интерфейс FireWire (или IEEE 1394) тоже существует уже много лет. Первоначальный стандарт FireWire 400 или 1394a обеспечивает пропускную способность 400 Мбит/с и изохронную передачу, что необходимо для передачи данных в реальном времени - то, что понадобится, к примеру, для цифрового видео. FireWire является довольно успешным решением, так как позволяет осуществлять быстрый обмен данными между самыми различными устройствами. Разъёмы этого стандарта выпускаются в двух модификациях. Первая имеет 6 контактов и обеспечивает подключаемые устройства питанием, вторая содержит только 4 контакта и подпитывать другое оборудование не может. В кабеле, как правило, содержатся две витых пары для передачи данных. Также имеются два кабеля обеспечивающих питание. Сила тока не может превышать 1,5А, необходимо напряжение в 8-40 вольт. FireWire 800 или 1394b имеет вдвое большую скорость - 800 Мбит/с, однако ни один из этих двух стандартов FireWire не стал по-настоящему массовым. Хотя интерфейс FireWire популярен и широко распространён, до USB ему ещё далеко. И наконец, есть ещё интерфейс eSATA, то есть External Serial ATA (SATA). Это модификация стандарта SATA (который в большинстве компьютеров используется для подключения жёстких дисков и оптических приводов), рассчитанная на поддержку более длинных кабелей для внешних устройств благодаря изменённым электрическим спецификациям. Кроме того, разъёмы стали другими, чтобы избежать путаницы. Длины кабеля до 2 м достаточно для накопителей, однако FireWire и USB всё же поддерживают более длинные кабели: 4,5 м и 5 м. Впрочем, интерфейс eSATA такой же быстрый, как и внутренний SATA II: максимум 300 Мбайт/с для 3-Гбит/с подключений SATA. Будущие стандарты FireWire, такие как 1394d, смогут достичь 6,4 Гбит/с, но они вряд ли будут массовыми. Спецификация USB 3.0 (известная также как SuperSpeed USB) имеет скорость передачи 4,8 Гбит/с и потенциально может повысить эффективную пропускную способность до 400 Мбайт/с. Данный стандарт уже находится на стадии внедрения, но понадобится, как минимум, ещё одно поколение чипсетов, а значит, год, а то и более, чтобы большая часть систем обзавелась USB 3.0. eSATA со скоростью 6 Гбит/с тоже потенциально может обеспечить дополнительную пропускную способность, но нам кажется, что USB 3.0 будет преобладать. Протокол USB Type-C. USB-C (формально известный как USB Type-C ) представляет собой систему с 24-контактным разъемом USB с ассимметричным соединением. Интерфейс USB-C имеет три основные особенности: Он имеет двухсторонний разъем. Интерфейс спроектирован таким образом, что вилка может быть перевернута относительно гнезда. Он поддерживает стандарты USB 2.0, USB 3.0 и USB 3.1 Gen 2. Кроме того, он может поддерживать сторонние протоколы, такие как DisplayPort и HDMI в режиме работы, который называется альтернативным режимом. Он позволяет устройствам согласовывать и выбирать соответствующий режим питания через интерфейс. Разъём USB Type-C работает и в альтернативных режимах (англ. alternate mode), когда контакты передают данные по другим протоколам: DP from DisplayPort.svg Альтернативный режим DisplayPort — опубликован VESA в сентябре 2014 года, поддерживает стандарт DisplayPort 1.3[11]; Альтернативный режим Mobile High-Definition Link (MHL) — анонсирован в ноябре 2014 года[12], поддерживает стандарт MHL 1.0-3.0 и superMHL[8][13]; ThunderboltFulmine.svg Альтернативный режим Thunderbolt — поддержка стандарта Thunderbolt 3[14][15][16][17]; High Definition Multimedia Interface Logo.svg Альтернативный режим HDMI — объявлен в сентябре 2016 года[18][19][20][21], поддерживает HDMI 1.4b. Форматы транзакций шины USB. На логическом уровне устройство USB поддерживает транзакции приема и передачи данных. Каждый пакет каждой транзакции содержит в себе номер конечной точки (endpoint) на ус-ве. При подключении ус-ва драйверы в ядре ОС создают управляющие структуры данных для общения с каждой оконечной точкой устройства. Совокупность оконечной точки и структур данных в ядре ОС называется каналом (pipe). Конечные точки, а значит, и каналы, относятся к одному из 4 классов — поточный (bulk), управляющий (control), изохронный (isoch) и прерывание (interrupt). Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену- Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения (handshake packet). Хост-контроллер организует обмены с устройствами согласно своему плану распределения ресурсов. Контроллер циклически формирует кадры (frames), в которые укладываются все запланированные транзакции. Каждый кадр начинается с посылки маркера SOF (Start Of Frame). В конце каждого кадра выделяется интервал времени EOF (EndOf Frame). Общие сведения об интерфейсах IDE-ATA. Интерфейс ATA – это интерфейс системного уровня, в котором контроллер выполнен в виде микросхемы, установленной на плате накопителя. Стандарт определяет разъемы и кабели для подключения устройств внешней памяти к материнской плате, характеристики сигналов, набор исполнительных регистров, а также команды и протоколы, используемые в устройстве внешней памяти. В стандартах определены: общие требования к устройству ATA; регистры ввода-вывода устройства; набор команд устройства; протоколы обмена данными между устройством и компьютером. В спецификации определена также технология анализа и вывода мониторинга – SMART (Self-Monitoring Analysis and Reporting Technology), что сделало устройства IDE более надежными. Была добавлена также защита с помощью паролей при доступе к устройствам. Кроме того, предусмотрен режим экономии электроэнергии: двигатель жесткого диска сам останавливается при отсутствии обращения к диску в течение временного интервала, определяемого пользователем системы. В спецификациях АТА предусмотрено несколько режимов быстрого обмена данными с жесткими дисками, которые называются режимами про-граммного ввода/вывода PIO (Programmed Input/Output) со скоростями передачи данных 3,3-20 Мбайт/с. Эти режимы обеспечивают обмен между оперативной памятью и жесткими дисками с участием процессора. Регистры хост-контроллёра IDE. Контроллер АТА имеет два канала (primary – первичный и secondary – вторичный), к каждому из которых с помощью одного кабеля можно подключить до двух устройств (всего четыре устройства). Чтобы два устройства могли работать на одном кабеле используется режим «хозяин-слуга» («master-slave»). Устройство на первичном канале – «хозяин» разрешает выполнять обмен данными устройству на вторичном канале – «слуге» только в том случае, если «хозяин» не занят обменом данных, поэтому каждый раз, когда устройству, подключенному к вторичному каналу, необходимо выполнить обмен данными, оно обращается за разрешением к устройству на первичном канале. Подключение двух устройств к одному кабелю и, соответственно, к одному порту ввода-вывода называют параллельным ATA (Parallel ATA – P-ATA). Хост-адаптер и устройства объединяются кабелем-шлейфом, соединяющим параллельно одноименные кош акты интерфейсных разъемов. Регистры обоих контроллеров располагаются в одних и тех же областях пространства ввода-вывода. Для выбора устройства, исполняющего текущую команду, используется бит выбора накопителя (DEV) в регистре номера устройства и головки. Запись в этот регистр воспринимается сразу обоими устройствами, на обращение к остальным регистрам реагирует только выбранное. Универсальный набор сигналов позволяет подключать любое устройство со встроенным контроллером, которому в пространстве портов ввода-вывода достаточно того же набора регистров, способное поддержать режим выбора устройства. Принятая система команд и регистров, являющаяся частью спецификации АТА ориентирована на блочный обмен данными с устройствами прямого доступа. Разновидности интерфейса для устройств IDE. Для устройств IDE существует несколько разновидности интерфейса: 1) АТА, он же АТA-BUS, — 16-битный интерфейс подключения к шине компьютера. Наиболее распространенный 40-проводный сигнальный и 4-проводный питающий интерфейс для подключения дисковых накопителей. 2) PC-Card ATA - 16-битный интерфейс с 68-контактным разъемом PCMCIA для подключения блокнотных PC. 3) MCA IDE (16 бит) - 72-проводный интерфейс, предназначенный для шины и накопителей PS/2. Физический интерфейс SATA. SATA - последовательный интерфейс обмена данными с накопителями информации. В SATA II за счет увеличения частоты до 3 ГГц была добавлена скорость передачи данных 300 Мбайт/с. Кроме этого, в качестве необязательного компонента в SATA II была добавлена технология аппаратной установки очередности команд – NCQ (Native Command Queuing). Устройства с поддержкой NCQ могут принимать одновременно несколько запросов на обмен данными, в отличие от параллельного ATA и SATA I. Очередность выполнения запросов определяется с учетом минимизации общего времени доступа к данным, что особенно существенно при одновременном выполнении на компьютере нескольких программ. Необязательной возможностью в SATA II является также «горячее» подключение устройств. В 2009 г. SATA-IO приняло новую спецификацию SATA – спецификацию последовательного ATA редакции 3.0. В этой спецификации (SATA 3.0) добавлена скорость передачи данных 600 Мбайт/с (при увеличении частоты до 6 ГГц). Помимо этого, в NCQ добавлен режим изохронной передачи для мультимедийных приложений, улучшено управление электропитанием устройств, добавлены два новых разъема для устройств небольших размеров. Для передачи данных и подведения электропитания используется 22-проводный кабель SATA . Передача данных в SATA выполняется по 7-проводному кабелю (4 провода витых пар, 2 провода заземления на каждую пару и провод общего заземления). Каждое устройство подключается к материнской плате с помощью своего кабеля и разъемов. Максимальная длина кабеля SATA – 1 м В настоящее время подавляющее большинство моделей дисководов жестких дисков, твердотельных дисков и оптических дисководов в системном корпусе подключаются к компьютеру с использованием интерфейса SATA. Преимущества SATA по сравнению с традиционным интерфейсом. По сравнению с традиционным параллельным интерфейсом интерфейс Serial ATA имеет большую помехозащищенность и мало восприимчив к электромагнитным помехам благодаря использованию низкоуровневых дифференциальных сигналов. Кабель у нового интерфейса принципиально отличается от прежнего 40 - или 80-жильного широкого плоского: количество сигнальных проводов кабеля сокращено до четырех (есть еще и земля), и до метра увеличена его допустимая длина. Это способствует более компактной упаковке и лучшим условиям охлаждения внутри корпуса компьютера, удешевляет конструкцию. Еще одно преимущество Serial ATA - большая полоса пропускания, чем у Parallel ATA. Первая версия интерфейса Serial ATA обладает пропускной способностью до 1,5 Гбит/с (это около 150 Мбайт/с для полезных данных против 100-130 Мбайт/с у параллельного интерфейса). Однако в дальнейшем второе и третье поколение Serial ATA (примерно через 3 и 6 лет) увеличат скорость до 3 и 6 Гбит/с соответственно. RAID – массивы. RAID (Redundant Array of Independent Disks) — избыточный массив из независимых (самостоятельных) дисков — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль для повышения отказоустойчивости и производительности. Рассмотрим два базовых уровня модели RAID – RAID 0 и RAID 1. RAID 0 – используется от 2 до 4 жёстких дисков, которые совместно обрабатывают информацию, что повышает производительность. Программно, информация на рейде такого типа разбивается на блоки данных и записывается на оба / несколько дисков поочерёдно. Один блок данных на один диск, другой блок данных на другой и т.д. Таким образом, существенно повышается производительность, т.к. 4 диска работают быстрее, чем 2, но страдает безопасность данных на всём массиве. При выходе из строя любого из входящего в такой RAID винчестеров (т.е. жёстких дисков) практически полностью и безвозвратно пропадает вся информация. Дело в том, что каждый файл состоит из некоторого количества байт, каждый из которых несёт в себе информацию. Но в RAID 0 массиве байты одного файла могут быть расположены на нескольких дисках. Соответственно при повреждении одного из дисков потеряется произвольное количество байтов файла и восстановить его будет просто невозможно. RAID 1 (mirroring — «зеркалирование») — массив из двух (или более) дисков, являющихся полными копиями друг друга. Обеспечивает приемлемую скорость записи (такую же, как и без дублирования) и выигрыш по скорости чтения при распараллеливании запросов. Имеет высокую надёжность — работает до тех пор, пока функционирует хотя бы один диск в массиве. Вероятность выхода из строя сразу двух дисков равна произведению вероятностей отказа каждого диска, то есть значительно ниже вероятности выхода из строя отдельного диска. На практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва. Недостаток RAID 1 в том, что по цене двух (и более) жестких дисков пользователь фактически получает объём лишь одного. Сравнение SCSI и ATA. Интерфейс ATA – это интерфейс системного уровня, в котором контроллер выполнен в виде микросхемы, установленной на плате накопителя. Стандарт определяет разъемы и кабели для подключения устройств внешней памяти к материнской плате, характеристики сигналов, набор исполнительных регистров, а также команды и протоколы, используемые в устройстве внешней памяти. Второй интерфейс внешней памяти – SCSI (Small Computer System Interface – системный интерфейс малых компьютеров) был разработан и принят ANSI в 1986 г. (он получил позднее название SCSI-1). Скорость передачи данных при использовании этого 8-разрядного параллельного интерфейса составляла (при тактовой частоте шины 5 МГц) 4 Мбайта/с в асинхронном режиме и 5 Мбайт/с в синхронном режиме. В отличие от интерфейса IDE/ATA, к интерфейсу SCSI можно подключать не только внутренние, но и внешние устройства: принтеры, сканеры и т.д. Максимальное количество подключаемых к шине SCSI устройств было равно 8, а максимальная длина кабеля – 6 м. Данные при использовании SCSI передаются параллельно, так же, как и в IDE (ATA). Аппаратная реализация SAS, как и ранее SCSI, на компьютере обходится дороже, чем реализация ATA и SATA (eSATA). Это связано, во-первых, с тем, что контроллер ATA и SATA, как правило, встроен в материнскую плату, а материнские платы для настольных компьютеров с встроенным интерфейсом SCSI и SAS практически не выпускаются, поэтому необходимо приобретение карты контроллера SCSI или SAS. Устройство контроллёра и шин SCSI. Связь между устройством SCSI и шиной ввода/вывода выполняется с помощью специального адаптера (контроллера) SCSI, вставляемого в разъем PCI, или встроенного в материнскую плату. Кроме адаптера SCSI, называемого хост-адаптером (host adapter) каждое устройство имеет свой встроенный адаптер, который позволяет ему взаимодействовать с шиной SCSI. Если устройство – последнее в цепочке устройств шины SCSI, после него подключается специальное устройство – терминатор (terminator) для того чтобы исключить отражение сигналов, передающихся по шине Хост-адаптер (контроллер) SCSI является важнейшим узлом интерфейса, определяющим производительность подсистемы SCSI-устройств. Существует широкий спектр адаптеров, начиная от простейших, к которым можно подключать только устройства, не критичные к производительности. Такие адаптеры иногда входят в комплект поставки сканеров, и подключение к ним диска может оказаться неразрешимой задачей. Высокопроизводительные адаптеры имеют собственный специализированный процессор, большой объем буферной памяти и используют высокоэффективные режимы прямого управления шиной для доступа к памяти. Конфигурирование SCSI хост-адаптеров с точки зрения шины SCSI не отличается от конфигурирования других устройств. Для современных адаптеров вместо джамперов используется программное конфигурирование. Утилита конфигурирования обычно входит в расширение BIOS (на плате адаптера), и приглашение к ее исполнению выводится на экран при инициализации во время POST. Как и всякая карта расширения, хост-адаптер должен быть сконфигурирован и с точки зрения шины расширения, к которой он подключается. Адаптеры SCSI существуют для всех шин: ISA (8-16 бит), EISA, MCA, PCI, VLB, PCMCIA. Существуют адаптеры для параллельного порта. Некоторые новые системные платы имеют встроенный SCSI-адаптер. Системные ресурсы для шинного SCSI-адаптера включают: Область памяти для расширения ROM BIOS, необходимого для поддержки конфигурирования устройств и дисковых функций. Если в системе установлено несколько однотипных хост-адаптеров, ROM BIOS для них используется с одного адаптера. Может оказаться так, что на одном компьютере заставить работать вместе несколько разнотипных хост-адаптеров не удастся. Область портов ввода/вывода (I/O Port). IRQ — запрос прерывания. DMA — канал прямого доступа к памяти (для шин ISA/EISA), часто используемый для захвата управления шиной (Bus-Mastering). В отличие от жестких шин расширения SCSI-шина реализуется в виде отдельного кабельного шлейфа, который допускает соединение до 8 устройств (спецификация SCSI-1) внутреннего и внешнего исполнения. Одно из них — хост-адаптер (Host Adapter) связывает шину SCSI с системной шиной компьютера, семь других свободны для периферии. К шине могут подключаться: · дисковые внутренние и внешние накопители (CD-ROM, винчестеры, сменные винчестеры, магнитооптические диски и др.); · стримеры; · сканеры; · фото- и видеокамеры; · другое оборудование. Каждое устройство, подключенное к шине, имеет свой идентификатор SCSI ID, который передается позиционным кодом по 8-битной шине данных (отсюда и ограничение на количество устройств на шине). Устройство (ID) может иметь до 8 подустройств со своими LUN (Logical Unit Number — логический номер устройства). Режим обмена по SCSI-шине может быть: · асинхронным или · синхронным с согласованием скорости (Synchronous Negotiation), где передача данных контролируется по паритету. Базовый SCSI. Базовый SCSI (Small Computer System Interface – интерфейс малых компьютерных систем, иногда называемый SCSI-1) – это универсальный интерфейс для подключения различных устройств. В базовом стандарте можно было к одной шине подключить до восьми устройств, включая контроллер. Интерфейс содержит развитые средства управления и в то же время не ориентирован на какой-либо конкретный тип устройств. Имеет 8-pазpядную шину данных, максимальная скорость передачи – до 1,5 Мб/с в асинхронном режиме (по методу «запрос-подтверждение»), и до 5 Мб/с в синхронном режиме (метод «несколько запросов – несколько подтверждений»). Может использоваться контроль четности для обнаружения ошибок. Электрически реализован в виде 24 линий (однополярных или дифференциальных), хотя в подавляющем большинстве устройств применяются однополярные сигналы. Также SCSI-1 поддерживает 10-битные команды и возможность подключения к одному хост-адаптеру до 8 различных устройств. Последовавшие за SCSI-1, стандарты развивались как в направлении расширения командного языка и в увеличении и усложнении протоколов, так и в увеличении ширины шины, увеличении скорости и количества подключаемых к одному хост-адаптеру устройств. Для текущих стандартов SCSI ширина шины составляет 16 бит, количество подключаемых устройств также равно 16. Стандарт SCSI – 2 и SCSI – 3. В следующих стандартах SCSI – SCSI-2 (1994 г.) и SCSI-3 (1995 г.) введен общий набор команд CCS (Common Command Set) – 18 базовых команд, необходимых для поддержки любого устройства SCSI, добавлена возможность хранения в устройстве очередей команд, полученных с компьютера и их обработка в соответствии с заданными приоритетами. Кроме этого, в этих стандартах, наряду с 8-разрядной, определена и 16-разрядная шина, тактовая частота увеличена до 20 МГц и скорость передачи данных – до 20 Мбайт/с. Развитием стандарта SCSI-3 являются используемые в настоящее время стандарты Ultra3 SCSI (1999 г.), для которого определена частота шины 40 МГц и скорость передачи 160 Мбайт/с и Ultra320 SCSI (2002 г.) – частота шины 80 МГц и скорость передачи 320 Мбайт/с. Используемый в SCSI-1 метод передачи сигналов налагал очень жесткие ограничения на протяженность шины (не более 6 м), а с увеличением скорости эти ограничения стали еще жестче. Так, увеличение скорости в два раза ведет к уменьшению длины шины до 3 м, а в четыре раза — до 1,5 м. Все это потребовало введения качественно иного метода сигнализации. В SCSI-1 все устройства имели несимметричный (single-ended) интерфейс, в SCSI-2 они могут иметь и дифференциальный (differential) интерфейс. Основное отличие между этими двумя разновидностями с технической точки зрения состоит в количестве используемых для передачи одного бита линий. Благодаря командам Disconnect и Reconnect периферийное устройство может освободить шину на время выполнения им полученной команды, например, поиска данных на диске. Как следствие, главный адаптер получает возможность в это время обратиться к другому устройству на шине. Благодаря возможности постановки команд в очередь хост может передать периферийному устройству сразу несколько команд, а оно уже перегруппирует их по своему усмотрению с целью оптимизации своей работы, например, выполнит второй по очередности запрос вместо первого для повышения общей пропускной способности. Для каждых 8 бит данных шина теперь передает один бит контроля четности. Таким образом, в случае шины шириной 16 бит битов контроля четности два. SCSI используется проверка на нечетность, т. е. значение бита четности задается таким образом, чтобы общее число единичных битов, включая бит четности, было нечетным. Контроль четности позволяет выявить единичные ошибки при передаче. При использовании высококачественных кабелей и соблюдение ограничений стандарта этого, как правило, оказывается достаточно. Кроме того, в качестве одной из мер повышения надежности шины в SCSI-2 предусматривается, в частности, поддержка классификации ошибок и сообщений об ошибках. Выпуск SCSI-3 ознаменовал собой не просто появление новой версии, в этой редакции стандарт приобрел новое качество. Область действия SCSI-1 и SCSI-2 довольно ограниченна, они распространяются только на параллельные интерфейсы. SCSI-3 (точнее, это несколько десятков согласованных стандартов) допускает как параллельные, так и последовательные методы передачи данных. Интерфейс Ultra SCSI. В следующих стандартах SCSI – SCSI-2 (1994 г.) и SCSI-3 (1995 г.) введен общий набор команд CCS (Common Command Set) – 18 базовых команд, необходимых для поддержки любого устройства SCSI, добавлена возможность хранения в устройстве очередей команд, полученных с компьютера и их обработка в соответствии с заданными приоритетами. Развитием стандарта SCSI-3 являются используемые в настоящее время стандарты Ultra3 SCSI (1999 г.), для которого определена частота шины 40 МГц и скорость передачи 160 Мбайт/с и Ultra320 SCSI (2002 г.) – частота шины 80 МГц и скорость передачи 320 Мбайт/с. Обмен данными по этим стандартам реализуется с помощью метода LDVS (так же, как в шине PCI Express). Максимальное количество подключаемых устройств для Ultra3 SCSI и Ultra320 SCSI равно 16, а максимальная длина кабеля – 12 м. Разработан также стандарт Ultra640 SCSI (2003 г.) с частотой шины 160 МГц и со скоростью 640 Мбайт/с, но этот стандарт не получил широкого распространения, в связи с тем, что из-за малой длины кабеля к нему нельзя подключить более двух устройств. Интерфейс SAS, его спецификации. Данные при использовании SCSI передаются параллельно, так же, как и в IDE (ATA). По тем же причинам, что и в IDE (ATA), была начата разработка последовательно подключаемого SCSI – SAS (Serial Attached SCSI). Интерфейс SAS является совместимым с интерфейсом SATA и в тоже время использует команды SCSI, возможность «горячего» подключения внешних устройств, а также возможность подключения, помимо жестких и оптических дисководов, других периферийных устройств, например, принтера или сканера. В настоящее время интерфейс SAS постепенно заменяет интерфейс SCSI в компьютерах и периферийных устройствах. Первая спецификация SAS – SAS 1.0 была выпущена Комитетом T10 в 2003 году. В ней была определена скорости передачи данных 1,5 и 3 Гбита/с для подключения устройств внутри системного блока компьютера с максимальной длиной кабеля 1 м и внешнего подключения устройств с максимальной длиной кабеля 8 м. В 2005 году была выпущена спецификация SAS 1.1, в которой были исправлены ошибки спецификации SAS 1.0. В спецификации SAS 2.0 (2009 г.) добавлена скорость 6 Гбит/с и максимальная длина кабеля увеличена до 10 м. Обмен данными в SAS, так же, как и в SCSI, реализуется с помощью метода LDVS. Особенности интерфейса SAS: · SAS использует последовательный протокол передачи данных между несколькими устройствами, и, таким образом, использует меньшее количество сигнальных линий. · Интерфейс SAS использует соединения точка-точка — каждое устройство соединено с контроллером выделенным каналом. · SAS не нуждается в терминации шины пользователем. · SAS поддерживает большое количество устройств (> 16384). · SAS поддерживает высокие скорости передачи данных (1,5, 3.0 или 6.0 Гбит/с). Такая скорость может быть достигнута при передаче информации на каждом соединении инициатор-целевое устройство. · SAS поддерживает подключение устройств с интерфейсом SATA. · SAS использует команды SCSI для управления и обмена данными с целевыми устройствами. Физические каналы и физические порты SAS. Две дифференциальные сигнальные пары (приемная и передающая) образуют в SAS физический канал. Один или несколько физических каналов, в свою очередь, образуют порт. Количество физических каналов в порту обозначается с помощью цифры, за которой следует символ «x». Так, обозначение 4x означает, что порт содержит 4 канала (8 сигнальных пар). Каждый порт имеет уникальный 64-битовый адрес, присваиваемый производителем оборудования SAS. Устройство с интерфейсом SAS может иметь один или несколько портов. Порт, имеющий только один канал, называется узким портом (narrow port), а порт, имеющий два и более каналов, называется широким портом (wide port). Так два порта со скоростью по 3 Гбит/с можно использовать либо как два отдельных каналов связи с разными устройствами, либо как единый канал связи со скоростью 6 Гбит/с. Кроме того, в спецификации SAS 2.0 добавлена возможность разбиения порта со скоростью 6 Гбит/с на два канала со скоростью по 3 Гбит/с. При подключении устройств в SAS используются разъемы, стандартизированные Комитетом по малым форм-факторам – Small Form Factor (SFF) Committee. Этот комитет разрабатывает и готовит спецификации по разъемам, используемым в различных устройствах. Каждый разъем идентифицируется префиксом «SFF-», за которым следует четырехзначный номер разъема, начинающийся с цифры 8. Основными разъемами, используемыми в SAS являются: · разъем SFF-8482 для подключения внутреннего устройства; · разъем SFF-8484 – разъем 4x для подключения внутренних устройств; · разъем SFF-8087 – разъем 4x (miniSAS) для подключения внутренних устройств; · разъем SFF-8470 – разъем 4x для подключения внешних устройств ; · разъем SFF-8088 – разъем 4x (miniSAS) для подключения внешних устройств. Компоненты системы с интерфейсом SAS. Типичная система с интерфейсом SAS состоит из следующих компонентов: |