Найти в Дзене
IT Еxtra

Как работает компьютер? Часть 39. Оперативная память (RAM)

Предыдущий урок: Как работает компьютер? Часть 38. Регистры процессора В прошлых уроках мы познакомились с регистрами процессора. Мы выяснили, что именно в регистрах происходят основные вычисления и хранится информация, с которой процессор работает прямо сейчас. Но как вы понимаете, программа и данные могут быть гораздо больше, чем несколько чисел. В процессоре физически нет столько регистров, чтобы держать целую программу внутри. Где же тогда хранятся команды и все нужные для работы числа? Для этого существует отдельный элемент компьютера — оперативная память, или RAM (Random Access Memory). Ранее мы уже упоминали память, когда говорили о счётчике команд и регистре инструкций. Мы говорили, что процессор берёт инструкции из памяти и выполняет их шаг за шагом. Но тогда мы рассматривали память «снаружи», как чёрный ящик. Сегодня пришло время раскрыть, что находится внутри этого ящика и как он работает на самом деле. Самая важная особенность оперативной памяти — она организована как боль

Предыдущий урок: Как работает компьютер? Часть 38. Регистры процессора

В прошлых уроках мы познакомились с регистрами процессора. Мы выяснили, что именно в регистрах происходят основные вычисления и хранится информация, с которой процессор работает прямо сейчас. Но как вы понимаете, программа и данные могут быть гораздо больше, чем несколько чисел. В процессоре физически нет столько регистров, чтобы держать целую программу внутри. Где же тогда хранятся команды и все нужные для работы числа? Для этого существует отдельный элемент компьютера — оперативная память, или RAM (Random Access Memory).

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

Самая важная особенность оперативной памяти — она организована как большая таблица, у которой есть строки, и каждая строка имеет номер — адрес. В каждую ячейку можно записать какое-то число, а потом прочитать его обратно. Но чтобы память вернула нужное число, процессор должен указать адрес, по которому лежат данные. Поэтому рядом с памятью всегда есть два ключевых регистра: регистр адреса памяти (Memory Address Register, MAR) и регистр данных памяти (Memory Data Register, MDR).

-2

Как это работает? Допустим, процессору нужно прочитать инструкцию из памяти:

  1. В счётчике команд хранится адрес инструкции, например 100.
  2. Этот адрес попадает в регистр адреса памяти (MAR).
  3. MAR соединён с памятью: он указывает, какую строку нужно открыть.
  4. Память смотрит в ячейку 100 и находит там, например, команду «LOAD R1, [200]» в виде двоичного числа.
  5. Это число загружается в регистр данных памяти (MDR).
  6. А уже из MDR команда передаётся дальше в регистр инструкций.
-3

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

IT Extra

Теперь давайте посмотрим, как память устроена изнутри. Мы помним, что в основе памяти лежат триггеры. Один триггер может хранить один бит. Если собрать восемь триггеров, получится байт. Если собрать 1024 байта, получится килобайт. А если таких ячеек миллионы, то это и будет оперативная память современного компьютера.

Но возникает вопрос: как процессор может так быстро найти именно ту ячейку, которую он запросил? Ведь если в памяти миллионы ячеек, их нельзя просматривать одну за другой. Для этого используется дешифратор адреса. Когда в MAR записывается адрес, этот адрес проходит через дешифратор, который включает ровно одну строку памяти. Например, если адрес = 100, дешифратор активирует именно строку 100. Это похоже на длинный коридор с тысячами дверей: адрес — это ключ, который открывает только одну дверь, и за ней лежат данные.

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

Теперь рассмотрим пример, который свяжет вместе процессор и память.

Допустим, в памяти хранится программа:

  • по адресу 100 лежит команда «LOAD R1, [200]»
  • по адресу 101 лежит команда «LOAD R2, [201]»
  • по адресу 102 лежит команда «ADD R1, R2 → R3»
  • по адресу 103 лежит команда «STORE R3, [202]»
  • А в ячейках 200 и 201 лежат числа 5 и 7.

Работать будет следующим образом:

  1. Счётчик команд указывает на 100.
  2. Адрес 100 попадает в MAR.
  3. Память отдаёт команду LOAD R1, [200] в MDR,
  4. Затем в регистр инструкций.
  5. Дешифратор блока управления понимает: нужно загрузить данные из памяти по адресу 200.
  6. В MAR записывается 200.
  7. Память возвращает значение 5, оно через MDR попадает в общий регистр R1.
  8. PC увеличивается, теперь = 101.
  9. В MAR → 101, память отдаёт команду LOAD R2, [201].
  10. Аналогично число 7 загружается в R2.
  11. Счётчик команд → 102. В регистре инструкций оказывается ADD R1, R2 → R3. АЛУ складывает 5 и 7, результат 12 кладётся в R3.
  12. Счётчик команд → 103. В регистр инструкций команда STORE R3, [202].
  13. Теперь MAR = 202, MDR получает значение из R3, и память сохраняет число 12 по адресу 202.

Таким образом MAR и MDR - это своего рода "вход и выход" процессора в мир памяти.

-4

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

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

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

Спасибо за внимание!

Следующий урок:
Как работает компьютер? Часть 40. Энергозависимая и энергонезависимая память. Жёсткий диск и SSD.

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

Что внутри?
Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
Без рекламы и воды: Только суть, только концентрат полезной информации.
Ранний доступ: Читайте новые материалы первыми.

Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.

👉 Переходите на Premium и начните читать то, о чем другие только догадываются.

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

👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи

________________________________________________________________________👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!

IT Extra