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

Как работает компьютер? Часть 30. АЛУ: Арифметика и логика — сердце процессора

Предыдущий урок: Как работает компьютер? Часть 29. Вычитание и отрицательные числа — как компьютер учится работать с минусами До этого момента мы познакомились с полусумматором, полным сумматором и многобитным сумматором, научились складывать числа, выполнять вычитание и работать с отрицательными значениями. Мы даже увидели, что все арифметические операции можно свести к сложению. Но процессор занимается не только арифметикой. Он должен уметь сравнивать числа, проверять условия, работать с логикой «И», «ИЛИ», «НЕ». Именно поэтому инженеры придумали особый блок, который объединяет арифметику и логику. Этот блок называется арифметико-логическое устройство или просто АЛУ (от англ. ALU — Arithmetic and Logic Unit). Все вычисления, все проверки условий, всё принятие решений в компьютере проходит через АЛУ. Арифметическая часть АЛУ Основой арифметической части является многобитный сумматор. Именно он выполняет сложение. Но мы знаем, что при помощи дополнительного кода этот же сумматор может
Оглавление

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

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

Но процессор занимается не только арифметикой. Он должен уметь сравнивать числа, проверять условия, работать с логикой «И», «ИЛИ», «НЕ». Именно поэтому инженеры придумали особый блок, который объединяет арифметику и логику. Этот блок называется арифметико-логическое устройство или просто АЛУ (от англ. ALU — Arithmetic and Logic Unit). Все вычисления, все проверки условий, всё принятие решений в компьютере проходит через АЛУ.

Арифметическая часть АЛУ

Основой арифметической части является многобитный сумматор. Именно он выполняет сложение.

Но мы знаем, что при помощи дополнительного кода этот же сумматор может выполнять и вычитание. А если дополнить схему умножением на два (сдвигом влево), то можно получить и простейшее умножение.

Таким образом, арифметическая часть АЛУ обычно включает:

  1. сложение,
  2. вычитание,
  3. иногда инкремент (прибавление 1) и декремент (вычитание 1),
  4. операции сдвига (влево или вправо).

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

Операция сдвига

Операция сдвига — это битовая операция в АЛУ процессора, при которой все биты (разряды) двоичного числа сдвигаются влево или вправо на определенное количество позиций. Проще говоря, это как сдвинуть все биты числа в одну сторону. Биты, которые "выталкиваются" за границу разрядной сетки, теряются, а с противоположной стороны добавляются новые биты (обычно нули).

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

  1. Умножения и деления на степени двойки (2, 4, 8, 16 и т.д.).
  2. Изоляции или проверки отдельных битов.
  3. Выравнивания данных.
  4. Реализации более сложных арифметических операций.

Пример в двоичной системе:

  1. Число 5 в двоичной системе — 101.
  2. 101 → сдвиг влево → 1010.
  3. 1010 в десятичной системе — это 10.
  4. 5 * 2 = 10. Всё сошлось!

Сдвиг влево на N битов равносилен умножению на 2^N (на 2 в степени N).

  1. Сдвиг на 1 бит: умножение на 2^1 = на 2
  2. Сдвиг на 2 бита: умножение на 2^2 = на 4
  3. Сдвиг на 3 бита: умножение на 2^3 = на 8

и так далее.

IT Extra

Логическая часть АЛУ

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

  1. И (AND) — результат равен 1 только если оба бита равны 1;
  2. ИЛИ (OR) — результат равен 1, если хотя бы один бит равен 1;
  3. НЕ (NOT) — просто инверсия: 0 превращается в 1, 1 — в 0;
  4. Исключающее ИЛИ (XOR) — результат равен 1, если биты разные.

Эти простые операции позволяют решать удивительно сложные задачи. Например, проверка равенства двух чисел сводится к побитовому XOR: если все результаты равны нулю, то числа равны.

Управление АЛУ

АЛУ должно уметь выполнять и арифметические, и логические операции. Как оно понимает, что именно нужно сделать в данный момент? Этим занимается особый «управляющий блок». К АЛУ подводят управляющие сигналы, которые выбирают, какая операция будет выполнена. Это можно сравнить с меню: процессор «говорит» АЛУ, что именно нужно сделать — сложить, вычесть, сравнить или выполнить логическую операцию.

Флаги и результаты

Когда АЛУ выполняет операцию, помимо результата, оно часто выставляет специальные «флажки». Эти флажки — маленькие сигналы, которые описывают, что произошло в ходе вычисления. Например:

  • флаг нуля (Zero) — результат равен 0;
  • флаг знака (Sign) — результат отрицательный;
  • флаг переноса (Carry) — произошёл перенос из старшего разряда;
  • флаг переполнения (Overflow) — результат не помещается в диапазон.

Эти флаги очень важны для программ. Они позволяют процессору принимать решения. Например: «Если результат равен нулю, переходи на другую часть программы».

Теперь у нас в руках есть самый главный компонент будущего процессора. Всё, что мы строили до этого (сумматоры, отрицательные числа, логические операции), собрано внутри АЛУ.

Именно АЛУ выполняет «работу мышц» процессора. Оно не решает, что делать — этим занимается блок управления. Но оно умеет быстро и надёжно выполнять все арифметические и логические задачи.

Мы собрали воедино все наши знания и построили арифметико-логическое устройство. Мы увидели, что АЛУ выполняет две группы задач: арифметические операции (сложение, вычитание, сдвиги) и логические операции (И, ИЛИ, НЕ, XOR). Управляющий блок выбирает, какую операцию выполнить, а специальные флажки помогают процессору принимать решения.

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

Следующий урок: Как работает компьютер? Часть 31. Блок управления и регистры — фундамент процессора

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

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

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

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

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

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

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

IT Extra