Предыдущий урок: Как работает компьютер? Часть 34. Счётчик команд — шаг за шагом
Мы познакомились с разными элементов процессора. Давайте закрепим их:
Внутри процессора находятся:
- Блок управления. Содержит в себе счетчик команд для хранения адреса следующей инструкции, Регистр инструкций для хранения текущй инструкции, Дешифратор для переда инструкций в управляющие сигналы.
- Регистры общего назначения (R0, R1, R2, …) — маленькая память для хранения чисел внутри процессора.
- АЛУ (арифметико-логическое устройство) — умеет складывать, вычитать, сравнивать и делать логические операции.
- Мультиплексоры — переключатели, которые выбирают, какие данные попадут в АЛУ или в регистры.
Снаружи процессора:
- Память (RAM) — хранит и программу (инструкции), и данные.
Теперь давайте посмотрим, как это работает вместе.
Мы соберём картину целого маленького процессора и проследим, как данные двигаются внутри него.
Движение данных: общая схема
Процессор — это не хаотичный клубок проводов. У данных внутри есть свой «маршрут»:
1. Память → Регистр: Из памяти загружается команда или число. Оно попадает сначала в регистр.
2. Регистр → АЛУ: Чтобы выполнить операцию, числа направляются в АЛУ. Для этого используются мультиплексоры, которые выбирают, какой регистр подать на вход.
3. АЛУ → Регистр: Результат операции записывается обратно в регистр.
4. Регистр → Память: Если нужно сохранить результат, значение из регистра передаётся в память.
Эти шаги задаются сигналами блока управления, который использует дешифраторы для выбора конкретной операции и указывает мультиплексорам, откуда брать данные.
Как всё взаимодействует:
- Счетчик команд указывает на адрес первой инструкции в памяти.
- Из памяти по адресу Счетчика команд инструкция загружается в Регистр инструкций.
- Дешифратор берёт инструкцию из Регистра инструкций и создаёт управляющие сигналы: какой Общий регистр читать, какой Общий регистр записать, какую операцию выполнить в АЛУ, какой вход выбрать у Мультиплексора, нужно ли обратиться к памяти за данными.
- Мультиплексоры по сигналам от Дешифратора направляют нужные данные (из регистра или памяти) в АЛУ.
- АЛУ выполняет операцию и отдаёт результат, также через Мультиплексоры.
- Результат может быть записан обратно в Общий регистр или отправлен в память.
- Счетчик команд увеличивается на 1 → процесс повторяется для следующей инструкции.
Предположим, в памяти лежит программа (На самом деле это код ассемблера, о котором мы будем говорить в следующих модулях. Пока что помимо кода, также текстом укажем что код означает, чтобы вас не запутать.):
Адрес 0: LOAD R1, [10] ; загрузить число из ячейки памяти 10 в регистр R1
Адрес 1: LOAD R2, [11] ; загрузить число из ячейки памяти 11 в регистр R2
Адрес 2: ADD R3, R1, R2 ; сложить содержимое R1 и R2 и результат положить в R3
Адрес 3: STORE R3, [12] ; сохранить результат из R3 в ячейку памяти 12
В памяти по адресам:
[10] = 2
[11] = 3
Теперь давайте пошагав взглянем на работу процессора:
- Блок управления обращается в Счетчик команд равный 0;
- Счетчик команд = Адрес 0 → из памяти берём инструкцию LOAD R1, [10].
- В Регистр инструкций загружается команда.
- Дешифратор забирает данные Регистра инструкций обрабатывает их. Управляющие сигнал дешифратора: нужно взять данные из памяти (адрес 10) и положить в R1.
- Мультиплексор направляет число 2 из памяти в регистр R1.
- Теперь R1 = 2.
- Счетчик команд увеличился на 1 и равен 1.
- Блок управления = Адрес 1 → инструкция LOAD R2, [11].
- Аналогично: число 3 загружается из памяти в R2.
- Теперь R2 = 3.
- Счетчик команд увеличился на 1 и равен 2.
- Блок управления = Адрес 2→ инструкция ADD R3, R1, R2.
- Дешифратор понимает: нужно взять числа из R1 и R2.
- Мультиплексор направляет их в АЛУ.
- АЛУ выполняет сложение: 2 + 3 = 5.
- Результат отправляется в R3.
- Теперь R3 = 5.
- Счетчик команд увеличился на 1 и равен 3.
- Блок управления = Адрес 3→ инструкция STORE R3, [12] .
- Дешифратор даёт команду: взять число из R3 и отправить в память по адресу 12.
- В ячейке [12] теперь хранится результат: 5.
- Счетчик команд увеличился на 1 и равен 4. (конец программы).
Очень простая метафора
Представь процессор как город с дорогами:
- Данные — это машины.
- Регистры, память, АЛУ — это дома, куда машины могут заезжать.
- Мультиплексоры — это перекрёстки с переключающимися стрелками.
- А Блок управления — это светофорщик, который решает, какая дорога сейчас открыта, а какая закрыта.
Машина (данные) сама не решает, куда ехать. Всегда Блок управления подаёт сигнал, какой путь открыт и в какой «дом» (регистр) машина въедет.
Теперь у нас есть настоящий мини-процессор. Пусть он умеет только складывать и сохранять, но он уже выполняет программу шаг за шагом, управляет данными и останавливается тогда, когда нужно. В следующем разделе мы будем говорить памяти и триггерах, чтобы процессор научился хранить данные и становился ещё ближе к настоящим компьютерам.
Спасибо за внимание!
Следующий урок: Как работает компьютер? Часть 36. Триггер — простейшая ячейка памяти
P.S.
Если вы теперь смотрите на свой телефон или ноутбук не как на бездушную железку, а как на клубок молний, который научили думать, — вам понравится мой курс «Как работает компьютер. Просто о сложном» https://stepik.org/a/249383. Специально для Дзен действует промокод со скидкой 20%: DZEN20.
Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.
Что внутри?
✅ Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
✅ Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
✅ Без рекламы и воды: Только суть, только концентрат полезной информации.
✅ Ранний доступ: Читайте новые материалы первыми.
Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.
👉 Переходите на Premium и начните читать то, о чем другие только догадываются.
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!