I remember my old 8088 used to do this (640K OK) but can't remember seeing anything like this since. Does this still happen and it's just not visible? If not, when did it stop, and why? (Imagining it might take too long with today's memory and/or not be necessary?)
When did computers stop checking memory on boot?
I remember my old 8088 used to do this (640K OK) but can't remember seeing anything like this since. Does this still happen and it's just not visible?
Exactly. And it has been simplified and speed up as well. But more important, it's usually hidden under some manufacturer boot logo or whatsoever funny pic one installs. Check your BIOS and you should find an option to make it visible.
Imagining it might take too long with today's memory
It was already way too long back then. The original PC and its direct clones did a thruout check, way more detailed than most other contemporary (desktop) computers. A habit IBM took from their professional systems to increase reliability.
and/or not be necessary?
It still is, but nowadays, at least on consumer machines, it's reduced to a general initialization. Convenience trumps reliability. For serious usage (Servers) memory test is still a thing that will take up quite some time. After all, one wants to be sure that there is no hidden memory error crashing the machine during productive work.
Today BIOSes often offer a setup option to select no test, fast test, or full test. Or it's hidden under an subsumizing 'quick boot' option.
(Followup question as recomended by Kaz)
[W]hen did computers stop doing this comprehensive memory check on boot?
I can't tell an exact date or BIOS Version, but it has been in the end of the 1980s when RAM sizes of more than 1 MiB became standard for consumer machines. So about the time of fast 286, NEAT boards, upcomming 386 and Windows. The focus is here really the consumer segment, as boot times don't really matter on office machines (*1). About that time people became conscious about startup time and companies using it as sales argument.
*1 - Every employee likes a reason to fetch a fresh brew :))
The DDR4 spec actually includes a RAM tuning test, to be performed at boot time, as part of supporting today's multi-gigahertz signalling speeds on a consumer-priced motherboard.
This accounts for the several seconds that often elapses between the machine powering up and the graphics output coming alive; the GPU is only initialised after this initial RAM check is complete.
...It just seemed to disappear! Certainly my old 486-100 had it. I think it's no longer done, as a result of reliable RAM, and the vast amounts of RAM now fitted. This machine has 8GB, a little tight by modern standards. My 486 started off with 4MB, and finally ended up with I think 24MB.
Of course, RAM and CPUs have got faster since then, partly making up the difference. But that 486's RAM ran at 33MHz. For my modern machine with 2048x as much, it would need to run at 66GHz, all things being equal. This next part I was going to guess at, but let's ask Sandra... 1.6GHz RAM speed. Actually 800MHz double-data-rate. So to check the RAM now would take 40x longer than my 486 did. Not acceptable! It started to get annoying when I'd upgraded it to 8MB!
And usually, back in the day, you'd press Esc to skip the test anyway. That's why BIOSes started to add the skip option.
RAM tests don't really need doing at bootup. If it worked when it was installed, it'll almost certainly be fine now. Any RAM problems that do occur will show up soon enough one way or another. And they're so rare, it's just not worth checking.
I can't say for certain it doesn't check, say, every millionth byte just to be sure. But the old tests are no longer needed. They probably weren't even in the 486 days. The early PCs with low-density single-chip RAM, where you'd have a few dozen individual RAM chips installed on the motherboard, sometimes pressed into sockets, not soldered, were a reliability liability! But no longer. So because it's impractical and barely necessary, they dropped it at some point down the line. I haven't seen a BIOS in a long time that even mentions RAM test, and I tinker with a lot of PCs.
There you go! I even mentioned the old dozens of RAM chips, often with only 8K (64k x 1-bit) per chip. The 4164 DRAMs. And they were the modern ones! Before about 1982, companies used the 4116's instead. You can guess the capacity!
Tells me the 4164 is from October 1978. But they were very expensive for the first few years. Too expensive for the fun home computers we all love!
Early PCs really did have lots of RAM chips, when I say dozens... using the relatively large 4164s, you'd need 80 of them for the full 640K! Often you'd install a card into one of the ISA slots with 256K on it. Or two of these for 512K, plus the 64K on the motherboard (if you went for that option, not the 16K base option), would be 576K. So RAM expansion cards were a sea of little chips, and early RAM ran hot. Not enough to use heatsinks like the fusion furnaces of modern CPUs, but still hot.
Later PCs could use the 61256 chips, 256kx1, which is 32K altogether, so more RAM was less error-prone, and indeed possible to fit on a motherboard. Then eventually to SIMMs but we all know that.
[If you want a bonus factoid... Sometimes the RAM chips could climb out of the sockets by themselves! The RAM chip's pins were bent slightly outward. The connectors in the socket were springy to push themselves onto the pins.
It's thought the cause was thermal cycling, ie hot and cold through working in the day and cooling off at night. This would cause minute expansion and contraction of the metal in the chip's pins, causing them to gradually push themselves up and out of their socket. One day, something would go weird (on early IBM PC's with 9-bit parity-checking RAM, you'd get a "PARITY CHECK 2" error, the mainboard raising an interrupt to tell the processor something was wrong). You might open the case, eventually notice one of the dozens of RAM chips was gone, and perhaps find it rattling around somewhere.
Modern consumer PCs don't bother with parity. It added 1/8th to the RAM cost, and all it got you was an immediate crash to an error message you had to turn off the machine for. ECC RAM for servers is it's grandchild. It costs more, mostly because of the lower demand for it, but also because people who want reliability like that are willing to PAY for it!
Some early computers, though not IBM PCs I think, a maintenance option was to drop it onto a concrete floor from 1 metre up! Re-seated the RAM chips nicely! Wish I could remember which computer that was. Anything with a floppy drive or other mechanics would be right out. ]
Enjoy your free RAM related fact-let!
Certainly not before standards for RAM enumeration (SPD serial presence detect) were introduced (with the SDRAM 168pin form factor). Earlier systems needed the memory check to established what memory was actually installed, and at which addresses (especially since there could even be discontigous configurations with some even earlier, expansion board based schemes...).