Multiplexing and Demultiplexing In some sense, Multiplexing and Demultiplexing is just a special case of the truth tables we have been studying. You can look under “multiplexor” and “decoder” in the index of Tokheim for more information.
Getting Around • A fair amount of what goes on inside computers or on computer networks just involves moving data (as opposed to processing that data). • Most designs have shared information channels (a bus). • Part of the path used to get from Point A to Point B may also be along the way from Point C to Point D. • Multiplexing and demultiplexing concerns selecting the data to be transmitted and directing the data to its destination.
Multiplexing • Multiplexing is sending more than one signal on a carrier. • There are two standard types of multiplexing. • Frequency-Division Multiplexing (FDM): the medium carries a number of signals, which have different frequencies; the signals are carried simultaneously. • Time-Division Multiplexing (TDM): different signals are transmitted over the same medium but they do so at different times – they take turns.
Mutiplexing Multiplexing allows one to select one of the many possible sources.
Statistical TDM • In standard TDM, the inputs take turns, one after the other gets to put its information onto the wire. • In Statistical TDM, the input with the most data or highest priority gets a higher share of the time. • In this course, our wires hold a single bit of information at a time, so we will focus on a simple type of TDM. It will be somewhat more like statistical TDM in that we will be choosing which input places its information on the wire.
Multiplexing • There are several data inputs and one of them is routed to the output (possibly the shared communication channel). • Like selecting a television channel (although that example is FDM). • In addition to data inputs, there must be select inputs. • The select inputs determine which data input gets through. • How many select pins are needed? • Depends on number of data inputs.
Addresses • All of the (data) inputs at hand are assigned addresses. The address of the data input is used to select which data input is placed on the shared channel. • So in addition to the collection of data inputs, there are selection (or address) inputs that pick which of the data inputs gets through.
How many? • One bit can have two states and thus distinguish between two things. • Two bits can be in four states and … • Three bits can be in eight states, … • N bits can be in 2N states
Nomenclature • A Multiplexer is also known as a MUX. • A MUX has several data inputs and one data output. • If the MUX has N (possible) data inputs, it is referred to as an N-to-1 MUX. • Since computers work in binary, the N is usually a power of 2. • An N-to-1 MUX should have log2(N) address inputs (pins).
Combinatorial Logic • A MUX uses combinatorial logic (as opposed to a sequential logic which involves memory). • The output of a MUX depends solely on the data input and the select input. • Thus it is just the realization of a truth table.
Truth table for 2-to-1 MUX When A=0, Out is same as D0, when A=1, Out is same as D1
Algebra for 2-to-1 MUX • Take expressions for 1’s found in truth table • AD0D1 + AD0D1 + AD0D1 + AD0D1 • This can be factored as follows • AD0(D1+D1) + A(D0+D0)D1 • (D1+D1) = 1 • Not D1 or D1, doesn’t care about D1 • Note that this factoring/reducing requires the two terms to differ by only one input. • AD0 + AD1 • (A more general technique for simplifying Boolean expressions uses the Karnaugh map.)
4-to-1 MUX: truth table D0 could be a 1 or a 0, but if A=0 and B=0 then Out is whatever D0 is.
4-to-1 MUX: gate version One output Many inputs
Addresses • Each data input is assigned to a specific state of the select input. • E.g. low-low, low-high, high-low, high-high • The state can be interpreted as binary numbers • 00, 01, 10, 11 • Two select Four addresses • And these numbers are thought of as the “addresses” of the input.
Demultiplexing • If any of several signals was put onto a single carrier, then at the other end the signals must be separated and each sent to the appropriate destination. • One input (the shared channel) is routed to one of several outputs. • Like mail, it is possible for me to send a message to any individual one of you. So there must be a set of paths from me to each of you, and there must be a mechanism for selecting one of those paths in a particular instance. • In addition to data input, there must be select inputs. • To select from 2N data outputs requires N select inputs.
Demultiplexing Demultiplexing allows one to select one of the many possible destinations.
Nomenclature • Demultiplexer a.k.a. DeMUX. • A DeMUX has one data input and several outputs. • If the DeMUX has N (possible) data outputs, it may referred to as an 1-to-N DeMUX. • Since computers work in binary, the N is usually a power of 2. • An 1-to-N DeMUX should have log2(N) address inputs (pins). • DeMUX are also sometimes referred to by the number of address pins log2(N)-to-N DeMUX (e.g. 3-to-8 or 2-to-4 DeMUX)
Combinatorial Logic • A DeMUX has many outputs. • Each of those outputs depends only on the input data and the select data (i.e. no memory is involved) . • Thus a DeMUX is just a realization of a truth table (as is all combinatorial logic).
1-to-4 DeMUX: gate version (may also be called 2-to-4) One input Many outputs
Decoder • A variation on the previous circuit is to have no input data. • The selected output will be high, the others low. • Or vice versa. • This can be used to activate a control pin on the selected part of circuit.
Decoder plus registers = RAM • A register is a unit of memory that holds one word of data. • A typical word may be 32 or 64 bits. • E.g. the Memory Address Register (MAR) holds an address associated with memory • Memory (RAM), on the other hand, is a large collection of registers to hold the values of many different words. • In addition to the registers is a decoder. The decode determines which word one is writing to or reading from.
Decoder plus registers = RAM Load pins (allow data into a register) Only one location selected. MDR Decoder MAR MAR: Memory Address register holds address one is writing to or reading from MDR Memory data register holds data being written to or being read from memory. Addressable set of registers
ROM is Combinatorial • In ROM (Read Only Memory), one inputs an address and gets a predetermined output for that address. • The same input always yields the same output. • ROM is the realization of a truth table. • ROM is a way to realize a generic truth table. • In a way the opposite of what we do with a Karnaugh map. With a K-map we take a specific output and simplify it as much as possible. With ROM, we leave it as generic as possible.
The logic of ROM fuse Address lines Decoder “Burned” fuse
Logic of ROM (Cont.) • Fuses connect output of decoder to output of ROM. • Normal voltage and current does not burn (“blow”) the fuse. • So when the selected decoder output is high, all ROM output lines to which it is connected are also high.
Logic of ROM (Cont.) • Higher voltage and current will break the connections (a.k.a. burning). • They are applied selectively to break certain connections. • The ROM output is not affected by the decoder output if the connection is broken. • (Implementation may be different, but this is the basic logic).