Page 1 of 1

Memory (Ram) Speeds for the PC

Posted: Sat Nov 14, 2009 4:01 am
by MrAl
Hi there,

Recently as well as several months ago i started looking at the speed of the memory
in the computer and comparing it to the speed determined by a commonly known
utility called "CPU-Z", which is free to download (do a search on Google).

What i found was that this CPU-Z program ALWAYS reports a memory clock speed
that is one half of the speed specification by the type of memory pack.
For example, for a PC5300 which is spec'd at 667MHz, the memory clock speed
reported by CPU-Z is only 333MHz. That's one half of the speed spec'd by the
ram part number.

This makes me wonder now how exactly are they spec'ing the ram chips speeds?

Re: Memory (Ram) Speeds for the PC

Posted: Sat Nov 21, 2009 1:37 pm
by Janitor Tzap
I guess no one has a good reply too your question either.

I would be skeptical of how well that "CPU-Z" program is reporting the memory speed.
If its over two years old, or better.
It probably isn't reading the new CPU's or memory correctly.

Well there are a lot of factors that will determine what the memory clock speed is.

I found that most of the main boards automatically set the memory speed.
The main board will run at factory default setting that the memory sticks can actually handle, without causing to many bit errors.

I've been able too run what is known as "Performance Memory" in gaming computers at,
or near the stated speed of the memory stick.
But they had to have extra heatsinking, and a fan kit that mounted above them to do it. :roll:

Here's an article on the subject in general.

Signed: Janitor Tzap

Re: Memory (Ram) Speeds for the PC

Posted: Sat Nov 21, 2009 2:01 pm
by reloadron
Let me take a shot at this. CPUZ is reporting your FSB (Front Side Bus) frequency. The memory is DDR (Double Data Rate). What that means is years ago memory transfered data on each clock pulse. However DDR transfers data on each leading and trailing edge of a clock pulse. Thus for a single clock pulse "Double Data" is transfered. Does that make sense? Sort of a brief explenation.

I also used the term FSB which, I believe is heading to a landfill.


Re: Memory (Ram) Speeds for the PC

Posted: Sat Nov 21, 2009 6:01 pm
by psycho
Yep... Data is transferred on the rising AND falling edges of the clock. Thus you have DDR.


Re: Memory (Ram) Speeds for the PC

Posted: Sun Nov 22, 2009 6:56 pm
by Janitor Tzap
I went out to the "CPU-Z" site and dug up this info:

Q1: CPU-Z reports my CPU running below its clock specification or the clock speed is varying.
A: This is the effect of the CPU power reduction mechanism : C1E (Enhanced Halt State) and/or EIST (Enhanced Intel SpeedStep Technology) for Intel CPUs, Cool'n'Quiet and or PowerNow! for AMD CPUs. Load your system and you will see the frequency increase to its nominal value.

Q2: CPU-Z reports a wrong CPU vcore.
A: Please download HWMonitor then save monitoring data (menu file -> save monitoring data) and send back the file to that address.

Q3: CPU-Z causes a general protection fault, or freezes my system, or causes a blue screen.
A: edit cpuz.ini, and replace :


with :


Then run cpu-z again. If it works, restore the "1" one by one, until the problem occurs again. Then send an email and mentioning which "1" is responsible.

Q4: Why does CPU-Z misreport my memory module specification ? For example, my DDR2-800 is reported as DDR2-667.
A: The memory theorical bandwidth is computed using the module access time information for the maximal CAS# latency value, included in the SPD area. If the computed bandwidth is lower than the one specified on the memory module, that means that the SPD information on the module is not correctly programmed, or most likely that the bandwidth is not given at the default memory voltage, but at a voltage defined in an extended profile (EPP or XMP).
I see that there are different versions of CPU-Z available for the different OS's.
Make sure your using the right one, and it is the latest version.

Signed: Janitor Tzap

Re: Memory (Ram) Speeds for the PC

Posted: Mon Nov 23, 2009 5:54 am
by MrAl
Hi again,

Yes i knew about the double data rate thing, and my system is set up also to use the memories
in an interleaved mode so it can access twice faster on top of that.
BTW, each mem pack (of two total) is rated at 667, so that should make double data rate
around 1334MHz for a single pack right? Using interleaved it should be up to 2.6GHz on the
transfer rate. I would expect a program to report 667 i guess (the actual rating).

Janitor, that's sounds like the program has some issues. Maybe i should just
ignore it then? The bios reports 667MHz as it should. Other programs report HT as 2200MHz
or around there, which means it must be working as expected and not as the program
indicates. Im pretty sure i have the right OS version.

Re: Memory (Ram) Speeds for the PC

Posted: Mon Nov 23, 2009 3:10 pm
by reloadron
Years ago the whole memory thing was simple but nothing ever remains simple or for that matter uniform. With improvement comes change. Memory is no exception and gone is the simple PC66, PC100 and PC133.

When DDR came along (Double Data Rate) we saw how a single clock pulse could now transfer twice the data. We had Memory Clock Rates in MHz of 100, 133, 166 and 200 MHz which respectively had Data Transfer Rates of 200, 266, 333 and 400 MHz. These were called DDR 200, 266, 333 and 400 respectively. With data being transferred 64 bits at a time, DDR SDRAM gives a transfer rate of (memory bus clock rate) x 2 (for dual rate) × 64 (number of bits transferred) / 8 (number of bits/byte). Thus, with a bus frequency of 100 MHz, DDR SDRAM gives a maximum transfer rate of 1600 MB/s. So enter a new term PC1600 or a new set of terms as in PC1600, PC2100, PC2700 and PC3200 based on bits. Some manufacturers say DDR400 while others say PC3200 so go figure? :???:

That is just DDR without getting into DDR2 or DDR3.

Most programs that read system information read from within Windows. Here is a little routine done in VBScript that will identify memory slots and memory in the slots based on what Windows sees:

Code: Select all

strComputer = "." ' Local computer
strMemory = ""
i = 1
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory")
For Each objItem In colItems

	if strMemory <> "" then strMemory = strMemory & vbcrlf
	strMemory = strMemory &  "Bank" & i & " : " & (objItem.Capacity / 1048576) & " Mb"
	i = i + 1
installedModules = i - 1

Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray")

For Each objItem in colItems
	totalSlots = objItem.MemoryDevices
wscript.echo "Total Slots: " & totalSlots & vbcrlf & _
	     "Free Slots: " & (totalSlots - installedModules) & vbcrlf & _
	     vbcrlf & "Installed Modules:" & vbcrlf & strMemory
If we open NotePad and copy and paste that code into NotePad and save the file as something like My Memory Slots.VBS and double click the saved file (assuming we save to desktop for simple) we will get a little window telling us about our memory slots and what is in them. Important is the .vbs file extension when we save the text or we just have text.

That is just a simple example of how many of these third party programs work. They can be quirkey if they fail to correctly read the system or if Windows has incorrect data about the system since many read from Windows.

I have a script shortcut around here somewhere that opens a cool system information program within Windows if I can find it.

This is a useful little shortcut script I was talking about:

Code: Select all

Set objShell = CreateObject("WScript.Shell")
objShell.Run "msinfo32.exe"
The script will run MS Info or actually msinfo32.exe from within Windows and save looking for the executable. The same applies, copy and paste into NotePad and save to the desktop as My MS Info.vbs and again add the .vbs file extension or you are only saving a text file.