В электронике мультиплексор (или mux ; иногда пишется как multiplexor ), также известный как селектор данных , представляет собой устройство, которое выбирает между несколькими аналоговыми или цифровыми входными сигналами и пересылает выбранный вход на одну выходную линию. [1] Выбор осуществляется отдельным набором цифровых входов, известных как линии выбора. Мультиплексор входов имеет линии выбора, которые используются для выбора входной линии для отправки на выход. [2]
Мультиплексор позволяет нескольким входным сигналам совместно использовать одно устройство или ресурс, например, один аналого-цифровой преобразователь или одну среду передачи данных , вместо того, чтобы иметь одно устройство на входной сигнал. Мультиплексоры также могут использоваться для реализации булевых функций нескольких переменных.
Наоборот, демультиплексор (или демультиплексор ) — это устройство, принимающее один вход и выбирающее сигналы выхода совместимого мультиплексора , который подключен к одному входу, и общей линии выбора. Мультиплексор часто используется с дополнительным демультиплексором на приемном конце. [1]
Электронный мультиплексор можно рассматривать как многовходовой, одновыходовой переключатель, а демультиплексор — как одновходовой, многовыходовой переключатель. [3] Схематическое обозначение мультиплексора — равнобедренная трапеция с длинной параллельной стороной, содержащей входные контакты, и короткой параллельной стороной, содержащей выходной контакт. [4] Схема справа показывает мультиплексор 2-к-1 слева и эквивалентный переключатель справа. Провод соединяет нужный вход с выходом.
Мультиплексоры являются частью компьютерных систем для выбора данных из определенного источника, будь то чип памяти или периферийное устройство. Компьютер использует мультиплексоры для управления шинами данных и адресов, позволяя процессору выбирать данные из нескольких источников данных
В цифровой связи мультиплексоры позволяют осуществлять несколько соединений по одному каналу, соединяя один выход мультиплексора с одним входом демультиплексора (мультиплексирование с временным разделением). Изображение справа демонстрирует это преимущество. В этом случае стоимость реализации отдельных каналов для каждого источника данных выше, чем стоимость и неудобства предоставления функций мультиплексирования/демультиплексирования.
На приемном конце канала передачи данных обычно требуется дополнительный демультиплексор для разбиения единого потока данных обратно на исходные потоки. В некоторых случаях система на дальнем конце может иметь функциональность, превышающую функциональность простого демультиплексора; и хотя демультиплексирование все еще происходит технически, оно никогда не может быть реализовано дискретно. Это может быть в случае, когда, например, мультиплексор обслуживает несколько пользователей IP- сети; а затем напрямую подает данные в маршрутизатор , который немедленно считывает содержимое всего канала в свой процессор маршрутизации ; а затем выполняет демультиплексирование в памяти, откуда оно будет напрямую преобразовано в IP-секции.
Часто мультиплексор и демультиплексор объединяются в единое устройство, которое просто называется мультиплексором . Оба элемента схемы необходимы на обоих концах линии передачи, поскольку большинство систем связи передают данные в обоих направлениях .
В аналоговой схемотехнике мультиплексор — это особый тип аналогового переключателя, который подключает один сигнал, выбранный из нескольких входов, к одному выходу.
В цифровой схеме селекторные провода имеют цифровое значение. В случае мультиплексора 2-в-1 логическое значение 0 будет подключено к выходу, а логическое значение 1 будет подключено к выходу. В более крупных мультиплексорах количество селекторных контактов равно , где - количество входов.
Например, для 9–16 входов потребуется не менее 4 селекторных контактов, а для 17–32 входов потребуется не менее 5 селекторных контактов. Двоичное значение, выраженное на этих селекторных контактах, определяет выбранный входной контакт.
Мультиплексор 2-в-1 имеет булево уравнение , где и — два входа, — вход селектора, а — выход:
Что можно выразить в виде таблицы истинности :
Или, в более простой записи:
Эти таблицы показывают, что когда тогда но когда тогда . Простая реализация этого мультиплексора 2-в-1 потребовала бы 2 вентиля И, вентиль ИЛИ и вентиль НЕ. Хотя это математически правильно, прямая физическая реализация была бы подвержена условиям гонки , которые требуют дополнительных вентилей для подавления. [5]
Более крупные мультиплексоры также распространены и, как указано выше, требуют штырьков селектора для входов. Другие распространенные размеры — 4-к-1, 8-к-1 и 16-к-1. Поскольку цифровая логика использует двоичные значения, используются степени 2 (4, 8, 16) для максимального управления количеством входов для заданного количества входов селектора.
Булево уравнение для мультиплексора 4 к 1 имеет вид:
Что можно выразить в виде таблицы истинности :
Следующий мультиплексор 4-в-1 построен из буферов с 3 состояниями и вентилей И (вентили И действуют как декодер):
Нижние индексы на входах указывают десятичное значение двоичных управляющих входов, при котором этот вход пропускается.
Большие мультиплексоры могут быть построены с использованием меньших мультиплексоров путем их соединения вместе. Например, мультиплексор 8-в-1 может быть сделан из двух мультиплексоров 4-в-1 и одного мультиплексора 2-в-1. Два выхода мультиплексора 4-в-1 подаются в 2-в-1 с селекторными штырьками на 4-в-1, включенными параллельно, что дает общее количество селекторных входов 3, что эквивалентно 8-в-1.
Для номеров деталей серии 7400 в следующей таблице «x» — это логическое семейство.
Демультиплексоры принимают один вход данных и несколько входов выбора, и у них есть несколько выходов. Они пересылают вход данных на один из выходов в зависимости от значений входов выбора. Демультиплексоры иногда удобны для проектирования логики общего назначения, потому что если вход демультиплексора всегда истинен, демультиплексор действует как двоичный декодер . Это означает, что любая функция битов выбора может быть построена путем логического ИЛИ правильного набора выходов.
Если X — вход, S — селектор, а A и B — выходы:
Для номеров деталей серии 7400 в следующей таблице «x» — это логическое семейство.
Двунаправленные мультиплексоры строятся с использованием аналоговых переключателей или шлюзов передачи, управляемых штырями выбора. Это позволяет менять роли входа и выхода, так что двунаправленный мультиплексор может функционировать и как демультиплексор, и как мультиплексор. [6]
Мультиплексоры также могут использоваться как программируемые логические устройства для реализации булевых функций. Любая булева функция n переменных и одного результата может быть реализована с помощью мультиплексора с n селекторными входами. Переменные подключаются к селекторным входам, а результат функции, 0 или 1, для каждой возможной комбинации селекторных входов подключается к соответствующему входу данных. Если одна из переменных (например, D ) также доступна инвертированной, достаточно мультиплексора с n -1 селекторными входами; входы данных подключаются к 0, 1, D , или ~ D , в соответствии с желаемым выходом для каждой комбинации селекторных входов. [7]
Мультиплексоры нашли применение в нетрадиционных стохастических вычислениях (SC), в частности, для упрощения арифметического сложения. В этой парадигме данные представлены как поток битов вероятности, где количество битов «1» обозначает величину значения. Таким образом, функция мультиплексора 2-к-1 может быть концептуализирована как функция вероятности, обозначенная как:
, где a и b — входной поток битов, а s — выбранный вход. Использование выбранного входа = 0,5 дает:
Хотя этот подход не дает точного сложения, а скорее масштабированного сложения, он считается приемлемым в большинстве исследований SC. Мультиплексоры широко используются для таких задач, как усредненное сложение, усредненное объединение и медианная фильтрация в схемах SC. Более того, более сложные приложения мультиплексоров включают работу в качестве генератора полиномиальных функций Бернштейна, [8] способного производить произвольные математические функции в области SC. Недавние исследования также показали, что комбинации мультиплексоров могут облегчить крупномасштабную операцию умножения-накопления , [9] демонстрируя осуществимость ускорения сверточной нейронной сети на программируемых вентильных матрицах .