Первый взгляд на PCIe SATA-контроллер на чипе ASMedia ASM1166

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Во времена оны дискретные дисковые контроллеры требовались любому ПК – поскольку никаких других и не было. Позднее появились интегрированные – но дискретные оставались актуальными: для увеличения количества подключаемых накопителей, для освоения новых версий интерфейсов – или просто для расширения функциональности (типа RAID-массивов и т.п.). Последние два варианта актуальность практически утратили порядка десяти лет назад – развитие остановилось на SATA600 (некоторое время, конечно, ушло на то, чтобы все чипсетные порты на всех платформах стали таковыми), да и возможность создания дисковых массивов стала стандартной фичей и чипсетных контроллеров. Тогда же казалось, что и с количеством все хорошо и таким останется – но вот лет пять назад количество SATA-портов в чипсетах начало сокращаться. Незаметно, но монотонно – благодаря FlexIO. Старшие чипсеты Intel, к примеру, поддерживают до восьми SATA – но от нуля: каждый таковой порт чипсета может использоваться либо как SATA600, либо как PCIe 3.0 x1. Линии PCIe становятся дефицитным товаром, нужно их все больше (какой-нибудь один NVMe-накопитель уже требует х4 – т.е. «заменяет» четыре SATA-устройства) – в итоге на платы редко устанавливают более шести SATA, да и из этих в части конфигураций не все доступны. Чипсеты для AMD AM4 более архаичны, но все равно – в В550 или Х570 «гарантированных» (ни с кем не пересекающихся) SATA лишь четыре – а больше может есть, может не есть. В середине прошлого десятилетия обычным для старших было шесть-восемь, а то и 10 независимых SATA-портов – чего уже нет и больше не будет.


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

«Старые» SATA-контроллеры десятилетней давности эти проблемы решают плохо. Во-первых, они были рассчитаны на PCIe 2.0 – так что все модели, ограниченные одной линией, не обеспечивают ни одного полноскоростного порта: пропускная способность SATA600 выше, чем PCIe 2.0. А в «двухлинейных» моделях «размен» по невыгодному курсу. Особенно в ASMedia ASM1062 – две линии на два порта даст и чипсет. В общем, единственные имеющие смысл модели – Marvell 9235 или с некоторой натяжкой 9215. Оба четырехпортовые, но первый под х2, а второй под х1 – для жестких дисков можно обойтись и таким. Первый же решал обе проблемы, но четыре порта из двух линий – на грани рентабельности.

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

В общем, этому решению уже был посвящен специальный обзор – заодно и с исторической ретроспективой, и т.п. так что его имеет смысл прочитать при наличии интереса. Сегодня – о другом; пока вкратце. Как известно, свято место пусто не бывает – так что, если уж появляется новая рыночная ниша (или актуальной становится некогда почти «умершая»), в нее всегда стремится более одного производителя. JMicron вернулась к производству дискретных SATA-контроллеров после длительной паузы (предыдущие продукты компании появлялись еще как бы не во времена SATA300). ASMedia его и не прекращала, однако продукты компании в современных условиях перестали быть интересными. Значит нужны новые.

Новых контроллеров получилась целая линейка – на сайте перечислены ASM1064, ASM1164 и ASM1166, но вне его встречаются и упоминания об ASM1165. Ключевое в новом семействе – поддержка PCIe 3.0 для подключения к хост-системе: в количестве одной линии в младшем ASM1064 или двух в остальных продуктах. Последняя цифра – количество SATA-портов, т.е. от четырех до шести. В итоге самыми интересными чипами оказываются старший и младший, причем на али есть уже и те и другие, да и стоят примерно одинаково. Зачем в таком случае нужен 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. Кроме того, новые контроллеры JMicron и ASMedia собственным BIOS не снабжаются, так что на старых платах загрузка системы с подключенных к ним накопителей не поддерживается. В новых соответствующие модули уже включены непосредственно в «основную» часть UEFI-прошивки, так что и загрузка работает тоже.

Как это работает на практике? Более подробный обзор-сравнение новых решений будет со временем. Пока проведем небольшое экспресс-тестирование. На стандартном тестовом стенде: на базе процессора Intel Core i7-7700 на плате ASRock Z270 Killer SLI (чипсет Intel Z270). В ней были опробованы два режима работы: второй «процессорный» слот PCIe 3.0 x8 и «чипсетный» PCIe 3.0 x1. «Рабочим телом» во всех случаях (как и ранее) будет выступать SSD SanDisk Ultra 3D на 500 ГБ.

Для начала посмотрим – как на контроллерах нового поколения сказывается использование одной линии PCIe. Как видим, практически никак – после перехода на 3.0, пропускная способность этого интерфейса даже в минимальном виде стала достаточной для полноценной работы как минимум одного порта SATA600. Для того, чтобы получить такое от PCIe 2.0, нужно две линии. Когда есть только одна – смотрим на примере до сих популярного (к сожалению) среди производителей системных плат ASM1061 – скорость передачи данных намного ниже. Лишь немногим быстрее SATA300. Новым же контроллерам большее количество линий PCIe (что они поддерживают в старших версиях) может потребоваться тогда и только тогда, когда мы попытаемся заставить работать несколько дисков одновременно, причем в одном направлении. В разных (например, при копировании данных с одного диска на другой) – проблем не будет, поскольку PCIe интерфейс двунаправленный, а вот SATA – нет. Но, поскольку такие сценарии массовыми не являются, можно по этому поводу сильно не напрягаться. Особенно если стоит задача подключить к системе большое количество жестких дисков, а не SSD – в самодельном NAS, например. Скорость последних ниже – так что хоть шесть портов того же ASM1166 в одном направлении сразу задействуй, но на это двух линий PCIe 3.0 хватит. А для более реальных жизненных ситуаций – и одной.

Что еще более забавно, PCMark 10 Full System Drive Test вообще отдает предпочтение современным дискретным контроллерам, причем независимо от места подключения и ширины интерфейса. Понятно, что сейчас это имеет лишь академическое значение, поскольку скорости принято искать совсем в других сегментах, но… Когда-то дискретные контроллеры при прочих равных стабильно работали медленнее, нежели чипсетные. Обогнать последних могли лишь в отдельных сценариях и «при неравных» — например, если поддерживали более продвинутые стандарты/протоколы. Однако долгая неизменность SATA сыграла с его поддержкой производителями платформ злую шутку – давно уже реализуют по остаточному принципу. Да и количество портов начали сокращать. В чем все-таки ничего страшного нет – лишь небольшие неудобства и дополнительные расходы. Во всяком случае, если говорить о настольных компьютерах (а в другие все равно «кучу SATA» и не набьешь), модульная архитектура которых позволяет добавить разъемов и самостоятельно. При помощи чего – есть, по крайней мере. Что заодно и выбор плат несколько упрощает. Необязательно гоняться за большим количеством набортных SATA – особенно учитывая, что даже на недешевых платах часть может быть добавлена при помощи какой-нибудь тормознутой древности, типа ASM1061. Был бы свободный слот расширения – хотя бы х1 в любом виде: как минимум четыре быстрых порта при этом добавить получится.