Анатомия накопителей: SSD
Точно так же, как транзисторы совершили революцию в компьютерной области, увеличив скорость переключения и выполнения математических операций, использование полупроводниковых устройств в качестве накопителей привело к такому же результату.
Первые шаги на этом пути были сделаны компанией Toshiba, предложившей в 1980 году концепцию флеш-памяти. Четыре года спустя она создала NOR-память, а в 1987 году — NAND-память. Первый коммерческий накопитель с использованием флеш-памяти (solid state drive, или SSD) был выпущен SunDisk (позже переименованной в SanDisk) в 1991 году.
Большинство людей начало своё знакомство с твердотельными накопителями с так называемых USB-флешек. Даже сегодня их структура в целом напоминает конструкцию большинства SSD-дисков.
Чип NAND-памяти SanDisk заполнен миллионами «ячеек», созданных из модифицированных транзисторов с плавающим затвором. В них используется высокое напряжение для записи и стирания заряда в отдельных участках транзистора. При считывании ячейки на участок подается пониженное напряжение.
Если ячейка не заряжена, то при подаче пониженного напряжения ток течёт. Это даёт системе понять, что ячейка имеет состояние 0; в противоположном случае она имеет состояние 1 (т.е. при подаче напряжения ток не течёт). Благодаря этому чтение из NAND-памяти выполняется очень быстро, но запись и удаление данных не так быстры.
Самые лучшие ячейки памяти, называемые одноуровневыми ячейками (single level cells, SLC), имеют только одну величину заряда, создаваемого на участке транзистора; однако существуют и ячейки памяти, способные иметь несколько уровней заряда. В общем случае всех их называют многоуровневыми ячейками (multi-level cells, MLC), но в отрасли производства NAND-памяти аббревиатурой MLC обозначают 4 уровня заряда. Другие типы имеют похожие названия: трёхуровневые (triple level, TLC) и четырёхуровневые (quad level, QLC) имеют, соответственно, 8 и 16 различных уровней заряда.
Это влияет на то, сколько данных можно хранить в каждой ячейке:
- SLC — 1 уровень = 1 бит
- MLC — 4 уровня = 2 бита
- TLC — 8 уровней = 3 бита
- QLC — 16 уровней = 4 бита
И так далее. Кажется, что QLC — самые лучшие ячейки, правда? К сожалению, это не так. Токи очень малы и чувствительны к электрическому шуму, поэтому для определения разных уровней заряда ячейки нужно считывать значение несколько раз, чтобы подтвердить его. Если вкратце, то SLC — самые быстрые ячейки, но занимают больше всего физического пространства, а QLC — самые медленные, но за свои деньги вы получаете больше бит.
В отличие от SRAM и DRAM, при отключении питания заряд в флеш-памяти сохраняется и его утечка происходит очень медленно. В случае системной памяти ячейки разряжаются за наносекунды, а поэтому постоянно должны обновляться. К сожалению, использование напряжения и подача заряда повреждают ячейки, и поэтому SSD-диски со временем изнашиваются. Чтобы бороться с этим, используются хитрые процедуры, минимизирующие скорость износа; обычно они делают так, чтобы использование ячеек было наиболее равномерным.
Эту функцию контролирует управляющий чип, показанный справа. Ещё он выполняет те же задачи, что и чип LSI, используемый в HDD. Однако в приводах с вращающимися дисками есть отдельные чипы для DRAM-кэша и встроенного ПО Serial Flash, а в USB-флешке оба контроллера встроены. И поскольку они проектируются так, чтобы быть дешёвыми, особой функциональности вы от них не получите.
Флеш-память, используемая в лучших современных SSD, имеет тип SLC или MLC, то есть она работает чуть быстрее и изнашивается чуть медленнее, а полосы согнуты пополам и выстроены стоймя, образуя вертикальную или трёхмерную структуру ячеек. Также в них используется интерфейс SATA 3.0, хотя всё чаще применяется более быстрая система PCI Express через интерфейс NVMe.
В отличие от тяжёлого 3,5-дюймового привода Seagate, этот SSD имеет размер всего 2,5 дюйма и намного тоньше и легче.
Открыв корпус SSD-диска, мы увидим, что внутри почти ничего нет: Ни дисков, ни рычагов, ни магнитов — просто одна печатная плата, состоящая из нескольких чипов.
Так что же мы увидим в корпусе SSD Samsung? Небольшие чёрные чипы — это регуляторы напряжения, а остальные выполняют следующие функции:
- Samsung S4LN045X01-8030: трёхъядерный процессор на основе ARM Cortex R4, занимающийся обработкой инструкций, данными, коррекцией ошибок, шифрованием и управлением износом
- Samsung K4P4G324EQ-FGC2: 512 МБ памяти DDR2 SDRAM, используемой для кэша
- Samsung K9PRGY8S7M: каждый чип — это 64 ГБ 32-слойной вертикальной флеш-памяти NAND типа MLC (в сумме 4 чипа, два расположены на другой стороне платы)
У нас есть 2-битные ячейки флеш-памяти, несколько чипов памяти и много кэша, что должно обеспечить повышенную производительность. Почему? Вспомним, что запись данных во флеш-память — довольно медленный процесс, но наличие нескольких флеш-чипов позволяет выполнять запись параллельно. У USB-флешки нет много DRAM для хранения данных, готовых к записи, поэтому отдельный чип тоже в этом поможет.
При это улучшения относительно HDD оказалось огромным. Скорость и чтения, и записи стала значительно выше, а задержки намного меньше. Что ещё нужно для счастья? Меньше и легче, нет подвижных деталей; к тому же SSD потребляют меньше энергии, чем механические дисковые накопители.
Разумеется, за все эти преимущества имеют свою цену, и здесь слово «цена» используется в буквальном смысле: вы же помните, что за 350 долларов можно купить HDD на 14 ТБ? Если брать SSD, то за эту сумму удастся приобрести только 1 или 2 ТБ. Если вы хотите накопитель такого же уровня, то пока лучшее, что вы можете сделать — это потратить 4 300 долларов на один SSD корпоративного уровня ёмкостью 15,36 ТБ!
Некоторые производители изготавливали гибридные HDD — стандартные жёсткие диски, на печатных платах которых было размещено немного флеш-памяти; она используется для хранения данных на дисках, к которым часто осуществляется доступ.