Memory Upgrade for your PC

RAM, Random Access Memory that is used in a PC, or as volatile RAM is typically Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM). Consider SDRAM as being the common type of memory used as RAM for your average PC. The DIMM or dual in-line memory module is the common SDRAM used in the modern PC. DIMMs began to replace SIMMs (single in-line memory modules) as the predominant type of memory module as Intel P5-based Pentium processors become common.

While the contacts on SIMMs on both sides are redundant, DIMMs have separate electrical contacts on each side of the module. Another difference is that standard SIMMs have a 32-bit data path, while standard DIMMs have a 64-bit data path. Since Intel's Pentium, many processors have a 64-bit bus width, requiring SIMMs installed in matched pairs in order to populate the data bus. The processor would then access the two SIMMs in parallel. DIMMs were introduced to eliminate this disadvantage.

DDR2 / PC2 - 240 pins (200 for SO-DIMM)

DDR3 / PC3 - 240 pins (204 for SO-DIMM) not compatible with DDR2

DDR4 / PC4 -

Error Correcting Code (ECC) SDRAM is mostly used in servers and aims to detect and correct data corruption. Most desktop and laptop computers will not run it. ECC RAM Explained goes into more detail on ECC type memory.

Numbers on back of SDRAM explained.

DDR4-3200 - 3200 refers to the clock frequency

SO-DIMM - Small Outline DIMM in laptops and small form factor computers

DDR - Double Data Rate

DDR3-1600 is also PC3-12800 - generation of the SDRAM and its transfer speed. DDR3-1600 SDRAM operates at 1600 MT/s or the same as PC3-12800 operates at 12800 MB/s

S or SoDimm

12800S - the S on the end refers to size, it is a smaller SoDimm or form factor type SDRAM commonly used in laptop computers, all-in-one computers, etc. Sometimes the memory might say 12800 SoDimm rather than 12800S. Same thing.

12800 - without the S should be full sized 240 pin memory. Be careful because sometimes instead of having the S at the end of the number they leave it off, and then somewhere else state that it is SoDIMM or 200/204 pin.

Some Examples

example (1):

PC3 10600S-9-11-F3

  • PC3 (same as DDR3)
  • 10600 (bandwidth in MB/s),
  • S (stands for SODIMM, it's SDRAM for laptops),
  • 9 (CAS latency).
  • 11 is the SPD Revision or a way the memory communicates to BIOS
  • F3 is the Gerber Revision or changes in the printed circuit board

If it says PC3L it can operate at 1.35V or 1.5V

L is for low voltage. Don't mix L and non-L. If the laptop requires L then use L. DDR3L is a dual voltage capable memory SoDIMM, which supports operation at both 1.5V and 1.35V. DDR3L is also pin-compatible with DDR3. DDR3 is a single voltage capable memory SoDIMM, which supports 1.5V operation only.

example (2):

PC3L-12800S DDR3 1600MHz 204pin So-Dimm

Low voltage DDR3 SDRAM

Operating System Limitation

Micro$oft Windows is always behind the ball on memory size

The operating system you are running can affect the maximum amount of SDRAM you can use in your computer. The maximum RAM limit for 32-bit Windows 7 edition is 4 GB. Here are the limits for other Windows 7 editions:

  • Windows 7 Home Basic: 8 GB
  • Windows 7 Home Premium: 16 GB
  • Windows 7 Professional: 192 GB
  • Enterprise: 192 GB
  • Ultimate: 192 GB

For Windows 8.1 32-bit, the limit is 4 GB of RAM. For the other Windows 8 editions:

  • Windows 8.1 (64-bit): 128 GB
  • Windows 8.1 Professional (64-bit): 512 GB
  • Windows 8.1 Enterprise (64-bit): 512 GB

Linux is not nearly as limiting

Dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS) table contents so you can read it.

if not already installed (because with my mint system it was already installed) you can manually install it (for Debian based linux):

sudo apt-get install dmidecode

Once installed, run

sudo dmidecode -t 16

This will allow you to see the Maximum Capacity supported by the system.

sample output:

sudo dmidecode -t 16
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x000A, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: None
        Maximum Capacity: 32 GB
        Error Information Handle: No Error
        Number Of Devices: 4

To see the currently installed memory size do this:

sudo dmidecode -t 17

Another option is 'ulimit'

The Linux memory acceptance is limited only by the current Kernel, not by the distribution. Virtual memory map with 4 level page tables:

0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm

or 247 bytes = 128TiB

For a 32-bit operating system the address is expressed in 32 bits, so at most the OS could use 2^32 = 4GB memory space.

Linux can break the 4GB limitation on a 32-bit system, sorta. If you have a PAE enabled kernel it can access 36-bits of address space (64GB). However, the system is still 32-bit so any one process can only access 4GB. The 32bit memory mapping system supports either 4GB of address space without PAE or 64GB with PAE.

Caution on mixing memory of different manufacturers or types

Due to the variety of possible configurations, some motherboards might not be able to properly configure memory if the array of dual in-line memory modules (DIMMs) contains a DIMM that is not from the same manufacturer, has a different CAS latency value, or has a different density value (high and low used together).

  • Best to use memory together of the same size, model, and manufacturer

You can never mix DDR with DDR2, or DDR2 with DDR3, and so on (they won't even fit in the same slots). Use SDRAM that has the same CAS latency, timings, and voltage.

If you mix memory that is of a different speed, such as mixing a DDR3-1333 with a DDR3-1600 as long as they have the same CAS latency, timings, and operate at the same voltage, it will probably work, however, the system will clock memory at the lowest of the two speeds. the memory will only run at the speed of the slowest DIMM, unless you overclock the slower one which will probably result in instability.

Last modified on 26 February 2019, at 17:48