A read-only memory (ROM) is a data storage device that is read-only, not write-only, and non-volatile during normal operation. This means that it keeps its data even when it is de-energized. It is used in embedded systems with unchangeable software, but in the meantime flash memory is usually installed instead, the contents of which can be corrected/changed afterwards. On PCs, for example, the “hardwired” BIOS was originally found in a ROM, which could only be changed by replacement or external reprogramming.
Originally, semiconductor ROMs were also “hardwired” during production. Since this wiring is directly exposed to the chip with a “mask” (a kind of film negative), this is referred to as a mask-programmed ROM or mask ROM for short. Since this process is only economical in large-scale production, a – constantly growing – family of other memory chips has been developed that can also be filled with information after production, the so-called PROMs (Programmable ROMs).
Writing data to a ROM is referred to as programming the device and is not comparable to writing to a random access memory (hard disk). A distinction must be made between blocks with reversible and irreversible programming. However, ROM, like RAM, allows random access to the data.
With the evolution of technology, the definition of read only memory has been expanded to include non-volatile memories whose content is fixed during their manufacture, which can be read several times by the user and which are not intended to be modified. However, they can sometimes be done by an experienced user, possibly with special equipment. These memories are UVPROMs, PROMs, EPROMs and EEPROMs.
The EPROM memory can be read by the electronics of the equipment on which it is used. On the other hand, it cannot be easily rewritten. Writing is a relatively slow process that will depend on the model.
How ROM Works
A ROM chip has a number of n address pins to which the querying logic (e.g. a processor) applies the address from which it wants to read in the ROM chip. In addition, the ROM chip has m data output pins, on which it then outputs the value that is burned into it at the requested address. Many ROM chips also have a single pin called “Chip-Select”, which indicates whether the ROM chip is meant, or the adjacent address is meant for another (ROM) chip that is connected to the same address lines. A 64 kB ROM can store 2 byte = 16 bits each at 655360 = 65535 addresses, i.e. address 1..8. So it has 16 address input lines and 8 data output lines.
Instead of a program, a ROM chip can also contain only data. In a special form of this, a ROM chip can also directly “calculate” a hardware function: If its address pins are not regarded as an address but as an “input value”, an output value can be burned in for each input value, which the ROM chip later returns with this input. Thus, a ROM chip can map any Boolean function (“logic function”) that has a maximum of n input bits and m output bits.
ROM of Present Smartphones
Today, ROM is just part of internal memory (like SSD) which under normal circumstances, mounted as read-only.
What we refer to as ROM in a smartphone is EEPROM. There is no physical write restriction on this hardware. The restriction was present in the original ROM chips a few decades before. Still today phrases such as ROM and flashing are used but they are technically incorrect. They are named so since they carry a principle of how are these memories were originally treated.
Take that a smartphone has 256 GB of internal memory. In that case, around 200 GB will be available for the user.
The remaining amount of space serves as ROM where the Android OS and apps are preinstalled.