2.5 Как компьютер запоминает и сохраняет данные

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

Коротко о памяти

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

Слова «память», «запоминание» мы можем применять и к людям, и к компьютерам, но на самом деле различий здесь гораздо больше, чем сходств. Хотя мы ещё многого не знаем об устройстве нашего мозга, можно точно утверждать, что в нём нет деления на области, одни из которых отвечали бы только за мышление, а другие — только за память. Хранение и обработка информации в мозге тесно переплетены.

В компьютерах — как исторических, так и современных — память и процессор представляют собой разные устройства. Решение любой задачи требует постоянной пересылки между ними данных и инструкций, что может приводить к появлению своего рода «бутылочного горлышка». Результаты вычислений тоже сначала записываются в память, и уже потом их можно вывести на монитор, принтер или иное периферийное устройство.

Конкретный блок компьютера, выполняющий функцию памяти, в технической литературе называют запоминающим устройством (ЗУ). Работа подобных устройств может быть основана на самых разных принципах. Главное, чтобы выбранная технология позволяла создать множество одинаковых ячеек, способных надёжно переключаться между двумя состояниями, то есть хранить 1 бит информации.

Только между двумя?

Не только. Существуют запоминающие устройства, в которых одна ячейка имеет больше возможных состояний, например флеш-память MLC, TLC и QLC.

Углубляться в это не будем, просто отметили для самых любознательных!

Вот наглядная визуальная метафора: представьте пчелиные соты.

Отдельная сота может быть заполнена мёдом или оставаться пустой. Заполненные соты мы пометим как 1, пустые — как 0. Так вот, отдельная сота — это бит. А набор сот — это память.

1.4

Память бывает разной по объёму, то есть по количеству сот. Об этом чуть ниже.

Один бит по своей информационной ёмкости эквивалентен одному ответу на вопрос вроде «да или нет?».

С помощью двух бит мы можем записать уже = 4 варианта ответа, с помощью трёх бит — , то есть 8, и так далее. Любому, кто хочет разбираться в компьютерах, полезно держать в голове ряд степеней двойки: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 и так далее.

Единицы измерения

Одна из основных характеристик запоминающих устройств — их информационная ёмкость. Реальный объём данных редко измеряют в битах: уж слишком мала эта величина. Обычно используют байт, состоящий из 8 бит. В следующем параграфе подробно разберём, почему у него такой размер.

Также оказалось удобным позаимствовать у физики десятичные приставки для обозначения более крупных единиц измерения. Здесь пришлось кстати то, что = 1024, а это близко к 1000.

  • килобайт (Кбайт, КБ) — 1024 байта ()
  • мегабайт (Мбайт, МБ) — 1024 КБ ()
  • гигабайт (Гбайт, ГБ) — 1024 МБ ()
  • терабайт (Тбайт, ТБ) — 1024 ГБ ()
  • петабайт (Пбайт, ПБ) — 1024 ТБ ()

Поясним на сотах:

1.4

Строго говоря, если каждая величина больше предыдущей в 1024 раза, правильнее писать просто «К» и «М», а не «кило» и «мега», ведь десятичные приставки означают разницу ровно в 1000 раз.

При больших объёмах данных из-за разницы в терминологии может набежать существенная погрешность (например, вы покупаете жёсткий диск на 1 терабайт, а компьютер сообщает, что его ёмкость — 931 ГБ).

Классификация компьютерной памяти

Запоминающее устройство должно отвечать множеству противоречивых условий. От него требуется быть одновременно быстрым, ёмким, надёжным и недорогим. Разработать одну технологию, которая охватывала бы все эти пункты, пока не удалось.

Поэтому уже начиная с первого поколения компьютеров возникло разделение памяти на два больших класса — оперативную и долговременную.

Пара слов о терминологии

В английском языке используются другие обозначения для этих двух типов запоминающих устройств.

В обиходе оперативную память называют RAM (Random-Access Memory — запоминающее устройство с произвольным доступом) либо просто memory.

Долговременную память называют storage (хранилище). Но в технической литературе можно встретить термины primary storage и secondary storage. Эквивалентным является деление на volatile (энергозависимую) и non-volatile (энергонезависимую) память.

Рассмотрим их подробнее.

Оперативная память

В оперативной памяти содержатся данные, которые нужны процессору прямо сейчас. Эту память отличает высокая скорость доступа, но расплачиваться за это приходится небольшим объёмом и тем, что данные из неё пропадают после выключения питания.

1.4

Долговременная память

В долговременной памяти данные хранятся до тех пор, пока их не удалят специально.

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

Такая память работает медленнее, но имеет намного большую вместимость. Если оперативная память в современных компьютерах исчисляется десятками гигабайт, то долговременная — как минимум сотнями гигабайт, а скорее, даже терабайтами.

1.4

Занимательный факт

Когда в IBM разрабатывали первые жёсткие диски, в компании действовало правило: они должны проходить в стандартный дверной проём.

В 1960-х годах возникла потребность ввести ещё более быструю, «сверхоперативную» память. В современных системах её называют кэш. В ней дублируется самая востребованная информация из оперативной памяти. Если в кэше есть копия нужных данных, процессор получит доступ к ним почти мгновенно, что значительно повысит скорость выполнения программы.

Последние 30 лет кэш-память встраивают непосредственно в ядро микропроцессора, хотя ещё в начале 1990-х кэш можно было приобрести в виде отдельных микросхем.

Долговременная память может использовать съёмные и несъёмные носители. Например, установленные в корпусе жёсткий диск или SSD (Solid State Drive — твердотельный накопитель) — несъёмные, если мы говорим о работе, а не о ремонте компьютера.

1.4

А вот флешки, компакт-диски, дискеты, магнитные ленты, перфокарты — всё это примеры съёмных носителей информации. В прошлом, когда интернета и сетевых технологий ещё не существовало, это был едва ли не единственный способ перенести на компьютер новые данные.

1.4

Разделение памяти на оперативную, долговременную и кэш — чисто техническое решение. Архитектура фон Неймана не требует, чтобы в компьютере были разные виды памяти. Возможно, в ходе развития технологий однажды появится единый тип запоминающих устройств, который будет и быстрым, и ёмким, и энергонезависимым.

Разработки такой гибридной памяти уже ведутся. Например, в 2015 году компании Intel и Micron представили двухслойную память 3D XPoint — более быструю, чем флеш-накопители и жёсткие диски, и не теряющую данные при выключении. Но она оказалась существенно дороже изделий предыдущего поколения и так и не стала по-настоящему массовой.

Эволюция оперативной памяти

Фотографии женщин, которые программировали ENIAC, писали код для «Аполлона-11». В руках они держат оперативную память разных поколений. Источник

Поколение компьютеров

I поколение

II поколение

III поколение

IV поколение (до 2000 года)

Современные компьютеры (после 2000 года)

Типичная технология памяти

Память на линиях задержки, на запоминающих ЭЛТ и др.

Память на ферритовых сердечниках

Память на микросхемах низкой степени интеграции

Память на микросхемах DRAM высокой степени интеграции

Память на микросхемах DRAM сверхвысокой степени интеграции

Типичный объём памяти

512–4096 маш. слов* (≈1–25 КБ)

4000–128 000 маш. слов (до 800 КБ)

4 КБ — 8 МБ

4 КБ — 256 МБ

256 МБ — 128 ГБ и более

Яркие представители

ЭВМ EDSAC (1949), 512 17-битных слов (≈1 КБ)

ЭВМ М-20 (1958), 4096 45-битных слов (≈23 КБ)

Мини-компьютер DEC PDP-1 (1959), 4096 18-битных слов (9 КБ)

Суперкомпьютер БЭСМ-6 (ок. 1970), 64 тыс. маш. слов (400 КБ)

Мини-компьютер DEC PDP-11 (1972), 64 КБ

Суперкомпьютер Cray-1 (1975), 1 млн 64-битных слов (8 МБ)

Бытовой персональный компьютер Sinclair ZX80 (1980), 1 КБ

Офисный персональный компьютер IBM PC/AT (1984), 640 КБ

Игровой компьютер, на котором пойдёт Half-Life 2 (2004), 512 МБ

Игровой компьютер, на котором пойдёт Half-Life 3 (∞ год), ∞ ГБ

Только за первое десятилетие существования компьютеров инженеры перепробовали не менее пяти разных технологий ОЗУ. Обо всех рассказывать подробно не будем, это всё же узкоспециализированная информация. Нам важнее нарисовать эволюционную траекторию.

В самых ранних машинах, таких как ENIAC или МЭСМ, запоминающие ячейки были собраны на тех же электронных лампах, что и процессор ЭВМ. Чтобы хранить один бит информации, требовалась одна или две радиолампы. Затем появилась память на линиях задержки, как в компьютере EDSAC. Технология была заимствована у радаров времён Второй мировой. Параллельно существовала память на запоминающих электронно-лучевых трубках — примерно как у старого осциллографа.

Все эти виды памяти имели существенные недостатки, и потому они очень быстро сошли со сцены, когда в середине 1950-х годов получила распространение исключительно удачная технология хранения памяти на ферритовых сердечниках.
Такая память выглядела как сетка из проводников, в узлах которой находились колечки (или, реже, элементы другой формы) из ферромагнитного материала. Такие запоминающие устройства были компактными и надёжными, потребляли мало энергии и почти не требовали обслуживания. Неудивительно, что на ближайшие 15–20 лет ферритовая память «прописалась» в подавляющем большинстве компьютеров.

Одна из первых микросхем памяти, разработанных фирмой IBM в конце 1960-х годов, на фоне ферритовой памяти. Источник

Именно запоминающим устройствам на ферритах мы обязаны появлением слова «прошивка». На основе ферритовых сердечников можно было делать не только оперативную, но и долговременную память — в этом случае брали более крупные ферритовые сердечники и в буквальном смысле прошивали их тонкими проводка́ми в нужном порядке.

Конечно, по современным меркам и ферритовая память была громоздкой. Например, в советском суперкомпьютере М-10 использовалось 40 млн ферритовых сердечников. Они занимали половину шкафов, показанных на рисунке:

1.4

Подобно тому, как в процессорах ЭВМ от отдельных транзисторов и диодов перешли к микросхемам, память тоже стремились перевести на микроэлектронную основу. Эти работы увенчались успехом в конце 1960-х годов, когда почти одновременно появились два типа микросхем памяти — SRAM и DRAM. RAM означает «память с произвольным доступом», то есть память, где вы в любой момент можете обратиться к любой ячейке. S и D — соответственно «статическая» и «динамическая».

Память SRAM более быстрая, но и более дорогая. Она использует запоминающие ячейки на основе нескольких транзисторов (обычно от 4 до 6). Статической она называется потому, что сохраняет данные неизменными, пока подключена к источнику питания, и не требует их регулярного обновления.

Память DRAM дешевле и компактнее, её ячейки состоят из одного конденсатора и одного транзистора. Данные в динамической памяти нужно постоянно обновлять из-за неизбежной утечки заряда из микроскопических конденсаторов.

В современных компьютерах SRAM используется в первую очередь для кэша, а DRAM — для оперативной памяти.

1.4

Если быть максимально точным, оперативная память современных компьютеров относится к типу DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Конструктивно она обычно выполнена в виде небольших прямоугольных модулей, которые вставляются в разъёмы на материнской плате.

«Скорость каравана определяет самый медленный верблюд»

Скорость и ёмкость оперативной памяти, пожалуй, второй по важности фактор (после мощности процессора), который влияет на быстродействие компьютера в целом.

Историческая зарисовка

В конце 1950-х годов в СССР выпускались компьютеры «Урал-1» и «Урал-2». По классификации тех лет это были малые ЭВМ (всего-то по 800 ламп).

«Урал-1» был разработан до появления ферритовой памяти и использовал в качестве ОЗУ магнитный барабан — устройство с движущимися частями, по принципу действия скорее похожее на жёсткий диск.

А вот «Урал-2» уже был оснащён запоминающим устройством на ферритах. В остальном компьютеры были практически идентичны, но за счёт более совершенной памяти «Урал-2» работал в 50 раз быстрее.

Компьютер, имеющий небольшой объём ОЗУ, будет вынужден постоянно обращаться к жёсткому диску, чтобы выгрузить из оперативной памяти ненужные сейчас данные и подгрузить новые. Это сильно замедляет работу программ, а некоторые из них могут и вовсе не запуститься, если у компьютера недостаточно памяти.

Ностальгический пример

Школьники 2000-х знали характеристики своего компьютера назубок — вроде «А у меня дома комп, там проц Atlon 750 МГц, видюха GeForce 256 и 512 МБ оперативки!»

Причин две: хотелось повыделываться друг перед другом, а ещё постоянно выходили новые игры, причём с каждым годом их системные требования кратно росли. И тебе нужно было понимать, потянет их твой старичок или нет. Потому что родители новый комп вряд ли купят, а за неработающую игру ещё и отругают.

В общем, когда в 2007 году вышла легендарная игра Crysis, требовавшая минимум 2 ГБ ОЗУ, школьники того времени кусали локти и ныли родителям: «Ну купите, купите оперативку!» Тогда мало у кого было больше 1 ГБ, но поиграть хотелось.

А родители даже слова такого не знали — «оперативка».

«Аппетиты» программного обеспечения постоянно растут: если ещё 10–15 лет назад офисному компьютеру было достаточно 2 ГБ памяти, а игровому — 8 ГБ, то сегодня эти значения нужно умножить минимум на 4, а то и на 8.

С памятью разобрались! А в следующем параграфе расскажем, как в компьютерах хранятся разные виды информации — текст, звук, изображения.


Чтобы добавить в заметки выделенный текст, нажмите Ctrl + E
Предыдущий параграф2.4. Из каких частей состоит современный компьютер
Следующий параграф2.6. Как компьютер работает c информацией