8

In the early days of computing, memory error detection and correction was either non-existent (Wikipedia tells of Seymour Cray famously saying "parity is for farmers" when asked why he left it out of the CDC 6600) or was limited to parity checking only, although the Hamming error-correcting code has been known since 1950.

By the end of the last century, high-end or even medium-priced PC motherboards supported DRAM with ECC, and it was fairly commonplace.

What was the first commercially available computer sold with Hamming ECC memory, either standard or as an option?

  • As far as home computers go, I remember that a number of S-100 computers and early IBM PCs either came with ECC memory standard, or you could get a model that had it. IIRC, by that time (late 70s, early 80s), ECC involved 9 bits per byte, so a "row" of memory was 9 chips instead of 8. I can't remember brands, but it was not uncommon. – RichF Sep 15 '17 at 20:55
  • 1
    @RichF Are you sure it was ECC and not merely parity per byte? – Leo B. Sep 15 '17 at 21:36
  • 1
    Early PCs had parity but no ECC - actually, non-parity memory only became popular in the PC world sometime in the 72 pin memory era. – rackandboneman Sep 16 '17 at 20:30
10

Not sure what the first ECC use was, but basically all mainframes got parity control as standard and ECC codes optional. To some degree there was a split between commercial (banking etc.) application/mainframes and scientific. Commercial systems where heavy on ECC usage, while scientific often just went with parity - if at all.

Common word sizes for ECC memory was 32+6 bit per word and in fewer cases 64+8 bits.

Eventually one of the first "mass" produced ECC memory system was the 1958 IBM 7302 Core Storage Unit, offering 16 KiWords of 72 bits each. Some machines (like the 7030 Stretch) used it as 64 bit + 8 bit ECC, while others (like 7090) used all 72 bits as two 36 bit words without any protection.

Personally I remember the IBM /370 Model 165 (ca. 1971) operating with ECC, and being able to correct single bit errors without operator interaction. Similar mainframes of that timeframe (~1970s) with ECC were Siemens 4004-151 and -220 or Telefunken TR440. All of them operated on magnetic core memory where ECC was quite essential for un- or better less interrupted operation.

  • scientific often just went with parity if at all That's a shame. – Leo B. Sep 15 '17 at 1:47
  • 3
    Well, it's the use case ... and the money. In a banking environment IT never realy had problem to get funds to increase security of operation. They have an inbreed fear of loosing a penny, while scientists accepts a few more machine halt or errors if they get more memory to crunch their calculations in :)) – Raffzahn Sep 15 '17 at 8:47
  • 4
    @LeoB., with a scientific calculation, you can simply re-run the calculation in tomorrow's batch if it gets interrupted by a parity error, or you can spot a bit-flip by the way it propagates into an unreasonable final result. With banking, you've got a hard real-time requirement that the calculations for yesterday's transactions must be complete by start-of-business today. – Mark Sep 15 '17 at 20:06
  • @Mark I agree that parity checking is adequate for scientific calculations (I've worked on a mainframe with parity checking rather than ECC); what I've called shameful is no parity at all. First of all, no matter what the result, you need to run the program twice - after all, the result may look reasonable but still be wrong. Second, even it the second result matches the first one, you cannot be sure that both are correct; the memory corruption could have happened at compile time and your object file is subtly wrong. – Leo B. Sep 15 '17 at 23:16
  • 3
    @LeoB. Some calculations are easy to check once completed. For example finding a solution to a system of linear equations - once you have an answer it is trivial to check it. – Brian Oct 4 at 18:56
0

Adding a little information to the existing and accepted answer.

I concur with the answer that the STRETCH (the IBM 7030) was likely the first commercially-available computer to use ECC memory, in conjuction with the 7302 core storage.

For evidence that STRETCH had ECC, I point you to:

-- this description from 1959 -- see page 13, checking principles

-- the 7030 reference manual -- see under 'core storage'

-- this memoir

For evidence that STRETCH was 'first', I'm betting on the date alone.

Since IBM sold at least half-a-dozen, I claim the "commercially available" part of the question is satisfied, even though the system was immediately withdrawn as not financially viable.

  • Presumably, though, the 7302 (based on its model number) was developed specifically for STRETCH and only subsequently used on other systems? – another-dave Oct 6 at 18:49
  • For the Number scheme, the hint is in the second digit defining the device type. 0-> CPU; 1 -> Console; 2->Tape; 3->Memory; 5->Card-EQ; 6->Disks – Raffzahn Oct 6 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.