Загадка волшебного SSD: почему системный накопитель PlayStation 5 настолько быстр?

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

29 июля участники программы бета-тестирования PlayStation 5 получили возможность загрузить предварительную версию прошивки, разблокирующую встроенный M.2-слот для дополнительного SSD. А это значит, что совсем скоро каждый владелец консоли сможет поставить в нее высокоскоростной WD_BLACK SN850 и навсегда забыть о нехватке дискового пространства для любимых игр. Во всяком случае, именно эту линейку NVMe-накопителей рекомендует технический директор PlayStation Марк Церни, а он плохого не посоветует.

Но возникает логичный вопрос: не будут ли игры, установленные на дополнительный SSD, дольше загружаться и фризить? Ведь, если верить прессе, производительность системного накопителя PlayStation 5 достигает 9 ГБ/с, а это больше, чем у любого другого устройства из представленных на рынке, включая и SN850. И как вообще Sony удалось добиться столь фантастической производительности? Попробуем разобраться.

Ликбез: от чего зависит скорость NVMe SSD?

Сперва давайте выясним, каков предел возможностей современных NVMe SSD и от чего зависит их максимальная производительность. Обратимся к спецификациям интерфейса PCI Express и использующих его устройств, а для большей наглядности сравним полученные данные с характеристиками SATA-накопителей.

Интерфейс

Пропускная способность, МБ/с

SATA III

600

PCI Express Gen 3 × 4

3938

PCI Express Gen 4 × 4

7876

В случае с SATA III все выглядит вполне логично: те же WD Blue 3D NAND SATA SSD могут похвастаться максимальной скоростью передачи данных в 560 МБ/с, раскрывая потенциал, заложенный разработчиками стандарта, практически на все 100%. При этом весь модельный ряд, который включает пять устройств емкостью от 250 ГБ до 4 ТБ, имеет идентичные скоростные показатели.

Однако с NVMe SSD складывается несколько иная ситуация. Весьма наглядным является пример топовых игровых NVMe-накопителей серии WD_BLACK SN750 для ПК с интерфейсом PCI Express Gen 3.

Модель

Емкость

Скорость чтения, МБ/с

Скорость записи, МБ/с

WDS250G3X0C

250 ГБ

3100

1600

WDS500G3X0C

500 ГБ

3430

2600

WDS100T3X0C

1 ТБ

3470

3000

WDS200T3X0C

2 ТБ

3400

2900

WDS400T3X0C

4 ТБ

3400

3100

Здесь мы можем наблюдать прямую зависимость между емкостью накопителя и его производительностью, которая наиболее хорошо прослеживается в операциях записи файлов: WD_BLACK SN750 объемом 250 ГБ оказывается самым медленным из всей коллекции. Но почему так происходит?

WD_BLACK SN750 — топовые SSD для игровых компьютеров с интерфейсом PCI Express Gen 3
WD_BLACK SN750 — топовые SSD для игровых компьютеров с интерфейсом PCI Express Gen 3

Все дело в том, что скорость NVMe SSD определяется не столько чистой пропускной способностью интерфейса PCI Express, сколько грамотным управлением потоками данных. Поскольку протокол позволяет задействовать до 4 двунаправленных последовательных соединений типа «точка-точка», распараллеливание операций чтения/записи между кристаллами флеш-памяти помогает добиться серьезного прироста быстродействия. Таким образом, итоговая производительность SSD определяется тремя ключевыми факторами:

  1. архитектурой и функциональными возможностями контроллера;

  2. оптимизацией микропрограммы под параллельные вычисления;

  3. количеством кристаллов флеш-памяти.

Теперь все становится на свои места. В накопителях WD BLACK SN750 используются одни и те же микроконтроллер и прошивка, а вот количество кристаллов памяти отличается в зависимости от объема SSD, и именно поэтому модель на 250 ГБ и оказывается самой медленной. Пиковую же производительность демонстрируют лишь SSD емкостью от 1 ТБ и выше.

Учитывая все, сказанное выше, в истории с «волшебным SSD» можно обнаружить ряд несостыковок.

SSD PlayStation 5 распаян на системной плате консоли
SSD PlayStation 5 распаян на системной плате консоли

Во-первых, непонятно, каким образом Sony вообще удалось преодолеть физические ограничения интерфейса PCI Express Gen 4, увеличив максимально возможную пропускную способность на 1,1 ГБ/с. Во-вторых, весьма странным выглядит практически двукратный разброс скоростных показателей: почему в одних случаях SSD способен выдавать 9 ГБ/с, а в других — лишь 5,5 ГБ/с? Ну а в-третьих, если вы загуглите «SONY SSD», то, помимо публикаций, связанных с PlayStation 5, найдете лишь упоминание SATA-накопителей SLW-MG и SV-GS, выпущенных Sony еще в 2016–2017 годах.

Накопитель Sony SV-GS48 для видеомонтажа
Накопитель Sony SV-GS48 для видеомонтажа

И это удивляет больше всего. Ведь, имея в арсенале технологию создания настолько быстрых накопителей, японский гигант мог бы посоревноваться за первенство с признанными лидерами рынка. Учитывая, что на данный момент самыми быстрыми NVMe SSD являются WD_BLACK SN850, поддерживающие стандарт PCI Express Gen 4 и развивающие скорость вплоть до 7 ГБ/с в операциях последовательного чтения и до 5,3 ГБ/с при записи файлов, с таким продуктом Sony без проблем потеснила бы в таблице лидеров даже Western Digital.

WD_BLACK SN850 — самые быстрые NVMe SSD в мире
WD_BLACK SN850 — самые быстрые NVMe SSD в мире

Но главный вопрос, который наверняка волнует всех обладателей PlayStation 5 и тех, кто лишь собирается приобрести данную консоль: неужели игры, установленные на дополнительный SSD, будут тормозить? Раз уж на потребительском рынке нет ни одного NVMe-накопителя, способного передавать данные на скорости 9 ГБ/с, подобный вывод напрашивается сам собой.

Спешим успокоить (а может быть, кого-то и разочаровать): ответы на все эти вопросы донельзя банальны. На самом деле никаких проблем с производительностью при использовании сторонних NVMe-накопителей возникнуть не может, ведь «волшебного SSD», преодолевшего естественные ограничения PCI Express Gen 4, в природе не существует, а скорость 9 ГБ/с является, скажем так, порождением буйной фантазии некоторых представителей игровой прессы. Хотя без мифического существа все же не обошлось. И имя ему — Кракен.

Выпускайте Кракена: как Sony удалось взять планку в 9 ГБ/с?

Что касается самой по себе цифры 9 ГБ/с, то здесь как нельзя более уместной будет рекомендация профессора Преображенского: «Не читайте до обеда советских газет». Sony никогда не заявляла, что реальная скорость встроенного в PlayStation 5 SSD составляет 9 ГБ/с, в отличие от охочих до сенсаций журналистов игровых порталов. Если обратиться к официальной спецификации консоли, можно прочесть следующее:

Как видим, здесь указано, что «сырая» (то есть номинальная) скорость передачи данных в операциях чтения у встроенного в консоль твердотельного накопителя составляет 5,5 ГБ/с, что вполне укладывается в спецификации NVMe, да и в целом является весьма достойным результатом с учетом цен (рекомендованных, а не спекулятивных, вызванных дефицитом) на PlayStation 5. В то же время в сети можно действительно отыскать упоминание пропускной способности 9 ГБ/с, однако все уважающие себя издания (к таковым относятся в первую очередь профильные порталы, посвященные железу и гаджетам) добавляют к ней пометку «compressed», то есть с учетом компрессии. Что это означает?

Еще в марте 2020 года в рамках презентации «Дорога к PS5» Марк Церни упоминал технологию Kraken, позволяющую заметно сократить размеры дистрибутивов игр для новой консоли и повысить ее производительность. А уже в июне 2020 года в официальном твиттере компании RAD Game Tools появилось сообщение о том, что Sony приобрела лицензию на использование ее фирменного алгоритма сжатия текстур Oodle Texture для PlayStation 4 и PlayStation 5. В этом же твите отмечалось, что Oodle Texture демонстрирует невероятные результаты в паре с аппаратным декодером Kraken, встроенным в игровую консоль нового поколения. Именно связка Oodle Texture + Kraken и есть ключ к загадке сверхпроизводительного SSD PlayStation 5.

Kraken — это система сжатия данных без потерь, разработанная компанией RAD Game Tools специально для обработки игрового контента, и в первую очередь текстур, так как именно текстуры составляют большую часть объема дистрибутивов AAA-игр. В своем исходном варианте проект Kraken представлял собой программное обеспечение, оптимизированное для работы с современными многоядерными процессорами. При его создании специалисты из RAD Game Tools поставили перед собой цель добиться максимального параллелизма ввода-вывода на уровне команд CPU, что позволило не только значительно повысить скорость обработки данных, но и впоследствии существенно упростило разработку аппаратного декодера.

Сам по себе Kraken позволяет добиться уровня компрессии, сопоставимого с LZMA, однако при этом оказывается в 30 раз производительнее, нежели Lempel-Ziv-Markov chain-Algorithm, и в 4 раза быстрее, чем Zlib. Благодаря же превосходной оптимизации и использованию низкоуровневых подпрограмм ввода-вывода, Kraken демонстрирует практически идентичные результаты на любых процессорных архитектурах, будь это x86, x64, Jaguar или ARM.

В PlayStation 5 твердотельный накопитель и Kraken образуют единый I/O-стек: сжатые данные с SSD передаются напрямую декодеру, который осуществляет их распаковку «на лету» и затем выгружает в ОЗУ консоли, что позволяет минимизировать задержки и не тратить процессорное время.

Благодаря высокой производительности, декодер Kraken можно рассматривать как эффективный множитель скорости загрузки данных. Согласно внутренним измерениям Sony, проведенным в ходе тестирования возможностей игровой консоли, средний коэффициент амплификации составляет 1,64:1, что с учетом чистой скорости встроенного твердотельного накопителя 5,5 ГБ/с как раз и дает прирост пропускной способности до 9 ГБ/с. Проще говоря, стек SSD-Kraken способен передать в ОЗУ PlayStation 5 до 9 гигабайт несжатых данных за 1 секунду, хотя фактическая производительность SSD остается на уровне 5,5 ГБ/с.

Ключевой особенностью Kraken, отличающей его от прочих кодировщиков, является модульная структура. Декодер умеет свободно переключаться между различными режимами кодирования, преобразования данных и сопоставления строк, выбирая оптимальные комбинации в зависимости от особенностей битового потока. Причем Kraken способен подобрать наиболее подходящий режим для каждого полученного фрагмента данных в отдельности без перекодирования всего потока, что позволяет существенно ускорить обработку контента. На практике это означает, что декодер может опробовать и оценить эффективность N логических параметров за T(N) времени, тогда как в случае с традиционными монолитными файловыми декодерами поиск наиболее оптимальных параметров занял бы T(2N) времени.

Чтобы Kraken не стал «бутылочным горлышком» для SSD, разработчики постарались добиться и максимально предсказуемого уровня его производительности. Благодаря все той же модульной структуре декодер всегда перестраивается таким образом, чтобы обеспечить максимальную скорость обработки данных в наиболее сложных случаях (например, в ситуациях, когда приходится постоянно переключаться между литералами и короткими совпадениями).

Однако наилучшие результаты Kraken демонстрирует в связке с Oodle Texture — библиотекой, предназначенной для компиляции исходников текстур в форматы BC1–7, поддерживаемые графическими ускорителями. Специалисты компании провели собственное исследование, протестировав разные связки алгоритмов сжатия и декодирования. Результаты действительно впечатляют.

Используемая технология сжатия и распаковки

Коэффициент амплификации

Zip

1,64:1

Kraken

1,82:1

Zip + Oodle Texture

2,69:1

Kraken + Oodle Texture

3,16:1

В отличие от прочих кодировщиков, Oodle Texture дополнительно оптимизирует скомпилированные текстуры таким образом, чтобы повысить эффективность их обработки с помощью декодера Kraken. Форматы BC1–7 предполагают кодирование фрагментов 4×4 пикселя в блоки данных по 8 или 16 байт, однако существующие кодировщики не создают паттернов, с которыми мог бы эффективно работать Kraken. В этом и заключается главное отличие Oodle Texture от всех альтернативных решений: библиотека изначально обрабатывает исходники таким образом, чтобы в полученных текстурах формата BC1–7 присутствовали паттерны, которые мог бы выявить Kraken. Это позволяет кодировать данные при сжатии, используя меньшее количество битов, и при этом отказаться от таких ресурсозатратных операций, как контекстное или арифметическое кодирование.

Наглядным примером того, как работает связка Oddle Texture + Kraken, является приключенческий экшен Deathloop от Arkane Studios, релиз которого намечен на 14 сентября 2021 года. Согласно заявлениям разработчиков, новая технология сжатия текстур позволила уменьшить размер дистрибутива игры с 25,9 ГБ в версии 01.000.000 до 17,3 ГБ в версии 01.001.000, то есть на 8,6 ГБ, или 33%.

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


Резюмируем все, сказанное выше:

  • в качестве системного накопителя в Sony PlayStation 5 используется SSD, скорость которого достигает 5,5 ГБ/с в операциях последовательного чтения;

  • пропускная способность 9 ГБ/с указана с учетом распаковки игровых ассетов «на лету» с помощью аппаратного декодера Kraken;

  • использование дополнительных твердотельных накопителей, соответствующих минимальным требованиям, никак не скажется на производительности консоли.

Аппаратный декодер Kraken будет обрабатывать сжатые ассеты независимо от того, на какой именно накопитель установлен дистрибутив игры, а значит, никаких проблем при использовании SSD от сторонних вендоров с производительностью от 5,5 ГБ/с не возникнет. Данный факт уже подтвердил Майк Фитцджеральд, занимающий пост директора по базовым технологиям Insomniac Games — студии, ответственной за игровые серии Spider-Man и Ratchet & Clank.

Таким образом, если вы поставите в PlayStation 5 твердотельный накопитель WD_BLACK SN850, номинальная скорость которого достигает 7 ГБ/с в операциях чтения, что на 22% больше по сравнению с SSD, встроенным в игровую консоль, то уж точно не будете испытывать никаких проблем даже в наиболее технологичных играх.

Источник: https://habr.com/ru/company/wd/blog/572674/


Интересные статьи

Интересные статьи

Собеседование инженера программиста сегодня часто включает в себя некий тест или упражнение на программирование, и я думаю, что это очень плохая вещь. Вот почему. Приятн...
Сегодня мы подключим датчики полиграфа к шести девушкам, обучающимся в театральном вузе. Их задача — говорить неправду в некоторых ситуациях. Ваша задача — задавать вопросы и смотреть...
Одно из первых наставлений, которое молодой падаван получает вместе с доступом к git-репозиториям, звучит так: «никогда не ешь жёлтый снег делай git push -f». Поскольку это одна и...
Всем привет! Меня зовут Леонид, я — разработчик сайта Поиск VPS. Некоторое время назад ко мне в обратную связь писало немало пользователей, которые просили помощи в подборе виртуально...
Лого взято из Github репозитория FastAPI FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, ...