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:
- Dynamic Random Access Memory (DRAM) makes up the typical computing device’s RAM, and as was previously noted, it needs that power to be on to retain stored data.
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.
- Static Random Access Memory (SRAM) also needs constant power to hold on to data, but it doesn’t need to be continually refreshed the way DRAM does.
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.