Память и накопители
С 32-битными адресами процессор может обозначить 4 294 967 296 байтов, ровно 4 GiB. Выключи питание, и оперативная память всё это забудет.
«В моём ноутбуке 16 ГБ памяти, значит, в нём поместится 16 ГБ фотографий». В этой фразе перепутаны две разные части, и сама реклама ноутбука показывает почему. В ней указаны два размера, например 16 ГБ памяти и 512 ГБ накопителя. Память, или оперативная память (RAM), хранит программы и данные, с которыми процессор работает прямо сейчас. Накопитель, твердотельный (SSD) или более старый жёсткий диск, хранит твои файлы, когда питание выключено. Фотографии лежат на стороне 512 ГБ. 16 ГБ служат рабочим пространством, куда попадает фотография, пока ты её редактируешь.
Почему оперативная память забывает всё без питания
Обычная оперативная память хранит каждый бит как крошечный заряд, который утекает, если его не обновлять много раз в секунду, поэтому при отключении питания всё её содержимое теряется. Именно это и называется энергозависимостью. Накопитель сохраняет данные без питания. SSD удерживает заряд в ячейках флеш-памяти, которые хранят его годами, а жёсткий диск записывает биты в виде намагниченных участков на вращающихся пластинах. Накопитель гораздо больше и дешевле в пересчёте на байт, но обращение к нему намного медленнее, поэтому перед запуском программы копируются из накопителя в оперативную память. Это копирование и происходит, пока приложение пишет, что загружается.
Как процессор находит один байт среди миллиардов
Память представляет собой длинный ряд ячеек, в каждой по одному байту, и у каждой ячейки есть номер, который называется адресом и начинается с 0. Чтобы прочитать или записать данные, процессор выставляет адрес на группу проводов и получает обратно байт, который там хранится. Число битов адреса определяет, до какого объёма памяти можно добраться. Четыре бита адреса, как в игрушечном компьютере, дают 2 в степени 4 = 16 ячеек. Шестнадцать битов дают 65 536. Тридцать два бита дают 4 294 967 296 байтов, ровно 4 GiB, и поэтому старые 32-битные системы не могли использовать больше 4 GiB оперативной памяти. Современные 64-битные процессоры могут обозначить гораздо больше.
Ячейка понятия не имеет, что значат её биты. В игрушечном компьютере 8 бит 00000100 в ячейке данных означают число 4, но если прочитать те же биты как команду, они означают HALT 4. Что именно, решает только то, как процессор обращается к ячейке: как к следующей команде или как к данным, которые указаны в команде. Это прямо следует из идеи фон Неймана хранить и то и другое в одной памяти. Из-за этого же ошибка, которая пишет по неправильному адресу, может сломать всю программу.
Перетащи, чтобы повернуть. Колёсико или щипок для масштаба.
Каждый следующий уровень больше и медленнее
Быстрая память дорогая, поэтому в компьютерах она устроена уровнями. Ближе всего к схемам находятся регистры: несколько десятков значений, с которыми процессор работает напрямую, как с аккумулятором в игрушке. Дальше идут кэши, небольшие блоки быстрой памяти прямо на кристалле процессора. Обычно их называют L1, L2 и L3, и они хранят копии недавно использованных участков оперативной памяти. Затем идёт оперативная память, потом SSD или жёсткий диск, а за ними сеть. Каждый следующий уровень больше и медленнее. Программа работает быстро, когда почти всё нужное ей уже лежит на верхних уровнях. Поэтому читать данные по порядку обычно быстрее, чем прыгать с места на место.
| ОЗУ (RAM) | Рабочая память; энергозависимая |
| SSD | Флеш-накопитель; хранит данные без питания |
| Адрес | Номер ячейки памяти |
| Кэш | Небольшая быстрая память на кристалле процессора с недавними данными |
| Регистр | Значение внутри самого процессора |
| 32-битный адрес | 4 294 967 296 байтов = 4 GiB |
- «Чем больше оперативной памяти, тем быстрее процессор». Объём оперативной памяти не меняет ни тактовую частоту, ни работу, сделанную за один такт. Он определяет, сколько можно держать под рукой. Если программы и данные, которыми ты пользуешься, уже помещаются, добавка памяти почти ничего не изменит. Если не помещаются, компьютер то и дело обращается к гораздо более медленному накопителю, и тогда больше оперативной памяти помогает.
- «16 ГБ памяти означают место для 16 ГБ файлов». Файлы хранятся на накопителе, это 512 ГБ в рекламе. Оперативная память служит рабочим пространством для всего, что открыто прямо сейчас, и она очищается, когда пропадает питание.
- «Если что-то видно на экране, оно надёжно сохранено в компьютере». Открытый документ находится в оперативной памяти. Пока его не сохранили на накопитель, отключение электричества или севшая батарея стирают его, потому что оперативная память энергозависима.
- Что значит «энергозависимая» для оперативной памяти?
- Она теряет содержимое, когда питание выключено
- Она очень быстрая
- В неё можно записать только один раз
- Она хранится на вращающемся диске
- Сколько байтов можно обозначить 32-битными адресами?
- Сколько это GiB?
- До скольких ячеек памяти можно добраться с 16 битами адреса?
- В игрушечном компьютере 16 ячеек по 8 бит. Сколько это битов памяти всего?
- Что хранит твои файлы, когда питание выключено?
- SSD
- ОЗУ (RAM)
- Кэш
- Регистры
- Расставь от самого быстрого к самому медленному.
- Какое число окажется в ячейке 13 после того, как программа 4 × 3 остановится?
- В игрушке ячейка данных хранит 00000100. Что это означало бы, если прочитать её как команду?
- HALT 4
- LOAD 4
- STORE 4
- ADD 4
- Зачем перед запуском программы копируют из накопителя в оперативную память?
- Процессор обращается к оперативной памяти гораздо быстрее
- Накопитель не может хранить программы
- Оперативная память хранит данные без питания
- SSD сразу бы износился
- Память состоит из пронумерованных ячеек; n битов адреса дают доступ к 2ⁿ ячейкам (32 бита = 4 GiB).
- Одни и те же биты могут быть командой или данными; решает то, как процессор к ним обращается.
- Оперативная память энергозависима и служит рабочей; SSD и жёсткие диски хранят данные без питания.
- Регистры, кэш, оперативная память, накопитель: каждый следующий уровень больше и медленнее.
Источники курса (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
Проверено: 2026-10-17