Изменения

Перейти к: навигация, поиск

Мультиплексор и демультиплексор

1486 байт добавлено, 22:05, 10 декабря 2018
Применение мультиплексора и демультиплексора в реальной жизни
===Модуль памяти===
 
Также с помощью мультиплексоров и демультиплексоров можно построить логику некоторых компонентов компьютера, в том числе и можно построить схему модуля памяти с использованием мультиплексора и демультиплексора.
 
Допустим, что нам нужно реализовать модуль памяти на 8 бит. Обозначим эти биты как <tex>s_0</tex>, <tex>s_1</tex>, <tex>\ldots</tex>, <tex>s_7</tex>. Также допустим, что у нас есть следующие входы: <tex>a_0</tex>, <tex>a_1</tex>, <tex>a_2</tex>, которые задают номер бита, который следует обработать, также есть вход <tex>R/W</tex>, значение на котором равно <tex>0</tex>, если надо прочитать значение <tex>i</tex>-го бита, где <tex>i</tex> - число, которое кодируется входами <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex> и вывести его на выход <tex>Q</tex>, или <tex>1</tex>, если надо записать в <tex>i</tex>-ый бит значение на входе <tex>D</tex>. Также есть вход <tex>C</tex> - провод синхронизации.
Давайте для хранения значения в <tex>i</tex>-ом бите будем использовать [[Триггеры#D-триггер|D-триггер]]. Если на входе <tex>c</tex> записано значение <tex>0</tex>, то нам не важно, что находится на выходе <tex>Q</tex>, поэтому эту ситуацию можно свести к ситуации, когда на <tex>C</tex> подано <tex>1</tex>, а на <tex>R/W</tex> - <tex>0</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>Y</tex> подадим на вход значение гейта <tex>AND</tex>, которому на вход подаются входы <tex>R/W</tex> и <tex>C</tex>. Тогда если либо на входе <tex>R/W</tex> <tex>0</tex>, либо на входе <tex>C</tex> подать <tex>0</tex> то на выходе демультиплексора будут все <tex>0</tex>. Если же и на <tex>R/W</tex> и на <tex>C</tex> подать <tex>1</tex>, то на выходе <tex>Z_i</tex> будет<tex>1</tex>, а на остальных - <tex>0</tex>, где <tex>i</tex> - число, которое кодируется входами <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex>. Соединим выходы <tex>Z_0</tex>, <tex>Z_1</tex>, <tex>\ldots</tex>, <tex>Z_7</tex> демультиплексора к входам <tex>C</tex> D-триггеров, причём мы соединим выход <tex>Z_i</tex> с триггером, который хранит значение <tex>i</tex>-го бита. Подадим значение на входе <tex>D</tex> элементы памяти на оставшиеся свободными входы триггеров. Если же <tex>R/W = 0</tex> или <tex>C = 0</tex>, то все триггеры вернут значения, которые в них записаны. Если же <tex>R/W = 1</tex> и <tex>C = 1</tex>, то только в <tex>i</tex>-ый триггер запишется значение на входе <tex>D</tex>, тогда как на остальные триггеры на соответствующие им входы <tex>C</tex> будут подаваться <tex>0</tex>. Потом соединим <tex>i</tex>-ый триггер с <tex>X_i</tex> входом мультиплексора, также подадим значения на входах <tex>A_0</tex>, <tex>A_1</tex>, <tex>A_2</tex> на входы <tex>S_0</tex>, <tex>S_1</tex>, <tex>S_2</tex> мультиплексора. Тогда мультиплексор на выход <tex>Z</tex> выдаст значение, которое подаётся на <tex>X_i</tex>-ый вход, причём на <tex>Q</tex> всегда будет подаваться значение на <tex>i</tex>-ом бите независимо от значения на входе <tex>R/W</tex>, т.к. если был запрос "Записать в <tex>i</tex>-ый бит значение <tex>D</tex>, то неважно, что будет на выходе <tex>Q</tex>".
Однако, такая схема редко используется в реальных электронно-вычислительных машинах, поскольку иногда требуется делать несколько миллионов ячеек памяти, а с помощью такого модуля памяти сделать это будет очень трудно, поскольку такая схема будет потреблять большое количество энергии, а также требует много места и большого количества проводников, что влияет на качество передачи сигнала по проводам. Гораздо эффективнее использовать матричную память, поскольку она позволяет с использованием меньшее количества проводов управлять большим количеством ячеек, а также она менее громоздкая.
{|
|[[Файл:8bitmemory.png|thumb|600px|Логическая схема модуля памяти на 8 бит]]
390
правок

Навигация