PS/2 Memory Errata
Unsordid memory trivia for PS/2s not specific to a singular system.

Memory in A1-B1 or J1-J3 fail in 90 / 95 systems 
ECC and FPM Support
Loading SIMM Pairs
Support for Greater Than 16MB
Support for Greater Than 64MB
IBM Presence Detect SIMMs 
8x36 E Memory? Whazzat?
Corroded IBM SIMMs 


Memory in A1-B1 or J1-J3 fail in 90 / 95 systems 
  One may encounter failing memory in A1/B1 or J1/J3 (possibly in other systems). PS/2s test the first SIMM or pair of SIMMs very rigorously, because if the low memory (first 1MB) fails, the system stops. If that first MB is undependable, you may get data corruption as a result of altered drivers or messed up O/S code.

If you are loading up your 90 or 95, and get a message that one or both SIMMs in the first pair are bad, SIMMply swap in another (matching) SIMM or pair from a later pair (eg. A2/B2) and run advanced diags on them. You must run advanced diags to clear the error from the previous SIMM configuration.

NOTE: The memory controller in the 90 and 95 can handle pairs of SIMMs with mixed speeds but same sizes, but accesses to that pair will be at the speed of the slowest SIMM.

ECC and FPM Support
   All PS/2 systems support Fast Page Mode (FPM) memory. Older systems may use 30 pin SIMMs, later systems use 72 pin SIMMs.

  Some of the later systems contain memory controllers that support FPM -OR- ECC. But either memory type is exclusive of the other

In the case of the Model 90 or 95, the first complex to support ECC is the Model M 486DX-50 (only double deck complex). It supports EITHER 64MB of FPM -OR- 64MB of ECC. Do not mix FPM and ECC in any combination, either in pairs (A1/B1 FPM and A2/B2 ECC) or by banks (A1-A4 FPM and B1-B4 ECC). Mixing pairs will result at best with the first matched pair being enabled, the next (opposing) pair deallocated, or in the case of banks, nothing because the system memory controller can't get the first pair to pass the BIST.

The later Type 4 complexi all support either 64MB of parity -OR- 256MB of ECC.

Loading SIMM Pairs
  In systems with an even number of SIMM sockets (and no soldered-on planar memory like a 9556), load SIMMs in matched pairs (size and speed). Load the largest pair first, then smaller and slower pairs in the following SIMM sockets.

For systems with soldered planar memory with an odd number of SIMM sockets, you are facing either no support for interleaved memory, or only a single pair of SIMMs in interleaved memory support. Each system accesses memory according to it's design.

The first system to support interleaved memory is the Model 70-486. (IIRC)

Support for Greater Than 16MB
  All PS/2 systems with a 286 or 386 have a maximum of 16MB addressable memory, due to the 24 bit memory address. This also includes 386 variants like the 486SLC.

For 24 bit address systems (either with an odd number of SIMMs (three) or soldered-on memory and SIMM sockets), you get 16MB of total memory if you exceed 16MB of SIMM.

As an example, the 9533 comes with 4MB soldered on-planar, and two SIMM sockets. Now if you load two 8MB SIMMs, you will get 16MB of total RAM. But wait, 4+8+8=20, right? Nope, everything over 16MB cannot be addressed.

Support for Greater Than 64MB
  In the beginning, memory addressing was limited to 24 bits. With the advent of the 486, 32 bit memory addressing was possible. Unfortunately, not everybody updated their programs or driver support to incorporate support for 32 bit memory addressing. Part of this problem is the code to determine memory size.

IBM did update their code to support 32 bit addressing, and provided drivers that kept memory addressing below 16MB. But again, proper support for memory size varied.

In the case of Windows 9x, the limit of 64MB was finally overcome with HIMEMUPD.EXE this is simple to apply and allows you to see and use as much as your system can recognize.

IBM Presence Detect SIMMs
   Most IBM PS/2s that require 72 pin SIMMs with Presence Detect, which is four lines on a SIMM that are either open or shorted (pins 71-68). IBM SIMMs with PD are usually 36 bits wide (32bits data plus 4bits parity) or 39 bits wide (32bits data plus 7bits ECC). In the case of ECC, there is a further line (36?) that is grounded.

  My children, do not be led astray by RS/6000 SIMMs. The RS/6000 32MB SIMMs are 40 bits wide. They do NOT work in a 95A, even when you alter the PD bits to agree with the PS/2 PD scheme.

8x36 E Memory 
  As I have scoured Flea Buy for 32MB 8x39 ECC, my attention was captured by some 8x36 E SIMMs... Huh, what? Another oddity, these were for the PC Server 720, which uses some odd configurations... Again, PS/2 ECC memory controllers expect 39 bit wide ECC, NOT 36 bit wide ECC.

Corroded IBM SIMMs 
I was performing S.H.I.T. at a very high level, and I thought tossing in a pair of IBM SIMMs would solve the need for FPM. Not exactly.

Mindful of Lorenzo's disappointments, I was ready for issues.  Something that I was prepared for was a lengthy boot, the Model 90 is infamous for...

Eventually, I got 000211CZ... Memory related. Reseating the riser and re-booting came up with 0021514, memory related...

Corrosion on 92F0105, Top View 


Corrosion on 92F0105, Bottom View  


I powered down and unshipped both SIMMs. Both had a little fluff, spider nests or whatnot, and the top edge was feelthy-dirty. But the horizontally mounted SMP chip capacitors were discolored on the solder, and there appeared to be corrosion on some of the surface traces... I selected some better looking ones, re-installed, and re-booted.

Floppy grinds, Model 90 video does it's wonky stuff, and waa-laa, Reference diskette 1.31 pops up...

9595 Main Page