![](https://habrastorage.org/getpro/habr/upload_files/8d3/3f8/14e/8d33f814ed23f84620d98c62b0062919.png)
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](https://habrastorage.org/getpro/habr/upload_files/8bb/03e/8f0/8bb03e8f07d81c99b25a95aa7ed65f49.png)
Все дело в том, что скорость NVMe SSD определяется не столько чистой пропускной способностью интерфейса PCI Express, сколько грамотным управлением потоками данных. Поскольку протокол позволяет задействовать до 4 двунаправленных последовательных соединений типа «точка-точка», распараллеливание операций чтения/записи между кристаллами флеш-памяти помогает добиться серьезного прироста быстродействия. Таким образом, итоговая производительность SSD определяется тремя ключевыми факторами:
архитектурой и функциональными возможностями контроллера;
оптимизацией микропрограммы под параллельные вычисления;
количеством кристаллов флеш-памяти.
Теперь все становится на свои места. В накопителях WD BLACK SN750 используются одни и те же микроконтроллер и прошивка, а вот количество кристаллов памяти отличается в зависимости от объема SSD, и именно поэтому модель на 250 ГБ и оказывается самой медленной. Пиковую же производительность демонстрируют лишь SSD емкостью от 1 ТБ и выше.
Учитывая все, сказанное выше, в истории с «волшебным SSD» можно обнаружить ряд несостыковок.
![SSD PlayStation 5 распаян на системной плате консоли SSD PlayStation 5 распаян на системной плате консоли](https://habrastorage.org/getpro/habr/upload_files/af6/241/064/af624106482f895395ea41e8ccca0f98.png)
Во-первых, непонятно, каким образом 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 для видеомонтажа](https://habrastorage.org/getpro/habr/upload_files/5b6/b04/d6b/5b6b04d6b970241b788c410d659425d9.png)
И это удивляет больше всего. Ведь, имея в арсенале технологию создания настолько быстрых накопителей, японский гигант мог бы посоревноваться за первенство с признанными лидерами рынка. Учитывая, что на данный момент самыми быстрыми 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 в мире](https://habrastorage.org/getpro/habr/upload_files/6d1/e74/80a/6d1e7480a195ae3fe102e06e77ada2b7.png)
Но главный вопрос, который наверняка волнует всех обладателей PlayStation 5 и тех, кто лишь собирается приобрести данную консоль: неужели игры, установленные на дополнительный SSD, будут тормозить? Раз уж на потребительском рынке нет ни одного NVMe-накопителя, способного передавать данные на скорости 9 ГБ/с, подобный вывод напрашивается сам собой.
Спешим успокоить (а может быть, кого-то и разочаровать): ответы на все эти вопросы донельзя банальны. На самом деле никаких проблем с производительностью при использовании сторонних NVMe-накопителей возникнуть не может, ведь «волшебного SSD», преодолевшего естественные ограничения PCI Express Gen 4, в природе не существует, а скорость 9 ГБ/с является, скажем так, порождением буйной фантазии некоторых представителей игровой прессы. Хотя без мифического существа все же не обошлось. И имя ему — Кракен.
Выпускайте Кракена: как Sony удалось взять планку в 9 ГБ/с?
![](https://habrastorage.org/getpro/habr/upload_files/103/993/ace/103993ace99d04a10c3655c00901ba85.png)
Что касается самой по себе цифры 9 ГБ/с, то здесь как нельзя более уместной будет рекомендация профессора Преображенского: «Не читайте до обеда советских газет». Sony никогда не заявляла, что реальная скорость встроенного в PlayStation 5 SSD составляет 9 ГБ/с, в отличие от охочих до сенсаций журналистов игровых порталов. Если обратиться к официальной спецификации консоли, можно прочесть следующее:
![](https://habrastorage.org/getpro/habr/upload_files/a01/8b4/a2d/a018b4a2d3d9936c6a588adc4f771987.png)
Как видим, здесь указано, что «сырая» (то есть номинальная) скорость передачи данных в операциях чтения у встроенного в консоль твердотельного накопителя составляет 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.
![](https://habrastorage.org/getpro/habr/upload_files/563/d18/299/563d18299079f76c4cb14be6a4ab7819.png)
В PlayStation 5 твердотельный накопитель и Kraken образуют единый I/O-стек: сжатые данные с SSD передаются напрямую декодеру, который осуществляет их распаковку «на лету» и затем выгружает в ОЗУ консоли, что позволяет минимизировать задержки и не тратить процессорное время.
![](https://habrastorage.org/getpro/habr/upload_files/98e/0cf/a9d/98e0cfa9dda8d1eeea96f2676d870203.png)
Благодаря высокой производительности, декодер 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, разработчики постарались добиться и максимально предсказуемого уровня его производительности. Благодаря все той же модульной структуре декодер всегда перестраивается таким образом, чтобы обеспечить максимальную скорость обработки данных в наиболее сложных случаях (например, в ситуациях, когда приходится постоянно переключаться между литералами и короткими совпадениями).
![](https://habrastorage.org/getpro/habr/upload_files/cb9/061/ae2/cb9061ae2031f67a15a3621442309016.png)
Однако наилучшие результаты 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. Это позволяет кодировать данные при сжатии, используя меньшее количество битов, и при этом отказаться от таких ресурсозатратных операций, как контекстное или арифметическое кодирование.
![](https://habrastorage.org/getpro/habr/upload_files/b69/4b4/0b3/b694b40b3d0712fce42b639fc63cc753.png)
Наглядным примером того, как работает связка Oddle Texture + Kraken, является приключенческий экшен Deathloop от Arkane Studios, релиз которого намечен на 14 сентября 2021 года. Согласно сведениям парсера PlayStation Game Size, отслеживающего изменения в базе данных PSN, разработчикам удалось уменьшить размер дистрибутива игры с 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, встроенным в игровую консоль, то уж точно не будете испытывать никаких проблем даже в наиболее технологичных играх.