Адрес этой статьи в Интернете: http://www.thg.ru/howto/proizvoditelnost_usb_3_0/
Производительность USB 3.0: изучаем UASP и Turbo Mode |
USB 3.0 | Куда девается скорость? Изо дня в день мы радуемся удобству использования и мгновенному подключению USB-устройств. Но бывает, мы просто проклинаем интерфейс. USB с технологией plug and play невероятно удобная вещь. Но иногда, он как будто назло отказывается определять устройство или обеспечивать ту скорость работы с ним, которой мы ожидали. USB 2.0: похоже, это продлится весь день… С появлением чипсетов Intel седьмой серии и AMD Fusion Controller Hub, поддерживающих USB 3.0, трудно представить, как мы могли пользоваться первым поколением интерфейса USB более десяти лет назад. Максимальная пропускная способность составляла 1,5 Мбайт/с, и файлы через USB 1.1 передавались ужасно медленно, однако ситуация частично смягчалась небольшой ёмкостью USB-накопителей. Через пару лет нашему вниманию был представлен обновлённый интерфейс USB 2.0, который имел максимальную заявленную скоростью передачи в 60 Мбайт/с — огромный скачок по сравнению с USB 1.1. Тем не менее, новый интерфейс ограничивала перегрузка протокола и кодирование 8/10 бит, в итоге реальная скорость передачи у USB 2.0 находилась в пределах 30-40 Мбайт/с. На то время этого было достаточно. Но с ростом популярности доступных внешних RAID – хранилищ и SSD на базе SATA, мы стали более чувствительны к производительности, и постепенно оказалось очевидным, что скорости USB 2.0 начинает не хватать. USB 3.0 удовлетворил нашу потребность в интерфейсе с более высокой пропускной способностью, максимальный показатель которого достигает 625 Мбайт/с. Если учесть фактор передачи сигналов, мы получаем потолок в 500 Мбайт/с. Но даже учитывая это, реальная производительность, похоже, никогда не доходит да такого высокого уровня, как указывается в оптимистичных графиках пропускной способности, которые поставщики материнских плат любят размещать на коробке со своей продукцией. USB 3.0: Лучше. Но мы ждём большего! Основываясь на скорости работы флэшек и внешних жёстких дисков, которые есть в нашей лаборатории, мы боялись, что так и не достигнем заявленных скоростей. Тем не менее, мы приступаем к изучению работы USB 3.0 и постараемся выяснить, есть ли какая-нибудь возможность увеличить скорость передачи данных по этому интерфейсу. USB 3.0 | Что замедляет скорость интерфейса? Видео:Лекция 310. Шина USB - функциональная схемаСкачать Почему наши устройства на базе USB 3.0 работают примерно на скорости 150 Мбайт/с, когда заявленный максимум интерфейса составляет 500 Мбайт/с или около того? Для того чтобы понять внутреннее устройство USB нужно разобраться в базовой скорости и питании.
Поскольку USB не очень подходит для передачи немодулированных данных, информацию необходимо закодировать, используя линейный код и затем декодировать на другом конце. Это важный момент, позволяющий принимающей стороне восстанавливать синхронизацию. Без этого ошибок передачи будет гораздо больше. Как и многие другие интерфейсы (например, оптический Gigabit Ethernet), USB использует линейное избыточное кодирование 8/10 бит, превращающее восьмибитные данные в десятибитные, тем самым достигая соответствия по фронтам передачи сигнала. Хотя кодирование 8/10 бит обеспечивает необходимую синхронизацию потока, это уменьшает скорость передачи полезной информации на 20%. Поэтому скорость передачи данных USB 3.0, составляющая 5 Гбит/с, превращается в 500 Мбайт/с пиковой пропускной способности. Но это не единственный фактор, съедающий реальную скорость передачи. В характеристике USB 3.0 на форуме USB Implementers Forum (USB-IF), под пунктом 4.4.11 сообщается следующее: Эффективность SuperSpeed USB зависит от нескольких факторов, включающих кодирование символов 8/10 бит, структуру пакета и фрейминг, управление потоками и перегрузку протокола. На частоте передачи данных 5 Гбит/с с кодированием 8/10 бит, чистая пропускная способность составляет 500 Мбайт/с. Когда учитываются контроль потока, структура пакета и перегрузка протокола, пропускная способность полезной информации составляет 400 Мбайт/с или больше. Внезапно скорость USB 3.0 потеряла ещё 100 Мбайт/с. Однако даже 400 Мбайт/с смотрится довольно хорошо по сравнению с 40 Мбайт/с у интерфейса USB 2.0. Несмотря на то, что эти цифры помогают умерить ожидания от USB 3.0, они не отвечают на вопрос, почему реальные показатели настолько ниже. Мы по-прежнему спрашиваем, почему устройства с интерфейсом USB 3.0 такие медленные, когда в характеристиках указано гораздо больше пропускной способности? Во-первых, контроллер самого устройства сильно влияет на производительность. На графике выше Thermaltake BlacX 5G определённо быстрее, чем адаптер Apricorn SATA-to-USB 3.0 Adapter, однако такие данные вы увидите только с использованием высокопроизводительного SSD. Больше впечатляет то, что BlacX 5G может обогнать внешнее RAID-хранилище от Buffalo, результат которого показан на первом графике. Из трёх отмеченных устройств только BlacX 5G использует контроллер ASM1051. Исходя из нашего опыта, устройства, поддерживающие USB 3.0 и использующие контроллеры ASMedia, обеспечивают более высокий уровень производительности. Но одного этого преимущества не достаточно для того, чтобы пройти барьер 300 Мбайт/с и продвинуться к пиковой производительности интерфейса. Во-вторых, немалое влияние на пропускную способность оказывает сам контроллер интерфейса. Вышеупомянутые тесты мы проводили на «родных» портах USB 3.0 материнской платы ASRock Z77 Extreme6 . C учётом сказанного, мы видели противоречивые показатели производительности и результат, похоже, зависел от особенностей реализации. Контроллер Etron на одной плате обеспечил 250 Мбайт/с, и этот же контроллер, но на другой платформе, не смог перешагнуть за 200 Мбайт/с. Однако, в целом, потеря более всего связана с USB в Platform Controller Hub или Fusion Controller Hub. И последнее, несмотря на то, что интерфейс USB 3.0 способен обеспечить 400 Мбайт/с, его потенциалу мешает развиться неэффективный протокол. Все виды USB включают четыре типа передачи: контроль, прерывание, изохронная передача и линейная передача. Первые два вида Контроль и Прерывание определяют, каким образом хост соединяется с устройствами. Третий тип – изохронная передача, необходима для периодической и постоянной передачи данных, она определяет, как устройство может зарезервировать определённое количество пропускной способности с гарантированной задержкой. Изохронная передача обычно используется в аудио/видео устройствах, типа карт захвата, поскольку она решает проблему потери данных (потерю кадров в видео), когда используется несколько устройств подключённых через USB. И наконец, режим объёмной (линейной) передачи (bulk-only transport) нас сегодня интересует больше всего, потому что он используется для передачи данных на USB-хранилища и т.п. Технология Bulk-only transport, в инженерных кругах известная под аббревиатурой «BOT», была разработана в 1998 году для USB 1.1 в качестве протокола, который принимал и обрабатывал одну команду за раз. Технология BOT была специально задумана для нужд USB флэш-накопителей, которые на то время имели небольшой объём и скорость. В связи с этим, BOT похожа на IDE в том, что очерёдность команд обрабатывается на хосте (что объясняет, почему производительность USB падает с увеличением глубины очереди). Технология «BOT» осталась неизменной со времён интерфейса USB 2.0, дебютировавшего в 2000 году, вероятно из-за того, что сама скорость шины USB является «узким местом», и смысла в обновлении BOT нет. Но в ретроспективе это может быть не верно, потому что USB 3.0 уже не медленнее, чем присоединяемые к нему устройства. Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать USB 3.0 | Turbo Mode: более быстрый USB, с оговорками Максимальный размер транзакции для BOT-передач на уровне операционной системы составляет 64 кбайт. Однако последовательные данные обычно передаются блоками размером 128 кбайт, для чего нужны две BOT-транзакции. Технология под названием «Turbo mode» пытается преодолеть это ограничение через увеличение максимального размера транзакции до 1 Мбайт или больше, позволяя драйверу USB упаковывать несколько последовательных запросов по 128 кбайт в одну большую транзакцию. Меньшее количество маленьких транзакций означает меньше USB-команд ожидания, подготовки и подтверждения, что в свою очередь увеличивает пропускную способность. С функцией Turbo mode скорость USB 2.0 обычно увеличивается на 8-10 Мбайт/с, и производительность растёт на 25-33%. Прирост будет независимо от того, используете ли вы обычный жёсткий диск или SSD, потому что скорость работы накопителей выше пропускной способности интерфейса. Как мы знаем, USB 3.0 убирает это «узкое место». При установленном HDD, максимальная скорость последовательного чтения составляет 128 Мбайт/с, и Turbo mode не оказывает никакого влияния. Просто жёсткий диск не достаточно быстр для интерфейса USB третьего поколения, поэтому даже при более высокой скорости передачи данных, HDD сдерживает производительность. После переключения на Vertex 3 240 Гбайт, технология Turbo mode начинает играть более весомую роль. Пропускная способность на адаптере Apricorn SATA-USB 3.0 выросла примерно на 30-40 Мбайт/с, или на 20-25%. Интересно, что по умолчанию Thermaltake BlacX 5G настолько хорош, что Turbo mode не даёт дополнительного преимущества. Turbo mode – это относительно несложная технология, обычно включающая простую модификацию BOT-драйвера на уровне операционной системы. Утилиты ASRock XFast USB и Asus USB 3.0 Boost включают Turbo mode, однако эти программы предназначены специально для материнских плат ASRock или Asus. Включить вручную Turbo mode на материнской плате от поставщика, который не предлагает собственную утилиту можно через модификацию ключа в реестре HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Control\usbstor\054C00C1. Добавьте 32-битное значение DWORD под названием «MaximumTransferLength» и укажите значение максимального размера транзакции между 65535 (64 кбайт) и 2097120 (2 Мбайт) в поле данных. В зависимости от производителя платы, некоторые оптимизации Turbo mode происходят на уровне сигналов в шине, чтобы сократить команды ожидания, подготовки и подтверждения присущих USB. Тем не менее, эти оптимизации играют лишь незначительную роль в том, как Turbo mode улучшает производительность, а иногда могут и ухудшить ситуацию. Видео:[База Знаний] В чем разница между USB 2.0 и USB 3.0Скачать Внешние накопители преимущественно работают с последовательной передачей. Гораздо реже в игру вступают случайные операции ввода/вывода. Если попытаться запустить Windows с флэш-накопителя, то будет осуществляться доступ к множеству маленьких файлов разбросанных по нему. В таком случае, Turbo mode негативно повлияет на пропускную способность (хотя эта скажется только на SSD, поскольку HDD итак справляются со случайными запросами недостаточно быстро). С включённым Turbo mode, скорость случайного чтения блоками по 4 кбайт на адаптере Apricorn SATA-USB 3.0 падает с 48 Мбайт/с до 36 MB/, в то время как случайная запись уменьшается не так заметно. Не существует действительно хорошего способа обойти потери производительности случайных операций ввода/вывода с BOT. В отличие от последовательной передачи данных, маленькие случайные блоки нельзя упаковать вместе. Алгоритм ожидания драйвера USB отправляет транзакции по частям, потому что LBA-адреса не являются смежными. Но почему увеличение размера транзакции замедляет движение случайных блоков по 4 кбайт? Видите ли, больший размер транзакции увеличивает количество времени, за которые драйвер USB пытается и, в конечном итоге, не упаковывает блоки по 4 кбайт в большие пакеты. В результате привод Vertex 3 едва проходит отметку 80 Мбайт/с. И это притом, что при большой глубине очереди, этот привод способен выдать 325 Мбайт/с при подключении через SATA. USB 3.0 | USB Attached SCSI (UAS): увеличиваем производительность USB Attached SCSI (UAS) – это новый протокол USB 3.0 который заменяет старый протокол USB 2.0 BOT. UAS призван более полно использовать потенциал USB 3.0 , в нём представлено два главных архитектурных изменения.
Дело в том, что включить поддержку UAS не так-то просто. Чтобы она работала, платформа должна иметь четыре элемента:
Если какого-то компонента не хватает, UAS не будет функционировать и включиться резервный режим USB 2.0 BOT для сохранения совместимости. Таким образом, нет смысла подключать устройство совместимое с UAS к материнской плате, которая его не поддерживает, или подключить клиентское BOT-устройство к платформе, которая поддерживает UAS. Можно только гадать, сколько существующих устройств с интерфейсами USB 2.0 или 3.0 поддерживают протокол UAS. Но мы знаем, что контроллер хоста и устройства должны аппаратно поддерживать эту функцию. Еще мы уверены, что многие USB-устройства, которые сегодня поставляются, скорее всего, уже поддерживают UAS. Но за обновление прошивки, которая позволит использовать этот протокол, несут ответственность производители. Thermaltake BlacX 5G использует контроллер ASMedia ASM1051 USB 3.0 совместимый с протоколом UAS. Тем не менее, с сайта пришлось скачать прошивку, которая позволит его задействовать. В текущий момент протокол UAS не поддерживают Windows 7, OS X и Linux (в зависимости от ядра), но Microsoft утверждает, что в Windows 8 такая поддержка будет добавлена. И в самом деле, установив Windows 8 Release Preview мы обнаружили «родной» драйвер UAS Mass Storage Driver. Однако поддержка UAS на Windows 8 похоже работает только с USB 3.0 . В компании нам сказали, что обновление с поддержкой UAS для Windows 7 выйдет вскоре после начала поставок Windows 8. Насчёт совместимости UAS с OS X ничего не говорится. Однако мы знаем, что разработчики Apple работают с этим протоколом, поэтому весьма вероятно, поддержка появится в операционной системе после Lion. К сожалению, информации по поддержке UAS в Linux у нас нет. Нам не придётся ждать пока выйдет Windows 8, чтобы протестировать UAS. К счастью, Asus приложила некоторые усилия и выпустила программу USB 3.0 Boost, которая добавляет поддержку Turbo mode и UASP к некоторым моделям, включая платформы на базе Z77, X79, Z68, 990FX/990X/970 и A75 с контроллером ASMedia ASM1042 USB 3.0 . Видео:Как настроить оперативную память если настройки авто кривыеСкачать Если у вас одна из таких материнских плат Asus, то в утилите Asus USB 3.0 Boost наряду с кнопкой Normal появится либо кнопка «Turbo», либо «UASP» в момент, когда к порту USB 3.0 подсоединено соответствующее устройство. И не важно, является ли этот порт чипсетным или обслуживается отдельным контроллером. Turbo mode характерен для любых устройств USB 2.0 или USB 3.0 без UAS, и если ваше устройство, подключённое через USB 3.0 , поддерживает UAS, то Turbo mode будет ему недоступен. По умолчанию для всех устройств устанавливается режим «Normal» (BOT). Программа ASRock XFast USB выглядит более отшлифованной и включает Turbo mode на любом порте USB, даже если к нему подсоединен накопитель, еще не отформатированный в NTFS или FAT. Тем не менее, только Asus позволяет включить протокол UAS в Windows 7 с помощью лицензионного драйвера MCCI ExpressDisk UASP Driver . Драйвер Asus UASP работает лучше, чем BOT и «родной» драйвер UAS в Windows 8, особенно с операциями случайного чтения. При последовательной передаче данных драйвер UAS в Windows 8 оказывается быстрее, и обеспечивает почти 360 Мбайт/с, обгоняя драйвер Asus UASP на 25 Мбайт/с в операциях чтения. Для сравнения, максимальным для BOT является показатель 300 Мбайт/с. Драйвер UASP от Asus лидирует в последовательной записи достигая скорости 340 Мбайт/с. Драйвер UAS системы Windows 8 даёт только 325 Мбайт/с. Но оба режима UASP обеспечивает заметное улучшение по сравнению с BOT, максимум которого составляет USB 3.0 | Включаем UAS на старых материнских платах с поддержкой USB 3.0 Как мы уже отмечали, даже если у вас есть устройство, поддерживающее UAS, система, в которую вы его устанавливаете, также должна его поддерживать, иначе толку от этого не будет. Для этого надо учитывать аппаратные и программные факторы. Набор драйверов Windows 7 не включает поддержку UAS, вот почему утилита Asus USB 3.0 Boost имеет конфигурационные inf-файлы в установочной подпапке. Эти файлы являются недостающим звеном. Как оказалось, технически вы можете использовать эти же драйверы, чтобы включить UAS вручную. Однако на этом пути есть одно препятствие. Когда компания Asus лицензировала драйвер MCCI UAS, она добавила подпрограмму, которая проверяет производителя и модель вашей материнской платы. Если вы используете плату другой компании, все сразу усложняется (хотя в нашей лаборатории мы заставили утилиту работать). Но если CPU-Z определяет разработчика вашей материнской платы как «ASUSTek Computer INC», ручная замена «USB Mass Storage Driver» на «ASUS USB 3.0 Boost Storage Driver» в свойствах системы добавляет второй «UAS Storage Driver.» Видео:Возможность подключения SSD M2 или NVME в ноутбуке. Как узнать?Скачать Попытка проделать этот фокус на плате не от Asus приведет к сообщению об ошибке. Единственный способ обойти ее – модифицировать строчку SMBIOS с помощью специальной утилиты. Опять же, не каждому захочется столько возиться, особенно если учесть, что это еще не вся процедура. Чтобы убедиться окончательно, мы взяли старую плату Asus, которая имеет USB 3.0 , но не поддерживает UAS. То, что драйвер установлен, ещё не значит, что UAS работает. Также необходима соответствующая аппаратная поддержка. Возьмём в качестве примера Asus P8P67 Deluxe. Само собой, она содержит нужную строчку SMBIOS, но в ней используется контроллер Renesas USB 3.0 , поэтому эта модель не указана в списке плат, поддерживающих USB 3.0 Boost. Все платы в этом списке имеют одну общую составляющую – контроллер ASMedia ASM1042. Дело в том, что контроллер ASMedia поддерживает UAS, а Renesas нет. Нам удалось заставить работать UAS через «родной» порт USB 3.0 чипсета Z77 с помощью Windows 8 на материнской плате ASRock Z77 Extreme6 (наряду с драйвером Asus UAS на плате P8Z77-V Deluxe с чипсетом Z77), это говорит о том, что встроенный контроллер Intel поддерживает протокол UAS. Для сравнения у старого контроллера Renesas либо отсутствует необходимая аппаратная поддержка, либо он требует обновления драйвера. Вероятно, проще будет купить карту Syba USB 3.0 PCIe (SD-PEX20112) . Это дешёвое решение работает по той причине, что оно основано на контроллере ASM1042, который поддерживает протокол UAS. Просто установите драйвер ASM1042 от Asus, и всё готово к работе. Тестовые прогоны Iometer на Thermaltake BlacX 5G, подключённого через карту Syba USB 3.0 , подтверждают работу UAS. Скорость последовательного чтения достигает 325 Мбайт/с, такой показатель мы и хотели увидеть на плате с «родной» поддержкой UAS. USB 3.0 | На пути к более высокой производительности Производительность USB 3.0 сильно колеблется в зависимости от контроллеров, устройств и хоста, об этом свидетельствуют данные наших тестов. И чтобы выяснить, какая комбинация компонентов даст лучший результат, действительно стоило провести исследование. Turbo mode и UAS – две привлекательные технологии, которые улучшают первоначальное поведение USB 3.0 . Но для обоих решений нужны устройства, которые не будут «съедать» производительность и дадут интерфейсу раскрыться на полную. Подключите внешний жёсткий диск через USB 3.0 , и он будет работать на одинаковой скорости практически в любой ситуации. Чтобы действительно почувствовать разницу, необходимо использовать скоростной твердотельный накопитель. Но не надейтесь на увеличенную скорость работы случайных операций ввода/вывода. Мы представляем себе, сколько людей рассчитывают на накопитель, подключённый через USB и работающий с задачами, которые предполагают большое количество операций со случайным расположением данных, и хотим обратить внимание, что Turbo mode и UAS вам в этом не помогут. На самом деле, только операции линейного чтения/записи смогут получить прирост скорости в этих режимах. Возможно, это и странно, но самый большой прирост скорости благодаря Turbo mode мы видели на устройствах USB 3.0 , которые продемонстрировали самый низкий уровень производительности. Адаптер Apricorn SATA-USB 3.0 Adapter — наш любимый лабораторный инструмент – использует плохо оптимизированный контроллер. Многие дешёвые USB 3.0 -хранилища и флэш-накопители попадают в эту категорию, и именно такие устройства больше всего выигрывают от Turbo, и это хорошо, поскольку Turbo mode по определению бесплатна. Видео:Как работает USB? Просто, доступно, с примерами.Скачать Однако включать режим Turbo бесполезно, когда вы используете более дорогие устройства на базе USB 3.0 , как, например Thermaltake BlacX 5G, потому что их производительность в стандартном режиме (BOT) и так достаточно хороша. В этой ситуации многое решает UAS , в зависимости от вашей системы, скорость последовательной передачи данных может быть на 20% выше. UAS – это относительно новая технология, поэтому на данный момент мы воздержимся от каких-либо выводов. Некоторые из поставщиков, с которыми мы связались, заявили, что в своих лабораториях они получили более высокие результаты, и у нас есть основания этому верить. По словам некоторых инженеров, с новыми разрабатываемыми устройствами скорость последовательных операций достигает 430 Мбайт/с, а случайных — 100 Мбайт/с. Для сравнения, на нашем оборудовании нам удалось получить 350 и 70 Мбайт/с соответственно. 🔥 ВидеоЗачем нужен переключатель на SD-флеш переходнике.Как у флешки убрать функцииСкачать Проблема при извлечении устройства USB — причины и как исправитьСкачать Как узнать пропускную способность сетевой картыСкачать Лекция19 USBСкачать Не работают USB порты - 3 способа Решения! Windows 7/8/10/11Скачать Шины ввода-выводаСкачать Отключаем поэтапно память у RTX 3090 и 3060 и измеряем разницу в производительности.Скачать лекция 313. Формирование пакетов на шине USBСкачать Реанимация USB флешкиСкачать Разные планки оперативной памяти. Можно ли совмещать в одном ПК?Скачать пропускная способность шиныСкачать ЧЕМ ОТЛИЧАЮТСЯ USB РАЗНОГО ЦВЕТА?Скачать Контроллер универсальной последовательной шины USBСкачать Устройство USB не опознано в Windows?Скачать |