Как работает SSD-диск?

Как работает SSD-диск?

Мы очень часто обсуждаем разницу между разными типами NAND- структур - вертикальных NAND и плоскостных, многоуровневых ячеек (MLC) и трехуровневых ячеек (TLC). Но мы еще ни разу не сели и не поговорили о более простом и фундаментально уместном вопросе: как, в первую очередь, работает SSD?

Чтобы понять, чем отличаются SSD от вращающихся дисков, нам нужно немного поговорить о жестких дисках. Жесткий диск хранит данные на вращающихся магнитных дисках, называющихся пластинами. Там есть манипулятор на электроприводе с прикрепленными головками чтения/записи. Этот манипулятор направляет головки над нужным участком диска для чтения или записи информации.

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

С самого начала было понятно, что жесткие диски не смогут предоставить необходимую скорость для мгновенной скорости работы компьютера. Задержка HDD измеряется в миллисекундах, в то время, как задержка работы процессора измеряется в наносекундах.  Одна миллисекунда это 1,000,000 наносекунд, а у жесткого диска уходит около 10-15 миллисекунд на то, чтобы найти данные и начать их считывать. Индустрия жестких дисков представила более маленькие пластины, дисковое пространство, более высокую скорость вращения, чтобы хоть как-то ускорить работу диска, но есть предел скорости работы таких дисков. Семейство VelociRaptor от Western Digital вращается со скоростью 10,000 оборотов в секунду, а это самый быстрый диск за всю историю потребительского рынка (некоторые корпоративные могут разгоняться и до 15,000). Проблема в том, что несмотря на скорость вращения, диск все еще значительно медленней, чем процессор.

Чем отличается SSD

"Если бы я спросил, чего хотят люди, они бы сказали, что более быстрых лошадей". Генри Форд.

Твердотельные накопители названы так потому, что не полагаются на подвижные части вращающихся дисков. Вместо этого, данные сохраняются в пул NAND памяти. Память NAND сама по себе состоит из так называемых транзисторов с плавающим гейтом. В отличие от транзисторных конструкций, которые используются в DRAM, нуждающемуся в обновлении несколько раз в секунду, память NAND разработана для удержания прежнего заряда даже если питания нет. Это делает NAND памятью, независимой от энергии.

Как работает SSD-диск?

Диаграмма выше показывает дизайн простой флеш-ячейки. Электроны, хранящиеся на плавающем гейте, который впоследствии считывает заряженный транзистор как "1", а не заряженный как "0". И да, в NAND памяти 0 означает наличие информации, в отличие от классической двоичной системы.  NAND память образует сетку. Весь макет сетки называется блоком, а отдельные строки, которые составляют сетку, называются страницами. Обычно страницы бывают таких размеров: 2К, 4К, 8К, и 16К, а на каждом блоке по 128 или 256 страниц. Размер блока колеблется от 256КБ до 2Мб.

Одно из преимуществ этой системы должно сразу бросаться в глаза. Из-за того, что в SSD нет подвижных частей, они могут работать на скоростях, недоступных для обычного HDD. На таблице показана задержка доступа на обычном носителе в миллисекундах.

Как работает SSD-диск?

NAND даже рядом не стоит с основной памятью, но она на несколько порядков быстрей, чем обычный жесткий диск. В то время, как задержки NAND памяти при записи значительно больше задержек при чтении, они все еще опережают обычный диск.

В таблице выше можно заметить две вещи. Во-первых, обратите внимание, как добавив больше бит в ячейку, NAND оказывает существенное влияние на производительность памяти. Записывает, впрочем, хуже, чем читает - типичная трехуровневая ячейка (TLC) в 4 раза хуже в сравнении с одноуровневой ячейкой (SLC) NAND при чтении, и в 6 раз хуже при записи. Задержка при вытирании также сильно снижена. Воздействие не пропорционально, TLC NAND почти в два раза медленней, чем MLC NAND, несмотря на удержание всего на 50% больше данных (три бита на ячейку вместо двух).

Как работает SSD-диск?

Напряжение TLC NAND

Причина такой низкой скорости TLC NAND в сравнении с MLC или SLC заключается в том, как данные перемещаются с/на ячейку NAND. C SLC NAND, контроллеру нужно только знать, чему равен бит - 0 или 1. С MLC NAND, ячейка может иметь четыре значения - 00, 01, 10, или 11. С TLC NAND, ячейка может иметь уже восемь значений. Чтение правильного значения с ячейки требует от контроллера памяти использования очень точного напряжения, чтобы удостовериться в заряженности ячейки.

Чтение, запись, cтирание

Одно из функциональных ограничений SSD заключается в том, что чтение и запись с/на пустой диск происходит очень быстро, а вот перезапись информации в разы медленней. Это из-за того, что когда SSD читает информацию на уровне страницы (в значении отдельных строк в памяти типа NAND) и могут записывать тоже на уровне страницы, предполагая, что окружающие ячейки пусты, они могут удалять данные только на уровне блоков. Это потому, что акт стирания NAND памяти требует большого напряжения. Хотя теоретически вы можете стереть NAND память на уровне страниц, объем требуемого напряжения устанавливается запросом отдельных ячеек вокруг ячейки, которая переписывается. Стирание данных на уровне блока помогает смягчить эту проблему.

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

Если вы пользовались SSD, вы, вероятно слышали о чем-то под названием "накопление мусора". Мусор - это фоновой процесс, который позволяет диску смягчать влияние на производительность цикла "вытри-запиши" путем выполнения определенной задачи в фоновом режиме. На изображении показывается процесс накомления мусора.

Как работает SSD-диск?

Обратите внимание, что на этом примере привод пользуется тем, что он может писать очень быстро, опустошая страницы и записывая новые значения для первых четырех блоков (A-D). Он также записал два новых блока - Е и Н. Блоки A-D теперь отмечены как устаревшие, а это означает, что они хранят информацию, которая значится в памяти диска как "устаревшая". Во время неактивного периода, SSD будет двигать новые страницы в новый блок, вытирая старый блок, и помечая его как пустое место. Это означает, что в следующий раз, когда SSD понадобится произвести запись, он может записать прямо на уже пустой блок Х, вместо того, чтобы произвести цикл "вытри-запиши".

Следующая концепция, которую следует упомянуть, это TRIM. Когда вы удаляете файл с Windows на простом диске, файл удаляется не мгновенно. Вместо этого, операционная система сообщает диску, что он может перезаписать физическое место на диске, где был файл в следующий раз, когда ему понадобится место. Вот почему можно восстановить файлы (и именно потому удаление файлов не освобождает место на диске, пока вы не очистите корзину). С традиционным HDD, ОС не нужно следить за тем, куда записывается информация, или какое относительное состояние блоков и страниц. С SSD, это важно.

Команда TRIM позволяет операционной системе говорить SSD, что он может пропустить перезапись некоторых данных в следующий раз, когда будет производить очистку блока. Это уменьшает общее количество данных, которые диск записывает и повышает долговечность SSD. Чтение и запись повреждают NAND память, но запись наносит гораздо больше вреда, чем чтение. К счастью, долговечность на блочном уровне не была проблемой для современных NAND носителей. Больше информации о долговечности SSD любезно предоставлено вот здесь.

Последние две концепции, о которых стоит упомянуть - выравнивание износа и усиление записи. Поскольку SSD записывают данные на страницы, но удаляют блоками, количество данных, записанных на носитель, всегда больше, чем фактическое обновление. Если вы вносите изменение в 4Кб файл, например, весь блок, который занимает этот файл, будет вытерт и переписан с обновлением. В зависимости от количества страниц на блок и размер каждой из них, вы можете вытереть целых 4Мб данных, чтобы просто обновить несчастные 4Кб. Сборка мусора понижает влияние на увеличение объема записи, как это делает и команда TRIM. Сохраняя значительную часть диска свободной, и/или заводское избыточное выделение ресурсов также может снизить влияние на увеличение объема записи.

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

Контроллер SSD

Должно быть очевидно, что SSD требуют более совершенных механизмов управления, чем жесткие диски. Это не просто предрассудки, на самом деле, HDD заслуживают большего уважения, чем они сейчас имеют. Механические проблемы, которые связаны с балансировкой множественного чтения-записи головками всего на нанометр от пластины, вращающейся со скоростью 5,000-10,000 оборотов в секунду - это вам не шубу сами знаете куда заправить. Тот факт, что HDD выполняют сложную задачу по внедрению новых методов записи на магнитные носители и при этом продают гигабайт памяти всего за 3-5 центов - просто невероятно.

Как работает SSD-диск?

Типичный контроллер SDD

SDD контроллеры, как бы там ни было, нами представляют свой класс. Они часто снабжены пулом DDR3 памяти, чтобы помочь NAND разбираться самой с собой. Много дисков также включают одноуровневые ячейки кэша, которые действуют как буферы, повышая производительность диска путем выделения быстрой NAND-памяти для чтения/записи циклов. Из-за того, что NAND память в SSD очень часто связана с контроллером посредством серии параллельных каналов памяти, вы можете подумать, что контроллер диска выполняет функции балансира в высокопроизводительном массиве памяти. SSD не развертывают RAID внутренне, но технология выравнивания износа, накопление мусора и управление кэшем SLC имеют аналоги в большом железном мире.

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

К сожалению, мы не можем вдаваться в подробности устройства контроллеров SSD, так как разные компании по-своему скрывают свои секреты. Большая часть производительности NAND памяти определяется базовым контроллером, и компании не готовы слишком уж срывать завесу таинственности со своей техники, чтобы не вручить конкуренту преимущество прямо в руки.

Дорога впереди

Память NAND предлагает огромный прирост производительности по сравнению с жесткими дисками, но не без собственных недостатков и проблем. Емкость дисков и цена за гигабайт, как ожидается, будут повышаться и падать соответственно, но вероятность того, что SSD догонит HDD по этим параметрам, крайне мала. Усадка узлов это серьезная проблема для памяти NAND, в то время, как большинство аппаратного обеспечения улучшается с уменьшением узла, NAND становится все более хрупкой. Время сохранения данных и производительность записи неразрывно ниже для 20нм NAND, в сравнении с 40нм NAND, даже если плотность и суммарная мощность значительно улучшена.

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

А на что это "другое" будет похоже пока что остается темой для обсуждения. И магнитные RAM и память с изменением фазы обе зарекомендовали себя как возможные кандидаты, хотя обе технологии находятся на ранней стадии разработки, и должны преодолеть множество трудностей, чтобы конкурировать в качестве замены NAND-памяти.  Заметит ли потребитель разницу - вопрос открытый. Если вы обновились с NAND на SSD, а затем прикупили более быстрый SSD, вы знаете, что разрыв между HDD и SSD гораздо больше, чем между SSD и SSD, даже при переходе со сравнительно более скромного носителя. Улучшение времени доступа с миллисекунд до микросекунд имеет большое значение, но прыжок с миллисекунд на наносекунды едва ли можно засечь человеческим разумом.

Сейчас NAND-память является царем горы, и будет оставаться таковой еще лет 5, как минимум.

Система Orphus
comments powered by Disqus
 
Top