As the name implied Read Only Memory (ROM) cannot be written to. The contents of the memory are decided during the design process and data is programmed during the manufacturing process. As such, ROM is very cheap in terms of space and also has good timing and power characteristics. It is also non-volatile, retaining its contents indefinitely.
It is often used for holding program parts which will not change during the life of the product, lookup tables, and other data that is constant.
The first ROMs appeared in 1965, although at 256-bit they did not find their way into many mass market products. It was not until the birth of desktop calculators and later the video game industry that they became high-volume parts. Early devices used a diode matrix, but later devices were mask programmed.
While most systems today require some level of re-programmability, ROMs are still used in many devices because of the cost and supplemented with smaller amounts of One Time Programmable (OTP) or reprogrammable memories such as flash.
ROMs circuits and implementations are still being developed with a new patent having been issued in 2009 for a ROM cell holding multiple bits per cell, and a 2012 patent for implementing a ROM for FinFET devices.