SATA-контроллер JMicron JMB585 с интерфейсом PCIe 3.0 x2: лебединая песня дискретных дисковых контроллеров

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

pcie-sata-controllers-asmedia-marvell-bi

Сравнительное тестирование SATA-контроллеров ASMedia ASM1062 и Marvell 88SE9235 с интерфейсом PCIe 2.0×2

Протестировав прошлым летом пару SATA-контроллеров (ASMedia ASM1062 и Marvell 88SE9235), мы решили, что тема закрыта. Рынок простых дискретных дисковых контроллеров (некогда достаточно оживленный) впал в спячку, поскольку всем покупателям стало хватать интегрированных контроллеров, а интересы некоторых попросту сместились в сторону от SATA/PATA. Никуда не делись, впрочем, «серьезные» многодисковые серверные решения со своими продвинутыми возможностями (чаще всего в комплекте с задвинутыми тараканами, но это дело житейское), однако слишком уж в стороне они от массового рынка. Иногда пользуются спросом и почти в быту (например, в самосборных NAS), но, как правило, в состоянии дешевое списанное б/у, что тоже накладывает свои особенности: надо уметь искать и заранее понимать, что и зачем. А ориентированные на массовый рынок решения в основном появились порядка десяти лет назад — и ничего нового не требовалось. Настолько, что самым популярным контроллером на рынке продолжает оставаться еще более старая микросхема ASMedia ASM1061: всего лишь два порта SATA600, из которых ни один в принципе никогда не сможет выдать эти самые »600», поскольку столько не пропустит одна линия PCIe 2.0, использующаяся для связи с системой.

Но тут активизировалась компания JMicron, последние контроллеры которой относились еще ко временам SATA300 и РАТА. Позднее мы с ее продуктами сталкивались только на других рынках и уже свыклись с мыслью, что ничего нового не будет. И вот внезапно нашлось: SATA-контроллеры аж под PCIe 3.0. Понятно, что не для добавления SATA600 к «старой» системе — им эта версия интерфейса неактуальна (собственно, даже сейчас большинство чипсетов для AMD AM4 поддерживают лишь PCIe 2.0). Но это хоть что-то реально новое. Что захотелось сравнить со старым.

Сначала это желание оставалось лишь теоретическим, поскольку продавцы хотели слишком много кушать. Потом цены опустились до вполне вменяемых $21-$22 (меньше, чем нам пришлось отдать за Marvell 88SE9235), так что решено было закрыть и это белое пятно.

Краткое содержание предыдущих серий

Временами расцвета дискретных дисковых контроллеров можно считать прошлый век — поскольку тогда никаких других и не было :) Точнее, интеграция их в чипсеты началась в конце 90-х, но долгое время обходиться только таковыми удавалось не всем и не всегда. Во-первых, ограниченным было количество поддерживаемых устройств — EIDE в первых инкарнациях предполагал лишь два канала по два накопителя на каждом, т. е. всего четыре. Понятно, что в массовых компьютерах обычным делом была вообще пара (винчестер и CD-привод), но энтузиастам уже тогда требовалось иногда и чего побольше. Во-вторых, естественно, функциональность была самой что ни на есть «базовой» — никаких RAID-массивов и т. п. В-третьих, развивались стандарты: интеграция началась во времена АТА-2 (со скоростями менее 10 МБ/с и безо всяких там SMART и прочего — давно уже привычного), а буквально лет через десять и несколько модификаций стандарта пришло уже время переходить от его параллельной версии к последовательному SATA. Менее, чем за пять лет последний стал стандартом и тоже сменил три версии. А вот с момента появления последней из них прошло уже более 10 лет — и «преемника» для нее не готовится. Поэтому сейчас SATA600 воспринимается как что-то вечное и незыблемое, а тогда регулярно менялись спецификации и даже физические разъемы. Причем недовольными оказывались зачастую и любители прогресса — требующие побольше SATA, да чтоб побыстрее; и те, у кого на руках имелось немалое количество накопителей с РАТА-интерфейсом — раз его поддержка чипсетами сокращалась, подключать их становилось некуда.

За исключением дискретных контроллеров, которые во второй половине нулевых в итоге начали выглядеть очень похожими друг на друга. Два порта SATA максимальной на момент разработки версии соседствовали с одним разъемом РАТА на два устройства, причем все четыре накопителя можно было объединить и в RAID-массив. По крайней мере, такой была «полная» конфигурация — на базе которой выпускалось целое семейство контроллеров: часть удешевляли обрезанием каких-либо портов, а некоторые — просто отсутствием RAID BIOS. Кстати, чипсеты Intel никогда не поддерживали ни режим АТА133, ни RAID на PATA вообще, так что вот и еще один стимул воспользоваться дискретным контроллером. Если не для конечного пользователя, то для производителей системных плат — которые с удовольствием припаивали дополнительные контроллеры к топовым моделям таковых. Почему и в качестве интерфейса с хост-системой разработчики быстро перешли к использованию одной линии PCIe — PCI в чипсетах тоже «отмирал», да и такой вариант еще и разводить проще. А что скорость будет потенциально ограничена (одна линия 1.х недостаточна и для SATA300, 2.0 не хватит даже одному устройству SATA600) — во времена господства на рынке винчестеров никого не пугало. В конце-концов, PCI еще медленнее, так что и это прогресс.

chart-170.png

Экспресс-тестирование трех чипсетных и двух дискретных SATA-контроллеров: изучаем их влияние на производительность современного SSD

По каноническим принципам были организованы контроллеры семейства Marvell 88SE9128/9120/9125 — ставшие первой практической реализацией SATA600 на рынке, а потому и очень популярные. «Полным» был только 9128, 9120 получался из него блокировкой RAID, а 9125 — просто двухпортовый SATA-контроллер. К сожалению, быстро выяснилось, что из-за внутренних проблем запись данных выполняется всем семейством очень медленно — иногда ограничивая даже винчестеры. Да и в РАТА-части обнаружились проблемы, так что и 9128 чаще всего встречался без РАТА-разъема. В общем, решение оказалось очень неудачным, что тесты тоже подтвердили. А вот появившемуся чуть позже ASMedia ASM1061 повезло больше. Фактически это просто двухпортовый контроллер SATA600 —, но дешевый и простой. Поэтому производители плат его встретили тепло — ведь чипсеты Intel для LGA1155 поддерживали не более двух таких портов, а иногда и менее. ASM1061 делал их более привлекательными, так что был закуплен в огромных количествах… И продолжал встречаться и тогда, когда смысл в нем пропал. Например, в 2017 году ASRock припаивал его к платам на Х370, который и так поддерживает восемь портов SATA600 — десять более круглое и красивое число. Да и сейчас эти контроллеры не редкость на системных платах (в т. ч. и самых дорогих), а на AliExpress большинство плат расширения именно на ASM1061. Даже многопортовые: просто используются умножители портов.

Но основной недостаток решений того поколения был озвучен выше — использовали они интерфейс PCIe 2.0×1, чего недостаточно для полной скорости даже одного порта SATA600. Первое время на это закрывали глаза, поскольку нужно было еще тот 2.0 суметь найти, во-первых, а во-вторых винчестерам этот интерфейс нужен лишь для галочки. Однако по мере распространения твердотельных накопителей у некоторых пользователей начал чесаться вопрос SATA300 и того, как он ограничивает скорость. Как мы уже писали, на практике этим можно и пренебречь — разница в системной производительности настолько невелика, что на нее не стоит обращать внимания.

Но если так уж хочется, то еще в 2012 году появилось семейство контроллеров Marvell 92xx, где были исправлены многие проблемы предыдущего семейства и расширен интерфейс подключения к хост-системе: до двух линий PCIe 2.0. Изначально компания по традиции анонсировала три чипа: 88SE9230 (четыре порта SATA, RAID-массивы и собственная технология SSD-кэширования HyperDuo), 88SE9220 (аналогично по функциональности, но только два порта) и 88SE9235 (простой четырехпортовый SATA-контроллер «без наворотов»). Затем добавила к ним четвертый: 88SE9215 идентичен 9230, но рассчитан на PCIe 2.0×1 — так что с точки зрения производительности интереса не представляет. Чуть позже свет увидел и контроллер ASMedia ASM1062 — по сути аналогичный 9220 от Marvell. Его и 9235 мы и изучали прошлым летом. Пришли к выводу, что, если уж хочется добавить действительно полноценную поддержку SATA600 к старому компьютеру, то ими и стоит воспользоваться: PCIe 2.0×2 достаточно, чтобы хотя бы один порт SATA600 работал на полной скорости — это мы и получили. А вот для одновременной работы сразу двух портов до прошлого года решений на рынке не было. Впрочем, не слишком и нужны — ситуации, когда два (не говоря уж о больших количествах) накопителя строго одновременно читают или записывают данные, в быту не встречаются. Если только специально их создавать. Вот когда один читает, а другой пишет — дело-то обычное, но с ним PCIe благодаря дуплексному режиму работы справляется. Поэтому для подключения нескольких винчестеров или даже SSD чисто под данные вполне достаточно Marvell 9235. Или, даже, 9215. Тем более, что второй стоит дешевле, а установить его можно в любую плату. Остальная же линейка, равно как и ASM1062 требует наличия свободного слота с шириной х4 — поскольку х2 на практике не встречаются. Вот если б эти контроллеры использовали производители системных плат, проблемы бы не было. Но они закупили столько ASM1061, что даже ASM1062 большого интереса у них не вызвал. Тем более, дорогие чипы Marvell.

Впрочем, сейчас ситуация на рынке в очередной раз немного меняется. Впервые за многие годы — как уже было сказано, SATA600 это основной стандарт вот уже более десяти лет, но сейчас пришла пора ему отправляться на покой. И вовсе не для замены на более новую версию с сохранением совместимости — это было бы пол-беды, а совсем на покой. Винчестеры в компьютерах используются все реже, а SSD «переползают» на PCIe. Соответственно, количество SATA-портов начало уменьшаться, а вовсе не расти. К примеру, новейший чипсет AMD X570 формально поддерживает до 12 портов —, но лишь четыре из них «гарантированные», а остальные разделяются со слотами M.2. Поэтому больше шести на платах встречается редко, причем два из них могут в части конфигураций отключаться. Массовые чипсеты Intel поддерживают до шести портов — и часть из них тоже разделяется со слотами PCIe или M.2. В общем, если накопилось немалое количество старых винчестеров, которые хочется сохранить, но нет желания переставлять в NAS, портов в компьютере может и не хватить. А пара линий для дискретного контроллера найдется — и проблема решится. Ну или, напротив, есть желание самостоятельно собрать многодисковый NAS на базе недорогой платы с каким-нибудь Athlon, Pentium или еще более мощным процессором: в отличие от «коробочных» решений, платформа здесь почти не ограничена, а экономия на шести-восьми отсеках все равно будет значительной. Но возможностей чипсета может оказаться недостаточно —, а простой (и недорогой!) многопортовый HBA-контроллер придется как нельзя более кстати. До последнего времени на такую роль претендовали Marvell 9235/9215 — хоть и уже старые по меркам компьютерного рынка, но ничего лучшего за прошедшие семь-восемь лет не появилось. Точнее, появился наш сегодняшний герой.

JMicron JMB585 PCIe Gen3×2 to 5 SATA 6Gb/s Bridge

Таково его полное название согласно каталогу продукции JMicron, хотя большинство продавцов на AliExpress предпочитают почему-то писать «JMS585». У модели официально есть и младший брат JMB582 — он уже Gen3×1 и Dual SATA. Главное в обоих случаях — Gen3, т. е. PCIe 3.0. Старые решения, напомним, лишь Gen2, т. е. каждая линия вдвое медленнее. Соответственно, JMB582 в штатном окружении является аналогом ASM1062, но обходится массовым слотом х1, а JMB585 способен обеспечивать одновременную работу трех накопителей без ограничения скорости — при том, что Marvell 9235 не дотягивает и до двух, а 9215 «урежет» даже одно. Да и количество портов у JMB585 чуть больше, а цена — ниже. На первый взгляд — интересно.

На второй… Нужно учитывать ограничения окружения. В частности, PCIe 3.0 появился на платах очень давно, но в ограниченных количествах. И речь не только об устаревших платформах — большинство чипсетов для AMD AM4, к примеру, поддерживают только PCIe 2.0, а 3.0 «обслуживает» процессор, но эти линии обычно заняты видеокартой и «первым» слотом M.2. Так что в старой системе преимуществ перед старыми же контроллерами не будет. Зато возможны недостатки, делающие применение этих плат вообще бессмысленным — в частности, не удается загрузиться с подключенных устройств ввиду полного отсутствия собственного BIOS. В то же время на современных платах зачастую и с этим проблем нет. На обеих версиях Intel LGA1151 накопители, подключенные к первым двум портам контроллера, «видны» прошивкой самой платы и загрузку поддерживают. С АМ4 ситуация еще веселее — равноправны все пять портов, так что загружаться можно с любого. Может быть, и не везде —, но проверенные нами платы ASRock и Asus на чипсетах Intel Z170, Z270 и Z370, а также AMD Х370, X470 и X570 заработали. Хотя в их случае это и не нужно, поскольку есть «собственные» SATA-порты, с которых можно и загружаться. Либо и вовсе использовать в качестве системного NVMe-накопитель, так что роль дискретного контроллера — организовать вместительную «файлопомойку» из нескольких винчестеров. А вот Asus P8Z77-V Deluxe (которую мы активно используем в рамках этой серии тестов) и Asus H97-Pro Gamer заставить грузиться с подключенных к контроллеру дисков не удалось. Может быть, опять же, какие-нибудь «подходящие» платы для LGA1150 или LGA1155 и найдутся, но есть сомнения: слишком уж радикально по-разному нам «везло». Учитывая также то, что в таких условиях и преимуществ по скорости перед «старыми» контроллерами не будет (поскольку PCIe 2.0 в обоих случаях), для модернизации старых систем по-прежнему интереснее Marvell 9235 (если нужно более двух дисков) или ASMedia ASM1062. Во всех случаях — кроме переделки старой системы в мини-сервер: пользуемся интегрированным GPU, грузимся с чипсета, JMB585 устанавливаем в «видеокарточный» слот.

Почему компания вообще озаботилась разработкой новых SATA-контроллеров? Потенциальный рынок сбыта мы назвали выше — модернизация старых компьютеров актуальность уже теряет (да и для нее лучше подходят старые же контроллеры), зато недостаток SATA-портов в современных вполне возможен. А тут актуальной оказывается как раз поддержка PCIe 3.0. Хотя очень похоже, что изначально в JMicron целились немного на другой рынок: недаром же в описании обоих чипов как одно из ключевых преимуществ названо Support Intel Thunderbolt 3 as storage expansion. Но многодисковые массивы под ТВ3 как-то не взлетели — так что разработанные (и, возможно, даже уже произведенные контроллеры) пошли на открытый рынок. Особого многообразия дизайнов плат не наблюдается — явно собственные до последнего времени были разве что у JEYI: карта расширения PCIe x16 под пять M.2 SATA SSD и пятипортовый же контроллер в формате M.2 2280. Недавно появилась еще пара дизайнов: три разъема плюс два слота M.2 22110 и четыре в комплекте с mSATA. В каких-то случаях могут быть и интересны, но все такие стоят существенно дороже «базового варианта».

Большинство же предложений используют именно его — такая карта, как пришла к нам. Маленький кусочек черного текстолита с пятью SATA-портами и пятью синими светодиодами (для отображения дисковой активности), криво прилепленный на чип декоративный радиатор (на деле лишь добавляющий немного солидности и взрослости, но не нужный), в комплекте низкопрофильная планка да 80 мм CD с кучей разных драйверов —, но для JMB58x на нем как раз ничего и нет. Но на компьютере под управлением более-менее современных систем (для Windows, например, это все версии начиная с Vista) он и не нужен — контроллер работает как абстрактный AHCI. Нужно собрать дисковый массив? Используем штатные средства ОС. И никаких проблем. А что-то устаревшее, как нам кажется, на компьютер, для которого целесообразно покупать такой адаптер, все равно установить вряд ли получится.

Как это работает — сейчас проверим.

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

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

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

Аппаратное же обеспечение для этой статьи, естественно, поменялось. Впрочем, основная система сегодня «стандартная»: на базе процессора Intel Core i7–7700 на плате ASRock Z270 Killer SLI (чипсет Intel Z270). В ней были опробованы два режима работы: второй «процессорный» слот PCIe 3.0×8 и «чипсетный» PCIe 3.0×1. Результаты последней конфигурации нам нужны для сравнения с ASM1061 в той же системе — сразу должна быть заметна разница между одной линией 2.0 и 3.0. А также отсутствие разницы (при использовании одного накопителя) между одной и двумя линиями 3.0. Тем более, что эти результаты можно распространить и на JMB582 — который отличается разве что количеством поддерживаемых портов, но использует как раз слот х1. Заодно все это сравним и с чипсетным контроллером SATA600.

Кроме того, мы воспользовались и системой на плате Asus P8Z77-V Deluxe с процессором Intel Core i7–3770K — именно в таком окружении в прошлый раз тестировался Marvell 88SE9235, а сегодня мы его сравним с JMicron JMB585. В одинаковых условиях — «чипсетный» слот PCIe 2.0×4. На самом деле, на этой плате мы тоже провели тесты и с использованием второго «процессорного» слота PCIe 3.0×8, но больше для страховки: как и следовало ожидать, для одиночного накопителя достаточно двух линий 2.0, так что какое-то преимущество новой версии интерфейса можно получить лишь в многодисковой конфигурации, да и то — если постараться специально. Поэтому на диаграммы вынесены результаты только одного варианта: второй продемонстрировал такие же с точностью до погрешности. Да и вообще, как уже было сказано выше, старые системы в данном случае дополнительная опция, а не основная: загружаться все равно придется с «чипсетного» контроллера, а дискретный полезен лишь кучей портов, что востребовано в основном для низкоскоростных устройств.

«Рабочим телом» во всех случаях (как и ранее) будет выступать SSD SanDisk Ultra 3D на 500 ГБ. И, поскольку сегодняшнее тестирование достаточно специфично, мы не стали заносить результаты тестов в общую таблицу: они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.

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

В данном случае эти тесты как никогда синтетичны: старая система с JMB585 не загрузится, а в новой и без того есть с чего — так что в обоих случаях контроллер полезен только для сборки файлохранилища…, но его для системных нужд использовать незачем. Однако, как пример (редкий в быту) сложной комплексной нагрузки — интересно.

Но не слишком. Явным аутсайдером здесь должен быть ASM1061 — так и вышло; однако даже в его случае размер отставания от других испытуемых невелик. С другой стороны, как мы помним, для «системных» нагрузок и вовсе SATA300 достаточно — так что можно и вовсе с контроллерами не возиться. А если этим заниматься по какой-то причине, то PCIe 2.0×2 или 3.0×1 полностью достаточно для полноценной реализации порта SATA600 — на уровне чипсетного контроллера. Так что все такие конфигурации вообще практически идентичны друг другу.

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

Как и предполагалось, протестировали SSD — и немного саму платформу. Во всех случаях — кроме одного (но давно изученного). В принципе, открытий и не ожидалось — просто нужно было убедиться в их отсутствии :)

Случайный доступ

Что интересно — при таких нагрузках JMB585 способен не только работать на равных с чипсетными контроллерами (что другим дискретным ему уступать не с чего — это и так предполагалось), но даже и обгонять их. Однако дорого яичко ко Христову дню: во времена господства SATA это было бы полезным результатом, а сейчас стало только лишь интересным — рекорды производительности давно уже принято требовать (если вообще требовать) совсем от других накопителей. Так что с практической точки зрения здесь важно лишь то, что достаточная скорость интерфейса позволяет не ограничивать и быстрые (в этом классе) устройства. А также может пригодиться тогда, когда максимальную производительность хочется «выжать» из нескольких таковых одновременно. Ситуация гипотетическая —, но не невозможная.

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

Больших отклонений от тестов низкого уровня нет. Пропускная способность PCIe 2.0×2 или 3.0×1 достаточна для реализации как минимум одного порта SATA600 без ограничений — что и получилось.

Запись — процесс более сложный, так что тут и PCIe 2.0×1 практически не ограничение. Ничего удивительного, что все прочие варианты подключения как минимум не хуже.

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

Рейтинги

Повторяется сказанное выше — JMicron JMB585 способен иногда обгонять и чипсетные контроллеры. Особенно «старые». По иронии судьбы, как раз в «старых» системах его использование менее интересно, чем в новых. Но, по крайней мере, и в них он «выступает» вполне на уровне. Так что, если стоит проблема нехватки SATA-портов — на сегодняшний день это одно из лучших решений. В ряде случаев можно будет даже одной линией PCIe обходиться — если не требовать параллельной работы нескольких быстрых устройств, поддержка PCIe 3.0 позволяет это сделать. А вот контроллерам предыдущего поколения для полноценной поддержки даже одного устройства в обязательном порядке требуются две линии.

Обобщенный рейтинг мы решили привести для всех — в т. ч. и для протестированных в прошлых сериях решений, поскольку так нагляднее. Хотя и ничего особенного — SATA оно и есть SATA, а хороший дискретный контроллер с этим интерфейсом справляется без нареканий.

Итого

Когда казалось, что жизнь в этом сегменте рынка уже прекратилась, было выпущено такое вот интересное решение. Современное — и решающее современные же проблемы: добавить портов, а не поддержку стандарта SATA600. Последнее не только не слишком актуально, но и лучше решается старыми контроллерами, чем JMicron JMB582/JMB585 — хотя бы из-за проблем с загрузкой. Впрочем, если таковая не нужна, JMB585 может пригодиться и в старом компьютере: он дешевле, чем Marvell 9230, да и портов чуть больше. JMB582 же искать в таком случае совсем незачем: ввиду отсутствия поддержки старыми компьютерами PCIe 3.0 он превратится в полный аналог копеечной ASMedia ASM1061.

Зато он может пригодиться в новом компьютере при нехватке SATA-портов: дополнительную пару устройств можно подключить, задействовав массовый (и достаточно редко чем-то занятый) слот PCIe x1. Понятно, что пара винчестеров с тем же успехом повисят и на каком-нибудь ASM1061, но почему бы не использовать потенциально более быстрое решение, благо оно недорогое? Ну, а JMB585 пригодится, когда нужна не пара устройств, а с десяток суммарно: четыре (иногда и больше) почти гарантированы «от чипсета» плюс еще пять на дискретном контроллере — вот и готово. Конечно, для его установки нужно найти «длинный» слот, однако если задачи обеспечить одновременную работу накопителей «в одну сторону» не стоит — хватит и х1 с пропилом.

В идеале лучше, чтобы этим озаботились производители системных плат —, но последние, к сожалению, накупили впрок столько ASM1061, что… До смешного доходит: недавно изученная Asus ROG Zenith II Extreme на чипсете AMD TRX40 ценой от 55 тысяч рублей снабжена четырьмя чипсетными портами SATA, а еще четыре реализованы на… двух ASM1061! Отдать эти две линии для JMB585 было бы куда полезнее: и на один порт больше, и скорость потенциально выше, да и плату разводить проще. В общем, на производителей системных плат в этом плане пока полагаться не приходится. С другой стороны, тенденция к сокращению SATA-портов в ближайшие годы будет только усиливаться, причем в платах среднего и нижнего ценового диапазонов производители вряд ли будут это «компенсировать» при помощи хотя бы ASM1061. Так что… спасение утопающих — дело рук самих утопающих. Благо хорошие спасательные средства на рынке есть.

Полный текст статьи читайте на iXBT