I was watching this CrashChourse CS video (7:41) to learn about RAM. enter image description here

Real quick, this is the definition of a multiplexer: (source) enter image description here


Since the Multiplexer only has a single output, how can I ever map each of the 16 combinatons of 4-bit input to each of the 16 columns as seen on the image above? It seems impossible as, again, it only got one output?!

  • 2
    \$\begingroup\$ Something's not right here... I think what you have above is a decoder. Multiplexers (in your second picture) are typically used for serial data selection. Decoders are used for parallel data selection. \$\endgroup\$ – user103380 Jul 1 '19 at 18:23
  • \$\begingroup\$ @KingDuken Watch the video, she explicitly says "multiplexer". Are you saying that it isn't a multiplexer or what? I am confused \$\endgroup\$ – Sebastian Nielsen Jul 1 '19 at 18:26
  • 1
    \$\begingroup\$ Yes, the box that creates a 1-of-16 output from a 4-bit input is a decoder, not a multiplexer. I don't care what the voice says. \$\endgroup\$ – Elliot Alderson Jul 1 '19 at 18:29
  • \$\begingroup\$ Multiplexers for sure have one output. I don't know any multiplexer that has more than one output. The first picture looks like it's trying to send 0001 to select a device in column 1. Muxes don't take in four bits at the exact same time. Decoders can, however. I think the first picture is representing a decoder, not a multiplexer. The select bits for a mux quite literally selects an input for serial data transmission. \$\endgroup\$ – user103380 Jul 1 '19 at 18:31
  • \$\begingroup\$ Okay, so let's say I want to fetch some data at column "0001" (1 in decimal), forget about the row for now, now what? How does the computer activate column 1 given the binary number 0001? \$\endgroup\$ – Sebastian Nielsen Jul 1 '19 at 18:32

As I mentioned in my comments: Whomever made this video, has the wrong perspective of a multiplexer. The first picture appears to be a decoder.

Multiplexers are used for selecting an input channel to determine what serial data gets through. Serial data is different than parallel data in that it uses a waveform (mostly PWM, pulse width modulation) to send information. It's typically used for I2C or SPI interfaces, though I'm sure there are some other applications that I can't think of.

Decoders are used for basically converting binary to decimal and uses parallel data transmission. As you can see in your first picture, it's usually (what's supposed to be) decoders to call an address to a cell of information. Processing units typically use decoders to call addresses for external memory, like RAM or your storage device. So in that screen shot of that video you provided, it's using the binary value 0001 to select row 1. 0001 is a binary number for, you guessed it, 1. 0010 is two, 0011 is three, etc.

The difference between serial and parallel data transmission is that serial data doesn't send all of its information all out at once. It may be extremely fast at sending information but it doesn't happen instantaneously at the exact same time. Parallel data does, however, send all its information at one time. One downside of parallel data is physical spacing because it requires more "wires", so to speak, (or vias if you want to get into circuit boards) to travel from one place to another.

  • \$\begingroup\$ Okay, but how does it choose e.g. column 3? What combination of logic gates enables this behavior? \$\endgroup\$ – Sebastian Nielsen Jul 1 '19 at 19:04
  • \$\begingroup\$ As I mentioned, the processor would send out that 0011 signal, which is 3. How it chooses this is capable of generating 0011 is a whole other topic and it would take a very long time to explain but it happens with the processor's ALU (arithmetic logic unit). If you really want to talk about that, then I recommend understanding Assembly code first and then dig deeper into the ALU. It's actually an extremely fascinating feat in technology and the person who discovered how to do this must have had their brains melt afterwards. \$\endgroup\$ – user103380 Jul 1 '19 at 19:07
  • \$\begingroup\$ Yes, there are two 4 to 16 decoders. You might say that at the highest level this diagram does behave as a multiplexer for data reads. When a read occurs, the 256 memory words are multiplexed down to one word. \$\endgroup\$ – Mattman944 Jul 1 '19 at 19:43

The multiplexer in your table is 16-bit and would need four select lines to give 24 = 16 way selection.

The multiplexer in your schematic is 4-bit and would need two select lines to give 22 = 4 way selection.

The table is not related to the schematic.

  • \$\begingroup\$ I don't feel like that answered my question. So what a table is not related to the schematic? \$\endgroup\$ – Sebastian Nielsen Jul 1 '19 at 18:27
  • \$\begingroup\$ The number of select bits. Maybe I don't understand your original question. \$\endgroup\$ – Transistor Jul 1 '19 at 18:50

The two devices are 1-of-16 selectors.

The picture shows 256 rectangles, each of which contain a latch to hold a single bit of data.

One latch is selected at a time , at the crossing of the two active select lines.

The input and the output to this 256 bit memory is not shown in the picture.

If the memory is ROM, then the output could be obtained by using one multiplexer and one 1-of-16 selector.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.