390
правок
Изменения
→Применение мультиплексора и демультиплексора в реальной жизни
В качестве примера можно рассмотреть использование мультиплексоров для разделения на временные слоты и предоставления каждому объекту логической цепи свой слот, во время которого можно обмениваться данными с другими объектами. Такой способ позволяет использовать как можно меньше проводов для соединения объектов между собою. Такой принцип применяется при построении телефонных станций, которые соединяются с помощью одного провода, а для обеспечения помехоустойчивой связи используются временные слоты, в которые только одна из станций может обмениваться данными с остальными.
Также мультиплексоры и демультиплексоры используются в современных телефонах для обеспечения генерации сигналов в голосовые сообщения, поскольку позволяют с помощью малого (порядка <tex>30 </tex> входов) воспроизводить любой сигнал с частотой, которую может услышать человеческое ухо. ===Модуль памяти=== Также с помощью мультиплексоров и демультиплексоров можно построить логику некоторых компонентов компьютера, в том числе и можно построить схему модуля памяти с использованием мультиплексора и демультиплексора. В качестве примера рассмотрим модуль памяти на 8 бит. Для того, чтобы модуль памяти мог обрабатывать запросы, есть управляющие входы <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex>, которые кодируют номер бита, к которому делается запрос. Существует два типа запросов:* Прочитать значение, записанное в <tex>i</tex>-ом бите. В этом случае на вход <tex>R/W</tex> подаётся <tex>0</tex>.* Записать в <tex>i</tex>-ый бит значение на входе <tex>D</tex>. В этом случае на вход <tex>R/W</tex> подаётся <tex>1</tex>. Также для корректной работы модуля памяти используется провод синхронизации <tex>C</tex>. На рисунке представлена схема такой памяти. Для хранения значений в битах используются [[Триггеры#D-триггер|<tex>D</tex>-триггеры]]. Рассмотрим схему подробнее. Если на входе <tex>C</tex> записано значение <tex>0</tex>, то нам не важно, что находится на выходе <tex>Q</tex>, поэтому эту ситуацию можно свести к ситуации, когда на <tex>C</tex> подано <tex>1</tex>, а на <tex>R/W</tex> — <tex>0</tex>. Поймём, как реализованы операции чтения и записи. Существует демультиплексор <tex>3</tex>-to-<tex>8</tex>, которому на вход <tex>Y</tex> подаётся результат конъюнкции входов <tex>R/W</tex> и <tex>C</tex>, а на входы <tex>S_0</tex>, <tex>S_1</tex>, <tex>S_2</tex> — значения на входах <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex>. Пусть число <tex>i</tex> кодируется входами <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex>. Тогда на все выходы демультиплексора, кроме выхода <tex>Z_i</tex> будет подаваться <tex>0</tex>, а на выход <tex>Z_i</tex> — значение на входе <tex>Y</tex>. Очевидно, что операция чтения никак не изменяет значение битов, в то время как запись меняет их значения, поэтому можно считать, что модуль памяти всегда возвращает значение на <tex>i</tex>-ом бите, кроме случаев, когда <tex>C = R/W = 1</tex>. Подадим все выходы демультиплексора на соответствующие им входы <tex>C</tex> <tex>D</tex>-триггеров. Оставшиеся свободными входы триггеров соединим со входом <tex>D</tex> модуля памяти. Тогда все триггеры, возможно, кроме <tex>i</tex>-го триггера будут только возвращать значения, записанные в них, и только <tex>i</tex>-ый триггер поменяет своё значение в случае, если <tex>C = R/W = 1</tex>. Также есть мультиплексор <tex>8</tex>-to-<tex>1</tex>, которому на входы <tex>X_0</tex>, <tex>X_1</tex>, <tex>\ldots</tex>, <tex>X_7</tex> подают значения соответственных триггеров, а на входы <tex>S_0</tex>, <tex>S_1</tex>, <tex>S_2</tex> подают значения на входах <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex>. Тогда мультиплексор всегда возвращает значение, хранящееся в <tex>i</tex>-ом бите. Очевидно, что на любой запрос чтения значения в <tex>i</tex>-ом бите модуль памяти возвращает то, что нужно, а что схема возвращает на запрос записи неважно. Однако, такая схема редко используется в реальных электронно-вычислительных машинах, поскольку иногда требуется делать очень много ячеек памяти, а сделать много таких модулей бывает проблематично из-за того, что требуется использования большого количества проводов, а также такая схема будет потреблять большое количество энергии, поэтому чаще используют матричную память, поскольку она позволяет с использованием меньшее количества проводов управлять большим количеством ячеек, а также она занимает меньше места.
Огромную роль они играют также и в производстве компьютеров.
{|
|[[Файл:8bitmemory.png|thumb|600px|Логическая схема модуля памяти на <tex>8 </tex> бит]]
|}