CREEPINGNET'S WORLD
ALL ABOUT RAM
The Hardware side of Random Access Memory
RAM is probably onoe of the LEAST understood things on these old computers. So here's my entire "data dump" of my brain to explain computer memory in tthe vintage sense. Memory is usually a group of chips, or "modules" on the motherboard that stores information temporarily so as long as the computer is on. In a Vintage 8088-Pentium era PC, there are three types of memory the user will have to deal with: System Memory, L1 cache, and L2 Cache. System Memory refers to the main memory most programs use most of the time. L1, or Level 1 Cache, refers to a smaller, faster sum of RAM utilized by an 80386 or later CPU for frequently festched data/instructions/etc. to improve performance, Level 2 adds a second level of this and was intrdouced with the Intel 80486 (which had it's L1 Cache, initially 8 Kilobytes, later 16 Kilobytes (DX4-100)).

Memory comes in many formats including DIP (dual inline package), SIP (Single Inline Package), SIMM (Single Inline Memory Module), COAST (Cache On A STrip), PLCC, or SMD. If you don't understand what any of this means, stay tuned, we'll get to it.

Memory can be a rather important aspect of retro-computing because it can mean the difference between running a program or not running a program, or programs performing poorly. Tere's almost no easier way to see a performance boost on a vintage PC than to bump it's memory up - to an extent. Just a jump from 8MB to 16MB in a 486 makes an incredible difference in speed, performance, and stability. But there is also such a thing as "too much" RAM on these older machines, and there's a point where you get diminishing returns on your addition of RAM.
Memory History
The earliest PCs used what was called "DIP" or Dual-inline Package RAM. These memory chips were 14 pin ICs, arranged in groups of 8 or 9 on the motherboard (usually 9), usually in 4-rows known as "banks". Each row contained 8 chips that made up the RAM for that bank, and then a ninth chip for "Parity" - which is the computer checking against a good chip to find faulty memory. Parity was a much more popular thing back in the earlier days, and dropped off the radar slowly in the late 386/early 486 era. These chips came in part#s 4116, 4164, and 41256. An easy way to remember what to use - a bit of a cheat, is that eight of these chips = the last 2-3 numbers. So if you have a bank of 4164s, you have 64K, multiply it by 4, you have 256K, which is the original maximum RAM for the IBM PC XT. Other Easy Computer Mathmatics fun with this includes how to get 640K on an XT, by using 2 banks of 4164, and 2 banks of 41256. 256x2 = 512, 64x2 = 128, 512+128=640K - so that's how most XT's got to 640K - which was the maximum memory addressable by DOS (without EMM386.EXE or some other LIMS EMS memory manager, or an XMS memory manager like himem.sys). Later motherboards had more banks and used even bigger RAM chips equating up to 1MB per bank. However, this took up a lot of real-estate on the motherboard, and more real-estate could be reclaimed by making the memory banks smaller, by using bigger chips attached to their own "modules" of sorts.

Later on, as memory capacities needed to go up, and more real-estate on modern (at the time) motherboards was called for to support all the extended functionality of late model 286 AT class machines and newer, an easier solution was organized, known as the "SIP" or "Single inline Package". It looks like a regular 30 pin SIMM, but has pins instead of contact pads. SIP Memory was a very short lived thing, dying off at the start of the 486 era. SIPs typically came in 256K, 512K, 1024K (1MB), 2048K (2MB), and possibly, very rarely, 4096K (4MB) capacities. An odd number of chips means it's Parity, an Even number of chips means it's non-parity. Usually these had a speed rating of around 70ns (nanoseconds) for 486 systems.

Due to the delicacy of the SIP, a new variant was created, the 30 pin SIMM. These were the same size as the SIP, but where the pins would be attached, instead there was just contact pads etched (probably made them cheaper to make too). These came in capacities of 256K, 512K, 1024K, 2048K, and 4096K. On 16-bit machines like a 286 or 386SX machine, you had to install these in matched pairs, while on a 32-bit system such as a 386 DX or a 486 system, they had to be installed in matched QUADRUPLES. This meant most 30-pin 386DX and 486 machines, having eight slots in a lot of cases, could handle up to 32MB of RAM.

And as memory capacity got bigger, and more chips needed to be used, circa 1992, the 72-pin SIMM standard came about. These were about 1/2" longer and 1/4" taller than a regular 30 pin SIMM, and had 72 contacts. These came in capacites of 4MB, 8MB, 16MB, 32MB, 64MB, and even later on 128MB in capacity. On a 486, they could be installed standalone, one at a time, in a lot of systems, did not even matter what slot you put it into. On a Pentium, you had to install them in pairs. This gave these machines memory ceilings as high as 128 Megabytes or even 256 Megabytes of RAM, which was an insane amount back in thohse days. They also stopped being parity. Instead, the thing to watch for is the memory access methods used: which includes "Fast Page" or "FP" RAM, or "Extended Data Out" or EDO RAM. FP was used on 486s, EDO was used on Pentiums, that's the general rule, though some 486 systems could use EDO, and some Pentium Systems early on used Fast Page only.


How Much Memory Do I Actually Need
Let's first look at what the typical RAM for a computer of the period is, and then bump up from there. In the early 1980's, RAM was expensive. 64K was considered a "lot" and "640K" was considered god tier. Think about it, the IBM PC shared contemporary ranks with the Commdore 64, Tandy TRS-80 CoCo, and the Apple II. Most of those had 64K RAM, even the IBM PC did at first, with 64K being the minimum the motherboard could handle (one row of 4164 chips).

So by the time most XT's and the Tandy 1000 came out, 128K-256K was pretty much the norm for PCs, but there were still people with 64K RAM, and some people starting to want way more to do more with their computers. The original 1000 could only do 2 banks of 4164 chihps, and had to have a second card added that added the other 41256 chips + a Direct Memory Access (DMA) controller which sped things up a little bit. 640K Was still the limit, though the IBM PC AT 286 could address up to 16MB using the on-board chips and add-in cards in cocmbination, but another limitation was how much RAM DOS could access - 640K was the limit. That's why most old PC's from the 486 on back when they boot, if they have an Award/Phoenixiew BIOS that categorizes the memory areas, it tests the lower 640K separate from the 7808K for the rest of your 8MB in a 386DX or 486 system.

Some of the last systems that used DIP chip memory would be something like the Compaq Deskpro 386 2571, which came with 2048K on a 32-bit special bus add-in card that could be expanded to around 10MB capacity. This made troubleshooting a nightmare - testing each individual chip in a system with 2 Megabytes or more could take a really long time, and having that many discreet, unsoldered connections makes for a real headache when trying to track down what chip is not making good contact.

The early 386 Era found 1MB or 2MB to be quite awesome, but people were stil churning away at the time on 286s with as little as 512K RAM, or XT's with as little as 256K. It was only towad that period of 1989 and 1990 where the shift of everyone from Kilobytes to Megabytes started to happen, with the baseline RAM for those late era 386 SX and DX systems, and early 486 systems, being around 4 Megabytes (4096K), with an average load of 8MB (8196K). For that era, when we were stilll using DOS, and not usiing the Internet, it was plenty of RAM for getting the job done.

By late 1993, early 1994 - memory was now getting intto the double digit amounts for higher end wowrkstations, 16MB being the most popular on late model 486 DX2, DX4, and early Pentium systems. 16MB became pretty much bog standard by the time Windows 95 came around, with most prebuilt systems coming with that amount of RAM, 8MB being the low end, and 32MB being for some multi-thousand dollar powerhouse system indended for high horsepower use (with a high horsepower pricetag). 32MB and higher did not become as commonplace until the Pentium II and later era.

But something to keep in mind was that the memory was woefully inadequate as we started using the internet and Microsoft Windows, and part of that was a memory chip shortage in the late 80's/early 90's that affected everyone from Acer to Zeos. Even Nintendo had to bump up the prices on their game carts at the time because the cost of the silicon had rosen to a point that it was getting g hard to manufacture video games at the time. So it's not much of a surprise a lot of early model 486 had paltry 4MB of RAM at first.

My first line of thought on RAM for old computers is the generation. Anything IBM PC XT, Tandy 1000, or original PC level, is usually maxxed out at 640K and kept there. There's just no reason for more RAM on those systems, as they should not require as many drivers asa a newer PC would running hte same operating system. Once you hit 640K, that's it, and the speed won't get any better. The main reason for upgrading an XT is to widen it's pool of games and usable software.

On 286's, it gets a bit weirder. See, here we have kind of a "halfling" of sorts. We have a computer that most of the time is run like a "very fast XT".