Мультиплексор (MUX)
Входы (Inputs)
| Пин | Тип | Описание |
|---|---|---|
| A | bit | Первый вход |
| B | bit | Второй вход |
| Sel | bit | 0→A, 1→B |
Выходы (Outputs)
| Пин | Тип | Описание |
|---|---|---|
| Q | bit | Sel=0→A, Sel=1→B |
Логика работы
Представь железнодорожную стрелку: два пути сливаются в один, и стрелочный перевод решает, какой состав поедет дальше. MUX — та же стрелка, только для битовых сигналов. На входы A и B приходят два сигнала, на вход Sel — команда «кого пропустить», и на выходе Q оказывается ровно один из них.
Главное свойство: Sel = 0 открывает путь A, Sel = 1 — путь B. За этим стоит простая формула Q = (A ∧ ¬Sel) ∨ (B ∧ Sel): сигнал A умножается через AND на «Sel равен нулю», сигнал B — на «Sel равен единице», и OR сводит результаты. Лишний вход физически запирается нулём и до выхода не доходит — переключение происходит мгновенно при любом изменении Sel.
Нюанс: MUX ничего не вычисляет и не запоминает — он только выбирает. Зато из него собираются сколь угодно большие коммутаторы: два MUX 2→1 плюс ещё один дают 4→1, а каскад из семи штук — 8→1, где источник выбирается трёхбитным адресом. Эта масштабируемость и делает мультиплексор универсальным маршрутизатором процессора.
Примеры
| Сценарий | A | B | Sel | Q |
|---|---|---|---|---|
| Выбран A, на нём 1 | 1 | 0 | 0 | 1 |
| Выбран B, но на нём 0 | 1 | 0 | 1 | 0 |
| Выбран B, на нём 1 | 0 | 1 | 1 | 1 |
| Сигналы одинаковые | 1 | 1 | 0 или 1 | 1 |
Обрати внимание на последнюю строку: если на обоих входах одинаковый сигнал, переключение селектора ничего не меняет — выход просто не заметит «щелчка стрелки».
Таблица истинности
| Sel | A | B | Q |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
Применение
Пороговый уровень — 9, но настоящая роль MUX раскрывается в процессоре. Выбор источника данных — его основная работа: какой регистр выйдет на общую шину, какое значение подать в АЛУ, какой адрес отправить в RAM — адрес из ProgramCounter или из IndexRegister. В АЛУ (уровень 13) каскад мультиплексоров по битам opcode выбирает между результатами сумматора и логических блоков.
Конкретный приём — наращивание: два бита селектора и три MUX 2→1 дают выбор из четырёх источников, три бита и семь MUX — из восьми. Тем же способом собираются маршрутизаторы для декодера команд и переключатели шин. Всякий раз, когда в схеме данные «сходятся» из двух мест в одно, между ними стоит мультиплексор.
Интерактивная демонстрация
Кликайте по входам, чтобы переключить значение (0 / 1)
Смежные компоненты
Статьи по теме
Частые вопросы
Как MUX выбирает вход?
Сигнал выбора S определяет источник: при S=0 на выход идёт A, при S=1 — B.
Как собрать MUX 8→1 из MUX 2→1?
Каскадом в три этажа: четыре MUX разбирают пары входов, два — пары результатов, финальный выбирает между ними. Всего семь MUX 2→1, а трёхбитный селектор становится адресом нужного входа.
Чем MUX отличается от BusMUX?
MUX переключает одиночные биты, BusMUX — целые 8-битные шины: внутри он повторяет ту же формулу для каждого из восьми битов сразу.