Содержание
Процессор — это схема, которая без конца повторяет три действия: берёт из памяти очередную команду, выясняет, чего она требует, и выполняет её. Сами команды очень простые — «взять число», «прибавить», «записать». Зато выполняются они миллиарды раз в секунду, и из этого повторения складывается всё, что делает компьютер.
Из чего собран процессор
Новых деталей почти не понадобится: главное Вы уже видели в предыдущей части.
- АЛУ — арифметико-логическое устройство. Оно складывает и вычитает числа, а флагами сообщает, каким получился результат. Мы собрали его в уроке Вычитание, сравнение и АЛУ.
- Регистры — несколько ячеек внутри самого процессора. В них лежит то, с чем он работает прямо сейчас. Их устройство разобрано в уроке Регистры и оперативная память.
- Счётчик команд — регистр, в котором записан адрес следующей команды.
- Устройство управления — схема, которая читает команду и решает, какие блоки включить: откуда взять число, что делать АЛУ, куда отправить результат.
Представьте, что Вы собираете модель из конструктора по инструкции с пронумерованными шагами. Вы держите палец на номере шага, читаете его, понимаете, какие детали нужны, соединяете их и переводите палец на следующий номер. Палец на странице — это счётчик команд. Голова, которая разбирается в картинке, — устройство управления. Руки — АЛУ.
Программа лежит в той же памяти, что и числа
Откуда процессор берёт команды? Оттуда же, откуда и числа, — из памяти. Каждая команда записана числом и занимает ячейку с адресом. Последовательность таких команд называют программой, а сам подход — принципом хранимой программы.
Так было не всегда. Одну из первых электронных вычислительных машин, ЭНИАК, под каждую новую задачу перенастраивали вручную: заново соединяли блоки кабелями. На это могло уйти до двух дней. Хранимая программа превращает перенастройку в запись новых чисел в память.
Принцип связывают с именем математика Джона фон Неймана: в 1945 году он описал его в отчёте о проекте машины EDVAC. Идеи отчёта он обсуждал с создателями ЭНИАКа Джоном Мокли и Джоном Эккертом и другими коллегами, но устройство компьютера с общей памятью для команд и данных называют архитектурой фон Неймана.
Знакомьтесь: процессор М-8
Настоящий процессор слишком сложен, чтобы разобрать его целиком. Поэтому для этого учебника мы придумали свой — очень маленький, но работающий по тем же правилам. Назовём его М-8: все числа в нём восьмибитные.
- Память — 16 ячеек с адресами от 0 до 15, в каждой 8 битов. В ней лежат и программа, и данные.
- Аккумулятор A — единственный рабочий регистр на 8 битов. Все вычисления идут через него.
- Счётчик команд (СК) — адрес следующей команды. Адресов всего 16, поэтому счётчику хватает 4 битов.
- Регистр команды — сюда копируется команда, которая выполняется сейчас.
- Флаг Z («ноль») — один бит. Он равен 1, когда в аккумуляторе ноль, и 0 во всех остальных случаях.
Команда М-8 занимает одну ячейку. Её восемь битов поделены пополам: старшие четыре — код операции, то есть что нужно сделать, младшие четыре — адрес ячейки, с которой это нужно сделать.
0001 1100
код адрес код 0001 — «скопировать ячейку в A», адрес 1100₂ = 12
Пока хватит четырёх команд. Их названия — сокращённые английские слова: так принято у программистов.
| Код | Запись | Что делает |
|---|---|---|
| 0001 | LOAD адрес | копирует число из ячейки в A |
| 0010 | ADD адрес | прибавляет к A число из ячейки |
| 0100 | STORE адрес | записывает число из A в ячейку |
| 0000 | HALT | останавливает процессор |
Арифметика в М-8 восьмибитная: если сумма не помещается в 8 битов, перенос из старшего разряда пропадает — как в уроке Целые числа в памяти.
Цикл: выборка, расшифровка, исполнение
Над каждой командой процессор работает в три приёма.
- Выборка. Процессор читает ячейку, адрес которой записан в СК, и копирует её содержимое в регистр команды. Сразу после этого СК увеличивается на 1 и указывает уже на следующую команду.
- Расшифровка. Устройство управления делит команду на код операции и адрес и по коду определяет, какие блоки понадобятся.
- Исполнение. Нужные блоки срабатывают: память выдаёт или принимает число, АЛУ считает, результат попадает в аккумулятор.
Затем всё повторяется с новым значением СК. Это и есть цикл выборки и исполнения. Процессор не видит программу целиком и не знает, чем она закончится: в каждый момент он занят одной командой.
Программа из четырёх команд
Пусть у героя игры было 37 монет, а на уровне он подобрал ещё 15. Заставим М-8 посчитать, сколько монет стало. Числа положим в ячейки 12 и 13, а сумму попросим записать в ячейку 14.
адрес содержимое смысл
0 0001 1100 LOAD 12
1 0010 1101 ADD 13
2 0100 1110 STORE 14
3 0000 0000 HALT
...
12 0010 0101 число 37
13 0000 1111 число 15
14 0000 0000 место для суммы
Перед запуском в СК и в A нули. Проследим за процессором шаг за шагом. В столбце «СК» — адрес, с которого взята команда.
| Шаг | СК | Команда | Что произошло | A | Z |
|---|---|---|---|---|---|
| до запуска | 0 | — | — | 0 | 1 |
| 1 | 0 | LOAD 12 | число 37 скопировано в A | 37 | 0 |
| 2 | 1 | ADD 13 | АЛУ сложило 37 и 15 | 52 | 0 |
| 3 | 2 | STORE 14 | 52 записано в ячейку 14 | 52 | 0 |
| 4 | 3 | HALT | процессор остановился | 52 | 0 |
Такую таблицу называют трассировкой: в ней видно состояние процессора после каждой команды. После остановки в ячейке 14 лежит 0011 0100 — число 52. До запуска флаг Z равен 1, потому что в A ноль; первая же команда кладёт в A ненулевое число, и флаг сбрасывается.
Команда LOAD не забирает число из памяти, а копирует его: в ячейке 12 по-прежнему лежит 37.
Тактовая частота
Что заставляет процессор переходить от шага к шагу? Тактовый сигнал из урока Триггер: по нему регистры запоминают новые значения. Каждый такт продвигает работу на один шаг. Для М-8 договоримся так: один такт на выборку, один на расшифровку, один на исполнение. Тогда программа из четырёх команд займёт 12 тактов.
Число тактов в секунду — это тактовая частота. У современных процессоров она составляет несколько гигагерц, то есть несколько миллиардов тактов в секунду.
Частые вопросы
Процессор понимает, что считает монеты?
Нет. Для него 37 и 15 — просто восьмёрки битов. Смысл числам придаёт человек, который написал программу.
Что будет, если счётчик команд дойдёт до ячейки с числом?
Процессор выполнит это число как команду: отличать одно от другого он не умеет. Поэтому программу заканчивают командой HALT, а данные кладут туда, куда счётчик не доберётся.
Почему у М-8 всего 16 ячеек памяти?
На адрес в команде отведено 4 бита, а ими можно записать 2⁴ = 16 разных адресов. У настоящих процессоров адреса гораздо длиннее, и ячеек им доступны миллиарды.
Коротко
- Процессор состоит из АЛУ, регистров, счётчика команд и устройства управления.
- Программа — это команды, записанные числами в той же памяти, что и данные.
- Счётчик команд хранит адрес следующей команды и после выборки увеличивается на 1.
- Цикл процессора: выборка команды, расшифровка, исполнение — и снова выборка.
- Команда М-8 — это 8 битов: 4 бита кода операции и 4 бита адреса.
- Тактовая частота — число тактов в секунду; каждый такт продвигает цикл на один шаг.
Пока у М-8 всего четыре команды, и мы записывали их то словами, то битами. Полный набор команд и способ превратить программу в столбец чисел — в уроке Машинный код и ассемблер.
Использованная литература
- Архитектура фон Неймана — Википедия [Электронный ресурс]. — 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).
- Тактовая частота — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Тактовая_частота (дата обращения: 09.10.2026).