Computer Memory Types: SIMM, DIMM, RIMM, and Memory Management
SIMM
Stands for “Single In-Line Memory Module.” This is an older type of computer memory. A SIMM is a small circuit board with memory chips. SIMMs use a 32-bit bus, with a voltage consumption of 5 volts. In the case of SIMM, the connectors are only present on one side of the module and are shorted together. SIMMs are always used in matched pairs. The typical SIMM module has 72 pins, measures 4.25 inches in length and one inch in width. SIMM was used in computers with Intel 486 or early processors.
DIMM
Stands for “Dual In-Line Memory Module.” It is a type of computer memory. A DIMM is a small circuit board that holds memory chips. It uses a 64-bit bus, whereas a SIMM has only a 32-bit path. This allows DIMMs to transfer more data at once. DIMMs have faster data transfer capabilities than SIMMs and have largely replaced them. It is also a computer memory, commonly known as a RAM stick. It installs into the memory slots of the motherboard. DIMMs are used in laptops, personal computers (PCs), printers, and other devices.
The memory chips of a DIMM are DRAM (Dynamic Random-Access Memory), the most common type of main memory. As technology evolved, SIMM became obsolete and was replaced by DIMM. DIMM has connectors on both sides (front and back) of the module, and the connectors are independent. This resulted in twice the capacity of DIMM with the same quantity of RAM, thus supporting 64-bit processors. Two SIMM sticks would be used in parallel for 64-bit data width, which is a disadvantage. The voltage consumption of DIMM is 3.3 volts, which is comparatively lower. It is not backward compatible; it cannot be used on motherboards with SIMM slots. It is easier to replace a damaged or corrupted RAM piece on a DIMM.
This proves that DIMM clearly outperforms SIMM in speed, latency, and power consumption. DIMM is generally available in 168, 184, 214, or 244 pins.
RIMM
It is an acronym for Rambus Inline Memory Module. RIMM is computer memory that resembles DIMMs; however, it is 184-pin and is available with built-in ECC support and Non-ECC at speeds up to 800 MHz. RIMM modules are commonly used on Intel Pentium 4 motherboards.
Unlike most other computer memory, computers that support RIMM require a continuous signal. If a memory socket is left empty, the computer will not work properly. Therefore, users must utilize C-RIMM modules in any slots that do not have RIMM modules.
Conventional Base Memory
In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of memory on IBM PC or compatible systems. It is the read-write memory usable by the operating system and application programs. As memory prices rapidly declined, this design decision became a limitation in the use of large memory capacities until the introduction of operating systems and processors that made it irrelevant.
UMA (Upper Memory Area)
Short for Upper Memory Area, UMA is the area of RAM between 640 KB and 1,024 KB (1 MB) in legacy computers, made available to user applications as RAM. In DOS-based systems, memory is split into five areas: conventional memory; upper memory; high memory; extended memory; and expanded memory. The UMA consists of upper memory blocks, and users can access this area through a special memory manager, such as EMM386.exe.
HMA (High Memory Area)
Short for high memory area, HMA is the first 64 KB (65,520 bytes) of extended memory above the first 1 MB of memory found on IBM-compatible computers. The HMA is used to swap programs from conventional memory into high memory, making the computer believe more conventional memory is available. The high memory area (HMA) is where device driver buffer space and shared system memory are typically allocated.
In MS-DOS, the HMA can be accessed using Microsoft’s HIMEM.SYS file and specifying the DOS=HIGH
command in the config.sys
file. For additional information about these files, see our Autoexec.bat and Config.sys guide.
Early computers had issues with HMA and the keyboard controller that caused A20 errors.
Extended Memory
Memory addresses greater than or equal to one megabyte are called extended memory. The 8088 and 8086 PCs cannot have extended memory because these chips can access only addresses of less than one megabyte (1MB). With the minor exception of the High Memory Area (HMA), extended memory can be addressed only by applications run in real mode. However, DOS applications can use this memory to store data (but not to execute code directly). XMS (eXtended Memory Standard, promulgated by Microsoft) permits applications to allocate extended memory and handles copying data to and from extended memory and conventional memory, so the application does not have to worry about switching between modes. Like EMS, XMS usually requires loading a device driver. Extended memory is limited to 15MB on 286 and 386SX systems (15MB extended plus 1MB conventional and upper memory equals 16MB, or 224, 24 being the number of address lines coming out of the CPU), and is limited to 4 gigabytes (232) for 386DX chips and up, although very few motherboards have been designed to hold that much memory.
Expanded Memory
Expanded memory is addressed from within the lower 1MB space, usually above 640K. It is sometimes up to 64K of real addresses, but this is just a small portion of the whole expanded memory, which can be very large. Expanded memory requires hardware and/or software that maps the expanded memory to a piece of address space, in what is called a “page frame.” Extended memory can be used as expanded memory by using software and the 80286 or 80386 chips to “remap” it to the lower 1MB. The 80386 chip has hardware built-in that supports expanded memory, while the 80286 chip does not. Software that converts extended memory on an 80286 machine to expanded memory may result in a significant performance penalty if the machine does not have special hardware support for expanded memory. Software that converts extended memory to expanded memory on an 80286 machine is not written to use the special hardware built into the 80386 chip, so the same type of performance penalty may apply.
Hardware-supported expanded memory is the fastest form of expanded memory and is available directly on all 80386SX or better IBM compatibles running the proper software. It is also available on some 80286 machines with special chipsets or 80286 machines equipped with a hardware memory manager add-on. Lastly, it is available in a large number of memory expansion boards for all IBM-compatible machines, including the 8088/8086 machines.