Обзор SATA-контроллера ASMedia ASM1166 с интерфейсом PCIe 3.0 x2

Методика тестирования накопителей образца 2018 года

Во времена оны дискретные дисковые контроллеры требовались любому ПК — поскольку никаких других и не было. Даже дисковод для гибких дисков, воспринимаемый уже как седая древность, мог отсутствовать в первых IBM PC — а чтоб его туда поставить, требовалась и ISA-плата контроллера. Позднее «базовые» возможности начали интегрироваться на системные платы, а далее — и непосредственно в чипсеты. Но дискретные контроллеры оставались актуальными для увеличения количества подключаемых накопителей, для освоения новых версий интерфейсов или поддержки устаревших (РАТА-винчестерами или оптическими приводами многие продолжали пользоваться и после того, как этот интерфейс исчез из чипсетов) — или просто для расширения функциональности (типа RAID-массивов и т. п.).

Последние два варианта актуальность в основном утратили порядка десяти лет назад: развитие интерфейсов остановилось на SATA600, а РАТА исчез по мере физического отмирания устройств. Некоторое время, конечно, ушло на то, чтобы все чипсетные порты на всех платформах превратились в SATA600, но к середине десятилетия завершился и этот процесс. Возможность создания дисковых массивов стала стандартной не для всех чипсетов, но подобрать плату на подходящем не представляло сложности. А самих портов на них обычно оказывалось избыточное количество — вплоть до десяти, хотя большинство корпусов столько накопителей установить не позволяло.

Одно время казалось, что и дальше с количеством и качеством портов сложностей не будет. Однако буквально сразу, после решения всех проблем, количество SATA-портов начало сокращаться. Монотонно, но не слишком заметно — благодаря FlexIO. Старшие чипсеты Intel (типа Z490 или Z590), к примеру, поддерживают до восьми портов SATA. Но «до» — и от нуля. Каждый соответствующий порт чипсета может использоваться либо как SATA600, либо как PCIe 3.0 x1. Линии же PCIe становятся дефицитным товаром, поскольку их нужно все больше. Например, один NVMe-накопитель уже требует PCIe х4 — т. е. «заменяет» четыре SATA-устройства, а на топовых платах может быть и 2-3 слота M.2. Еще там же нередко можно найти контроллер USB3 Gen2×2, которому может потребоваться еще 4 линии PCIe. Еще 4 может «уйти» на контроллер Thunderbolt — и на разную прочую периферию по мелочи сколько-то. В итоге на платы редко устанавливают более шести портов SATA, да и они в части конфигураций доступны не все.

Бюджетные системы обычно высокоскоростной периферией не перегружены, но в недорогих чипсетах больше четырех SATA бывает редко. Чипсеты для AMD AM4 пока немного более архаичны, чем старшие чипсеты Intel, но все равно в В550 или Х570 «гарантированных» (ни с чем не пересекающихся) SATA тоже лишь четыре. Больше реализовать можно, но мало кто этим занимается. Обычное явление — те же шесть SATA, но пара портов в некоторых конфигурациях уже может и не работать.

Значит, возвращаются дискретные контроллеры, но только требования к ним уже немного иные, чем 10 лет назад. Во-первых, стоит задача максимально «разменять» PCIe на SATA: если в чипсетах получается только «курс» 1:1, то тут можно пойти и на 1:2, а то и на 1:4, что выгодно. Во-вторых, «вешать» на дискретные контроллеры, может быть, придется не только винчестеры (им по большому счету SATA600 — только на вырост, которого уже никогда не случится), но и SSD — а им не помешает обеспечить полную скорость интерфейса. Хотя бы для одного устройства в каждый момент времени — но это крайне желательно.

«Старые» SATA-контроллеры обе проблемы решают плохо. Во-первых, они были рассчитаны на PCIe 2.0 — так что все модели, ограниченные одной линией, не обеспечивают ни одного полноскоростного порта: пропускная способность SATA600 выше, чем у PCIe 2.0. А в «двухлинейных» моделях «размен» в лучшем случае в соотношении 1:2 — как в Marvell 9235. Этот четырехпортовый контроллер имеет интерфейс PCIe 2.0 x2 — так что в принципе проблемы решает. Его младший брат 9215 «делает» те же четыре SATA-порта из одной линии PCIe — но скорость обмена данными даже с одиночным накопителем не превышает 400 МБ/с, поскольку таковы ограничения PCIe 2.0. ASMedia же в те годы выпускала только двухпортовые контроллеры, которые теперь совсем не интересны: ASM1061 не дает полной скорости, а ASM1062 — это два порта SATA600 на двух линиях PCIe, что и от чипсетов получить можно.

Однако пусто место свято не бывает — раз появилась проблема, то появляются и решения. К концу десятилетия производители подсуетились: на рынок вышли решения с поддержкой PCIe 3.0. Первыми отстрелялись в JMicron: компания выпустила двухпортовый JMB582 и JMB585 (на AliExpress продавцы обычно называют его «JMS585») на пять портов. Интерфейс — PCIe 3.0 x1 у первого и PCIe 3.0 х2 у второго. Одной линией можно обойтись, потому что PCIe 3.0 x1 по пропускной способности равен PCIe 2.0 х2, так что хотя бы для одного устройства всегда можно обеспечить полную скорость SATA600. «Курс обмена» портов на линии — лучше, чем у 9235. Да и чем у 9215 по большому счету тоже: JMB585 опять же может обойтись и одной линией (потому как PCIe 3.0) в «пропиленном» или просто «длинном» слоте х1, предоставив пользователю пять SATA-портов. Подчеркнем: каждый из этих SATA-портов даже в таком случае может работать на полной скорости.

Обзор SATA-контроллера JMicron JMB585 с интерфейсом PCIe 3.0 x2

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

ASMedia ASM1166

Новых контроллеров у компании получилась целая линейка — ASM1064, ASM1164, ASM1166, а в глубинах драйверов (но пока не на официальном сайте) есть и упоминание об ASM1165. Ключевое — поддержка PCIe 3.0 для подключения к хост-системе: в количестве одной линии в младшем ASM1064 или двух в остальных продуктах. Выпускаются они в виде плат с разъемом х4 — потому как слотов х2 в природе практически не встречается, но использовать можно и в более длинных, и в «коротких» (если решена проблема физической совместимости).

Последняя цифра в номере модели — количество SATA-портов, т. е. быть их может от четырех до шести. В итоге наиболее интересными чипами оказываются старший и младший, причем на AliExpress есть уже и те и другие, да и стоят примерно одинаково. Зачем в таком случае нужен ASM1064? При отсутствии свободных «длинных» или «пропиленных» слотов он позволяет подключить четыре SATA-накопителя, воспользовавшись всего одной линией PCIe 3.0. При этом как минимум одно устройство в каждый момент времени может работать на полной скорости. В общем, два сформулированных выше требования выполнены.

Для чего в таких условиях могут пригодиться «двухлинейные» чипы? В более сложных случаях нежели простое расширение количества портов — например, для софт-RAID, производительность которых будет ограничиваться уже не примерно 800 МБ/с (PCIe 2.0 x2 — лучшее, что могла «бытовуха» десятилетней давности), а 1,7 ГБ/с. В любом случае, старший ASM1166 обеспечивает лучший «курс обмена» PCIe на SATA, нежели JMB585, не говоря уже о чипсетах. Да и никто не мешает при необходимости ограничиваться для него подключением по одной линии PCIe 3.0, «превращая» таковую в уже шесть портов SATA600 — что в принципе целиком и полностью решает проблему нехватки портов данного типа в современной системе.

Но именно «современной»! При работе в старых системных платах (Intel до «первой версии» LGA1151 или даже AMD AM4 с чипсетами 300-го и 400-го семейств) преимуществ перед устаревшими решениями новые чипы иметь не будут — сами чипсеты поддерживают только PCIe 2.0. Или почти не будут — все-таки там было не более четырех SATA-портов, а тут пять или даже шесть. Кроме того, новые контроллеры JMicron и ASMedia собственным BIOS не снабжаются, так что на старых платах загрузка системы с подключенных к ним накопителей не поддерживается. В новых соответствующие модули уже включены непосредственно в «основную» часть UEFI-прошивки, так что и загрузка работает тоже. Это мы проверили непосредственно на некоторых платах как для процессоров Intel, так и AMD — платформы 2015 года и позднее подходят, а вот на более ранних ничего не получается. Хотя если загружаться с чипсетного порта или NVMe SSD, то об этом и вовсе можно не задумываться — дискам с данными загрузка не требуется.

А сейчас посмотрим более подробно, как это работает.

Тестирование

Методика тестирования

Методика подробно описана в отдельной статье, однако с тех пор мы ее немного модифицировали. Подробное описание обновления будет готово в скором времени, однако необходимым оно не является — все будет понятно прямо по тексту. Основное программное обеспечение не меняется, аппаратное — в данном случае вообще остается тем же.

Участники тестирования

Основная наша задача — сравнить ASM1166 и JMB585 друг с другом, а также «чипсетным» контроллером в Intel Z270. Для обоих дискретных контроллеров были опробованы два режима работы: второй «процессорный» слот PCIe 3.0 x8 и «чипсетный» PCIe 3.0 x1. Результаты последней конфигурации нам пригодятся для сравнения с ASM1061 в той же системе — был протестирован ранее. «Рабочим телом» во всех случаях (как и ранее) будет выступать SSD SanDisk Ultra 3D на 500 ГБ. Это не самый быстрый SATA-накопитель, но для данного тестирования его более чем достаточно: все различия контроллеров должны быть видны невооруженным глазом.

Последовательные операции

Все лежит на поверхности — пропускная способность PCIe 2.0 x1 в одном направлении ниже, чем у SATA600 — поэтому полноценная реализация второго через первый невозможна. Достаточно перейти к PCIe 3.0 — и проблема решается даже при наличии всего одной линии. Зачем могут пригодиться две? Если, например, нам потребуется читать данные сразу с трех накопителей одновременно, их как раз примерно хватит. А, учитывая то, что PCIe — интерфейс дуплексный (в отличие от SATA), еще три могут одновременно данные записывать. Итого — есть возможность загрузить работой сразу шесть устройств — столько как раз у ASM1166 портов. Сценарий для типового ПК синтетичный — но принципиально реализуемый.

На старых контроллерах — нет. Даже в теории. Разве что, если мы возьмем жесткие диски — благодаря куда более низким скоростям, что-то путное получиться может. Но даже один твердотельный накопитель ограничен одной линией PCIe 2.0, а двум в одном направлении — не хватит и двух.

Произвольный доступ

Результаты приводим просто для ознакомления — понятно, что в первую очередь они определяются используемым SSD. Но хорошо заметно, что ASM1061 может и на них сказаться — отрицательным образом. А вот новые контроллеры местами даже быстрее чипсетного, во что несколько лет назад сложно было бы поверить.

Хотя в целом по совокупности с точки зрения низкоуровневых показателей Z270 все-таки быстрее наших главных героев. Но не существенно — можно считать, что все равноценны. Так что с нехваткой портов что ASM1166, что JMB585 справляются отлично — и ничему не мешая.

Работа с большими файлами

А для чего может понадобиться большое количество портов? Для объемного дискового хранилища. Желательно быстрого — в противном случае не обязательно «запихивать» его непосредственно в ПК: и NAS справится. А если быстрого — значит часть данных в любом случае держать на SSD. Жесткие диски сами по себе медленнее — так что с одной стороны им не обязательны быстрые порты, а с другой — не всегда уже их хватает.

И тут та же картина: старые контроллеры нередко скорость ограничивали, для исправления чего обязательны были «костыли» в виде широкого интерфейса, а новые с работой справляются отлично и на PCIe 3.0 x1. По крайней мере, с нагрузкой на одиночный накопитель — но это как раз и самый частый случай. А если даже и потребуется одновременная работа с несколькими устройствами — есть солидный запас благодаря поддержке PCIe 3.0 x2.

Производительность в приложениях

Использовать диски на дополнительных контроллерах в качестве «основных системных» в настоящее время в основном и не требуется: можно и другими воспользоваться. В том числе, и более производительными NVMe — для подключения которых как раз зачастую и требуется освобождать линии PCIe. Однако PCMark 10 — бенчмарк комплексный. В него входят не только тесты загрузки системы или приложений, но и банальное копирование данных. Более подробную информацию по рабочим нагрузкам можно получить из нашего краткого описания теста по ссылке, а сейчас — просто результаты.

Которые, как минимум, забавны — чипсетный контроллер «посрамлен» целиком и полностью. Причем разница такова, что на погрешность измерений ее не спишешь. И выполняется это для обоих контроллеров, причем использование для работы одной «чипсетной» линии PCIe лишь немногим хуже, чем пары «процессорных». Прямо хоть тестирование накопителей на них переноси. Жаль только, SATA-устройства нам в последнее время попадаются редко (поскольку ничего интересного на данном сегменте рынка давно не происходит), да и покупатели «ищут» скорость уже совсем в других сегментах.

Итого

Оба протестированных контроллера (и ASMedia ASM1166, и JMicron JMB585) со своими задачами справляются должным образом. То же можно сказать и про их младшие модификации — по сути, они отличаются лишь количеством портов и, иногда, исполнением: самые простые версии (ASM1064 и JMB582) изначально рассчитаны на установку в слот PCIe 3.0 x1. Таковых на материнских платах обычно в избытке, но они не всегда «пропилены», поэтому наличие соответствующих контроллеров в продаже может оказаться очень полезным. Тем более, что режим х1 мы протестировали и никаких проблем не обнаружили, а тот же ASM1064 — уже четырехпортовый, чего многим на практике достаточно.

Большинству же пользователей компьютеров дискретные SATA-контроллеры и вовсе не нужны, поскольку у них просто нет большого количества SATA-накопителей. Так было, есть и будет всегда: обычно в ПК вообще один-два диска, реже — три-четыре, а больше — совсем уж экзотика. Но иногда такая необходимость все-таки возникает, и тогда крайне полезна возможность решить проблему с подключением большого количества SATA-накопителей, не слишком привязываясь к конкретной материнской плате. Тем более, что, как уже было сказано в обзоре, количество SATA-портов на современных платах постепенно сокращается, и при модернизации системы можно неожиданно столкнуться с тем, что их стало меньше, чем нужно (доступных, во всяком случае). Но ничего страшного: если проблему можно решить за деньги, то это не проблема, а просто расходы. Расходы не обязательные. Но лишний выбор — никогда не лишний.

25 марта 2021 Г.