Предыдущий урок: Как работает компьютер? Часть 31. Блок управления и регистры — фундамент процессора
В прошлом разделе мы научили компьютер считать: сложение, вычитание, работа с отрицательными числами и даже целое арифметико-логическое устройство (АЛУ). Но процессор — это не только арифметика. Представьте, что у вас есть калькулятор, который может выполнять сложение и вычитание, но у него нет кнопок. Он вроде бы умеет считать, но вы не можете ему сказать, что именно посчитать.
Вот здесь и начинается самое интересное: чтобы процессор работал как полноценная машина, нужно научиться управлять потоком данных. Иногда нужно подать в АЛУ одно число, иногда другое; иногда нужно записать результат в память, а иногда — переслать его дальше. Для всего этого и нужны особые схемы: «переключатели», «распределители» и «счётчики».
Первым и самым простым элементом такого рода является мультиплексор.
Слово «мультиплексор» звучит сложновато, но на самом деле это очень простая идея. Представьте телевизор с несколькими входами: HDMI, AV, USB. Вы можете подключить к нему разные устройства: приставку, DVD-плеер, флешку. Но в каждый момент времени телевизор показывает только один источник. Чтобы выбрать его, вы нажимаете кнопку на пульте.
Мультиплексор работает точно так же. У него есть несколько входов (например, A, B, C, D), один выход (Y) и «сигнал выбора». Сигнал выбора говорит мультиплексору, какой именно вход в данный момент должен быть подключён к выходу.
Например, если сигнал выбора равен 0, мультиплексор выдаёт на выход значение входа A. Если сигнал выбора равен 1 — вход B. Если 2 — вход C, если 3 — вход D. Таким образом, мультиплексор — это электронный переключатель данных.
Процессор постоянно работает с множеством данных: числа из памяти, команды, промежуточные результаты. Но в каждый момент времени в АЛУ можно подать только два числа — «левый операнд» и «правый операнд». Значит, нужно устройство, которое умеет выбирать, какие именно данные сейчас отправить в АЛУ.
И вот здесь на сцену выходит мультиплексор. Он как диспетчер на развязке дорог: смотрит на управляющий сигнал и решает, какой поток машин (данных) поедет дальше.
Представим простой 2→1 мультиплексор: у него два входа (A и B) и один выход (Y). У него есть управляющий бит S (от слова Select — «выбрать»).
Если S = 0, то Y = A. Если S = 1, то Y = B.
Пример:
A = 1, B = 0, S = 0 → Y = 1 (выбрали A).
A = 1, B = 0, S = 1 → Y = 0 (выбрали B).
Если увеличить количество входов, то и управляющих битов нужно больше. Например, для 4→1 мультиплексора (четыре входа и один выход) нужно два управляющих бита, потому что два бита могут закодировать четыре состояния (00, 01, 10, 11).
Так как мы пришли сюда из раздела о логических схемах, важно понять: мультиплексор можно построить из обычных логических элементов. Например, 2→1 мультиплексор можно собрать с помощью элементов «И», «НЕ» и «ИЛИ»:
Y = (A AND (NOT S)) OR (B AND S)
То есть если сигнал выбора равен 0, выход равен A. Если равен 1 — выход равен B.
Таким образом, мультиплексор — это просто комбинация логических схем, которая ведёт себя как переключатель.
Теперь давайте вспомним, что мы построили в прошлом разделе: АЛУ. У него есть два входа для чисел. Но откуда брать эти числа? Иногда они должны прийти из памяти, иногда из регистра, иногда быть просто числом внутри команды.
Мультиплексор как раз решает эту задачу. Он подключает к входу АЛУ нужный источник данных. И делает это по сигналу от управляющего блока процессора. Мультиплексор - это "рабочая деталь", которая сама по себе не является отдельным большим блоком, как АЛУ или память.Это сервисный элемент, которы встроен в процессор и помогает переключать данные.
Можно сказать, что без мультиплексора процессор был бы как человек, который видит сразу десять дорог перед собой, но не знает, по какой идти. Мультиплексор же превращает этот хаос в порядок.
Сегодня мы познакомились с новым важным устройством — мультиплексором. Мы узнали, что это электронный переключатель, который позволяет процессору выбирать, какие данные использовать в данный момент. Мы разобрали примеры 2→1 и 4→1 мультиплексоров, посмотрели, как их можно построить из логических элементов, и поняли, почему без них невозможна работа процессора.
Теперь у нас в руках есть инструмент для выбора данных. Но выбор — это только половина дела. Иногда нужно не выбрать один из входов, а наоборот — активировать один из многих выходов. Этой задачей занимается другое устройство — дешифратор. Именно о нём мы поговорим в следующем уроке.
Спасибо за внимание!
Следующий урок: Как работает компьютер? Часть 33. Дешифратор — Активируем нужный выход
P.S.
Если вы теперь смотрите на свой телефон или ноутбук не как на бездушную железку, а как на клубок молний, который научили думать, — вам понравится мой курс «Как работает компьютер. Просто о сложном» https://stepik.org/a/249383. Специально для Дзен действует промокод со скидкой 20%: DZEN20.
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
________________________________________________________________________👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!