Часть 1. Анатомия накопителей: жёсткие диски
Твёрдый, как камень
Точно так же, как транзисторы совершили революцию в компьютерной области, увеличив скорость переключения и выполнения математических операций, использование полупроводниковых устройств в качестве накопителей привело к такому же результату.
Первые шаги на этом пути были сделаны компанией Toshiba, предложившей в 1980 году концепцию флеш-памяти. Четыре года спустя она создала NOR-память, а в 1987 году — NAND-память. Первый коммерческий накопитель с использованием флеш-памяти (solid state drive, или SSD) был выпущен SunDisk (позже переименованной в SanDisk) в 1991 году.
Большинство людей начало своё знакомство с твердотельными накопителями с так называемых USB-флешек. Даже сегодня их структура в целом напоминает конструкцию большинства SSD.
Слева показан один чип NAND-памяти SanDisk. Как и SRAM, он используется в кэшах ЦП и GPU. Он заполнен миллионами «ячеек», созданных из модифицированных транзисторов с плавающим затвором. В них используется высокое напряжение для записи и стирания заряда в отдельных участках транзистора. При считывании ячейки на участок подается пониженное напряжение.
Если ячейка не заряжена, то при подаче пониженного напряжения ток течёт. Это даёт системе понять, что ячейка имеет состояние 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-флешке оба контроллера встроены. И поскольку они проектируются так, чтобы быть дешёвыми, особой функциональности вы от них не получите.
Но благодаря отсутствию подвижных частей можно с уверенностью ожидать, что производительность флеш-памяти будет выше, чем у HDD. Давайте посмотрим на показатели с помощью CrystalDiskMark:
Поначалу результаты разочаровывают. Скорость последовательного чтения/записи и случайной записи гораздо хуже, чем у протестированного HDD; однако произвольное чтение намного лучше, и это то преимущество, которое обеспечивает флеш-память. Чтение и удаление данных выполняются довольно медленно, зато считывание обычно производится мгновенно.
Однако у этого теста есть ещё одна незаметная особенность. Тест USB-памяти обеспечивает подключение только по стандарту USB 2.0, который имеет максимальную скорость передачи всего 60 МБ/с, а HDD использовал порт SATA 3.3, обеспечивающий пропускную способность в 10 раз больше. К тому же использованная технология флеш-памяти довольно проста: ячейки имеют тип TLC и выстроены в длинные параллельные полосы; такая компоновка называется плоской (planar) или двухмерной (2D).
Флеш-память, используемая в лучших современных SSD, имеет тип SLC или MLC, то есть она работает чуть быстрее и изнашивается чуть медленнее, а полосы согнуты пополам и выстроены стоймя, образуя вертикальную или трёхмерную структуру ячеек. Также в них используется интерфейс SATA 3.0, хотя всё чаще применяется более быстрая система PCI Express через интерфейс NVMe.
Давайте взглянем на один такой пример: Samsung 850 Pro, в котором использованы эти хитрости с вертикальным расположением.
В отличие от тяжёлого 3,5-дюймового привода Seagate, этот SSD имеет размер всего 2,5 дюйма и намного тоньше и легче.
Откроем его (спасибо Samsung за использование таких дешёвых болтов Torx, которые чуть не развалились при демонтаже…) и увидим, почему:
В нём почти ничего нет!
Ни дисков, ни рычагов, ни магнитов — просто одна печатная плата, состоящая из нескольких чипов.
Так что же мы тут видим? Небольшие чёрные чипы — это регуляторы напряжения, а остальные выполняют следующие функции:
- Samsung S4LN045X01-8030: трёхъядерный процессор на основе ARM Cortex R4, занимающийся обработкой инструкций, данными, коррекцией ошибок, шифрованием и управлением износом
- Samsung K4P4G324EQ-FGC2: 512 МБ памяти DDR2 SDRAM, используемой для кэша
- Samsung K9PRGY8S7M: каждый чип — это 64 ГБ 32-слойной вертикальной флеш-памяти NAND типа MLC (в сумме 4 чипа, два расположены на другой стороне платы)
У нас есть 2-битные ячейки флеш-памяти, несколько чипов памяти и много кэша, что должно обеспечить повышенную производительность. Почему? Вспомним, что запись данных во флеш-память — довольно медленный процесс, но наличие нескольких флеш-чипов позволяет выполнять запись параллельно. У USB-флешки нет много DRAM для хранения данных, готовых к записи, поэтому отдельный чип тоже в этом поможет. Вернёмся в CrystalDiskMark…
Улучшение оказалось огромным. Скорость и чтения, и записи стала значительно выше, а задержки намного меньше. Что ещё нужно для счастья? Меньше и легче, нет подвижных деталей; к тому же SSD потребляют меньше энергии, чем механические дисковые накопители.
Разумеется, за все эти преимущества имеют свою цену, и здесь слово «цена» используется в буквальном смысле: вы же помните, что за 350 долларов можно купить HDD на 14 ТБ? Если брать SSD, то за эту сумму удастся приобрести только 1 или 2 ТБ. Если вы хотите накопитель такого же уровня, то пока лучшее, что вы можете сделать — это потратить 4 300 долларов на один SSD корпоративного уровня ёмкостью 15,36 ТБ!
Некоторые производители изготавливали гибридные HDD — стандартные жёсткие диски, на печатных платах которых было размещено немного флеш-памяти; она используется для хранения данных на дисках, к которым часто осуществляется доступ. Ниже показана плата из гибридного накопителя Samsung ёмкостью 1 ТБ (иногда называемого SSHD).
В правом верхнем углу платы находятся чип NAND и его контроллер. Всё остальное примерно такое же, как и в модели Seagate, которую мы рассматривали в предыдущем посте.
Мы можем в последний раз воспользоваться CrystalDiskMark, чтобы посмотреть, есть ли какая-то ощутимая выгода от использования флеш-памяти в качестве кэша, но сравнение будет нечестным, так как диски этого накопителя вращаются со скоростью 7200 rpm (а у HDD WD, который мы использовали для аутопсии — всего с 5400 rpm):
Показатели немного лучше, но причиной этого, вероятно, является повышенная скорость вращения — чем быстрее диск перемещается под головками чтения-записи, тем быстрее можно передавать данные. Стоит также заметить, что файлы, сгенерированные тестом бенчмарка, не будут распознаны алгоритмом как активно считываемые, а значит, контроллер скорее всего не сможет правильно использовать флеш-память.
Несмотря на это, более качественное тестирование показало улучшение производительности HDD с встроенным SSD. Однако дешёвая флеш-память, скорее всего, выйдет из строя намного быстрее, чем качественный HDD, поэтому гибридные накопители, вероятно, не стоят нашего внимания — индустрия производства накопителей гораздо сильнее заинтересована в SSD.
Прежде чем мы двинемся дальше, стоит упомянуть, что флеш-память — не единственная технология, используемая в твёрдотельных накопителях. Intel и Micron совместно изобрели систему под названием 3D XPoint. Вместо записи и стирания зарядов зарядов в ячейках для создания состояний 0 и 1, для генерации битов в этой системе ячейки заряжают своё электрическое сопротивление.
Intel рекламировала эту новую память под брендом Optane, и когда мы протестировали её, производительность оказалась выдающейся. Как и цена системы, но в плохом смысле. Накопитель Optane всего на 1 ТБ сегодня стоит более 1 200 долларов — в четыре раза больше, чем SSD такого же объёма на основе флеш-памяти.
Третьим и последним накопителем, который мы исследуем в следующей статье, будут оптические приводы.