Содержание
Регистр — это ряд триггеров с общим тактовым сигналом, который хранит одно число. Оперативная память — множество таких хранилищ, ячеек, и у каждой есть номер — адрес. Зная адрес, схема сразу находит нужную ячейку: читает из неё число или записывает новое.
Регистр: число из триггеров
D-триггер из урока Триггер помнит один бит. Числу 105 нужно семь битов, а с запасом — восемь. Поставим восемь D-триггеров в ряд и подадим на все один тактовый сигнал. На фронте все восемь одновременно запомнят по биту. Такую схему называют регистром.
Регистр похож на кодовый замок велосипедного троса. Каждое колёсико хранит одну цифру, а все вместе — одно число. Только у триггера «колёсико» с двумя положениями: 0 и 1.
Сколько триггеров, столько и разрядов. Регистр на 8 разрядов хранит числа от 0 до 255, на 16 разрядов — до 65 535. В процессорах современных компьютеров и телефонов регистры 64-разрядные.
Новое число регистр запоминает не на каждом такте, а только когда подана команда «запись». Остальное время он хранит прежнее число и постоянно показывает его на выходах.
Регистров в процессоре немного — несколько десятков. В них лежит то, с чем процессор работает прямо сейчас: числа для АЛУ, результат, флаги.
Память: одинаковые ячейки с номерами
Нескольких десятков чисел мало. В одной фотографии миллионы байтов, а в запущенной игре — миллиарды. Нужно очень много хранилищ и способ в них не запутаться.
Способ знаком Вам по постамату — шкафу, куда привозят заказы из интернет-магазинов. Ячейки в нём одинаковые, у каждой свой номер. Вы вводите код, и открывается ровно одна дверца.
Оперативная память устроена так же. Это длинный ряд одинаковых ячеек, и в каждой лежит одно число — обычно один байт. Ячейки пронумерованы подряд, начиная с нуля. Номер ячейки называют адресом.
Дешифратор: от адреса к ячейке
Адрес приходит в память двоичным числом по нескольким проводам. Превратить его в сигнал «открыть вот эту ячейку» должен дешифратор. У этой схемы свой выход для каждой ячейки, и единица появляется только на одном — на том, чей номер совпал с адресом.
Собрать дешифратор несложно. На каждый выход ставят вентиль И и подают на него биты адреса — напрямую или через НЕ. Сочетание подбирают так, чтобы единица получалась только при «своём» адресе. Вот дешифратор для адреса из двух битов:
| Адрес | Выход 0 | Выход 1 | Выход 2 | Выход 3 |
|---|---|---|---|---|
00 | 1 | 0 | 0 | 0 |
01 | 0 | 1 | 0 | 0 |
10 | 0 | 0 | 1 | 0 |
11 | 0 | 0 | 0 | 1 |
Например, выход 2 — это «левый бит И НЕ правый бит»: единица получится только при адресе 10.
Чтение и запись
С выбранной ячейкой можно сделать одно из двух.
- Чтение. Память получает адрес и выдаёт копию числа из ячейки. В самой ячейке число остаётся.
- Запись. Память получает адрес, новое число и команду «запись». Ячейка запоминает новое число, а прежнее пропадает бесследно.
Проследим за ячейками с адресами 4 и 5:
действие ячейка 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ᵏ сочетаний.
| Битов в адресе | Ячеек | Объём, если в ячейке один байт |
|---|---|---|
| 3 | 8 | 8 байт |
| 10 | 1 024 | 1 КиБ |
| 16 | 65 536 | 64 КиБ |
| 20 | 1 048 576 | 1 МиБ |
| 32 | 4 294 967 296 | 4 ГиБ |
Последняя строка объясняет известное ограничение. 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 ГиБ памяти.
- Оперативная память без питания теряет данные, накопитель — нет, но работает он медленнее.
Детали собраны: АЛУ умеет считать, регистры и память — хранить числа. Осталось заставить их работать вместе по программе — об этом урок Как работает процессор.
Использованная литература
- Регистр (цифровая техника) — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Регистр_(цифровая_техника) (дата обращения: 09.10.2026).
- Оперативная память — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Оперативная_память (дата обращения: 09.10.2026).
- Дешифратор — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Дешифратор (дата обращения: 09.10.2026).
- 32-bit computing — Wikipedia [Электронный ресурс]. — URL: https://en.wikipedia.org/wiki/32-bit_computing (дата обращения: 09.10.2026).