Before you start
Objectives: learn what is RAM, what is the difference between SRAM and DRAM, various types of DRAM and how to choose the correct RAM for your computer.
Prerequisites: no prerequisites.
Key terms: memory, ddr, data, bus, frequency, module, speed, mhz, sdram, clock, bandwidth, dram, system, cycle, channel
RAM in a PC system is random, which means that the PC can pick any memory location anywhere in that memory storage area and access the data immediately. RAM is relatively fast, which means the data that’s stored in RAM can be quickly accessed by the CPU.
Image 232.1 – Different Types of RAM
However there’s a problem with RAM. While it is fast it’s also non persistent. The data that’s stored in RAM stays there only as long as our computer system is up and running. When we power off our computer, anything that was stored in RAM is gone. When we turn our computer back on again, our operating system, our programs and the data we were working on must be loaded back into RAM again from a long term storage device, such as Hard Disk.
Types of RAM
There are actually two different types of Random Access Memory. The first type is called DRAM.
DRAM stands for Dynamic Random Access Memory. DRAM is the most common type of RAM that’s used in a computer system. Dynamic RAM stores each bit of data in a storage cell consisting of a capacitor and a transistor. A single transistor is used for every bit of data (a 0 or a 1). The transistor regulates the current or voltage flow and acts like a switch for electronic signals coming into the memory cell. The capacitor on the other hand actually stores the electrical charge. DRAM stores data in bits. If there’s a charge in the capacitor that could be represented by a 1, and a lack of a charge represented by a 0. We store data in binary form in RAM that way. The problem with Dynamic RAM is the fact that capacitors lose their charge very quickly, so they have to be recharged. If we want to keep our data in DRAM we have to refresh that charge or else we’ll lose it. In fact they have to be recharged every few milliseconds. Remember, when the power is turned off, the data is lost. DRAM is simple to implement and can have a very high density which means high store capacity. Because of that it is relatively inexpensive and it is used as the main system memory on computers.
One of the main characteristics of SDRAM or Synchronous Dynamic RAM is that the frequency of the memory is synchronized with the frequency of the system clock. SDRAM sends one instruction per cycle, and each instruction can be 64-bits in length. New instructions can be received, even before the first instruction has finished executing. If we look at a memory board we will often see that it has eight memory modules. Some might have less than eight but eight is a common number. Typically, we will ahve 8 bits stored on each memory module, so with each clock cycle one word can be submitted to the memory module (64 bits of data is called a word), matching the width of the system bus. SDRAM uses 3.3 volts (original SDRAM operated at 5 volts) and operates at frequencies between 33 and 166 megahertz, which matches the frequency of the system board. SDRAM is sometimes called SDR or Single Data Rate SDRAM, since it can accept one command and one data set per clock cycle. Although we won’t see it much any longer (it is used only in old systems), we can always recognize it because of the specific notch locations (there are two of them) in the bottom, where the memory fits in to the motherboard. SDRAM memory has 168 pins.
Image 233.2 – 128MB PC-100/PC-133 SDRAM
DDR SDRAM or Double Data Rate SDRAM, often refered to as DDR1, can accept double the amount of data as SD RAM or Single Data Rate RAM. It accepts one command per clock cycle, followed by two data sets. So for each clock cycle the DDR RAM can accept two 64 bit words of data. Because of this DDR RAM has twice the bandwidth as SDR RAM, which means that twice the amount of data can be written within the same amount of time. DDR operates at 2.5 volts, at frequencies between 100 to 200 megahertz. The frequency is faster than the SDRAM, but the great improvement comes from being able to submit multiple data sets within the single clock cycle. The size of the DDR RAM is the same as the SDRAM, but it has only one notch on the bottom. DDR memory has 184 pins.
Image 223.3 – DDR SDRAM 512MB 184 Pin DIMM
DDR2 doubles the bandwidth of DDR1 (for four times the bandwidth of SDRAM). It accepts four data sets (consecutive 64-bit words) per bus clock cycle. It operates at 1.8 volts. The frequency is between 200 and 533 megahertz. So, improved performance comes from higher frequency and by doubling the amount of data that can be submitted in a single clock cycle. Another improvement with DDR2 is that now there is a buffer between the Data Bus and the memory. The buffer helps achieve these four data sets and the increased speed per clock cycle. The internal memory frequency is half that of the bus frequency (100-266 MHz). DDR2 has the single slot at the bottom, just as DDR1, but the notch location on the DDR2 is slightly closer to the center. Also, DDR2 has more pins (240) accros the bottom.
Image 223.4 – 1GB DDR2 SDRAM PC4200
DDR3 doubles the data rate of DDR2. It can accept eight consecutive 64-bit words per bus clock cycle. Like DDR2 it has a buffer. It operates at 1.5 volts with a frequency between 400 and 1,000 megahertz. The internal memory frequency is one-fourth that of the bus frequency (100-250 MHz). DDR3 also has a single notch at the bottom, however it is in different position when compared to DDR2 or DDR1. DDR3 and DD2 have the same number of pins (240).
Image 223.5 – 2GB DDR3 SDRAM
RDRAM or Rambus RAM was an alternative specification to DDR. It was actually the first specification to double the data set over the SDRAM. We might see RDRAM in older systems but we won’t get RDRAM in the newer systems as the DDR2 and now DDR3 has become the standard for memory. RDRAM transfers data in 32 bits or even 16 bits at a time instead of transferring data in 64 bits, but it does send two data sets per cycle. RDRAM uses a memory controller on each memory chip instead of on the motherboard or CPU. Data must pass from one memory module to the next in line. When we have RDRAM memory module installed in our motherboard, any open modules must be configured with a continuity module. A continuity module is simply a module that does not contain RAM chips. That means that if we had one module with the memory chips on it, we would need to install additional continuity chips to occupy empty memory slots. RDRAM operates at 2.4 volts at 400-800 MHz. Because of the higher frequencies, RDRAM modules have heat spreaders to dissipate heat. We can identify RDRAM by the two notch locations on the bottom, located very near each other, and also by the fact that it uses metal heat spreaders (some high-end DDR2, DDR3 or newer memory modules can also have heat spreaders). RDRAM has 184 pins.
SDRAM, DDR, and RDRAM are no longer used in new motherboards, although we might encounter each as if we work with older systems. DDR3 will eventually replace DDR2, and will be eventually replaced by DDR4 or DDR5.
Image 223.6 – 512MB PC4200 RDRAM RIMM
In contrast to DRAM we have another type of RAM called SRAM. SRAM stands for Static Random Access Memory. Static RAM retains data bits in its memory as long as power is being supplied. The big advantage of SRAM is the fact that the RAM doesn’t have to be refreshed the way DRAM does. Instead of using capacitors and transistors SRAM uses bistable latching circuitry to store each bit (think of it as a switch). Once that switch is turned one way or the other to represent a 1 or a 0, that switch retains that value without having to be refreshed. SRAM exhibits data permanence but is still volatile in the conventional sense that data is eventually lost when the memory is not powered. SRAM provides much faster access to data and requires less power, but is more complex and less dense, which means it has lower storage capacity than DRAM. Also, the problem with SRAM is that it costs much more than DRAM. DRAM doesn’t have the same performance level as SRAM, but it does well and it costs much less. Using SRAM in the place of DRAM in the system isn’t feasible. SRAM is typically used in cache memory, such as CPU cache, hard disk cache, and cache in networking devices. Non-volatile SRAM (nvSRAM) is able to maintain memory contents when the power is turned off.
Computers use RAM for storing data that is currently used by the processor. RAM is the fastest storage type in a personal computer. When comparing memory modules of different types such as SDRAM, DDR2 or DDR3, or even when comparing memory modules of the same type, all memory is not equal. Some memory modules are faster than other modules.
The frequency describes how fast the clock cycle runs. When talking about the clock cycle, there are actually two different measurements we need to be aware of. One of them is the bus clock, and the other is the internal clock of the memory module itself. As memory operates, it needs to send and receive data in time with the rotation of the clock cycle, i.e. the communication between the memory and the bus needs to occur on regular cycles. The bus is set to operate at a certain frequency. Memory often has a lower internal frequency than the bus frequency, but it is always a multiple of the bus frequency. For instance, if the bus frequency is 500MHz, and the memory module only operates at 100 MHz, the bus clock is operating at five times the speed of the internal memory clock. In this case, for every cycle of the internal memory, we can actually send five different instructions from the system bus. So, the memory is often matched to the bus clock, however the internal operating speed of the memory might be slower, as a multiple of the bus clock. This can be confusing since some specifications may refer to the bus clock that the memory matches, and some specifications may refer to the internal clock that the memory uses.
The bandwidth describes the amount of data that can be sent. It is typically expressed in the unit of megabytes per second. The increase in the bandwidth of the memory is often received by increasing the bus speed so that more multiples of the internal speed can be received on a single cycle. So when we talk about the speed of a memory, we might be talking about the frequency at which it operates, or we might be talking about the amount of data that can be sent. In most cases, the term speed should better describe the bandwidth, because bandwidth is always comparable. A memory module that can accept 300 MBs of data is always faster than one that can accept 100 MBs. However, when we are talking about frequency, sometimes a memory module with a lower internal frequency might actually out-perform a memory module that operates at higher frequency internally. It can happen because the bus speed could be higher, or the amount of data it accepts per memory cycle would be higher. However, many times the speed of a memory module is actually referred to the frequency and not the overall bandwidth.
Memory is rated based on its guaranteed stable operating frequency and bandwidth (the rate at which data can be read or written). The speed of the memory module is typically identified by a Rating Number.
SDRAM was originally rated according to the bus speed. It always had the designation of PC, followed by a number, such as PC-33 or PC-66. Numbers designated the bus speed that the memory was matched to. For example, PC-133 SDRAM operates at 133 MHz. SDRAM ratings typically go up to PC-166, or in other words a bus speed of 166 MHz. SDRAM designations are as follows:
- Bus Speed 33 MHz is designated as PC-33
- Bus Speed 66 MHz is designated as PC-66
- Bus Speed 133 MHz is designated as PC-133
- Bus Speed 166 MHz is designated as PC-166
When DDR RAM was introduced, they kept the PC designation for a while. However, for all DDR memory (DDR, DDR2, and DDR3), a new designation was introduced to identify that twice the data was being transferred with each bus clock cycle. The number following the DDR-, DDR2-, and DDR3- prefixes is the data transfer rate (twice the bus frequency). For example, DDR-200 matches a bus frequency of 100 MHz, DDR2-400 has a bus frequency of 200 MHz; and DDR3-800 has a bus frequency of 400 MHz.
For DDR past 150 MHz (and for all DDR2 and DDR3 memory), the PC- designation was changed to identify the bandwidth instead of a number derived from the bus frequency. The bandwidth is 16 times the bus frequency, or 8 times the DDR- designation. For example, DDR-400 has a bandwidth of 3200 MBs (referred to as PC-3200), DDR2-800 has a bandwidth of 6400 MBs (PC-6400), and DDR3-1600 has a bandwidth of 12800 MBs (PC-12800).
For a brief time, the double-frequency designation used the PC- prefix for early DDR modules. For example, PC-266 used with DDR indicates a bus frequency of 200 MHz, not a bandwidth (PC-266 is equivalent to DDR-266 which is equivalent to PC-2100).
When listing the frequency, the frequency value usually indicates the front side bus frequency, not the internal frequency used by the memory. DDR designations are as follows:
- Bus Speed 100 MHz is designated as PC-200 or PC-1600 or DDR-200
- Bus Speed 133 MHz is designated as PC-266 or PC-2100 or DDR-266
- Bus Speed 166 MHz is designated as PC-2700 or DDR-333
- Bus Speed 200 MHz is designated as PC-3200 or DDR-400
- Bus Speed 200 MHz is designated as PC2-3200 or DDR2-400
- Bus Speed 266 MHz is designated as PC2-4200/4300 or DDR2-533
- Bus Speed 333 MHz is designated as PC2-5300/5400 or DDR2-667
- Bus Speed 400 MHz is designated as PC2-6400 or DDR2-800
- Bus Speed 533 MHz is designated as PC2-8500/8600 or DDR2-1066
- Bus Speed 400 MHz is designated as PC3-6400 or DDR3-800
- Bus Speed 533 MHz is designated as PC3-8500 or DDR3-1066
- Bus Speed 667 MHz is designated as PC3-10600/10666 or DDR3-1333
- Bus Speed 800 MHz is designated as PC3-12800 or DDR3-1600
- Bus Speed 900 MHz is designated as PC3-14400 or DDR3-1800
- Bus Speed 1000 MHz is designated as PC3-16000 or DDR3-2000
PC- numbers up to PC-266 identify the frequency (or double the frequency), not the bandwidth. A PC designation of PC-1600 does not mean that the bus is operating at 800 MHz, it means that it is capable of sending 1600 MBs of data. Currently, all modules that are rated with the PC- rating identify the bandwidth. However, if we mix older modules with newer ones and try to compare the speeds, we need to be aware that older specifications. New rating now uses DDR instead of PC to identify the frequency. So an older designation of PC-200 is equivalent is the newer designation of DDR-200, which is equivalent to the PC-1600 designation. Newer memory modules will not use older style, so for instance we may see a PC-3200 memory module which also has a designation of DDR-400, but no PC- designation. In that case, the bus speed would be 200 MHz. Newer designations for DDR2 and DDR3 memory follows these same conventions. So with all newer memory modules, we can take the PC- number in every case and compare it between DDR, DDR2, and DDR3. If we need to compare the bandwidth with the frequency, we need to convert the bandwidth into a frequency value. We do that by dividing the bandwidth by 8, which gives us a frequency value. So the main thing to remember when comparing memory modules is to compare the frequency with the frequency and the bandwidth with the bandwidth. Ideally, all ratings will be either frequency or bandwidth, but if we need to convert between one or the other, we can simply divide the bandwidth by 8 to get the equivalent frequency. The most useful comparison between most DDR modules will be to compare the amount of data that can be transferred per second (bandwidth), as indicated by the PC- designations. Comparing DDR- numbers can also give us an idea of the relative bandwidth. For example, DDR-600 can transfer more data than a DDR2-400 module. When comparing SDRAM with DDR, DDR can transfer twice the amount of data at the same frequency. When comparing DDR modules, the frequency is an equivalent relative measurement to the bandwidth. For example, a DDR2 module operating on a 533 MHz bus is faster than a DDR3 module on a 400 MHz bus.
Timing and Latency
The latency is the amount of delay that occurs between a read request and the actual return of that data. Older memory expressed the delay in nanoseconds, but DRAM uses a ratio based on the clock frequency to describe the delay. Timings are often expressed as a series of numbers for memory, like this: 6-5-4-3. Each of these numbers stands for a different type of delay. In most cases, we will typically only be worried about the CAS latency, sometimes also called the CL. The CL identifies the amount of delay between a read request and the actual return of that data. The CAS latency is typically the first of those four numbers, in our case 6. Numbers after CAS identify other types of delay for other types of operations. A special chip called SPD chip on the memory module identifies the timing characteristics of that module, and the motherboard is configured to use those timing values when communicating with the memory. When comparing memory modules, the lower the CL value, the less delay is and therefore, the faster the memory. Latency values can’t be compared directly between two different memory modules, for example between DDR2 and DDR3. There are other factors that are taken into account when computing this number besides a time value of the amount of time between the submission of the request and the receipt of the data. Because CL is related to the frequency, we cannot directly compare the CL between modules with a different frequency. For example, a DDR2 module operating at 533 MHz with a CL of 6 has more delay than a DDR3 module at 667 MHz with a CL of 7. So when comparing the CL values within a certain type of memory module, we can simply choose the lowest value to get the fastest memory. When comparing across different modules, that doesn’t work. Anyway, in most cases we’ll need to choose either DDR2 or DDR3 based on the motherboard support. In addition to CAS latency, there are other memory characteristics that describe the delay for performing other types of operations. Collectively these values are referred to as the memory timings.
Notice that as we move from SDRAM to DDR, then DDR2 and then DDR3, we are lowering the voltage, while increasing the operating frequency. Also, the amount of data that can be submitted in each cycle is doubled. Another method for increasing memory bandwidth is by using multiple channels. A typical system configuration has a single Memory Controller that sends data to multiple memory modules. All data that is intended for RAM must pass through a single Memory Controller. Dual channel memory adds a second or even a third Memory Controller (Triple channel) to the motherboard. In that case memory modules are assigned to one of the Memory controllers. If we have Dual channel implementation, one memory module would be assigned to one controller and the second module to the second controller. Triple channel memory has three memory controllers, so the system can assign three different memory modules to three different memory controllers. With Dual and Triple channel system can often assign multiple modules per channel. For example, if we have a Dual channel system and 4 memory slots, the system can assign two memory modules to each controller. With Triple channel we would have a total of six modules across the three controllers. To operate in Dual channel mode we have to install memory in pairs. To operate in Triple channel mode we have to install memory in sets of three. Using Dual or Triple channel does not replace the double data rate configuration, or the DDR2 or DDR3 capabilities of the memory. The only difference with Dual and Triple channel is that the data is divided between multiple Memory Controllers. That way multiple Memory Controllers handle the load to the different memory modules. Using Dual and Triple channel in this manner we get an increase in performance from 5 to 15 percent. Dual and Triple channel memory configuration is specific to the motherboard (Memory Controller) and not to the memory itself. The memory we purchase is still DDR2 or DDR3 memory. That means that we can use DDR2 or DDR3 memory in a Dual channel configuration, however since Triple channel is relatively new, we can only use DDR3 memory in a Triple channel configuration. The Memory Controller is in the Northbridge chip on the motherboard. Newer processors move the Memory Controller onto the processor chip, allowing the processor to communicate with RAM without going through the front-side bus.
Memory Form Factors
Memory can be packaged into different form factors, depending on the memory type and the use for the memory. The form factor determines the number of pins and the size of the memory module.
SIMM or Single Inline Memory Module were used in older memory. In fact SDRAM and DDR are not packaged into SIMMs so they are obsolete today. SIMM has pins on both sides of the module, but the pins are redundant on both sides. It had a 32-bit data path, so it had to be installed in pairs for a 64-bit bus.
Dual Inline Memory Modules or DIMM refers to all memory that is SDRAM or any variation of the DDR RAM. DIMMs typically contain 8 memory modules. It has pins on both sides of the module, with each pin being unique. DIMMs have a 64-bit data path that matches the system bus width. SDRAM and DDR1/2/3 are packaged into DIMMs, with each specification having a unique number of pins and notch position.
SODIMM stands for Small Outline Dual Inline Memory Module, and these are used in laptops. The difference between a DIMM and a SODIMM is the size and the number of memory chips on the module itself. SODIMMs are about half the size and contain less memory chips. So, the capacity may be the same but the number of chips required to reach that capacity is different. 144-pin SODIMMs are used by SDRAM, DDR, and DDR-2 memory. 200-pin SODIMMs are used by DDR-2 and DDR-3 memory.
Image 223.7 – 1GB DDR3-1333 SODIMM
RIMM stands for Rambus Inline Memory Module. RIMM is only used for Rambus Memory. A single channel RIMM has a 16-bit data path while a dual channel RIMM has a 32-bit data path.
Single- versus Double-sided
Single-sided RAM has memory modules that are organized into a single logical bank, while double-sided RAM has modules organized into two banks. The computer can only access data in one bank at a time. Therefore, single-sided RAM allows access to all of the memory, while with double-sided RAM, the computer must switch between banks. Originally, double-sided RAM had modules on both sides of the circuit board, and single-sided RAM had modules on only one side. However, we can also have double-sided RAM with modules on only one side, where internally the memory is divided into separate banks. Single-sided memory of the same capacity as double-sided memory uses half the number of memory modules (modules are denser, with a higher individual capacity). Some older motherboards are unable to use double-sided memory, while some that allow double-sided memory can only use up to half the total memory when all memory slots are filled, or mixing single- and double-sided together might not be allowed.
Choose the Right Memory Module
There are several different factors that we need to take into account, otherwise we’re going to end up with a piece of memory that doesn’t work in our particular PC. The main question is what memory does particular motherboard support, since different motherboards support different types of memory. The first thing we need to do is of course look at our motherboard documentation. It will probably tell us what type of memory can be used and how that memory must be installed. In addition there are several different websites such as Kingston’s Memory website that have tools where we can put in the type of motherboard that we have and the type of memory we want to install and it’ll tell us which memory modules are compatible with our selection. Also, we can use visual inspection to determine the correct type of memory. The problem with visual inspection is that the memory slots on different motherboards can look the same, and at the same can be radically different. Thing that saves the day is that the modules that go, for example, into DDR2 will not fit in in the DDR1 slot. The same thing is with other memory types.
Capacity of the Module
The capacity (sometimes called the size) refers to the storage capacity of the memory module (i.e. 256 MB, 512 MB, 1 GB, 2 GB, 4 GB). The total capacity of memory that we can install in our system is limited by the number of memory slots on the motherboard. Also, motherboard can have a limit on how much memory it can address. The lower end, less expensive motherboards can address less memory compared to a high end motherboard. In addition to the total memory, most motherboards have specifications for the largest memory module they’ll support. For example we may have a motherboard that’ll support up to 4 gigabytes of RAM but it can only support a maximum module size of 2 GB. That means in order to get 4 gigabytes of RAM we have to purchase two 2GB memory modules. So we need to check what is the maximum amount of memory that the motherboard is capable of addressing and then we need to check how big of a module the motherboard is capable of addressing.
The next factor we need to keep in mind is the speed. With SDRAM and DDR RAM the motherboard clock is tied to the memory. When we purchase a SDRAM or a DDR RAM module we need to make sure that the clock speed of the memory module itself matches the clock speed of the Front Side Bus of the motherboard. The motherboard Front Side Bus restricts the maximum frequency, and memory frequency can be equal to or can be multiplier of the FSB. For example, when SD RAM first came out they made them in 66 megahertz, 100 megahertz and 133 megahertz, so we had to buy the specific clock speed and match it up with our motherboard. Later they made memory modules that were multi speed, meaning they were compatible with 66 or 100 or 133. We can install slower memory in the motherboard, but that will degrade performance. We can also install faster memory in the motherboard, but it will only operate up to the maximum supported by the motherboard.
Another feature we need to be aware of when selecting a memory module for a particular motherboard is the need for parity or ECC. The technical definition for the parity and ECC is slightly different but we often use them interchangeably because the actual concept is the same. With parity, a 1 or a 0 is appended to each byte so that the total number of 1s is always either even or odd. Parity methods can detect errors in only one bit, but cannot fix them because they cannot determine the specific bit with the error. The parity error checking method is older and has almost been completely eclipsed by the new ECC method. Using Error Correcting Code (ECC), a value is appended to the end of each byte so that the value of the data can be compared and recalculated if an error occurs. Error Correcting Code is an improvement on parity techniques because errors in more than one bit can be detected and corrected.
When ECC is used, one extra chip is added onto the memory module, which is used to check for errors (typically we have 9 modules instead of 8). Memory doesn’t always work perfectly and there are times when corruption can occur due to a variety of different factors. Some motherboards will require that we use a memory module with ECC. If we look at any memory module we can tell whether or not it is a parity memory module by the number of chips that are implemented on the module itself. If there is an even number of DRAM chips on a given module, it is not a parity module. For example, if it has eight chips, it is not parity module. If it has an odd number of chips, then it is a parity memory module. Because it is more expensive, ECC memory is typically used only in servers. It is also slower than non-ECC memory, and we shouldn’t mix ECC and non-ECC memory in a system.
In addition to parity some motherboards will require a memory module that uses Registered or sometimes called Buffered memory. Basically, registered memory has a buffer, which is usually implemented as a little horizontal chip right in the center of the module. That extra chip is used to hold data before it’s transferred. The one problem with registered memory is its price, since it can be quite more expensive when comparing with ordinary memory modules. Buffered RAM improves stability on systems with a lot of RAM (over 1 GB), but it might slow system performance. ECC modules are typically buffered. Buffered RAM must be supported by the motherboard.
Metal that is used on the pins in the connector that plug into the motherboard socket can be made from copper, tin or even gold. Less expensive modules use tin. Tin costs a lot less and so for a time tin was almost exclusively used in memory modules. However tin has one major problem and that is the fact that it tends to corrode. Over time that corrosion builds up on the tin connectors. As it does the corrosion can get thick enough to the point where electricity can’t pass through. As that oxidation builds it creates resistance and if that oxidation layer gets thick enough the resistance gets high enough that electrical current no longer pass. Because of this we probably won’t see a lot of memory modules today that uses tin leads.
When we’re dealing with DDR memory there’s an additional factor that we need to take into consideration and that is performance. That is it’s CAS latency and it’s timing. The CAS rating is simply a number such as 2, 2.5 or 3. The timing is a set of numbers such as 3-3-3-8. What we need to understand is that the smaller the number the better the performance. But before we buy the best possible memory we have to check that our motherboard will support it.
SPD stands for Serial Presence Detect which is a small chip that’s implemented on SDRAM and DDRRAM modules. The SPD Chip identifies the clock speed of the module itself. Remember with SDRAM and DDRRAM the memory has its own clock that must be mated up with the clock speed of the Front Side BUS of the motherboard. The BIOS uses the information in this chip to set the frequency automatically.On many systems we can edit the BIOS manually to change the frequency. In addition, the SPD Chip also contains information about the specifications of that particular module. It communicates with the BIOS and tells the BIOS different memory specs for the particular module such as its CAS latency and its timing.
When we are upgrading an existing system, we can easily find out how much RAM we have installed because we can see that in the system information window. However, we may not always be able to tell the type of memory we need. The easiest way to find out the memory type is probably to use the software like CPU-Z which will query the system and tell us the current installed memory and its specs. It will also tell us the frequency of the memory, and other specs. Also, we can open up the case and take a examine the memory modules (its sticker if it has one), and paying attention to the notch location and the pin density on the modules. If the module doesn’t have a sticker on which we can read all the memory specs (frequency, CAS, etc.), we should use software like CPU-Z to identify the specs, or get the serial number of the RAM module and identify the exact operating characteristics of the memory by looking it up online. When replacing or upgreading memory on our computer, we should choose memory that that fits our motherboard not only in size or type, but also on the right frequency and other specs supported by our motherboard. We can always consult our motherboard documentation to find out the supported memory specs.
Memory specs and capacity must match what is supported by the motherboard. The total capacity of memory can be limited by the number of memory slots on the motherboard, maximum total capacity that can be installed, and maximum module capacity. For example, the motherboard might only be able to accept up to 2 GB or 4 GB modules, and 4 GB or 8 GB in total capacity. There can also be a limitation in maximum amount of memory that can be addressed (used) by the operating system. 32-bit operating system can use up to 4 GB of memory, while a 64-bit operating system can use more.
We can install slower memory in the motherboard, but this will degrade performance. If we mix faster and slower modules, all memory will operate at the slowest module installed. Typically, we can also install faster memory in the motherboard, but it will only operate up to the maximum supported by the motherboard.
Most desktop motherboards do not support ECC or buffered memory, but some motherboards require ECC or buffered memory. We can’t mix ECC and non-ECC memory in a system.
We should keep in mind that memory modules are very sensitive to ESD, so we should take proper steps to prevent ESD. When installing memory modules, some motherboards may require that we use specific slots. Typically, we should always start with the first bank (often closest to the processor). For a dual (or triple) channel configuration modules must be installed in matching sets (capacity and speed), preferably of the same manufacturer and model. Many motherboards will have slots used within a set having the same color, so wee should follow this rule. We can typically use different capacity modules between sets. For example, we can use two 1 GB modules as one set, and two 512 MB modules in the second set. Most systems will configure memory settings (frequency, voltage, and timing including latency) automatically based on information in the SPD chip. If necessary, we should be able to edit the BIOS to manually configure memory settings.
Random Access Memory or RAM is the place where programs and data currently being used are stored. DRAM memory needs to be refreshed every few milliseconds. Static memory retains data as long as power is being supplied, but it is more expensive. MMCs job is to manage memory. The CPU sends a request for certain memory address to be read or written through the Address Bus. When we mix memory with different frequencies, all memory will operate at the lowest frequency. If we are working with new computer we will likely use DDR2 or DDR3 DIMMs for desktop computers or SO-DIMMs for laptop computers. If we’re working with older computers we might still encounter SDRAM DIMMs or RDRAM RIMMs. SIMMs were used in older computers and are likely not used in computers that are currently being used. When talking about memory speed it’s important to identify what we mean when we talk about the speed. Is it the frequency of the memory, the amount of bandwidth that the memory can transfer within a given time period, or is it perhaps the amount of delay associated with read and write operations within the memory. Looking at the frequency is often inadequate to identify the real performance of the memory. The best measure is the bandwidth, which identifies the amount of data that can be transferred to the memory module. DDR3 memory typically transfers more in the same clock cycle than DDR2 memory, so it is considered faster, however they may be operating at the same clock frequency.