Transcend ESD250C: адаптивность на пределе возможностей

Благодаря производительности USB Su­per­Spe­ed, кон­тей­не­ры с твер­до­тель­ны­ми на­ко­пи­те­ля­ми ста­но­вят­ся са­мы­ми при­вле­ка­тель­ны­ми пе­ре­нос­ны­ми уст­рой­ст­ва­ми. Бо­ну­сом — стой­кость к удар­ным на­груз­кам, не­до­ступ­ная маг­нит­ным но­си­те­лям. На это про­из­во­ди­те­ли внеш­них на­ко­пи­те­лей лиш­ний раз об­ра­ща­ют вни­ма­ние, под­чер­ки­вая кон­ку­рен­т­ные пре­и­му­ще­ст­ва сво­е­го то­ва­ра. Се­го­дня важ­ным до­сто­ин­ст­вом SSD-кон­тей­не­ра яв­ля­ет­ся так­же экс­терь­ер уст­рой­ст­ва и его спо­соб­ность об­слу­жи­вать со­вре­мен­ные ин­тер­фей­сы, са­мый вос­тре­бо­ван­ный из ко­то­рых — USB Type-C. Все пе­ре­чис­лен­ные ка­че­ст­ва есть в Trans­cend ESD250C. Оце­ним, на что он спо­со­бен в раз­лич­ных ре­жи­мах USB-ши­ны.

USB-накопитель Transcend ESD250C с комплектом кабелей Type-A и Type-C

Про оснастку

Как и все производители, Transcend обеспечивает свою продукцию программным инструментом SSD Scope для ди­а­г­нос­ти­ки, обслуживания и получения метрик производительности. Ожидаемо, актуальный к на­ча­лу тес­ти­ро­ва­ния ре­лиз от­ка­за­лся ра­бо­тать с внешним устройством ESD250C. «Компостер» доложил о ситуации в службу поддержки Trans­cend In­ter­na­ti­o­nal, и стал терпеливо ждать обновление. Как только стала доступной новая версия v3.10.0, мы ее гла­за­ми по­смот­ре­ли на работу SSD-контейнера.

На системной плате ASUS Prime B360-Plus (Intel Core i5-8400, память HyperX Savage нX430-C15SBK4/16, блок пи­та­ния Seasonic Focus Plus 650 Platinum) при подключении к самому скоростному USB-порту про­из­во­ди­тель­ность по дан­ным SSD Scope составила:

Производительность SSD-контейнера Trans­cend ESD250C по данным утилиты SSD Scope на платформе Intel

 

Метрики на платформе от AMD (плата MSI X370 XPower Gaming Titanium с процессором AMD Ryzen 5 1600, па­мять и блок пи­та­ния те же) в операциях последовательного чтения-записи не уступали Intel.

Производительность SSD-контейнера Trans­cend ESD250C по данным утилиты SSD Scope на платформе AMD

 

Рандомные операции по оценкам SSD Scope на AMD показали обес­ку­ра­жи­ва­ю­щие ре­зуль­та­ты — сни­же­ние ско­рос­ти чте­ния в полтора раза и записи чуть ли не вдвое.

Сюрпризы AMD не ограничиваются этим. Вполне сносная работа утилиты SSD Scope при под­клю­че­нии USB-на­ко­пи­те­ля ESD250C к разъ­е­мам Type-A, блокируется в Windows 10 x64 на интерфейсе Type-C. Помогает снять порчу ма­ни­пу­ля­ция в дис­пет­че­ре уст­ройств: если поменять политику извлечения, SSD Scope работает с USB-устройством, как ни в чем ни бы­ва­ло.

Если поменять политику извлечения, SSD Scope устойчиво работает с USB-устройством

 

Возврат политики извлечения к установкам «по умолчанию» на ра­бо­то­спо­соб­ность SSD Scope уже не влияет. Те­перь оп­цию мож­но пе­ре­клю­чать согласно своим пред­по­ч­те­ни­ям сколь угодно часто.

Правде в глаза

Принимать на веру информацию SSD Scope мы не стали. Лучший способ оценить таланты Trans­cend ESD250C — съем метрик нативной производительности SSD-накопителя в Java-окружении. Здесь нас будет интересовать только «спорт высших достижений»: оцениваем скорострельность в режиме SuperSpeed USB 10 Gbps (раньше это было мар­ке­тин­го­вое на­и­ме­но­ва­ние шины USB 3.1, по­том USB 3.1 Gen2, в финале остановились на USB 3.2 Gen2).

Производительность ESD250C на Intel-платформе

На Intel-платформе этот режим обеспечивается системной логикой, но конкретная реализация ASUS Prime B360-Plus пред­ла­га­ет под­клю­че­ние только по USB Type-A. В представлении утилиты AIDA64 си­ту­а­ция вы­гля­дит сле­ду­ю­щим об­ра­зом:

Как Transcend ESD250C подключается на платформе ASUS Prime B360-Plus к шине USB 3.2 Gen2

 

Использование аппаратного теста NIOBench дает следующую картину бенчмарок производительности:

Производительность USB-накопителя Transcend ESD250C на Intel-платформе в нативном режиме теста NIOBench

 

Верифицируем результаты в независимой программной среде, используя для этого утилиту AS SSD на ана­ло­гич­ном тес­то­вом пат­тер­не 1ГБ:

Производительность Trans­cend ESD250C на Intel-платформе по данным AS SSD

 

Что показал Trans­cend ESD250C на AMD?

Платформа MSI X370 XPower Gaming Titanium для процессора AMD предлагает два ва­ри­ан­та ис­поль­зо­ва­ния вы­со­ко­ско­рост­ной USB-шины. SuperSpeed USB 10 Gbps можно получить на встроенном в SoC AMD Ryzen 5 1600, но для этого тре­бу­ет­ся оп­ци­о­наль­ная USB-косичка с гнездом Type-A. Второй вариант интереснее: шина USB 3.1 Gen2, фор­ми­ру­е­мая ASMedia, оканчивается разъемом USB Type-C. К нему и под­клю­чим Trans­cend ESD250C:

Как Transcend ESD250C подключается на платформе MSI X370 XPower Gaming Titanium к шине USB 3.2 Gen2

 

Бенчмарки, полученные в Java-тесте, экивалентны результатам, полученным на Intel-платформе. Не­боль­шое пре­и­му­ще­ст­во в чтении выглядит аргументом в пользу AMD:

Производительность USB-накопителя Transcend ESD250C на AMD-платформе в нативном режиме теста NIOBench

 

AS SSD только подтверждает высокую скорость чтения, однако результаты записи несколько хуже, чем в NIOBench. Эти разночтения, скорее всего, можно объяснить несовершенством алгоритмов AS SSD. В сценарии Unbuffered native утилиты NIOBench файловый ввод-вывод строится на применении ОС API файловых операций с оп­ти­ми­за­ци­ей вы­рав­ни­ва­ния рас­по­ло­же­ния и раз­ме­ра бу­фе­ров в оперативной памяти с учетом страниц памяти и секторов диска. Кро­ме то­го, процесс идет под контролем опций FILE_FLAG_NO_BUFFERING, от­ме­ня­ю­щей бу­фе­ри­за­цию и кэ­ши­ро­ва­ние чте­ния, а также FILE_FLAG_WRITE_THROUGH, за­пре­ща­ю­щей отложенную запись.

Производительность Trans­cend ESD250C на AMD-платформе по данным AS SSD

Что хорошего можно сказать про Trans­cend ESD250C?

Производительность чтения и записи USB-накопителя Trans­cend ESD250C, полученная в утилитах NIOBench и AS SSD, де­мон­ст­ри­ру­ет кучность результатов. Логично предположить, что низкоуровневые возможности NAND ни­ве­ли­ру­ют­ся на­клад­ны­ми расходами, неизбежно имеющими место при передаче информации по USB-шине. При условии гра­мот­но ре­а­ли­зо­ван­ной буферизации это стало своеобразным стабилизатором производительности.

С другой стороны, измеренная скорость чтения составляет примерно половину от теоретического максимума USB3.1 Gen2, а значит у пользователей устройства есть шанс получить небольшую прибавку производительности после оп­ти­ми­за­ции драйверов или обновления внутренних микропрограмм самого устройства.

Эпилог

Как известно, производительность рандомного доступа к устройству Mass Storage может быть существенно увеличена, ес­ли поток выполняемых команд чтения-записи отсортировать в порядке, учитывающем внут­рен­нюю спе­ци­фи­ку на­ко­пи­те­ля, разрешив их асинхронное выполнение. Для магнитных носителей это об­ус­лов­ле­но вращением диска и по­зи­ци­о­ни­ро­ва­ни­ем головок. Для твердотельных устройств такой эффект связан с иерархической организацией за­по­ми­на­ю­щей матрицы и параллелизмом в работе внутренних каналов до­сту­па к NAND-микросхемам.

Устройство USB BoT (Bulk Only Transport) получает следующую команду только после завершения передачи данных ранее полученной команды

Устройство USB BoT (Bulk Only Transport) получает следующую команду (command 2) только после завершения передачи данных ранее полученной команды (command 1); в результате в каждый момент времени устройство обрабатывает только один запрос чтения-записи и возможность оптимизации выполнения методом сортировки запросов отсутствует

Собственно, сортировку команд выполняет накопитель. Но чтобы такая сортировка была возможной, на­ко­пи­те­лю дол­ж­на быть заблаговременно доставлена информацию о содержимом очереди, проще говоря, не плохо бы «за­ра­нее ви­деть весь план работ». Устройства, лишенные такой функции получают информацию о сле­ду­ю­щей ко­ман­де толь­ко по­сле выполнения текущей. Очевидно, сортировку и оптимизацию в этом случае вы­пол­нить не­воз­мож­но.

Устройство UAS (USB Attached SCSI) способно принимать более одной команды и выполнять их асинхронно

Устройство UAS (USB Attached SCSI) способно принимать более одной команды (для упрощения примера показано только две команды command1, command2) и выполнять их асинхронно; наличие в устройстве информации о нескольких запросах, ожидающих выполнения позволяет отсортировать эти запросы в оптимальном порядке

Доставка информации об операционном контексте зависит от координации действий устройства, хост-кон­т­рол­ле­ра (в нашем примере USB xHCI), его драйвера, аспектов взаимодействия xHCI и CPU посредством прерываний, пе­ре­да­ва­е­мых сообщениями (MSI), шинной топологии и других факторов. И здесь кроется одна из причин, в силу которых xHCI разных вендоров (Intel, AMD, ASMedia) при полной исправности и со­от­вет­ст­вии xHCI Specification, могут проявить свои индивидуальные особенности.