Comment by CyberDildonics

1 day ago

It was really the 386 that was the beginning of modern computing, since it had a mmu.

Several operating systems on 286 (eg Xenix, Coherent, OS/2) used its MMU for multitasking and memory protection. See https://en.wikipedia.org/wiki/Intel_80286#Protected_mode

  • The 286 protected mode did not allow for a 32-bit flat address space and was heavily half-baked in other ways, e.g. no inbuilt way to return the CPU to real mode without a slow and fiddly CPU-reset.

    • It was architecturally a 16-bit CPU so a flat 32-bit address space would be a non sequitur. If you wanted flat 32-bit addressing, there was a contemporary chip that could do it with virtual memory: Motorola 68010 + the optional external MMU. (Or if you were willing to do some hoops, even a 68000.. see the Sun-1)

Except the 486 had hardware floating point, essential for technical work.

  • An MMU is pretty much necessary for robust multitasking. Without it, you are at the whim of how well software behaves. Without it, it is more difficult for developers to create well behaved software. That also assumes good intentions from programmers, since an MMU is necessary for memory protection (thus security).

    While emulating an FPU results in a huge performance penalty, it is only required in certain domains. In the world of IBM PCs, it was also possible to upgrade your system with an FPU after the fact. I don't recall seeing this option for IBM compatibles. While I have seen socketed MMUs on other systems, I don't know whether they were intended as upgrade options.

  • You could buy a 8087 for your 8086 or 8088, the 486DX just moved it on chip.

  • That's an advancement but that's a matter of speed an simplicity. An MMU is a huge before and after, it's still the biggest separator of CPUs today. The most important detail to understand a CPU is whether it has an MMU.