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

Как работает компьютер? Часть 42. Что такое процессор и зачем он нужен

Предыдущий урок: Как работает компьютер? Часть 41. Как процессор обращается к памяти: чтение и запись Ранее мы шаг за шагом изучали самые маленькие кирпичики компьютера: логические схемы, сумматоры, триггеры, регистры, дешифраторы и даже блок управления. Потом мы постепенно собрали их в более сложные устройства и увидели, как процессор получает команды и работает с памятью. Но до сих пор мы смотрели на процессор как на набор отдельных элементов. Теперь пришло время взглянуть на него целиком. Этот урок — фундамент для всего раздела: мы дадим определение процессору, объясним, зачем он нужен, и что в него входит. Данный раздел направлен больше на закрепление уже пройденного ранее материала. Когда мы говорим слово «процессор», чаще всего представляем себе маленькую квадратную микросхему с сотнями ножек, которую вставляют в материнскую плату. Но это только внешний вид. Внутри него спрятан настоящий «оркестр» из десятков миллионов логических элементов, которые согласованно работают вместе.
Оглавление

Предыдущий урок: Как работает компьютер? Часть 41. Как процессор обращается к памяти: чтение и запись

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

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

Итак, процессор (его также называют центральны процессор) — это устройство, которое выполняет команды. Эти команды могут быть самыми разными: сложить числа, записать значение в память, загрузить данные в регистр, проверить условие. Если провести аналогию, процессор — это дирижёр и исполнитель одновременно: он управляет другими частями компьютера и сам выполняет арифметические и логические действия.

​

Управление

Чтобы процессор работал, ему нужно не просто уметь складывать числа. Главное — уметь следовать инструкциям. Для этого в процессоре есть блок управления. Именно он решает, какую операцию нужно выполнить прямо сейчас, где взять данные и куда положить результат.

Внутри блока управления находятся важные части:

  1. Счётчик команд — показывает, какую инструкцию выполнять следующей.
  2. Регистр инструкций — хранит текущую команду, которая выполняется в данный момент.
  3. Дешифратор — «переводит» инструкцию в набор управляющих сигналов.

Про блок управления можно думать как о сердце и мозге процессора: он заставляет остальные блоки действовать правильно и в правильном порядке.

IT Extra

Выполнение команд

Вторая важная часть процессора — это арифметико-логическое устройство (АЛУ). Его задача — выполнять действия над числами. АЛУ можно представить как «калькулятор внутри процессора». Оно умеет складывать, вычитать, сравнивать числа, иногда умножать и делить. Когда блок управления решает, что пора что-то посчитать, он посылает команду в АЛУ. Само АЛУ не выбирает, что делать: оно только выполняет указания.

Промежуточное хранение

Процессор не может каждый раз обращаться напрямую к большой оперативной памяти — это слишком медленно. Ему нужны быстрые «карманы», где он хранит текущие числа и результаты вычислений. Эти карманы называются регистры. Например, когда мы складываем числа 2 + 3, они сначала загружаются в регистры, потом АЛУ выполняет сложение, а результат кладётся в ещё один регистр. Только потом этот результат может быть записан в память. Регистры — это миниатюрная и очень быстрая память внутри процессора. Их немного, но без них процессор не смог бы работать эффективно.

Как всё работает вместе

Теперь давайте посмотрим на процессор как на единое устройство. Когда компьютер запускается, процессор начинает читать инструкции из памяти. Сначала счётчик команд указывает на первую инструкцию. Эта инструкция загружается в регистр инструкций. Дешифратор переводит её в набор сигналов. Эти сигналы управляют мультиплексорами, регистрами и АЛУ. Если нужно — процессор идёт в память за данными. Когда команда выполнена, счётчик команд переключается на следующую инструкцию. И так происходит снова и снова, пока компьютер работает.

Чтобы сделать объяснение ещё более понятным, представим, что процессор — это маленькая кухня. Блок управления — это шеф-повар, который говорит: «Сначала нарежь овощи, потом поставь кастрюлю». АЛУ — это повар-исполнитель, который нарезает, мешает, жарит. Регистры — это столики, на которых лежат продукты и заготовки, пока они нужны. Память — это большой холодильник в соседней комнате. Шеф-повар не бегает каждый раз в магазин за морковкой. Он кладёт продукты на стол (регистры), потом использует их для приготовления (АЛУ), и только если нужно — снова убирает в холодильник (память).

Итак, мы узнали, что процессор — это мозг компьютера. Он нужен для того, чтобы выполнять команды: получать их из памяти, управлять их исполнением, выполнять арифметические и логические операции и хранить промежуточные результаты.

Внутри процессора можно выделить три главные части:

  1. Блок управления (Счетчик команд, регистр инструкций, дешифратор, мультиплексоры).
  2. АЛУ (арифметика и логика).
  3. Регистры (быстрая память внутри процессора).

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

Простейший набор команд

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

Оказывается, чтобы компьютер был полезным, достаточно очень небольшого набора команд. Они настолько просты, что на первый взгляд кажется: «Неужели из этого можно собрать всё?» Но да, именно так.

​

​Самая первая и необходимая команда называется LOAD (от англ. «загрузить»). Она означает: взять число из памяти и положить его в регистр процессора. Например, в памяти по адресу 10 хранится число 5. Команда LOAD R1, 10 загрузит это число в регистр R1. Теперь процессор может работать с ним быстро, не обращаясь к памяти. Можно представить себе, что память — это большой шкаф с ящиками, а регистр — это маленький карман. Чтобы что-то посчитать, мы достаём число из шкафа и кладём в карман.

Вторая команда — STORE («сохранить»). Она делает обратное: берёт число из регистра и кладёт обратно в память. Например: STORE R1, 20 — положить содержимое регистра R1 в ячейку памяти с адресом 20. Это как если бы мы положили вещь обратно в шкаф. Эта команда нужна, чтобы процессор мог делиться результатами своей работы с остальной системой. Ведь если результат останется только в регистре, он исчезнет при следующей операции.

Теперь давайте добавим самое главное — возможность считать. Минимально нужны две команды: ADD — сложить. SUB — вычесть. Например, ADD R1, R2 означает: прибавить содержимое регистра R2 к содержимому регистра R1, а результат положить в R1. То же самое с вычитанием: SUB R1, R2 — вычесть значение из R2 из регистра R1. Эти команды выполняются в АЛУ. Блок управления только даёт сигнал: «Сейчас выполняем сложение» или «Сейчас вычитание». Всё остальное делает АЛУ.

Чтобы программы были полезными, одной арифметики мало. Нужна возможность делать выбор: что выполнять дальше. Для этого есть команды сравнения и переходов. Например: CMP R1, R2 — сравнить содержимое двух регистров. JUMP IF ZERO, адрес — если результат равен нулю, перейти на другую инструкцию в памяти.

Это похоже на развилку на дороге: если светофор зелёный — идём прямо, если красный — поворачиваем.

Итак, если собрать всё вместе, минимальный набор команд выглядит так:

  • LOAD — загрузить данные из памяти в регистр.
  • STORE — сохранить данные из регистра в память.
  • ADD/SUB — арифметические операции.
  • CMP/JUMP — условные переходы.

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

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

Как процессор читает команды

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

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

Когда процессор достаёт инструкцию из памяти, он помещает её в другой регистр — регистр инструкций. То есть последовательность такая:

  1. Счётчик команд указывает адрес.
  2. Процессор берёт из памяти команду по этому адресу.
  3. Копирует её в регистр инструкций.
  4. Счётчик команд увеличивается на 1, чтобы быть готовым к следующей инструкции.

Чтобы процессор мог обращаться к памяти, внутри него есть два специальных регистра:

  • MAR (Memory Address Register) — хранит адрес ячейки памяти, к которой нужно обратиться.
  • MDR (Memory Data Register) — хранит данные, которые пришли из памяти или будут туда отправлены.

Если счётчик команд указывает «100», это значение сначала попадает в MAR. Затем память по этому адресу отдаёт инструкцию, и она временно помещается в MDR. После этого команда копируется из MDR в регистр инструкций.

Шины

Теперь у вас может возникнуть закономерный вопрос: а по каким «проводам» все эти данные и адреса бегают?

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

  1. Шина адреса — по ней процессор сообщает, к какой ячейке памяти он обращается. Например: «дай мне содержимое ячейки №100».
  2. Шина данных — по ней передаются сами данные (инструкции или числа). Например: память отправляет в процессор инструкцию «LOAD».
  3. Шина управления — по ней блок управления сообщает, что именно сейчас нужно делать: «читать из памяти» или «записывать в память».

​

​Теперь соберём всё в единый процесс:

  1. Счётчик команд содержит адрес следующей инструкции.
  2. Этот адрес отправляется в MAR.
  3. MAR передаёт адрес по шине адреса в память.
  4. Память по этому адресу находит инструкцию и отправляет её по шине данных в MDR.
  5. MDR передаёт инструкцию в регистр инструкций.
  6. Счётчик команд увеличивается на 1.
  7. Дешифратор блока управления анализирует инструкцию из IR и подаёт сигналы в процессор: куда послать данные, какое действие выполнить.
  8. И так снова и снова — шаг за шагом процессор выполняет каждую команду.

Мы закрепили важные понятия:

  1. Счётчик команд указывает, какая инструкция будет следующей.
  2. MAR и MDR помогают процессору работать с памятью.
  3. Регистр инструкций хранит текущую команду.

Теперь у нас есть полная картина того, как процессор читает команды шаг за шагом.

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

Следующий урок: Как работает компьютер? Часть 43. Работа процессора шаг за шагом

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

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

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

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

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

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

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

IT Extra