Via xhci host controller driver что это
xHCI улучшает уже существующие архитектуры Open Host Controller Interface (OHCI) и Universal Host Controller Interface (UHCI), что наиболее заметно в обработке более широкого диапазона скоростей в рамках единого стандарта, в более эффективном управлении ресурсами в интересах мобильных хостов с помощью ограниченные ресурсы питания (например, планшеты и сотовые телефоны), а также упрощение поддержки смешивания низкоскоростных и высокоскоростных устройств.
СОДЕРЖАНИЕ
Архитектурные цели
XHCI является радикальным отходом от предыдущих поколений архитектур интерфейса хост-контроллера USB (то есть открытого интерфейса хост-контроллера (OHCI), универсального интерфейса хост-контроллера (UHCI) и расширенного интерфейса хост-контроллера (EHCI)) во многих отношениях. Ниже приведены ключевые цели архитектуры xHCI:
Архитектурные детали
Поддержка всех скоростей
Контроллеры OHCI и UHCI поддерживают только устройства со скоростью USB 1 (1,5 Мбит / с и 12 Мбит / с), а EHCI поддерживает только устройства USB 2 (480 Мбит / с).
Архитектура xHCI была разработана для поддержки всех скоростей USB, включая SuperSpeed (5 Гбит / с) и будущие скорости, в рамках одного стека драйверов.
Энергоэффективность
Поддержка виртуализации
Упрощенная архитектура драйвера
EHCI использует контроллеры OHCI или UHCI в качестве «сопутствующих контроллеров», где устройства USB 2 управляются через стек EHCI, а логика порта EHCI позволяет маршрутизировать низко- или полноскоростное USB-устройство к порту «сопутствующий» контроллер UHCI или OHCI, в котором низко- или полноскоростные USB-устройства управляются через соответствующий стек UHCI или OHCI. Например, плата хост-контроллера USB 2 PCIe, которая имеет 4 разъема USB «Standard A», обычно представляет для системного программного обеспечения один 4-портовый EHCI и два 2-портовых контроллера OHCI. Когда высокоскоростное USB-устройство подключено к любому из 4 разъемов, управление устройством осуществляется через один из 4 портов корневого концентратора контроллера EHCI. Если низкоскоростное или полноскоростное USB-устройство подключено к разъемам 1 или 2, оно будет направлено на порты корневого концентратора одного из контроллеров OHCI для управления, а низкоскоростные и полноскоростные USB-устройства подключены к разъемам. 3 или 4 будут направлены на порты корневого концентратора другого контроллера OHCI. Зависимость EHCI от отдельных хост-контроллеров для высокоскоростных USB-устройств и группы низкоскоростных и полноскоростных USB-устройств приводит к сложным взаимодействиям и зависимостям между драйверами EHCI и OHCI / UHCI.
Поддержка потоковой передачи
Поддержка Streams была добавлена в спецификацию USB 3.0 SuperSpeed, в первую очередь для обеспечения высокопроизводительных операций хранения через USB. Обычно между оконечной точкой USB и буфером в системной памяти существует соотношение 1: 1, и главный контроллер несет полную ответственность за управление всеми передачами данных. Потоки изменили эту парадигму, предоставив связь 1 ко многим «конечная точка с буфером» и позволив устройству указывать хост-контроллеру, какой буфер перемещать. Передачи данных USB, связанные с конечной точкой USB Stream, планируются xHCI так же, как и любая другая массовая конечная точка, однако буфер данных, связанный с передачей, определяется устройством.
Масштабируемость
Архитектура xHCI была разработана с учетом высокой масштабируемости, способной поддерживать от 1 до 255 USB-устройств и от 1 до 255 портов корневого концентратора. Поскольку каждому USB-устройству разрешено определять до 31 конечной точки, xHCI, поддерживающий 255 устройств, должен поддерживать 7 906 отдельных конечных точек. Классически каждый буфер памяти, связанный с конечной точкой, описывается очередью блоков физической памяти, где очереди требуются указатель заголовка, указатель хвоста, длина и другие регистры для определения своего состояния. Существует много способов определить состояние очереди, однако, если предположить, что для каждой очереди будет 32 байта регистрового пространства, то для поддержки 7 906 очередей потребуется почти 256 КБ. Обычно к системе одновременно подключается лишь небольшое количество USB-устройств, и в среднем USB-устройство поддерживает 3-4 конечных точки, из которых только подмножество конечных точек активны одновременно. XHCI поддерживает состояние очереди в системной памяти как структуры данных контекста конечной точки. Контексты спроектированы таким образом, что они могут кэшироваться с помощью xHCI и «выгружаться» на страницы и выходить в зависимости от активности конечной точки. Таким образом, поставщик может масштабировать свое внутреннее пространство кэша контекста конечной точки xHCI и ресурсы в соответствии с практическими моделями использования, ожидаемыми для их продуктов, а не с архитектурными ограничениями, которые они поддерживают. В идеале пространство внутреннего кэша выбирается таким образом, чтобы при нормальных условиях использования не было подкачки контекста с помощью xHCI. Также активность оконечных устройств USB имеет тенденцию быть нестабильной. То есть в любой момент времени большое количество конечных точек может быть готово к перемещению данных, однако только подмножество активно перемещает данные. Например, конечная точка прерывания IN мыши может не передавать данные в течение нескольких часов, если пользователь находится вне своего рабочего места. Алгоритмы производителя xHCI могут обнаружить это условие и сделать эту конечную точку кандидатом для пейджинга, если другие конечные точки станут заняты.
История
Спецификация Open Host Controller Interface (OHCI) была определена консорциумом компаний (Compaq, Microsoft и National Semiconductor) как открытая спецификация для поддержки устройств USB 1.0. Универсальный интерфейс хост-контроллера (UHCI) относится к спецификации, которую Intel изначально определила как собственный интерфейс для поддержки устройств USB 1.0. Спецификация UHCI в конечном итоге была обнародована, но только после того, как остальная часть отрасли приняла спецификацию OHCI.
Спецификация EHCI была определена Intel для поддержки устройств USB 2.0. Архитектура EHCI была смоделирована по образцу контроллеров UHCI и OHCI, которым требовалось программное обеспечение для построения расписаний транзакций USB в памяти, а также для управления полосой пропускания и распределением адресов. Чтобы избежать избыточных усилий отрасли по определению открытой версии интерфейса хост-контроллера USB 2.0, Intel сделала спецификацию EHCI доступной для отрасли без лицензионных сборов.
История версий
Пререлизы
Спецификация xHCI развивалась до нескольких версий до официального выпуска в 2010 году:
XHCI EHCI UHCI OHCI что это такое и в чём разница
XHCI EHCI UHCI OHCI это интерфейсы USB-контроллера в составе платформы персонального компьютера, который обеспечивает коммуникацию с периферийными устройствами, подключенными к универсальной последовательной шине.
USB-контроллер является устройством, способным взаимодействовать с оперативной памятью в обход центрального процессора в режиме прямого доступа к памяти.
По способу интеграции контроллер для USB-шины может быть задействован в составе системной логики или в виде дискретного чипа как на самой системной плате, так и на плате расширения. По способу подключения USB-контроллер может быть выполнен для PCI-шины, либо для шины PCI Express.
UHCI OHCI для USB 1.1
В рамках спецификации USB 1.1 существуют две реализации контроллера для USB-шины: UHCI (Universal Host Controller Interface, создан Intel для USB 1.0) и OHCI (Open Host Controller Interface), которые отличаются методом доступа к регистрам. Регистры UHCI находятся в пространстве портов ввода-вывода, а регистры OHCI адресуются в пространстве памяти.
Контроллер OHCI более интеллектуален по сравнению с UHCI. Это касается его способности освободить центральный процессор от выполнения рутинных операций по передаче данных по USB-шине. Оба контроллера используют 32-битную адресацию в пределах младших 4 ГБ адресного пространства, ни один из них не поддерживает 64-битный режим адресации.
EHCI в USB 2.0
Для USB 2.0 был разработан EHCI (Enhanced Host Controller Interface), который поддерживает только работу на высокой скорости (high speed, 480 Мбит/с).
В EHCI-контроллере с помощью разделенных транзакций (Split Transaction) реализована также поддержка низкоскоростных интерфейсов USB 1.1 для работы с более медленными устройствами.
XHCI для USB 3.0
Для USB 3.0 используется универсальный интерфейс XHCI (eXtensible Host Controller Interface), который поддерживает все скорости обмена данными.[1] Windows 7 при установке с USB не поддерживает USB 3.0 и просит драйвера носителя, проблема решается отключением в BIOS поддержки USB 3.0 или xHCI или подстановкой драйверов USB-контроллера при установке.