Почему оперативная память забывает всё при выключении: тайна танцующих конденсаторов
Оперативная память хранит данные в миллиардах крошечных конденсаторов, которые теряют заряд за доли секунды. Узнаем, почему ОЗУ приходится постоянно «освежать» саму себя и зачем она вообще нужна, раз такая забывчивая.
Каждый бит в вашей памяти — это ведёрко заряда с дырявым дном, и компьютер тысячи раз в секунду бегает подливать в него воду, чтобы вы не забыли открытую вкладку.
Оперативная память забывчива не по недосмотру инженеров, а по устройству: она построена на конденсаторах, которые физически не способны удерживать заряд без постоянной подпитки.
Когда вы запускаете программу, она переезжает с медленного накопителя в оперативную память (RAM) — рабочий стол процессора, где всё под рукой. Скорость доступа здесь в сотни раз выше, чем у SSD. Но за скорость приходится платить странной особенностью: стоит обесточить компьютер, и память мгновенно чистый лист. Почему?
Бит как ведёрко с дырявым дном
Основной тип ОЗУ называется DRAM — динамическая память. Каждый бит хранится в паре из крошечного конденсатора и транзистора-ключа. Конденсатор — это микроскопическая ёмкость для заряда: заряжен — единица, разряжен — ноль. Транзистор открывает или закрывает доступ к нему.
Проблема в том, что идеальных изоляторов не бывает. Заряд из конденсатора утекает сам по себе за доли миллисекунды — как вода из ведра с дырявым дном. Если ничего не делать, через мгновение все единицы превратятся в нули и данные пропадут. Слово «динамическая» в названии — как раз про эту вечную утечку.
Освежение: танец, который никогда не останавливается
Чтобы данные не растворились, специальный контроллер тысячи раз в секунду перечитывает каждую ячейку и тут же записывает обратно — то есть подливает заряд в «ведёрки», которые ещё помнят единицу. Эта операция называется регенерацией (refresh). Она идёт незаметно, в фоне, по всей памяти построчно, и не прекращается ни на секунду, пока компьютер включён.
Вот почему DRAM теряет всё при выключении: как только пропадает питание, останавливается и регенерация. Конденсаторы тихо разряжаются за доли секунды — и память становится абсолютно пустой. Никакой магии забывания, просто физика утекающего заряда без насоса, который его восполняет.
Почему не сделать память, которая помнит без питания
Такая память существует — это, например, флеш в SSD, удерживающий заряд за толстым изолятором. Но у неё расплата: записывать в неё медленно, а ячейки изнашиваются. DRAM же специально сделана «забывчивой» ради скорости и бесконечного числа перезаписей. Это осознанный размен: чуть-чуть энергии на постоянное освежение — зато молниеносный доступ и неубиваемый ресурс.
| Свойство | Оперативная память (DRAM) | Накопитель (SSD/HDD) |
| Помнит без питания | нет | да |
| Скорость доступа | наносекунды | микро/миллисекунды |
| Износ при записи | практически нет | есть |
| Роль | рабочее пространство | хранилище |
Почему «мало оперативки» так бесит
Раз RAM — это рабочий стол, то места на нём конечно. Когда программ открыто слишком много, стол переполняется. Тогда система начинает выгружать редко используемые куски на медленный накопитель (это называют подкачкой, или swap). И вот тут всё начинает тормозить: вместо наносекунд память лезет за данными в накопитель, который в тысячи раз медленнее. Отсюда знакомое подвисание при множестве вкладок.
Маленький курьёз: «холодная» память помнит чуть дольше
Утечка заряда зависит от температуры: чем холоднее кремний, тем медленнее текут «дырявые вёдра». Исследователи однажды показали, что если резко заморозить модуль памяти, данные в нём успевают сохраниться на несколько секунд даже после выключения — достаточно, чтобы их считать. Это лишний раз доказывает: забывчивость DRAM — не команда, а естественный процесс, который можно лишь замедлить, но не отменить.
Так что в следующий раз, когда несохранённый документ исчезнет после внезапной перезагрузки, знайте: виноваты миллиарды конденсаторов, чьи заряды утекли в тот самый миг, когда насос-регенерация замолчал.