Регистры и оперативная память: ячейки и адреса

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

Содержание

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

Регистр: число из триггеров

D-триггер из урока Триггер помнит один бит. Числу 105 нужно семь битов, а с запасом — восемь. Поставим восемь D-триггеров в ряд и подадим на все один тактовый сигнал. На фронте все восемь одновременно запомнят по биту. Такую схему называют регистром.

Регистр похож на кодовый замок велосипедного троса. Каждое колёсико хранит одну цифру, а все вместе — одно число. Только у триггера «колёсико» с двумя положениями: 0 и 1.

Восемь триггеров в ряд с общим тактовым сигналом; в них записаны биты 0, 1, 1, 0, 1, 0, 0, 1, под ними веса разрядов от 128 до 1; вместе это число 105
Рисунок 1 — Регистр из восьми D-триггеров: общий такт, в каждом триггере — один бит числа

Сколько триггеров, столько и разрядов. Регистр на 8 разрядов хранит числа от 0 до 255, на 16 разрядов — до 65 535. В процессорах современных компьютеров и телефонов регистры 64-разрядные.

Новое число регистр запоминает не на каждом такте, а только когда подана команда «запись». Остальное время он хранит прежнее число и постоянно показывает его на выходах.

Регистров в процессоре немного — несколько десятков. В них лежит то, с чем процессор работает прямо сейчас: числа для АЛУ, результат, флаги.

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

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

Способ знаком Вам по постамату — шкафу, куда привозят заказы из интернет-магазинов. Ячейки в нём одинаковые, у каждой свой номер. Вы вводите код, и открывается ровно одна дверца.

Оперативная память устроена так же. Это длинный ряд одинаковых ячеек, и в каждой лежит одно число — обычно один байт. Ячейки пронумерованы подряд, начиная с нуля. Номер ячейки называют адресом.

Дешифратор: от адреса к ячейке

Адрес приходит в память двоичным числом по нескольким проводам. Превратить его в сигнал «открыть вот эту ячейку» должен дешифратор. У этой схемы свой выход для каждой ячейки, и единица появляется только на одном — на том, чей номер совпал с адресом.

Адрес 101 подан на дешифратор; из восьми выходов единица только на одном, и он выбирает ячейку с адресом 101, в которой лежит 01101001; остальные семь ячеек не выбраны
Рисунок 2 — Память из восьми ячеек: дешифратор по адресу 101 выбирает одну ячейку для чтения или записи

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

АдресВыход 0Выход 1Выход 2Выход 3
001000
010100
100010
110001

Например, выход 2 — это «левый бит И НЕ правый бит»: единица получится только при адресе 10.

Чтение и запись

С выбранной ячейкой можно сделать одно из двух.

  • Чтение. Память получает адрес и выдаёт копию числа из ячейки. В самой ячейке число остаётся.
  • Запись. Память получает адрес, новое число и команду «запись». Ячейка запоминает новое число, а прежнее пропадает бесследно.

Проследим за ячейками с адресами 4 и 5:

TXT
действие                      ячейка 4    ячейка 5
в начале                         100          0
записать 105 по адресу 5         100        105
прочитать адрес 5: ответ 105     100        105
записать 12 по адресу 5          100         12
прочитать адрес 4: ответ 100     100         12

Число 105 исчезло в момент второй записи, а соседняя ячейка ни разу не изменилась.

До любой ячейки память добирается одинаково быстро: дешифратору всё равно, пятый адрес ему назвали или пятимиллионный. Отсюда английское название оперативной памяти — RAM, random access memory, «память с произвольным доступом».

Сколько ячеек можно пронумеровать

Каждый новый бит адреса удваивает число ячеек. Адрес из k битов различает 2ᵏ ячеек — это то же правило, по которому k битов дают 2ᵏ сочетаний.

Битов в адресеЯчеекОбъём, если в ячейке один байт
388 байт
101 0241 КиБ
1665 53664 КиБ
201 048 5761 МиБ
324 294 967 2964 ГиБ

Последняя строка объясняет известное ограничение. 2³² — это 4 294 967 296 байт. Разделим на 2³⁰ = 1 073 741 824 и получим ровно 4 гибибайта — те самые «четыре гигабайта». О двух значениях слова «гигабайт» рассказано в уроке Байты, килобайты и гигабайты.

Процессору с 32-битным адресом нечем назвать следующую ячейку: номера закончились. Поэтому, когда программам понадобилось больше памяти, компьютеры и телефоны перешли на 64-битные адреса. У телефона с 8 ГиБ оперативной памяти ячеек 2³³, и 32 битов ему уже не хватило бы.

Почему оперативная память забывает

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

Накопитель — SSD, жёсткий диск, флешка — хранит биты иначе: запертым зарядом или намагниченными участками. Питание для хранения ему не нужно, зато работает он гораздо медленнее.

Где лежат данныеСколько помещаетсяСкоростьБез питания
Регистры процессорадесятки чиселсамая высокаяданные пропадают
Оперативная памятьгигабайтывысокаяданные пропадают
Накопительсотни гигабайтов и большенамного нижеданные сохраняются

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

Частые ошибки

  • Путают адрес и содержимое. В ячейке 5 лежит число 105: адрес — это 5, он не меняется; содержимое — 105, его можно перезаписать.
  • Думают, что чтение опустошает ячейку. Читается копия, число остаётся на месте.
  • Считают, что 32 бита адреса — это 32 ячейки. Это 2³² ячеек, больше четырёх миллиардов.
  • Путают оперативную память и накопитель. Фотографии и установленные игры лежат на накопителе, а в оперативной памяти — только то, что запущено сейчас.

Коротко

  • Регистр — ряд триггеров с общим тактовым сигналом; он хранит одно число, по биту в каждом триггере.
  • Оперативная память — множество пронумерованных ячеек; номер ячейки называют адресом.
  • Дешифратор по адресу из k битов выбирает одну ячейку из 2ᵏ.
  • Чтение выдаёт копию числа, запись заменяет его новым.
  • Адрес из 32 битов различает 2³² ячеек, то есть 4 ГиБ памяти.
  • Оперативная память без питания теряет данные, накопитель — нет, но работает он медленнее.

Детали собраны: АЛУ умеет считать, регистры и память — хранить числа. Осталось заставить их работать вместе по программе — об этом урок Как работает процессор.

Использованная литература

  1. Регистр (цифровая техника) — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Регистр_(цифровая_техника) (дата обращения: 09.10.2026).
  2. Оперативная память — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Оперативная_память (дата обращения: 09.10.2026).
  3. Дешифратор — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Дешифратор (дата обращения: 09.10.2026).
  4. 32-bit computing — Wikipedia [Электронный ресурс]. — URL: https://en.wikipedia.org/wiki/32-bit_computing (дата обращения: 09.10.2026).