2 ms·
"No-one would claim that a modern Harvard Architecture computer with its program stored in ROM isn’t a stored-program computer. So does ENIAC take the prize fro
by jecel 2y ago
"No-one would claim that a modern Harvard Architecture computer with its program stored in ROM isn’t a stored-program computer. So does ENIAC take the prize from Baby as the first electronic stored-program computer?"
I do actually claim that a modern Harvard Architecture computers such as the AVR8 or PIC microcontrollers are not stored-program computers. You can't store a program in them and then execute it. To be fair, some MCUs can change their own Flash so the difference can be subtle - in that case the processor is used either normally or as part of the ISP (in-system programming) circuit at different times.
For very simple stored-program machines the ability to modify running code is needed for it to be Turing complete. In a computer like the Baby, how would you add two arrays? It had no index registers. So you would need to increment the instructions that load and store from the arrays every time you go through the loop. I agree that this isn't an issue on a machine with only 32 words of memory in all, but it is a key idea in theory.
Of course, a Harvard computer can simulate a Von Neumann one (see AVR8 simulating an ARM in order to boot Linux where it does indeed store programs and then run them). In fact, a popular way to implement CISC computers was to build a tiny Harvard machine running a single program in its "microcode ROM" emulating the computer you actually wanted to use.
- adrian_b 2y agoI have never seen a MCU that cannot write its own flash memory with a new program. This is how everybody makes firmware updates. At most, some MCUs have the option to blow some fuses to make some part of the memory immutable, but during program development the memory is still writable and used as such. Ancient MCUs with true ROM or ultraviolet-erasable PROM may be claimed to not be a stored-program computer, but this claim is completely false about any MCU with a flash memory. Manchester Baby was just a test device, not intended to be really useful, but its successor Manchester Mark 1, which became operational next year, in 1949, already had index registers. Nevertheless, in the next few years there have been built many computers that lacked index registers, despite the precedent of Manchester Mark 1, so instruction modification during program execution was mandatory in them. After 1954, few, if any, computers remained without index registers, so instruction modification was no longer necessary.
- jecel 2y agoThe first ATMega, the ATMega603, needed an external device to write to its Flash program memory. The following models removed this restriction.