1
\$\begingroup\$

I've been reading CODE by Charles Petzold, and he mentions that ROM has no data inputs, only data outputs.

How does ROM know what address signals to recieve then, if there is factually no data inputs whatsoever? I never found any explanation in the book.

\$\endgroup\$
  • \$\begingroup\$ I don't think an address is a data input. \$\endgroup\$ – Harry Svensson Jul 29 '19 at 3:59
  • \$\begingroup\$ "ROM" means READ ONLY MEMORY. I. e data can only be read out. Data is preconfigured in a ROM. It can only output data addressed by the address signals. Where's the confusion??? \$\endgroup\$ – Kripacharya Aug 2 '19 at 19:31
3
\$\begingroup\$

ROM has two types of input.

Data is supplied at manufacturing time. It's immutable. Early ROMs had the data 'wired in' as patterns of diodes. Now it tends to be masked in for high volume devices, though there are electrical ways (blowing fuses, charging floating gates etc) to set the data in small volume devices.

An address is supplied at run time to tell the ROM which stored data to select and output. There's no way at run time to change the data that's stored, like there is with RAM.

If you want to call the address 'data' because changing it changes the output, then that's up to you. You can place whatever semantic meaning you like on any signal, and if it works for you, then it works for you. For instance, a not uncommon use of small ROMs is to act as a completely general logic gate, with the K-map stored as ROM data, and the address inputs the logic inputs. It makes more sense here to call the inputs 'logic inputs' when you're using the gate, though still address lines when you're creating it.

However, with wide, deep memory, the rest of the world finds self-consistency and meaning in treating the address differently from data, so you'll have difficulty communicating with everybody else.

\$\endgroup\$
3
\$\begingroup\$

Petzold is making a distinction between "address bus" and "data bus". Arguably both could be classified as some kind of "data" in some sense, but that's not what Petzold means here. (Often technical words can have more than one meaning, depending on context.) In the context of memory systems, "data" is the contents of a memory cell, and "address" is the unique identifier of that memory cell. RAM has an address bus input and a data bus input, as well as a data bus output. ROM has an address bus input, and a data bus output, but no data bus input.

\$\endgroup\$

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.