Кэш SLC: использование и характеристики в твердотельных накопителях NVMe

Кэш SLC

Один из терминов, относящихся к производительности твердотельных накопителей NVMe, который вы чаще всего слышали в последние месяцы, - это SLC Cache. Вот почему мы подготовили для вас эту статью, чтобы вы могли понять, как она работает и какие преимущества она дает для производительности наших высокопроизводительных твердотельных накопителей.

Хранение данных на основе технологии NAND Flash привело к смене парадигмы в различных секторах вычислений, от карт памяти для портативных устройств до Твердотельные накопители NVMe на ПК. Именно в последнем случае было устранено одно из исторических узких мест в истории благодаря отсутствию ограничений как по задержке доступа, так и по пропускной способности традиционных жестких дисков, однако не существует идеальной технологии, которая работала бы на 100%, и всегда есть элементы, которые отягощают его, заставляя инженеров искать и внедрять решения.

NAND Flash и ячейки памяти

Типос Celda NAND Flash SLC TLC MLC QLC

Флэш-память NAND - это тип энергонезависимой памяти или энергонезависимой памяти. Оперативная память, это означает, что его работа такая же, как и у обычного ОЗУ, но с той разницей, что его данные не теряются, когда система перестает получать питание. Компромисс за наличие этой возможности заключается в ограниченном количестве операций записи в память в течение ее жизненного цикла. Хотя преимущества в виде производительности, когда дело доходит до доступа к хранилищу, того стоят, не напрасно, каждая компьютерная система работает ровно настолько, насколько быстро ее самая медленная часть, которой обычно является хранилище, оставляет ее.

Каждый бит памяти в оперативной памяти хранится в так называемых ячейках памяти и в первой флэш-памяти NAND, используемой для SSD Для хранения использовался один бит на ячейку, что делало хранение очень дорогим. Решение? Каждая ячейка может содержать данные размером 2 бита ( ДЛК ), 3 бита ( ТСХ ) или до 4 бит ( QLC ). Добавленная проблема? Чем больше битов на ячейку, тем быстрее они деградируют и, следовательно, меньше срок их службы. Имейте это в виду, потому что это основа для понимания SLC Cache.

Ячейки TLC и QLC не просто разлагаются по продолжительности

SSD NVMe

Как только вы дойдете до этой точки, у многих из вас в голове возникнет идея, что флэш-память NAND типа MLC, TLC и QLC имеет большую емкость, хотя и меньшую продолжительность, но пропускная способность всех из них одинакова и, следовательно, тип ячейки не влияет на производительность. Что ж, позвольте нам сказать вам, что на этом плохие новости не заканчиваются, но скорость доступа также ухудшается.

Когда ЦП делает запрос на доступ к адресу памяти в твердотельном накопителе NVMe, он принимается контроллером флэш-памяти, который будет искать данные в памяти для их передачи через интерфейс PCI Express или SATA, в зависимости от того, какой из них вы используете. устройство, но контроллер флэш-памяти обращается к микросхемам NVMe устройства напрямую для управления его данными, а не через упомянутые нами интерфейсы.

Способ хранения данных во флэш-памяти NAND - это изменение напряжения, для памяти SLC требуется только 1 напряжение, для MLC требуется 3 , но TLC идет к 7 и если мы перейдем в QLC, все будет в 15 . Что ж, чем больше число, тем больше времени требуется для выполнения операции чтения и записи. И когда это начинает быть проблемой? Что ж, из памяти TLC и если вы посмотрите на количество SSD-накопителей NVMe в магазинах, вы увидите, что все они используют эти ячейки, по крайней мере, сегодня.

Решение: кэш SLC

Кэш-память SLC NVMe
Первое, что следует иметь в виду, это то, что кэш SLC не совпадает с кешем DRAM, который также есть в некоторых твердотельных накопителях NVMe, поскольку мы не говорим о энергозависимой памяти, которая находится между контроллером флэш-памяти и интерфейсом PCI. Выражаем то же самое, поскольку кэш SLC также находится в модулях без DRAM. В целом, хотя есть исключения, которые мы увидим позже, в каждом чипе NVMe есть два типа флэш-памяти NAND:

  • Память TLC или QLC для хранения данных
  • Память SLC гораздо меньшего размера, которая служит кеш-памятью.

Первое, что мы должны понять, это то, что кеш - это не что иное, как память, которая намного ближе к процессору и, следовательно, с меньшей задержкой, которая временно хранит данные. Если мы пересмотрим то, что мы вам сказали, у нас есть следующие предпосылки:

  • Ячейки SLC имеют гораздо более длительный срок службы, чем TLC, и даже дольше, чем QLC, поэтому им требуется гораздо больше времени для разрушения.
  • Скорость доступа ячеек SLC намного выше.

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

Производительность кэша SLC

SLC MLC TLC аккумуляторная батарея
Мы подошли к самой важной части, кэш SLC имеет фиксированный размер, а это означает, что, если мы используем его для отправки или получения небольших данных, его производительность будет поддерживаться, но если, например, мы хотим сделать последовательную копию данных в виде очень большого блока данных, как только SLC заполнится, производительность упадет.

Вот почему, хотя у нас в руках может быть два твердотельных накопителя NVMe с одинаковым хранилищем, интерфейсом доступа и даже типами ячеек, то есть практически одинаковыми, они могут иметь совершенно разную производительность. Причина? Очевидно, что кэш SLC может отличаться по размеру.

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

Типы кэша SLC

Типос Каше SLC
Есть два способа управления кешем SLC, которые будут зависеть от алгоритма, который производитель реализовал во флэш-контроллере. Скорее, это относится к тому, сколько места в нем можно выделить для временного хранения.

  • В статическом кэше пространство для хранения фиксировано и не может меняться по размеру.
  • В динамическом кэше выделяемый размер является переменным.

Как возможен динамический кеш, если количество ячеек SLC фиксировано? Уловка состоит в том, чтобы использовать ячейки TLC NVMe, как если бы они были SLC, то есть заставить их хранить по одному биту в каждой вместо 3. Итак, есть несколько чипов NVMe, которые перераспределяют часть хранилища в качестве кеша.

Преимущество динамического кэша состоит в том, что размер кэша SLC не исчерпан, но существует риск того, что все больше и больше ячеек TLC больше не будут использоваться для хранения, что влияет на общую емкость этого кеша для хранения данных. По этой причине в большинстве динамических систем кэширования SLC используются системы, которые ограничивают максимальный размер этого с помощью встроенного ПО.