Now that many computers use UEFI instead of BIOS to boot the computer, and UEFI instructions are usually stored in a hidden hard disk partition, does this mean the newest computers do not need to have ROM, which is used to store BIOS program in the old days? Or, was ROM unnecessary long ago even before UEFI existed, as BIOS program and settings were stored in flash memory (so as to store the changes in settings by user)?
2$\begingroup$ I’m voting to close this question because it's about what technology specific industries use, not about scientific principles. It would be on-topic on Super User (I think). $\endgroup$– Gilles 'SO- stop being evil'Aug 26, 2020 at 11:23
1$\begingroup$ AFAIK PC haven't had ROM for the BIOS in ages: the main CPU boots from flash (or EEPROM — anyway some rewritable-but-not-too-much memory) directly. This has nothing to do with UEFI vs legacy BIOS. $\endgroup$– Gilles 'SO- stop being evil'Aug 26, 2020 at 11:24
$\begingroup$ @Gilles'SO-stopbeingevil' Seems it really depends on the definition of ROM, EEPROM is also treated as a kind of ROM in many books, however as it is rewritable, it defeats the meaning of read-only in ROM. And since BIOS settings need to be saved, so it becomes natural that PCs didn't use traditional ROM. With this in mind, the ROM in this question has to have a broader and relaxed definition. $\endgroup$– GreenPenguinAug 28, 2020 at 18:08
Yes, or maybe no, depending on your definitions. Commonly some small 8-pin SPI NOR-Flash ROM is used, for example my slightly older motherboard has a W25Q64FV. This replaces the older non-flash based EEPROM technology since Flash is cheaper, but it fills the same role, and often the flash versions are still called EEPROM. Since it's Flash memory, you could call that "not ROM", if your definition of ROM excludes Flash.
An other problem with relying on a disk is that a disk cannot come pre-programmed correctly. It needs to contain code specific for the motherboard, and be pre-loaded with microcode for the various diffent CPU models supported by that motherboard (which is why recently AMD motherboard manufacturers had some trouble). A disk does not know which motherboard it ends up in, so it cannot fill this role.
Reason it out:
a) Disk-access is way too complicated a process to hard-wire into the CPU. Not to mention that disks from different manufacturers will have different procedures for disk-access, so there is no point in hard-wiring it in advance anyway (what happens to your CPU chip sailes if the disk manufacturer goes out of business?).
b) Therefore the machine must run a program to access the UEFI instructions, and indeed must run a program to perform any disk-access - including the very first access.
c) The program run which performs the very first disk-access obviously cannot itself have been read from the disk.
Conclusion: Yes, machines still need ROM.
1$\begingroup$ it's not manufacturers but standardized interfaces (NVMe, SATA, USB all need different ways to access them) $\endgroup$ Aug 26, 2020 at 7:45
$\begingroup$ This is wrong. A PC's first boot code is in flash memory, not ROM. The program that performs the first disk access is in flash memory. The flash memory that contains the BIOS is directly addressable by the processor, it doesn't go through a disk interface. $\endgroup$ Aug 26, 2020 at 11:26
$\begingroup$ @Gilles'SO-stopbeingevil' From a systems design standpoint flash memory is quite similar to ROM - except it can be rewritten occasionally without burning a new one. One might call it RMM, "read-mostly memory" $\endgroup$ Mar 10 at 15:15
Consider a very common modern computer, an iPhone. The ROM needs to be capable of downloading at least the first parts of the operating system and perform cryptographical checks that the downloaded code is genuine and not forged, and then write it to permanent memory in encrypted form. That thakes quite a bit of code.
1$\begingroup$ Actually the ROM code on an iPhone is pretty minimal (I think — I'm only familiar with “stock” Arm platforms, and Apple customizes their chip quite a bit). All it does is copy from addressable flash to RAM, verify a signature, and jump. What it loads is not the OS: it's a bootloader which will load a secure OS which will load a bootloader which will load another bootloader which loads the OS kernel — if not more. $\endgroup$ Aug 26, 2020 at 11:29
1$\begingroup$ The fact that Arm chips boot from ROM while Intel chips boot from flash is a technological choice on the part of processor manufacturers that was made a long time ago and can't really change without disrupting the whole hardware ecosystem. It's not because they have different bootloader requirements. $\endgroup$ Aug 26, 2020 at 11:31