Технология TurboWrite у Samsung достаточно сходна с ранее рассмотренными технологиями акселерации записи, в основе которых — перевод ограниченного числа TLC-ячеек запоминающей NAND-матрицы в режим SLC. Документация на сайте производителя свидетельствует о наличии технологии TurboWrite во многих устройствах, разработанных компанией Samsung, в том числе и в серии PM871b. Несмотря на то, что алфавитно-цифровой код, совпадающий с точностью до модели исследуемого образца, отсутствует в документе, код серии совпадает с одной из надписей на маркировке накопителя. Получив бенчмарки производительности этого SSD, можем спокойно разобраться с особенностями реализации означенной технологии.

Диаграмма состояний
Как следует из иллюстрации приведенной ниже, в «медленной» запоминающей матрице, построенной на основе многоуровневых ячеек, выделяется «быстрая» область, работающая в режиме SLC. В общем случае это может быть аппаратно обособленный блок, либо (что более вероятно) микропрограмма устройства имеет возможность по своему усмотрению использовать определенную часть многоуровневых ячеек в качестве одноуровневых (допуская только два уровня из набора состояний многоуровневой ячейки), если объем свободного пространства накопителя позволяет скомпенсировать уменьшение плотности записи, неизбежно сопровождающее такое переопределение.

Стрелка Write to buffer на левом верхнем рисунке означает запись в TurboWrite Buffer по SLC-принципу, что подчеркивает способность выполнить запись значительно быстрее по сравнению с основной частью запоминающей матрицы. Эту скорость разумно соотнести с пиковой величиной Write Speed = 435 MBPS, полученной ранее.

Правый верхний рисунок на блок-схеме TurboWrite Technology Algorithm характеризует действия накопителя, направленные на освобождение SLC-буфера от ранее записанных данных с целью подготовки к акселерации следующих циклов записи. Для этого данные переписываются в основную часть запоминающей матрицы. Слово Idle позволяет предположить, что эта операция, асинхронная по отношению к обслуживанию запросов хоста, начнется только в том случае, если в течение определенного времени от хоста не поступает новых запросов. Это согласуется с тезисом о стабильной скорости чтения устройства: освобождение SLC-буфера, как конкурирующий процесс, имеет меньший приоритет, чем обслуживание текущей нагрузки, поступающей от хоста.
И наконец, нижний рисунок характеризует состояние переполнения SLC-кэш. Стрелка Write directly to the main area означает невозможность использовать SLC-кэш по причине его переполнения и необходимость записи в основную область запоминающей матрицы. Скорость такой записи логично соотнести с медианной величиной Write Speed = 162 MBPS, полученной нами ранее.
Для некоторых моделей, информацию об объеме SLC-буфера, в частности зависимость его объема от объема накопителя можно найти в документации. В общем случае этот параметр может зависеть от версии прошивки, поэтому требует отдельного внимания.

SLC-кэш: аспекты реализации
Firmware накопителя и внутренняя многозадачность
Продолжительность интервала «молчания хоста» Idle, после которого накопитель принимает решение о запуске фонового процесса освобождения SLC-буфера и методы экспериментального определения этого значения — тема отдельного исследования. Можно предположить, что этот параметр может зависеть не только от версии прошивки, но и от параметров инициализации накопителя драйвером при старте ОС. Возможно, упоминание о таком параметре появится в специализированных утилитах?
О циклической перезаписи
Еще один вопрос о циклической перезаписи блока. Происходит ли ускорение, если суммарный объем записанных данных превышает объем SLC-кэш, но при этом выполняется повторная перезапись блока, объем которого меньше объема SLC-кэш?
Трактовка результатов требует аккуратности
В общем случае, можно выделить 4 класса факторов, формирующих профиль зависимости производительности SSD-накопителей от объема обработанной информации. Рассмотрим их применительно к SATA-устройству в условиях эксперимента:
- Штатные программные механизмы буферизации, кэширования, и отложенной записи в операционной системе.
- Фирменные технологии, программно реализующие буферизацию, кэширование и отложенную запись, устанавливая собственные драйверы на нижних уровнях программного стека управления.
- Буферное ОЗУ на плате накопителя.
- Технологии акселерации записи, такие как SLC-кэширование Samsung TurboWrite.
Очевидно, что в первых двух случаях кэш-попадание означает подмену доступа к накопителю копированием информации в системном ОЗУ, пропускная способность которого кратно превышает возможности интерфейса SATA. Второй вариант отличается от первого некоторой спекулятивностью, поскольку опции отключения кэширования, действующие на уровне входных параметров ОС API могут утрачивать свои функции, что влияет на результаты бенчмарок, за счет «скрытого» кэширования.
Последние два случая основаны на внутренних ресурсах накопителя, поэтому «потолок» увеличения скорости физически ограничен возможностями интерфейса SATA3 (600 MBPS). Увы, фирменная документация, предоставляемая вендорами, мягко говоря, лаконична. Подробная информация об интерфейсном процессоре, микросхемах NAND и DRAM отсутствует в открытом доступе. Управляя опциями теста, оценивая уровни изменения скоростей чтения, записи и копирования, анализируя средние и пиковые значения скоростей (ось Y) и объемы информации (ось X), при которых имели место точки перегиба мы можем предположить, что основной вклад в наблюдаемый эффект внесла технология TurboWrite, хотя алгоритмы работы и численные характеристики буферного ОЗУ накопителя заслуживают отдельного анализа.
Резюме
Настало время перейти от теории к потребительским характеристикам протестированного устройства. «Виновник торжества» с тестовой нагрузкой справился довольно неплохо, достойно отреагировав на оптимизацию тестового сценария, частью которой был переход от многократного повторения записи, копирования и чтения одного файла к последовательному выполнению записи, копирования и чтения для серии файлов. Результат — рост медианной скорости чтения от 485 до 510-520 MBPS.
Стабильность и отсутствие на графиках значительных возмущений в нехарактерных точках дает основания предположить, что внутренние сервисные операции накопителя (в частности, освобождение SLC-кэш), асинхронно запускаемые встроенным процессором и конкурирующие с обслуживанием текущих запросов хоста, находятся на умеренном приоритете. Альтернатива в виде агрессивной оптимизации записи в ущерб чтению вряд ли была бы разумной.