39

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?)

3
  • 18
    POST (Power On Self Test) is still very much a thing. You may not be seeing memory checks because it's hidden on a lot of consumer PC's (...and likely set to an abbreviated/quick mode). I can assure you that memory is checked as a part of most boot operations. On modern servers it can take a fair amount of time to run through a check of hundreds of gigabytes (...or even several terabytes) of memory.
    – rnxrx
    Commented Sep 7, 2019 at 3:21
  • I think I've already seen this question a while ago O_o
    – motoDrizzt
    Commented Sep 7, 2019 at 7:46
  • 3
    @motoDrizzt POST often only checks a small bit of memory nowadays, although an option to check all the memory is usually available in BIOS settings (i.e. "fast boot").
    – forest
    Commented Sep 8, 2019 at 1:00

4 Answers 4

47

When did computers stop checking memory on boot?

Never.

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 :))

28
  • 1
    It may be worth considering the implied follow-up question, which would be "when did computers stop doing this comprehensive memory check on boot?"
    – Kaz
    Commented Sep 7, 2019 at 7:18
  • 4
    Many modern BIOSes have an option to select how thorough a memory check to perform. The ones I typically see offer three options, with names along the lines of "none", "quick" (usually the default), and "thorough". Commented Sep 7, 2019 at 12:29
  • 2
    It is worth noting that machines with ECC almost always do a full memory test at boot. As the memory devices power up with unknown data, the ECC syndrome bits will not be valid (well, perhaps in a few locations they might be) so a full write and readback of every memory location sets the syndrome bits correctly. There are other methods but they can be complex compared to just doing a full memory write / read at startup. ECC checking is turned on after the test so it won't throw errors during the test. Commented Sep 8, 2019 at 10:36
  • 5
    @RonJohn Nop, it has been mostly removed. Just think, memory hasn't gotten much faster since the 1990s. Access time for DDR4-4000+ is still about 8ns. That's barley double the speed of 2000s SDRAM - but RAM size for average PC has more than 20 fold over the last 20 years. Still boot times have decreased a lot. The only way to reach this is by no longer testing, but barely initializing RAM As with only serial writing all modern performance miracles do kick in.
    – Raffzahn
    Commented Sep 8, 2019 at 13:07
  • 2
    @fadden What you're referring is memory bandwith, which can be reached by continuous sequential access. This has been improved greatly by applying row prefetch, burst transfer and multiple buffers. Effectively using parallel operation. Access time itself didn't change much. PC-100 operates at 20 ns while DDR3-1600 is at ~14 ns not much faster. The issue for a RAM test is that it's worthless when done with all caching etc. For a real result data has to be written back into the cells, not just the buffer and read form there again, multiple times, cutting the timing down to bare metal speed
    – Raffzahn
    Commented Sep 9, 2019 at 18:44
11

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.

7
  • 2
    Given that many graphics cards use rather complicated FPGA or similar devices which generally have some on-chip RAM, I wonder if there would be any difficulty having a display card power on in a diagnostic mode which could use a small amount of internal RAM to show a text screen showing the status of those initial tests?
    – supercat
    Commented Sep 7, 2019 at 19:00
  • 2
    AFAIK, most modern GPUs have at least one built-in microcontroller (often an ARM Cortex-M0 which is truly minuscule) which is effectively in charge of the GPU's boot process, as well as subsequently interpreting legacy VGA register settings and raw framebuffer writes into a form suitable for the modern hardware. But this is not even triggered by the PC BIOS until the RAM test is complete.
    – Chromatix
    Commented Sep 7, 2019 at 21:24
  • 3
    Unless things have changed a lot since I last looked at PC architectures, graphics cards receive power as soon as the motherboard is powered up, before the CPU has had a chance to do anything. I don't know at what point a graphics card would see anything meaningful on the bus (e.g. I have no idea if a BIOS would still output POST codes) but I wouldn't think anything would prevent a card from generating a basic screen on its own initiative. Even if the card couldn't receive any info about what to display, having a screen which shows the card is connected and has power would be helpful.
    – supercat
    Commented Sep 7, 2019 at 21:31
  • 3
    I think that @supercat 's idea is great; even if the PCI bus never comes alive beyond power and there's no communication from the rest of the computer, having your graphics card able to tell you that already usefully narrows the area to be debugged.
    – cjs
    Commented Sep 8, 2019 at 2:28
  • 1
    @CurtJ.Sampson: Among other things, if one doesn't have a physical hard drive to make noise, the symptoms of a dead motherboard might be indistinguishable from those of a disconnected display cable. But if the graphics hardware shows an image, that could be ruled out.
    – supercat
    Commented Sep 8, 2019 at 18:13
4

...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!

http://www.old-computers.com/history/detail.asp?n=43&t=3

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!

2
3

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...).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .