Skip to content

Hardware Memory

Posted on: September 6, 2023
Reading time: 14 min read

This post will cover various aspects of the Hardware section of the CompTIA A+ Core 1 certification endeavor.

Table of contents

Overview

If you’ve ever installed an application or an operating system, you’ll notice there’s a specification that requires you have a certain amount of memory inside of your system. This memory is referring to random access memory or RAM. It’s the type of memory we commonly use inside of our personal computers.

RAM is the main memory in a computer where the operating system (OS), application programs and data in current use are kept so they can be quickly reached by the device’s processor. It is much faster to read from and write to than other kinds of storage, such as a hard disk drive (HDD), solid-state drive (SSD) or optical drive.

RAM is volatile which means data is retained so long as the computer is on, but it is lost when the computer is turned off. When the computer is rebooted, the OS and other files are reloaded into RAM, usually from an HDD or SSD.

RAM can be compared to a person’s short-term memory, and a hard disk drive to a person’s long-term memory. Short-term memory is focused on immediate work, but it can only keep a limited number of facts in view at any one time. When a person’s short-term memory fills up, it can be refreshed with facts stored in the brain’s long-term memory.

RAM Form factors

The dual in-line memory module or DIMM is a type of computer memory that is natively 64 bits, enabling fast data transfer. DIMM is a module that contains one or several RAM chips on a small circuit board with pins that connect it to the computer motherboard. The DIMM stores each data bit in a separate memory cell. DIMMs use a 64-bit data path, since processors used in personal computers have a 64-bit data width. DIMMs are typically used in desktop PCs, laptops, printers and other devices.

A single in-line memory module or SIMM typically has a 32 data bit (36 bits counting parity bits) path to the computer that requires a 72-pin connector. For synchronous dynamic RAM (SDRAM) chips, which have a 64 data bit connection to the computer, SIMMs must be installed in in-line pairs, since each one supports a 32-bit path. A single DIMM can be used instead. Originally, a DIMM had a 168-pin connector to support 64-bit data transfer.

RAM comes in two primary forms:

Each DRAM cell has a charge or lack of charge held in an electrical capacitor. This data must be constantly refreshed with an electronic charge every few milliseconds to compensate for leaks from the capacitator. A transistor serves as a gate, determining whether a capacitor’s value can be read or written.

As faster DRAM was developed, DIMM circuit boards evolved. Modern DIMMs based on double data rate fourth generation (DDR4) SDRAM chips use 288-pin connectors to attach to the computer motherboard to enable the increase in data throughput. As clock speeds of the RAM chips increased, the 64-bit path handled increasing amounts of data.

In SRAM, instead of a capacitor holding the charge, the transistor acts as a switch, with one position serving as 1 and the other position as 0. Static RAM requires several transistors to retain one bit of data compared to dynamic RAM which needs only one transistor per bit. As a result, SRAM chips are much larger and more expensive than an equivalent amount of DRAM.

However, SRAM is significantly faster and uses less power than DRAM. The price and speed differences mean static RAM is mainly used in small amounts as cache memory inside a computer’s processor.

This table compares DDR SDRAM generations:

Name Release
year
Chip Bus Voltage
(V)
Pins
Gen Standard Clock rate
(MHz)
Cycle time
(ns)
Pre-
fetch
Clock rate
(MHz)
Transfer rate
(MT/s)
Bandwidth
(MB/s)
DIMM SO-
DIMM
Micro-
DIMM
DDR DDR-200 1998 100 10 2n 100 200 1600 2.5 184 200 172
DDR DDR-266 1998 133 7.5 2n 133 266 21331⁄3 2.5 184 200 172
DDR DDR-333 1998 1662⁄3 6 2n 1662⁄3 333 26662⁄3 2.5 184 200 172
DDR DDR-400 1998 200 5 2n 200 400 3200 2.6 184 200 172
DDR2 DDR2-400 2003 100 10 4n 200 400 3200 1.8 240 200 214
DDR2 DDR2-533 2003 1331⁄3 7.5 4n 2662⁄3 5331⁄3 42662⁄3 1.8 240 200 214
DDR2 DDR2-667 2003 1662⁄3 6 4n 3331⁄3 6662⁄3 53331⁄3 1.8 240 200 214
DDR2 DDR2-800 2003 200 5 4n 400 800 6400 1.8 240 200 214
DDR2 DDR2-1066 2003 2662⁄3 3.75 4n 5331⁄3 10662⁄3 85331⁄3 1.8 240 200 214
DDR3 DDR3-800 2007 100 10 8n 400 800 6400 1.5/1.35 240 204 214
DDR3 DDR3-1066 2007 1331⁄3 7.5 8n 5331⁄3 10662⁄3 85331⁄3 1.5/1.35 240 204 214
DDR3 DDR3-1333 2007 1662⁄3 6 8n 6662⁄3 13331⁄3 106002⁄3 1.5/1.35 240 204 214
DDR3 DDR3-1600 2007 200 5 8n 800 1600 12800 1.5/1.35 240 204 214
DDR3 DDR3-1866 2007 2331⁄3 4.29 8n 9331⁄3 18662⁄3 149331⁄3 1.5/1.35 240 204 214
DDR3 DDR3-2133 2007 2662⁄3 3.75 8n 10662⁄3 21331⁄3 170662⁄3 1.5/1.35 240 204 214
DDR4 DDR4-1600 2014 200 5 8n 800 1600 12800 1.2/1.05 288 260 -
DDR4 DDR4-1866 2014 2331⁄3 4.29 8n 9331⁄3 18662⁄3 149331⁄3 1.2/1.05 288 260 -
DDR4 DDR4-2133 2014 2662⁄3 3.75 8n 10662⁄3 21331⁄3 170662⁄3 1.2/1.05 288 260 -
DDR4 DDR4-2400 2014 300 31⁄3 8n 1200 2400 19200 1.2/1.05 288 260 -
DDR4 DDR4-2666 2014 3331⁄3 3 8n 13331⁄3 26662⁄3 213331⁄3 1.2/1.05 288 260 -
DDR4 DDR4-2933 2014 3662⁄3 2.73 8n 14662⁄3 29331⁄3 234662⁄3 1.2/1.05 288 260 -
DDR4 DDR4-3200 2014 400 2.5 8n 1600 3200 25600 1.2/1.05 288 260 -
DDR5 DDR5-3200 2020 200 5 16n 1600 3200 25600 1.1 288 262
DDR5 DDR5-3600 2020 225 4.44 16n 1800 3600 28800 1.1 288 262
DDR5 DDR5-4000 2020 250 4 16n 2000 4000 32000 1.1 288 262
DDR5 DDR5-4800 2020 300 31⁄3 16n 2400 4800 38400 1.1 288 262
DDR5 DDR5-5000 2020 3121⁄2 3.2 16n 2500 5000 40000 1.1 288 262
DDR5 DDR5-5120 2020 320 31⁄8 16n 2560 5120 40960 1.1 288 262
DDR5 DDR5-5333 2020 3331⁄3 3 16n 26662⁄3 53331⁄3 42662⁄3 1.1 288 262
DDR5 DDR5-5600 2020 350 2.86 16n 2800 5600 44800 1.1 288 262
DDR5 DDR5-6400 2020 400 2.5 16n 3200 6400 51200 1.1 288 262
DDR5 DDR5-7200 2020 450 2.22 16n 3600 7200 57600 1.1 288 262

Memory technologies

There are ways to help when you run low on RAM. When your computer doesn’t have enough memory for all of the actions it’s trying to perform, your programs can stop working. To help prevent information loss, save your files, close all open programs, and restart your programs to free enough memory for programs to work correctly.

Computers have two types of memory, RAM and virtual memory. All programs use RAM, but when there isn’t enough RAM for the program, your computer temporarily moves information that would normally be stored in RAM to a file on the disk storage called a paging file. The amount of information temporarily stored in a paging file is also referred to as virtual memory. Using virtual memory or moving information to and from the paging file frees up enough RAM for programs to run correctly.

Virtual memory

Virtual memory uses both hardware and software to enable a computer to compensate for physical memory shortages, temporarily transferring data from RAM to disk storage. Mapping chunks of memory to disk files enables a computer to treat secondary memory as though it were main memory.

Virtual memory uses both hardware and software to operate. When an application is in use, data from that program is stored in a physical address using RAM. A memory management unit (MMU) maps the address to RAM and automatically translates addresses. The MMU can, for example, map a logical address space to a corresponding physical address.

While copying virtual memory into physical memory, the OS divides memory with a fixed number of addresses into either pagefiles or swap files. Each page is stored on a disk, and when the page is needed, the OS copies it from the disk to main memory and translates the virtual addresses into real addresses.

Virtual memory is important for improving system performance, multitasking and using large programs. However, users should not overly rely on virtual memory, or swapping virtual memory to physical, since it is considerably slower than RAM. If the OS has to swap data between virtual memory and RAM too often, the computer will begin to slow down, this is called thrashing.

Multichannel memory

The RAM on the memory module communicates with the rest of the computer through the memory controller on the CPU using a bus.  Some memory controllers have multiple channels for communication with the memory module. This allows faster data exchange, as the data can be sent on more than one channel. There are memory controllers built with one channel, two channels (dual channel), four channels (quad channel), six channels, and eight channels. Six-channel and eight-channel architecture is usually designed for servers.

There are also a few motherboards that run triple-channel architecture. Triple-channel architecture also uses interleaving, which is a method of assigning memory addresses to the memory in a set order.

For dual-channel architecture, the original design combined two 64-bit buses into a single 128-bit bus, which was later called the ganged model. The performance increases were not enough, however. Manufacturers found that two independent buses increased performance more, so the un-ganged model is usually set by default on most modern processors.

Parity memory

Some RAM chips have built-in error-checking functions that use a process called parity. Chips that use parity have an extra bit for every eight bits of data. In the parity process, as the eight bits receive binary data (data represented by 1s and 0s), the chip adds all the 1s, and if that total is odd, the extra bit is set to 1.The most common data error-checking and validation technique is the Vertical Redundancy Check (VRC) often called a parity check.

If the total is even, the extra bit is set to 0. When the computer tries to read each byte of data back from the RAM, it calculates the total number of 1s again and compares its findings to the parity bit. If the findings match up, the data is ruled error-free and can be sent to the CPU.

If the findings don’t match up, the chip assumes the data is erroneous and dumps it. This is called even parity. Odd parity is the same process, except that the extra bit setting is 1 when the sum of all the 1s in the byte is even.

The computer checks a bit for parity each time a byte is transferred or transmitted. The process of parity uses simple arithmetic to determine whether stored data values are the same when they are read as they were when they were written. This is fine for detecting errors, but it doesn’t do anything to correct them. If parity proves data to be faulty, the memory system simply rejects the data and starts over.

High-end computer servers need a more effective form of error-checking, such as error-correcting code (ECC). ECC uses more memory than parity, but with its special algorithm, it can actually fix most errors it finds. Amazingly, many computers operate with non party memory and manage to continue working despite lacking this check. The good news is that memory components used in PCs today have improved and checking the integrity of memory and data is less necessary than it once was for the average home computer.