
Тестируя USB-накопитель сенсаций ожидать не приходится, все же — это не NVMe RAID. Чтобы сделать эксперимент максимально содержательным, проанализируем факторы, определяющие скорость записи и чтения твердотельного накопителя для USB‑шины, и попробуем оценить вклад каждого из них в интегральную оценку производительности. В этом нам поможет устройство от ADATA Technology — накопитель емкостью 64 ГБ, модель UV320 в конструктиве «слайдер».
Испытательными стендами будут десктопные платы ASUS Prime B360-Plus с процессором Intel i5-8400 и MSI X370 XPower Gaming Titanium с процессором AMD Ryzen 5 1600. Это два добротных «середнячка» близкие по производительности, но кардинально разные по архитектуре. Им компанию составит ноутбук ASUS X570ZD. Мобильная платформа с определенными оговорками также может быть отнесена в категорию компьютеров средней руки. Ее участие в тестах будет маркером готовности портативных ПК стать заменой стационарным решениям, хотя используемый в ноутбуке Ryzen 7 2700U достойно конкурирует по всем показателям с обоими настольными процессорами.
Рис 1. Один из испытательных стендов для оценки производительности ADATA UV320/64GB — платформа на базе MSI X370 XPower Gaming Titanium
Все стенды первоначально используют оперативную память DDR4 в двухканальном режиме, ее объем в настольных платформах набран четырьмя одноранковыми модулями HyperX HX430C15SBK4/16, суммарно — 16 ГБ. Такой же объем памяти и у ноутбука, но там два канала заполнены одноранковыми модулями Kingston KVR24S17S8/8.
Еще одно условие тестирования — отсутствие в системе конкурентных USB-устройств. Контрольный накопитель ADATA UV320 устанавливается в свободный разъем интерфейса USB 3.0 (или по-новому USB 3.1 Gen 1). Разъемы, принадлежащие контроллеру USB 3.1 Gen 2, в испытаниях участия не принимают.
Источники и составные части
При оценке производительности USB-накопителя измеряемой величиной является скорость обмена информацией между устройством и оперативной памятью платформы. В этом процессе участвует несколько посредников, что и определяет список факторов, влияющих на результат. Перечислим эти факторы детально:
- Характеристики собственно накопителя, зависящие от типа и схемы подключения NAND-чипов энергонезависимой памяти, а также внутреннего контроллера (в силу фундаментальных физических причин время записи NAND-ячеек кратно превышает время их чтения).
- Производительность хост-контроллера USB 3.x xHCI при реализации протокола универсальной последовательной шины в общем случае определяется его схемными решениями и встроенной микропрограммой. Кроме того, несмотря на физическое разделение сигнальных цепей, обслуживание одним контроллером устройств на нескольких портах создает очередность операций и может повлиять на результат измерений.
- Качество реализации программного стека, выполняющего обмен информацией: от приложения и высокоуровневых ОС API файловых операций до драйвера xHCI, непосредственно взаимодействующего с оборудованием.
- Производительность центрального процессора, определяющая время выполнения всех необходимых процедур программного стека.
- Тайминги коммуникации CPU и xHCI-контроллера, зависящие от топологии платформы: здесь речь о времени записи команд в операционные doorbell registers при инициировании обмена драйвером, также время доставки сообщений message signaled interrupt (MSI), пришедших на смену Legacy-прерываниями и предназначенных для сигнализации о завершении операции обмена контроллером xHCI.
- Тайминги коммуникации xHCI-контроллера и системного ОЗУ: важно принять к сведению, что bus-master взаимодействие хост-контроллера USB и DRAM платформы осуществляется не только при доставке целевых данных, но и при чтении из оперативной памяти дескрипторов операций, определяющих сценарий обмена, а равно и при записи статусной информации, отражающей результат обмена информацией.
Тестирование
Оценку скорости чтения и записи выполним с помощью NIOBench, выбрав опцию Unbuffered native. Это режим, в котором влияние кэширования и отложенной записи строго минимизированы. Полученные результаты близки к нативным возможностям USB-накопителя ADATA UV320 и могут служить реальной оценкой его производительности.
Рис 2. Производительность ADATA UV320 на платформе ASUS Prime B360-Plus
Рис 3. Производительность ADATA UV320 на платформе MSI X370 XPower Gaming Titanium
Рис 4. Производительность ADATA UV320 в ноутбуке ASUS X570ZD
Первое, что можно сказать по результатам испытаний, — ADATA UV320 на чтении демонстрирует весьма скромные результаты. Планка производительности задана контроллером Silicon Motion SM3268P-AB, действия которого ограничены временем доступа к NAND-флеш.
Рис 5. Так выглядит USB-накопитель ADATA UV320: компонетная сторона с контроллером Silicon Motion SM3268P-AB плюс двухсторонний монтаж микросхем NAND TLC (предположительно, Micron MT29F256G08EBCAGB16A3WC1)
В USB-накопителе UV320/64GB установлены две микросхемы энергонезависимой памяти без опознавательных знаков. Впрочем, утилита SMI Mass Production Tool идентифицирует их как чипы с TLC-организацией хранения. По JEDEC Manufacturer ID-коду равному 89h можно считать, что к разработке приложил руку Intel, хотя режим CardMode сообщает о «MicronIntel4k». Наличие совместных проектов в прошлом дает повод искать аналоги у Micron, но документация на чип MT29F256G08EBCAGB16A3WC1 пока недоступна.
Рис 6. Структура USB-накопителя ADATA UV320 глазами утилиты SMI Mass Production Tool
Итак, оставив причины низкого быстродействия по чтению открытыми, перейдем к оценки скорости записи на ADATA UV320. По этому параметру USB-накопитель выглядит очень недурно, успешно соперничая в сегменте бюджетных устройств со своими главными конкурентами: Kingston и Transcend. Детально разобраться в причинах разброса оценок на различных платформах нам поможет анализ динамических характеристик.
Динамические характеристики ADATA UV320/64GB
Утилита NIOBench обладает замечательным свойством: формировать лог тестирования накопителя, что позволяет наблюдать эффективность операций чтения и записи на том или ином итерационном участке тестирования. Рассмотрим динамику процедур чтения:
Рис 7. Динамика результатов чтения
Как следует из диаграммы, обе платформы на AMD в скорости чтения с ADATA UV320 демонстрируют практически одинаковую производительность. По сравнению с ними Intel имеет незначительное преимущество, но разрыв на финальной стадии тестирования несколько уменьшается. Вероятно, сказывается влияние механизмов низкоуровневой оптимизации, в частности, — асинхронное выполнение очередей запросов контроллером USB xHCI. Похоже, что некоторое превосходство платформы Intel обусловлено именно такой оптимизацией, также как пики и провалы, наблюдаемые на диаграмме.
Рис 8. Динамика результатов записи
Процедура записи отличатся от чтения меньшей стабильностью результатов. При желании, можно вообразить, что производительность записи имеет циклическую зависимость с периодом равным приблизительно 33 итерациям. Это особенно ярко прослеживается на AMD-платформах. Из-за регулярных спадов они проигрывают Intel существенно больше, чем при чтении. Но пики и провалы у Intel на записи в USB-накопитель снова оставляют странное впечатление — видимо, не следует сбрасывать со счетов интерференцию с различными асинхронными событиями, в том числе задержками арбитража при Bus-master доступе xHCI-контроллера к оперативной памяти.
Резюме
Довольно близкие результаты десктопной и мобильной AMD-платформ позволяют предположить, вернее — подтвердить, что в данном тестовом сценарии определяющую роль играют ограничения, присущие NAND-архитектуре накопителя, особенно для операции записи. Вместе с тем, небольшой отрыв платформы Intel и заметные пульсации скорости на ней акцентируют фактор USB хост-контроллера и его драйверной поддержки. В рейтинге причин, ограничивающих интегральную скорость, на первом месте, конечно, сама USB-флешка, и это ожидаемо. На второе место можно поставить свойства xHCI в сочетании с mass storage стеком ОС, а производительность подсистемы DRAM, в лучшем случае, — на третьем месте, в силу кратного запаса пропускной способности оперативной памяти по сравнению с трафиком на USB-шине.
С точки зрения оценки протестированного девайса — стабильно близкие результаты, которые демонстрирует накопитель ADATA UV320/64GB при многократных тестах на достаточно разных платформах, — факт, безусловно, позитивный.