VOGONS


First post, by atari52oo

User metadata
Rank Newbie
Rank
Newbie

Hello!

I recently acquired a 386DX40 board that started to throw himem.sys errors after the machine was warmed up and running for a short while.
After the board has been running for roughly 10+ mins I start to get the following error from himem.sys when rebooting:
"HIMEM.SYS has detected unreliable XMS memory at address 002EB7FAh."

I switched out the simms and the error continued at the exact same memory address. The board has CPU cache memory (64KB currently), so I started to remove and swap around those chips. When I did so, I got the memory address of that error to move to different address. So my working assumption is that one of the cache SRAM chips are bad on this board.

Here is where I'm looking for some help since I'm super educated on individual RAM chip configurations.

I have the Micro House manual for this board, and it says that the board can be configured for 64KB or 256KB cache using either 8K x 8 chips, or 32K x 8 chips.
See this image of the capture of the page in the PDF manual: https://i.imgur.com/QYB84uU.jpg
- Note the manual says there are only 8 cache chips.

Here is a picture of the board's actual cache chips: https://i.imgur.com/ZXTlOYe.jpg
- Note there are actually 11 cache chips. 10 in dual DIP-22/24 sockets, and then one in a DIP-22 socket.

ALL 11 cache chips which are installed in my board are 16K x 4 (Micron 5c6404-15) chips.

So here is my confusion and questions:
1. I'm assuming the Mico House manual is wrong in this case on the type of cache chips?
2. Does my board actually only take 16k x 4 chips for it's 64KB cache configuration and not 8k x 8 as well?
3. If I wanted to upgrade this board to 256KB of cache (Because why not!) would I then use 64k x 4 chips?
4. I've drawn boxes around three groups of the cache chips in thinking that the first one with 8 in the dark blue are probably the 8 main cache chips? The two in the Green box are probably Tag chips? And the last in the light blue might be a dirty bit / write back cache chip? This single chips is the only one that not socketed in a dual dip-22/24 socket.

Thanks for reading and hopefully I can get some other's thoughts on this!

IBM PS/2 Model 70 (Type: 8570-121)
386DX-20 / 6mb ram
ZuluSCSI - SD card Storage
Slot1: MCS-600 SCSI
Slot2: 3Com 3c529-TP NIC
Slot3: Snark Barker MCA (SB Clone)

Reply 1 of 6, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Uncommon cache chips, indeed.
5C6404-15 16Kx4
15 ns because of 40 MHz

It looks like it is layouted for one cache bank with 8 chips.

For me it looks like you need 10 64kx4 chips.

Reply 2 of 6, by mkarcher

User metadata
Rank l33t
Rank
l33t

x4 cache chips were quite common in the early 90s. On early 486 boards, it's not unusual to find the TAG RAM as 3 x4 chips, to provide 12 tag bits that yield a conveniently big cacheable area even at a mere 32KB of cache. On other boards, the Alter/Dirty bit was stored as a single bit in one of the x4 chips. If you already have x4 chips in your board, it can make sense to just build the data cache from the same cache chips as the tag.

There are no x8 chips in DIP22 or DIP24. The standard case for 8K x 8 chips is DIP28. So the Micro House documentation clearly does not apply to your board. Note that the Micro House documentation shows DIP-28 sockets. This either means they carelessly paced DIP28 pictures on the board graphics ("because cache chips are always DIP28"), or there might be a later revision of your board that indeed has two banks of x8 chips instead of one bank of x4 chips.

I agree that your assignment blue=data, green=tag, cyan=dirty makes a lot of sense - on the other hand, it doesn't make sense that the dirty tag chip can not be upgraded to 64k. Thus I propose a slightly different idea that actually makes sense and works for upgraded cache, too. When you upgrade from 64KB of cache to 256KB of cache, you need two less tag bits for the same cacheable area (assuming the common direct-mapped cache scheme). Possibly, the dirty tag bit (if it is present at all) and 7 address tag bits are located in the "green" chips, and the cyan chip contains two extra address tag bits that are only used in the 64KB cache configuration. In that case, this chip is unused with 256KB cache and thus it does not need to be upgraded to 64K x 4.

Reply 3 of 6, by atari52oo

User metadata
Rank Newbie
Rank
Newbie

Thanks for the good insight here!

Ok, I'm going to acquire some 64k x 4 15ns chips and replace all but the dirty bit chip and see if that will work. It's going to take me a few weeks at least to acquire the chips, but I'll update this thread with my results when I acquire and test them.

Thanks for the help!

IBM PS/2 Model 70 (Type: 8570-121)
386DX-20 / 6mb ram
ZuluSCSI - SD card Storage
Slot1: MCS-600 SCSI
Slot2: 3Com 3c529-TP NIC
Slot3: Snark Barker MCA (SB Clone)

Reply 4 of 6, by atari52oo

User metadata
Rank Newbie
Rank
Newbie

Following up on this topic!

Obtained some 64k x 4 (MT5C2564-15) chips and did some testing!

Replaced all the 10 ram chips that were in the dual DIP-22/24 sockets with the new 64k x 4 dip-24 chips, and left the remaining 16K x 4 chip that was in the dip-22 socket. Updated the jumpers and powered the board up. It didn't post.
So I pulled the remaining 16K x 4 chip so the board now had just the 10 new 64k x 4 and tried powering it up again. It worked! Verified with cachecheck and the full 256k was detected. The system was also stable after being powered on for many hours.

Here is an updated pic of the new chip arrangement: https://imgur.com/8y6qB2a

I'm going to update the documentation on theretroweb.com for this board. So that leads me to this question. What is the 11th chip's purpose? It's required for 64k but not 256k. I'd like to document the chip but am unsure if it's a "dirty bit" chip, or a third "tag" chip or what?

Thanks again for all the help!

IBM PS/2 Model 70 (Type: 8570-121)
386DX-20 / 6mb ram
ZuluSCSI - SD card Storage
Slot1: MCS-600 SCSI
Slot2: 3Com 3c529-TP NIC
Slot3: Snark Barker MCA (SB Clone)

Reply 5 of 6, by mkarcher

User metadata
Rank l33t
Rank
l33t
atari52oo wrote on 2024-01-18, 19:49:

What is the 11th chip's purpose? It's required for 64k but not 256k. I'd like to document the chip but am unsure if it's a "dirty bit" chip, or a third "tag" chip or what?

It seems to confirm this suspicion:

mkarcher wrote on 2023-12-19, 13:33:

the cyan chip contains two extra address tag bits that are only used in the 64KB cache configuration. In that case, this chip is unused with 256KB cache and thus it does not need to be upgraded to 64K x 4.

It's an extra tag chip that is only used if you have a low amount of cache. The design of standard 386/486 L2 implementations works in a way that the cacheable area is 256 times the size of the cache. If one tag bit is deducted for use as "dirty" bit, the cacheable area drops to 128 times the size of the cache. So this means the cacheable area with 8 tag bits (two 64k x 4 chips) and 64KB of cache is limited to 8MB (if there is a dirty bit) or 16MB (if the cache operates in write-through or write-back/always dirty mode). This 11th chip increases the cacheable area in that case, likely by a factor of 4, to make it equal to the cacheable area you can obtain with the 256KB cache you currently installed.

Reply 6 of 6, by atari52oo

User metadata
Rank Newbie
Rank
Newbie

Thank you so much @mkarcher for the information and insight! Time to go update some documentation!

IBM PS/2 Model 70 (Type: 8570-121)
386DX-20 / 6mb ram
ZuluSCSI - SD card Storage
Slot1: MCS-600 SCSI
Slot2: 3Com 3c529-TP NIC
Slot3: Snark Barker MCA (SB Clone)