First post, by mkarcher
Some SIMMs I found in my "box of spare parts" look like this:
The chip type numbers are quite clear: TC514400AJ is a 1M x 4 DRAM chip by Toshiba, and TC511000AJ is a 1M x 1 DRAM chip by Toshiba, so this module obviously is a 1M x 9 SIMM, i.e. a standard 30-pin SIMM with parity an 1MB capacity. But some things look a bit odd. There are solder jumper pads on a SIMM. This shouldn't happen on quality SIMMs, except for the Presence Detect pins on 72-pin SIMMs. This is not a 72-pin SIMM. And, digging a bit further: The TC514400AJ are in the wrong package! The package most 1M x 4 chips have is the same as the TC511000AJ to the right, called 300-mil wide SOJ 20/26, i.e. 20 pins used from 26 available positions, 3 missing pins in the center on each side. "300 mil" means 0.3 inches. The TC514400AJ (which seem to be very early 1M x 4 chips) should be in 350-mil SOJ 20/26, i.e. slightly wider, but the same number of pins. The greater width (350 instead of 300 mil) was chosen, because they couldn't physically fit 4 million bits into the smaller case. On this module the TC514400AJ are in 400-mil SOJ 24/28! This case is also a standardized JEDEC package, but (drumroll!) for 4M x 4 DRAM chips! This package is only used for early 4M x 4 chips, because with smaller processes, they managed to put 4M x 4 (16 Megabit) into 300-mil SOJ 24/26.
So I traced the module a bit further. The module layout mostly is for a 4MB SIMM, not a 1MB SIMM. The zero-ohm link between the two "TC514400AJ" chips choses the level of the A10 pin (the highest address pin of 4MB chips, which is not present on 1MB chips!). In the current position (center) A10 at the chips is permanently grounded, so if the chips are in fact 4M chips, only the first half of the rows will be used, and only the first half of columns within these rows. In the top position, the A10 pin at the chips is permanently connected to +5V, so only another quarter of the 4M chips is addressable. Only in the bottom position, A10 at the chips would be connected to A10 on the SIMM slot. So this allows the manufacturer of the module to install in the jumper in the lowest position, test the whole 4M address space whether the bottom quarter or top quarter is defect free, and move the jumper to the appropriate position. I am very confident the "TC514400AJ" chips are fake, and they are in fact factory rejects of 4Mx4 chips, and the module manufacturer "salvaged" them by using only a quarter of them. I can't be sure about the parity chip, because 1M x 1 and 4M x 1 chips have exactly the same case, the only difference is the pin tha t is A10 on 4M chips is NC (not connected) on 1M chips. The parity chip might be a genuine Toshiba 1Mx1 part.
There is something more wrong with this module, though: There are unused solder link pads next to the parity chip as well. And there is a second footprint for the parity chip that is not used. The second parity footprint is 400-mil SOJ 24/28 again! So the manufacturer could have placed even more (possibly rejected) 4Mx4 chips onto this PCB. The four unused solder link options between the parity chip and the right data chip chose one of the four data bits from a 4Mx4 chip to be connected to the parity pins on the SIMM. This allows the manufacturer to use a 4Mx4 chip where only one of the four fields is working correctly. But wait, there's more. The well-informed reader already wondered how you can use a x4 chip as parity chip and be compliant to the 30-pin SIMM standard. You can't. The manufacturer didn't even try. The 30-pin SIMM slot is designed in a way that the data to write to the parity chip is input on pin 29, and the data that is read from the parity chip is output on pin 26. This allows mainboard designers to connect the 8 data bits to a non-disableble parity generator chip, and wire the output of the parity generator to pin 29. On memory writes, the level at pin 29 is stored in the RAM. On memory reads, pin 29 is ignored, pin 26 receives the stored parity data, and the mainboard can compare pin 26 and pin 29 to detect parity error. Early 286 mainboards used exactly this design. Now, the issue with x4 chips is that they don't have dedicated "data in" and "data out" pins, whereas x1 chips do. The TC511000 has data in on pin 1 and data out on pin 25 (counting the missing pins, too, so the next-to-last pin in SOJ 20/26). You obviously see a thick trace connecting these pins, that also is connected to the left side of all the solder jumpers for parity bit selection. So the module downgrades the dedicated data in / data out pins of the x1 chip to a combined in/out pin, and allows optional connection of one of the four in/out pins of a x4 chip to the same line. This combined in/out pin is then connected to both parity in (29) and parity out (26) of the SIMM contacts (you can see the trace connecting both pins on the back of the PCB). As result, the parity stuff only works well in designs where no dedicated parity in/parity out is required. Most modern chipsets use a single parity in/out pin, so pin 29 and 26 are connected on the mainboard, too. This parity design works perfectly with those chipsets.
Short summary about the possibilities of this PCB:
- Whatever you do, this PCB always provides combined parity in/out which is noncompliant.
- You can use two 4Mx4 chips and a 4Mx1 parity chip onto the PCB, and put the A10 jumper into "A10 as is" mode, to build a 4MB SIMM.
- You can use two working 4Mx4 chips and one 4Mx4 chip where some bits are damaged, put the A10 jumper into "A10 as is" mode, and select a working bit of the broken 4Mx4 chip as parity bit. This also creates a 4MB SIMM.
- You can use two defective 4Mx4 chips as data chips and a 4Mx1 parity chip and downgrade the module from 4Mx9 to 1Mx9 using the A10 jumper. If the low quarter or the high quarter of all three chips works, this results in a working 1MB SIMM.
- In the previous variant, instead of using only a quarter of a 4Mx1 parity chip, you could also use a fully-functional 1Mx1 chip. It just ignores the A10 input generated from the jumper.
- As a final variant, you can equip the PCB with three 4Mx4 chips, use only the low or high quarter of all of them, and furthermore choose a single bit from the chip used as parity chip. Again, this yields a 1MB SIMM.
As the marking of the TC514400 chips is obviously fake, I don't recommend anyone using modules like this if data integrity is important. Having defective 4Mx4 chips labelled as if they were 1Mx4 chips is obviously meant to distract from the fact that this PCB tries to re-qualify broken chips as (reduced-capacity) legitimate chips. I have no idea how thorough the re-qualification of the 4Mx4 chips was performed by the module manufacturer, but I assume they don't use chip manufacturer grade testing.
I also have kind-of similar 4MB SIMMs at a different location that downgrade 4Mx12 into 4Mx9 or 4Mx8 using solder links. I might post about them in a dedicated post shortly.