Как проверить usb 3

Обновлено: 07.07.2024

Интерфейс USB 3.0 значительно производительнее своего предшественника – USB 2.0. Тогда как последний ограничивает скорость линейной записи данных на флешку показателем в 30-40 Мб/с, посредством первого файлы на флешку USB 3.0 могут быть скопированы со скоростью порядка 100 Мб/с. Это реальный пример, в теории же предельной пропускной способностью USB 2.0 считается 60 Мб/с, а USB 3.0 – 625 Мб/с. Чтобы воспользоваться преимуществами интерфейса USB 3.0, им должны быть оборудованы и носитель (флешка, USB-HDD, прочие устройства хранения данных), и компьютер. Как узнать, на компьютере стоят порты USB 2.0 или 3.0?

На ноутбуках и материнских платах ПК, выпущенных ранее 2010 года, с высокой долей вероятности будут установлены порты USB 2.0. А вот компьютерные устройства, выпущенные позднее, могут быть оснащены USB 3.0.

Каким интерфейсом USB оснащен компьютер, можно узнать по внешним признакам портов. Порты USB 1.0 имеют 4 контакта, а пластмасса под ними белого цвета. Порты USB 2.0 также оборудованы 4 контактами, но пластмасса под ними, как правило, черного цвета. Внутри порта USB 3.0 находится целых 9 контактов, а пластмасса под ними обычно синего цвета. Современнейшие модели ПК и ноутбуков могут быть оснащены самым производительным на сегодняшний день интерфейсом USB 3.1 с заявленной максимальной пропускной способностью в 1250 Мб/с. Пластик под контактами таких портов может окрашиваться как в черный, так и в синий цвет. От интерфейсов-предшественников же порты USB 3.1 отличает выгравированная рядом надпись «SS» (Super Speed).

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

Узнать, на компьютере стоят USB-порты 2.0 или 3.0, можно с помощью средств Windows. Заходим в диспетчер устройств и раскрываем ветку «Контроллеры USB». Если в перечне ветки хост-контроллеры значатся как «Расширенный хост-контроллер» («Enhanced Host Controller»), при этом в их названиях не содержится дописка «USB 3.0», это значит, что на компьютере стоят порты USB 2.0.


О наличии портов USB 3.0 будет прямо говорить дописка «USB 3.0» в названиях расширенных хост-контроллеров. О том, что компьютер поддерживает USB 3.0, также свидетельствует наличие в перечне ветки контроллеров, в названии которых присутствует аббревиатура XHCI – указание на универсальный интерфейс eXtensible Host Controller Interface.

Как обзавестись портами USB 3.0, если их не обнаружилось? У тотального апгрейда в виде замены ноутбука или материнской платы ПК со всеми зависимыми от нее комплектующими есть альтернатива – установка адаптера USB 3.0. Для сборок ПК такие адаптеры существуют в виде плат, устанавливаемых в слот PCI Express. К ноутбукам адаптеры USB 3.0 подключаются с помощью слота ExpressCard. На AliExpress адаптеры USB 3.0 можно заказать за акционную цену чуть более $5. Такой вариант даст определенный прирост производительности, но все равно не будет дотягивать до возможностей USB 3.0, изначально поддерживаемого современными ноутбуками и материнскими платами. Ведь передача данных будет ограничена пропускной способностью соответствующего слота.

В современной IT-индустрии часто случается так, что заверения производителя устройства относительно его функциональности не соответствуют действительности. От скепсиса по этому поводу перейдем к решению конкретной технической задачи…

Постановка задачи

В нашей тестовой лаборатории оказался USB Flash накопитель Kingston DataTraveler 3.0. Согласно информации производителя, устройство поддерживает USB 3.0. Проверим, так ли это на самом деле, не разбирая флешку и не нарушая гарантию.

Аппаратный тест

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

Программный тест

Эксперимент выполняем на достаточно новой, еще не исследованной плате Tyan S5533, построенной на чипсете Denlow.

Системная плата Tyan S5533

Рис 1. Системная плата Tyan S5533 в ITX-формате

Чтобы исключить влияние драйверов, запускаемых в сеансе операционной системы, наш тест будет «экстремально низкоуровневым», запускаться будем под DOS, а результаты контролировать путем просмотра дампа Memory Mapped I/O регистров контроллера USB.

Последовательность действий такова.

1) Воспользовавшись бета-версией утилиты USB.EXE разработки IC Book Labs, определим адрес блока конфигурационных регистров контроллера XHCI, в нашем примере это bus=0, device=14h, function=0. Также определим базовый адрес блока операционных регистров в пространстве Memory Mapped I/O, в нашем примере он равен F7500000h.

image

Рис 2. Результаты работы утилиты USB.EXE. Адрес блока конфигурационных регистров XHCI: bus=0, device=14h, function=0. Базовый адрес операционных регистров XHCI равен F7500000h.

2) Как известно, в целях совместимости с программным обеспечением, не поддерживающим контроллер USB 3.0 XHCI, на данной платформе, по умолчанию, порты USB 3.0 обслуживаются контроллером USB 2.0 EHCI. Наша задача – перевести их в режим обслуживания контроллером USB 3.0 XHCI. Воспользуемся документацией Intel 8 Series / С220 Series Chipset Family Platform Controller Hub Datasheet и любой утилитой, позволяющей редактировать содержимое регистров системной логики.

Программируем регистр USB 3.0 Port Routing Mask Register. Записываем по адресу bus=0, device=14h, function=0, register=0DCh байт со значением 0FFh.

Программируем регистр USB 3.0 Port Super Speed Enable Register. Записываем по адресу bus=0, device=14h, function=0, register=0D8h байт со значением 0FFh.

image

Рис.3. Регистр USB 3.0 Port Routing Mask Register

image

Рис.4. Регистр USB 3.0 Port Super Speed Enable Register

3) Считываем и расшифровываем согласно рис.5 и рис.6 исходное состояние нескольких битовых полей из младших 16-битов 32-битного регистра PORTSCNUSB3 до подключения устройства к исследуемому порту. Регистр находится по смещению 0570h от базового адреса блока операционных регистров контроллера, его адрес F7500000h+0570h=F7500570h

Прочитанное значение = 02A0h = 0000.0010.1010.0000b
D0=Current Connect Status=0. Устройство не подключено.
D1=Port Enabled/Disabled=0. Порт не используется.
D13=Port Speed=0000b. Скорость не определена.

image

Рис.5. Регистр USB 3.0 Port Status and Control Register, биты 4

image

Рис.6. Регистр USB 3.0 Port Status and Control Register, биты 13

4) Подключаем USB 3.0 флэшку, затем повторно считываем регистр и расшифровываем те же битовые поля.

Прочитанное значение = 1203h = 0001.0010.0000.0011b
D0=Current Connect Status=1. Устройство подключено.
D1=Port Enabled/Disabled=1. Порт используется.
D13=Port Speed=0100b. Скорость равна 5.0 Gbit/S, режим USB 3.0 Super Speed работает.

5) Для самоконтроля, подключаем USB 2.0 флэшку к тому же порту, затем повторно считываем регистр и расшифровываем те же битовые поля. Прочитанное значение = 02A0h, что соответствует отсутствию подключения. Так и должно быть, регистр PORTSCNUSB3 «не видит» USB 2.0 устройство, так как оно обслуживается другой подсистемой и статус подключения доступен посредством другого регистра – PORTSCNUSB2, рассмотрение которого выходит за рамки наших исследований.

Резюме

Испытуемая флэшка действительно поддерживает режим USB 3.0.

Если формализовать и запрограммировать описанные действия в виде DOS-программы или UEFI-приложения, получится небольшая утилита, позволяющая быстро определить, в каком скоростном режиме работает USB устройство. Для упрощения нашего примера, мы реализовали его для частного случая – подсистемы USB платы Tyan S5533 и использования первого порта, поэтому адрес регистра PORTSCNUSB3 в нашем примере – константа. В общем случае, для того, чтобы программа была работоспособна на всех платформах, адрес регистра PORTSCNUSB3 должен вычисляться на основании содержимого полей XHCI Capabilities, в соответствии со спецификацией USB 3.0 XHCI. С другой стороны, достигнуть универсальности можно значительно проще и изящнее, используя UEFI-протоколы вместо прямого взаимодействия с регистрами контроллера.

Источники информации

image

В качестве «подопытного кролика» использовался девайс Kingston DataTraveler 100 G3, объемом 16 GB:

UPD-II

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

Устройство, декларирующее поддержку USB 3.0, может работать в режиме USB 2.0 из-за заводских недоработок, неисправного кабеля и многих других причин. При этом содержимое дескрипторов может указывать на поддержку режима USB 3.0.

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

Конечно, содержимое дескрипторов устройства — это более достоверный источник информации, чем надпись на флешке и клятвы продавца. Но по причинам, указанным выше, достоверность отлична от 100 процентов.

Именно стремление довести достоверность до 100% побудила нас на экстремально низкоуровневые исследования.

2. Другой метод – проследить в диспетчере устройств, какой контроллер является родительским для флешки (USB 2.0 EHCI или USB 3.0 XHCI), также неэффективен, так как, согласно спецификации, контроллер USB 3.0 XHCI может поддерживать все виды устройств: от Low-Speed до Super Speed. Поэтому, из того, что для флешки родительским контроллером является xHCI не следует, что устройство работает в режиме Super Speed.

Если USB-устройство и платформа поддерживают передачу данных в режиме USB3.0 со скоростью 5 Гб/сек., то, казалось бы, ничто не мешает убедиться в этом воочию. Существует немало утилит для этого, да и наши исследования способствовали поиску ответа на это вопрос. Кроме того, если накопитель демонстрирует скорость, существенно пре­вы­ша­ю­щую 50-60 МБ/сек., то можно заявить — это режим Super Speed, поскольку в режиме USB 2.0 такая скорость физически недостижима, а «промежуточных» вариантов не существует. Но не все так просто.

Почему все так сложно

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

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

Условия эксперимента и системные объекты

Платформа – ноутбук ASUS N750JK, а подключаемое USB 3.0 устройство – жесткий диск Transcend StoreJet 35T3. Целевым объектом будут регистровые поля контроллера USB3.0 xHCI, индицирующие тип соединения. Заметим, что в зависимости от скоростного режима (USB2 или USB3), контроллер «видит» устройство через одну из двух групп регистров.

Биты 13 регистра Port N Status and Control USB2 индицируют тип соединения: Low-Speed, Full-Speed или High-Speed


Рис.1. Биты 13 регистра Port N Status and Control USB2 индицируют тип соединения: Low-Speed, Full-Speed или High-Speed

Биты 13 регистра Port N Status and Control USB3 индицируют тип соединения: Super-Speed


Рис.2. Биты 13 регистра Port N Status and Control USB3 индицируют тип соединения: Super-Speed

Утилита CheckUSB

Исходные тексты подготовлены в формате Flat Assembler 1.71.17. Утилита CheckUSB предназначена для запуска в среде x64 UEFI. Текущая версия поддерживает только системную логику Intel 8 Series, режим USB 3.0 должен быть включен в CMOS Setup. Такая привязка связана во-первых с поддержкой широкого набора регистров, специфичных для данной системной логики и не предусмотренных спецификацией контроллера xHCI, а во-вторых, в целях упрощения, вычисление адресных смещений и размерностей ряда регистровых полей, а также задание количества портов, реализовано для частного случая, а именно данной системной логики. Подробная информация содержится в документе:

    / C220 Series Chipset Family Platform Controller Hub (PCH).Datasheet. June 2013

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

Кроме того, непосредственный доступ к конфигурационному пространству PCI и memory-mapped I/O рекомендуется заменить на вызовы соответствующих UEFI-протоколов.

Анализируем результаты

Итак, утилита отработала, рапорт сгенерирован.

Рапорт, сгенерированный утилитой CheckUSB


Рис. 3. Рапорт, сгенерированный утилитой CheckUSB

Обратим внимание на список подключений к портам контроллера USB. Вначале следуют три устройства, входящие в состав ноутбука, а четвертое – это наш искомый внешний жесткий диск Transcend StoreJet 35T3. Режим SuperSpeed включен. Детальный анализ содержимого регистровых полей приведен здесь.

Резюме

Низкоуровневое исследование, выполненное на уровне физического доступа к регистрам контроллера USB3.0 xHCI в среде UEFI firmware, однозначно свидетельствует – режим Super Speed включен. Но исправность оборудования необходимое, но не достаточное условие его корректной работы в сеансе операционной системы. Причиной проблем может быть, например, драйвер контроллера xHCI или сама ОС. Поэтому, логичным продолжением будет проведение подобного эксперимента в сеансе ОС, например Windows. Эта задача посложнее, так как регистры контроллера являются привилегированным системным ресурсом, для доступа к которому требуется написать собственный драйвер. Кроме того, в сеансе операционной системы, с контроллером USB взаимодействует его штатный драйвер, необходимо позаботиться о бесконфликтности.

Постоянная работа с флешками – это довольно удобно, но пользователю нужно знать особенности настроек и проведения своевременной диагностики. Такие знания будут полезны и владельцам магазинов, которые реализуют продукцию в розницу, закупая USB 3.0 16gb оптом или другие модели карт. Особое внимание нужно обращать на скорость работы и сравнивать ее с заявленной.

Иногда бывает так, что съемный носитель не хочет работать должным образом – пользователю кажется, что карта «притормаживает». Проверить это можно несколькими способами: о наиболее популярных из них мы поговорим в этой статье.

Check Flash

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

Работать с программой довольно просто:

  • запустите ее на компьютере;
  • выберите носитель, который хотите проверить;
  • укажите «Действия», а затем «Запись и чтение»;
  • затем нажимаем «Пуск», после чего выведется оповещение о том, что все данные с флешки будут удалены;
  • соглашаемся с этой процедурой, нажав «ОК»;
  • по ее завершению на монитор выведутся все результаты.

Как только проверка будет завершена, отформатируйте флешку. Сделать это можно стандартным способом, зайдя в «Мой компьютер».

USB Flash Benchmark

Простая, но также востребованная программа – проверить флешку на скорость можно самостоятельно:

  • запустите программу на компьютере, которая установлена заранее;
  • затем откройте «Drive» и выберете сам носитель;
  • снимите флажок с пункта «Send Report» и нажмите на кнопку «Benchmark»;
  • затем запустится сканирование, внизу будет график скорости, а справа – результат в цифрах;
  • обратите внимание на строку «Write speed», это скорость записи;
  • графа «Read speed» показывает скорость чтения.


CrystalDiskMark

Также популярная программа, с помощью которой можно провести диагностику в домашних условиях:

  • откройте приложение на компьютере, откроется стартовая страница;
  • в окне «Устройство для проверки» укажите свою карту;
  • можно настроить объем данных, количество прогонов и режим;
  • для начала тестирования нажмите кнопку «ALL»;
  • результат будет выведен в текстовом виде.

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

H2testw

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

Отметим особенности работы с программой:

  • откройте программу на компьютере;
  • укажите рабочий язык интерфейса;
  • зайдите в «Target» и выберете флешку с помощью кнопки «Select target»;
  • подтвердите свои действия, отметив в «Data volume» значение «all available space» для запуска тестирования;
  • для начала работ нажмите кнопку «Write+Verify».

Flash Memory Toolkit

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

Рекомендации по применению:

  • запустите инструмент на компьютере;
  • откроется главное окно, в котором выберите «Device»;
  • слева в вертикальном меню выберите раздел «Low-level Benchmark».

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

Читайте также: