Три чипсетных и два дискретных SATA-контроллера: изучаем влияние на производительность современного SSD
Методика тестирования накопителей образца 2018 года
Существует расхожее заблуждение, что высокое быстродействие твердотельных накопителей реализуемо только в случае современных систем, причем, желательно, наиболее производительных — дескать, нет смысла апгрейдить таким образом старую медленную систему. Что касается второго пункта, то он действительности не соответствует: задержки со стороны дисковой системы хорошо ощутимы в любом случае, а именно их и позволяет устранить использование SSD. Разумеется, скорость обработки видео или там частоту кадров в играх таким образом не поднимешь — твердотельный накопитель не является «волшебной пилюлей», излечивающей всё и вся. Но проблемы в своей области он решает. Причем скорость выполнения собственно дисковых операций от мощности системы не слишком зависит — мы уже видели это не раз, но проверить эту зависимость будет полезно.
Однако основной темой сегодняшнего исследования будет совсем другая. Любой накопитель «общается» с системой не через вакуум, а посредством того или иного интерфейса — обычно PCIe или SATA. Второй считается недостаточным даже в самой скоростной своей версии, что регулярно подчеркивается во всех обзорах (и не только наших). Казалось бы, если уж производительность ограничивают порты SATA600, то порты предыдущей версии стандарта SATA (с вдвое меньшей пропускной способностью) должны делать это еще сильнее — вплоть до потери смысла использования SSD в системе. И поскольку системы с такими портами продолжают эксплуатироваться, то у их владельцев возникают закономерные вопросы: стоит ли покупать SSD при наличии только SATA300 (во-первых) и не стоит ли тогда докупить заодно и дискретный контроллер с поддержкой новой версии стандарта (во-вторых)? В принципе, часть ответа на оба вопроса можно получить из истории проблемы, которую мы для начала освежим.
SATA-интерфейс в платформах Intel
Первые SATA-контроллеры в основной своей массе представляли собой немного переделанные устройства, рассчитанные еще на параллельную версию АТА-интерфейса, и поставлялись исключительно в дискретном исполнении. Причина — все та же проблема курицы и яйца: для массового применения любого интерфейса необходимо наличие использующих его устройств, но для разработки таковых сначала надо придумать и физически реализовать сам интерфейс. Поэтому разрабатывается все, как правило, на отдаленную перспективу: первая версия спецификаций SATA была принята еще в 2003 году, но для устройств того времени была бесполезна: даже винчестеры со скоростью вращения пластин 15 000 об/мин (только-только появившиеся и на массовость не претендующие) в лучшем случае обеспечивали скорость в 80 МБ/с, а более «традиционные» модели хорошо если достигали 60 МБ/с на части поверхности.
Но поскольку заложиться на будущее имело смысл, Intel добавила контроллер SATA в южные мосты ICH5/ICH5R — в том же 2003 году. Правда, на тот момент никаких дополнительных преимуществ использование SATA не обеспечивало, поскольку в ICH5/ICH5R не была реализована поддержка таких функций, как NCQ и прочих из набора возможностей SATA AHCI, т. е., по сути, режим работы контроллера был единственным и аналогичным РАТА. А вот следующее поколение южных мостов Intel такой функциональностью обзавелось, сохранив, правда, поддержку скорости лишь 150 МБ/с — хотя к середине 2004 года «на бумаге» уже существовали спецификации SATA II (со скоростью до 300 МБ/с), несколькими месяцами позднее реализованные Nvidia в своих чипсетах линейки nForce4.
Первый интегрированный SATA-контроллер Intel с поддержкой SATA300 появился в рамках южного моста ICH7, что произошло в первой половине 2005 года — и долгое время ничего радикально нового компания не предлагала. Собственно, и сам ICH7, изначально разработанный для чипсетов семейства i945, оказался долгожителем: позднее именно он использовался и в G31, и в G41, т. е. в бюджетных чипсетах, платы на которых продавались и после появления новых платформ. Но главное — что в новых южных мостах компании для чипсетов под LGA775 этот компонент никак не модифицировался.
В 2008–2009 году началось постепенное внедрение новых платформ. Тогда же можно было обеспечить и поддержку SATA600, благо все спецификации были приняты в июле 2008 года. Однако приняты они были, как обычно, на перспективу, поэтому в Intel не торопились. Единственный чипсет компании для LGA1366 использовал все тот же южный мост ICH10R, что и последние топовые продукты для LGA775. Он же лег в основу и PCH для LGA1156 — в результате чего новая платформа по-прежнему поддерживала только SATA300, а для периферии без специальных ухищрений могла использовать исключительно PCIe 1.1. Контроллер PCIe 2.0 был только в процессоре, причем поддерживаемые им 16 линий обычно принято было отдавать видеокартам.
SATA-контроллер с поддержкой скорости 600 МБ/с компания выпустила на рынок только в 2011 году — в рамках новой платформы LGA1155. При этом решено было не заменять им «старый», а дополнить — в итоге в большинстве чипсетов образовались порты разных версий стандарта, причем скоростных могло быть не более двух. Бюджетный же Н61 вообще получил только «старый» контроллер — и лишь четыре порта SATA300.
С чем было связано такое решение — сейчас установить трудно. AMD вот, например, контроллер именно поменяла, причем еще в 2010 году. Соответственно, продукция этой компании особых вопросов не вызывала. У Intel же подобная политика сохранилась и в следующей платформе LGA1150. Правда, в ее рамках «новый» контроллер был доработан и смог поддерживать до шести портов SATA600 — что в топовых чипсетах позволило обойтись без «старого». Но недорогие Н81, В85 и Q85 по-прежнему включали порты и SATA600, и SATA300. А SoC обновленной «атомной» архитектуры Bay Trail (которые компания начала продвигать уже и в настольном сегменте — в качестве универсальных бюджетных решений) только SATA300 и получили.
Полный же переход на SATA600 в платформах Intel произошел только в 2015 году — не так-то, в общем, и давно. С этого момента SATA300 нет ни в чипсетах для LGA1151, ни в интегрированных SoC. В какой-то степени мы вернулись в конец «нулевых», когда важно только количество портов для подключения накопителей, а «качество» у них у всех одинаковое. Впрочем, как уже было сказано выше, AMD новые южные мосты с поддержкой только SATA600 для АМ3 выпустила еще в 2010 году, а интегрированные платформы компании (начиная с FM1) SATA300 отродясь не поддерживали. В итоге для поклонников продукции этой компании всё всегда было простым и четким — без лишних вопросов.
Дискретные контроллеры SATA600: рекламные преимущества и реальные проблемы
С другой стороны, такая политика Intel была на руку производителям дискретных контроллеров, сильно приунывшим в середине «нулевых» из-за увеличения функциональности чипсетов. В результате им остались только узкие ниши: либо (полу)профессиональное использование (типа многопортовых RAID-контроллеров с собственными процессорами на борту), либо применение на материнских платах, когда чипсетных портов не хватает количественно — что тоже далеко в стороне от массового рынка. В каких-то объемах дискретные чипы РАТА, SATA150 и SATA300 реализовывать удавалось, но в небольших. А вот для SATA600, казалось бы, несколько лет все пути были открыты.
Правда, сразу обнаружились и подводные камни. В частности, все еще массового в те годы интерфейса PCI однозначно не хватало для таких скоростей — поэтому выпускать платы SATA-контроллеров для апгрейда совсем старых (на тот момент) систем вообще не имело смысла. Что же касается PCIe, то теоретическая пропускная способность одной линии первых версий этого интерфейса составляла 250 МБ/с, а второй — 500 МБ/с. На практике правильнее говорить, скорее, о 200/400 МБ/с, т. е. первой версии PCIe недостаточно даже для SATA300, а вторая может выдать и чуть более высокие скорости, но речи о полной реализации SATA600 все равно не идет. Да, линии PCIe, разумеется, можно объединять для увеличения скорости. К сожалению, в системах того времени для периферии чаще всего использовались слоты PCIe x1, а один (реже — два) PCIe x16, как правило, предназначались для видеокарт. Кроме того, поддержки PCIe 2.0 у «чипсетных» слотов не было до появления LGA1155 —, но в этой-то платформе уже и «встроенная» поддержка SATA600 появилась. До этого же производителям приходилось идти на специальные ухищрения: либо «отбирать» линии у видеокарт, либо… выпускать специальные платы расширения, рассчитанные на PCIe x4. В общем, вопрос «выжимания» 600 МБ/с в 2010 году не стоял — важнее было заставить дискретный контроллер работать не хуже чипсетного SATA300.
Не будем забывать, что тогда у большинства пользователей просто не было устройств, которым мог бы пригодиться максимальный скоростной режим SATA: винчестерам он и до сих пор не нужен, а SSD тогда были редки (причем многие их модели и сами по себе не поддерживали SATA600). Поэтому платы с интегрированными контроллерами семейств Marvell 91xx (они появились первыми) или ASMedia ASM1061 неплохо продавались просто из-за красивого шильдика на коробке: поддерживает SATA600, и хорошо.
Что интересно, в 2012 году появилось семейство контроллеров Marvell 92xx, где были исправлены многие проблемы предыдущего семейства (в частности, очень низкая скорость записи данных), а интерфейс подключения к хост-системе был расширен до PCIe 2.0×2. Чуть позднее вышли и мосты ASMedia ASM1062 — с тем же интерфейсом. Вот эти чипы уже хотя бы одному накопителю способны обеспечить полную скорость работы, но на системных платах они практически не встречаются, их нужно приобретать отдельно в виде карты расширения (и еще найти подходящий слот). Объясняется это тем, что производители системных плат на рубеже десятилетий закупили такое количество 91xx и ASM1061, что очистить склады не смогли и к 2015 году, продолжая припаивать эти чипы куда нужно и куда не нужно — например, на платы с чипсетом Z97, изначально поддерживающим шесть портов SATA600. Ну, а отдельные карты — это отдельные деньги, причем, как правило, бо́льшие, нежели стоимость платки на ASM1061, поскольку у производителей таковых запасы до сих пор не кончаются.
В общем, одной лишь заявленной поддержки SATA600 системной платой недостаточно — нужно для начала разобраться, что куда подключено (и можно подключить). Очевидно, что дискретный контроллер, использующий PCIe 1.1×1, использовать смысла не имеет — это даже не SATA300. Применение же PCIe 2.0×1 (LGA1155 и новее) какие-то шансы дискретным контроллерам дает. Какие — оценим. А заодно и посмотрим, каковы потери при использовании лишь SATA300 для современного SSD.
Методика и объекты тестирования
Методика подробно описана в отдельной статье, там можно познакомиться с используемым программным обеспечением.
Аппаратное же обеспечение для этой статьи, естественно, поменялось. Впрочем, в качестве эталона так и осталась наша тестовая система на базе процессора Intel Core i7–7700 на плате ASRock Z270 Killer SLI (чипсет Intel Z270). Также недавно мы протестировали SSD SanDisk Ultra 3D в составе Intel NUC 7i7BNH — тоже Core i7 «седьмого» поколения, но мобильный двухъядерный, что сказывается на результатах некоторых тестов.
Соответственно, мы продолжили работать с этим SSD, а основной сегодняшней тестовой платформой будет Asus P8Z77-V Deluxe с процессором Intel Core i7–3770K. Используемый в ней чипсет Z77 (топовое решение для LGA1155) как раз поддерживает два порта SATA600 и четыре SATA300. При этом сам процессор даже с точки зрения современности не слишком медленный, поэтому такие системы продолжают реально использоваться. И именно их владельцы часто задаются вопросами об интерфейсе: со следующего поколения (LGA1150) хотя бы пара портов SATA600 присутствовала уже во всех чипсетах, а предыдущие платформы (LGA775 или LGA1156) морально устарели и сами по себе. К тому же, «прикручивание» к ним дискретных контроллеров имеет свои особенности ввиду нехватки (а то и отсутствия) линий PCIe 2.0. У LGA1155 этой проблемы нет, так что многие платы для данной платформы снабжены дополнительными контроллерами SATA600. В частности, на P8Z77-V Deluxe их два: Marvell 88SE9128 и ASMedia ASM1061. Но только первый предназначен для «внутренних» разъемов, а второй обеспечивает поддержку двух портов eSATA, поэтому для тестирования мы воспользовались отдельной платой расширения на базе ASM1061. Ее же устанавливали и в «основной» стенд — интересно сравнить результаты и сами по себе.
Поскольку сегодняшнее тестирование достаточно специфично, мы не стали заносить результаты тестов в общую таблицу: они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.
Производительность в приложениях
В общем-то на этом тему можно закрывать. Во всяком случае, если говорить о системной производительности. Лучшим случаем тут, как и следовало ожидать, является относительно современная платформа с таким же процессором, худшим — даже не SATA300: этот вариант второй с конца, а дискретный контроллер Marvell еще медленнее. Но, главное, разброс результатов таков, что его можно и вовсе не принимать во внимание.
Потенциальная же разница, как и следовало ожидать, больше. Но не принципиально — в худшем случае (которым опять оказывается вовсе не «чипсетный» SATA300) твердотельный накопитель среднего класса замедляется… примерно до уровня бюджетной модели (например, Samsung 860 Qvo 1 ТБ демонстрирует 173 МБ/с, а Toshiba TR200 960 ГБ — 193 МБ/с). В чем, разумеется, нет ничего хорошего. Но и слишком плохого — тоже. Поскольку, во-первых, речь идет лишь о потенциальном быстродействии — без учета ограничения прочих подсистем компьютера. А во-вторых, и такой результат радикально превосходит достижимый винчестерами уровень. Т. е. если SSD приобретается просто для того, чтобы компьютер работал быстро — можно не волноваться и имея в наличии только SATA300. А вот удивлять друзей результатами бенчмарков, конечно, не получится —, но это мало кому требуется. Тем более, что и чипсетные контроллеры SATA600 появились еще в начале десятилетия — и с тех пор, как видим, никакого заметного прогресса в области производительности не наблюдается. Современный SSD быстрее доступных в те годы —, но «несовременный» дисковый контроллер ему не помешает.
Предыдущая версия тестового пакета демонстрирует нам аналогичную картину: не все дискретные контроллеры на практике быстрее, чем даже SATA300, но разброс результатов вообще не слишком велик. Низкоуровневые показатели отличаются друг от друга сильнее, но на них даже центральный процессор может сказываться.
Последовательные операции
Чтение данных оправдывает смысл существования дискретных контроллеров — даже при использовании PCIe 2.0×1, «потолок» немного выше, чем для SATA300. Но какую-то пользу из этого можно было извлечь только во времена чипсетов, без «врожденной» поддержки SATA600 — таковая реализация намного быстрее.
А когда дело доходит до записи, сразу видно, что некоторые дискретные контроллеры первого поколения могут только навредить, но никак не помочь. Ничего нового тут, разумеется, нет — эта особенность семейства Marvell 91хх известна давно, благо и сами контроллеры относительно старые. Но платы с ними пока еще «на ходу», так что остается только (в очередной раз) выразить соболезнования тем, кто выбирал такие модели на перспективу. И напомним, что на использованной нами сегодня Asus P8Z77-V Deluxe есть и Marvell 88SE9128, и ASMedia ASM1061. Но первый используется для внутренних SATA-портов, а второй — для пары eSATA на задней панели. Лучше бы было наоборот.
Случайный доступ
Производительность в этих сценариях никогда не достигает «потолка» SATA-интерфейса, но от его реализации зависит. Правда, также она зависит и от количества «лишних» элементов на пути данных — что всегда «бьет» по дискретным контроллерам. С учетом этого, от чипсетного SATA300 могут отставать не только разнообразные представители семейства Marvell 91хх, но и ASMedia ASM1061. В общем, еще один довод против плат расширения при отсутствии нехватки портов. А если таковая и наблюдается (что бывает редко, но не невозможно) — в пользу использования дискретных SATA-контроллеров только для подключения низкоскоростных накопителей, типа винчестеров. Правда, таковое делает как поддерживаемую версию SATA, так и интерфейс подключения к плате малозначимыми деталями, но так бывает часто.
Работа с большими файлами
Принципиальных отличий от показаний низкоуровневых бенчмарков не наблюдается. Да, разумеется, даже SATA600 давно уже сдерживает производительность твердотельных накопителей в таких сценариях — чего уж говорить про SATA300! Однако даже переключение SSD с чипсетного порта SATA300 на чипсетный же SATA600 вовсе не обязательно удвоит скорость — вопреки правилам арифметики :) А переход с чипсетного SATA300 на дискретный SATA600 может и вовсе производительность снизить. Если повезет — увеличить ее до уровня чипсетного SATA600, что, как видим, все равно не равно удвоению.
Рейтинги
Общие оценки показывают все сказанное выше —, но в сжатой форме. В частности, низкоуровневый балл существенно зависит от производительности операций со случайным доступом, а таковая от интерфейса зависит вовсе не линейно. В итоге и разница между портами одного и того же чипсета Z77 не двукратная, а лишь порядка 25%. Что характерно, отставание «старой» платформы от «новой» и при использовании одинаковой версии SATA-интерфейса составляет примерно 10% — с учетом вышесказанного, не так уж и мало. В итоге ее быстродействие оказывается ближе, скорее, к современным мобильным платформам.
Про дискретные контроллеры особо сказать нечего: разумеется, они могут обеспечить не большее увеличение быстродействия, чем обновление чипсета. Если же брать только модели с PCIe 2.0×1 (чем мы сегодня ограничились) — то «не большее» превращается в строго «меньшее». А неудачные результаты реализации дискретного SATA600 хуже, чем чипсетный SATA300.
Добавление результатов тестов высокого уровня картину немного сглаживает, но не меняет ее принципиально. И тут остается еще вспомнить, что лучшие результаты винчестеров в наших тестах — порядка 1500 баллов. Т. е. «механика» все равно радикально медленнее твердотельного накопителя, подключенного куда угодно — хоть к контроллеру SATA300, хоть к дискретному Marvell 91xx. Однако лучше все-таки не подключать SSD к дискретному Marvell 91xx:)
Итого
Для нас результаты тестирования новыми не являются — все это было давно известно. Но раз вопросы регулярно возникают — почему бы и не повторить.
Краткая выдержка для тех, кто не любит читать много текста и даже смотреть картинки: твердотельный накопитель полезен независимо от интерфейса. Собственно, первые-то модели SSD сами поддерживали только SATA300, и этого хватало. Освоение SATA600 позволило немного повысить производительность в некоторых сценариях, но ничего принципиально не изменило.
По возможности, конечно, следует использовать для SSD чипсетные порты SATA600, подключив к SATA300 низкоскоростные устройства (типа винчестеров). Повторимся: это не принципиально, но идеологически правильнее. Если же чипсет не поддерживает SATA600, то можно не дергаться, а спокойно ограничиваться SATA300. При наличии на плате дискретного контроллера ASMedia ASM1061 (что часто встречалось во времена Н61) можно использовать его — хуже не будет. А вот «старичков» Marvell (очень популярных во времена LGA1156, но заставших и следующую версию платформы Intel) лучше избегать. Приобретать дискретный контроллер специально для поддержки SATA600 смысла нет. Но если хочется — лучше поискать модель с интерфейсом PCIe 2.0×2, тогда хотя бы иногда можно будет выжать эти самые »600», а не «чуть более 300». Если же контроллер нужен просто для увеличения количества портов — подойдет любой, но «вешать» на него стоит низкоскоростные устройства.
Полный текст статьи читайте на iXBT