Как SSD хранит данные без единой движущейся детали
Внутри SSD нет вращающихся дисков и бегающих головок — вообще ничего не двигается. Так как же кусок кремния запоминает твои фотки, игры и пароли и не забывает их, даже когда питание выключено? Разбираемся, где там прячутся нолики и единицы.
Открой старый жёсткий диск — внутри блестящий вращающийся блин и тонкая головка, которая летает над ним, как игла над пластинкой. А теперь открой SSD: плоская плата, несколько чёрных квадратиков и... всё. Ничего не крутится, ничего не ездит. Но именно эта неподвижная штука помнит твои фотографии годами. Как такое возможно?
Память, которая держит электроны в ловушке
Главный секрет SSD — это флеш-память. Вся информация в ней хранится в крошечных ячейках, и каждая ячейка умеет делать ровно одну вещь: удерживать или не удерживать заряд. Есть заряд — это, условно, единица. Нет заряда — нолик. Из таких ноликов и единиц и собираются твои файлы.
Сама ячейка — это особый транзистор. У обычного транзистора есть «ворота» (затвор), которые управляют током. А у флеш-ячейки между этими воротами спрятан ещё один секретный слой — плавающий затвор. Он со всех сторон окружён изолятором, как орех в скорлупе. Если загнать в этот плавающий затвор немного электронов, они там застрянут: выбраться сами не смогут, потому что изолятор их не выпускает.
И вот тут начинается магия. Электроны сидят в ловушке и никуда не деваются, даже когда ты выключил компьютер. Питания нет, а заряд остался. Поэтому SSD — это энергонезависимая память: она не забывает данные без электричества, в отличие от оперативки, которая стирается мгновенно после выключения.
SSD не «крутит» данные и не «читает» их иглой. Он просто хранит миллиарды крошечных ловушек с электронами — и проверяет, в какой из них заряд есть, а в какой нет.
Как туда записать и как потом прочитать
Чтобы загнать электроны в ловушку, на ячейку подают довольно высокое напряжение. Электроны буквально протискиваются сквозь тонкий слой изолятора — физики называют это туннелированием — и оседают в плавающем затворе. Так записывается единичка. Чтобы стереть данные, напряжение подают в обратную сторону, и электроны выталкиваются наружу.
А как прочитать? Очень хитро. Контроллер пытается «приоткрыть» ячейку небольшим напряжением и смотрит, побежал ли через неё ток. Если в плавающем затворе сидят электроны, они мешают, и ячейка ведёт себя иначе, чем пустая. По этой разнице SSD и понимает: тут ноль, а тут единица. Сами электроны при чтении не трогаются с места — поэтому читать можно сколько угодно раз.
Представь копилку, у которой нельзя открыть крышку, но можно потрясти и по звуку понять — есть внутри монеты или нет. Записать (бросить монетку) и стереть (вытряхнуть всё) сложнее, а вот «послушать» содержимое — легко и быстро. Поэтому SSD читает данные молниеносно.
Один домик — несколько жильцов
Если бы каждая ячейка хранила только нолик или единицу, на большой накопитель ушло бы слишком много кремния. Инженеры придумали хитрость: научили ячейку различать не два уровня заряда, а несколько. Чем точнее измеряешь, сколько именно электронов сидит в ловушке, тем больше информации помещается в одну ячейку.
- SLC — один бит на ячейку. Быстро и надёжно, но дорого.
- MLC — два бита: четыре разных уровня заряда.
- TLC — три бита: уже восемь уровней.
- QLC — четыре бита: целых шестнадцать уровней в одной ячейке.
Чем больше битов втиснули в ячейку, тем дешевле получается каждый гигабайт — но тем сложнее точно «расслышать» нужный уровень заряда, и тем аккуратнее приходится работать. Поэтому дешёвые ёмкие SSD обычно чуть медленнее и менее выносливы, чем дорогие.
Этажи вместо движущихся частей
Сначала ячейки располагали в один слой, плотно прижатыми друг к другу на поверхности чипа. Но плотнее уже некуда — соседи начинают мешать. Тогда инженеры сделали смелый ход: стали складывать ячейки этажами вверх, как многоэтажку вместо коттеджного посёлка. Эта технология называется 3D NAND, и в современных чипах таких этажей — больше сотни. Именно благодаря «небоскрёбам» из ячеек крошечный SSD вмещает терабайты.
И снова — ни одной движущейся детали. Вся «высотка» абсолютно неподвижна, данные перемещаются только в виде электрических сигналов.
Умный управляющий, который бережёт ячейки
У флеш-памяти есть слабое место: каждая запись и стирание чуть-чуть изнашивают изолятор вокруг ловушки. После многих тысяч циклов ячейка может начать «протекать» и терять заряд. Если бы данные всё время записывались в одни и те же ячейки, эти места быстро бы умерли.
Поэтому в каждом SSD есть контроллер — маленький компьютер-дирижёр. Он решает, в какие именно ячейки складывать новые данные, и старается равномерно размазывать нагрузку по всему чипу, чтобы ни один участок не изнашивался раньше других. Это называется выравниванием износа. Контроллер ещё и исправляет случайные ошибки с помощью специальных проверочных кодов, и подменяет редкие сбойные ячейки запасными.
Получается красивая картина. SSD ничего не вращает и не двигает — он просто держит триллионы электронов в крошечных кремниевых ловушках, мгновенно проверяет, где они есть, а где нет, и умно управляет всем этим хозяйством. Именно поэтому он такой быстрый, не боится тряски и работает почти бесшумно. Магии нет — есть очень аккуратная физика и очень умный контроллер.