Thanks everybody who tried to help me. Finally the problem was solved.
Other people reported that Current clock speed in BIOS is the same as Maximum clock speed. Which was different on my laptop - I had Current clock speed same as Minimum clock speed. There was something wrong with it not in OS, not in BIOS but "deeper".
- Current clock speed: 1.000 GHz
- Minimum clock speed: 1.000 GHz
- Maximum clock speed: 2.000 GHz
I also updated BIOS and nothing changed. When I set BIOS to default values and restarted, message was displayed saying
A 65W AC power adapter has been determined. Your system will operate
slower and the battery may take more time to charge.
The adapter was already a suspect after about 7 hours of investigation, what might be the problem. This was the final evidence. What can cause CPU to operate slower? CPU speed can be set in BIOS, in OS, so something really deep in the system is the cause.
I use 65W car/air adapter all the time, it's small and great. I asked my friend to give me my old big 90W adapter back and.. The CPU works now at 2 GHz and is not throttled down.
AFAICT the clock of a S3C2416 looks just like that of a S3C2443, or similar processors of its family. The Linux source code for it suggests that there are a number of closely-related clocks.
Choice snippet:
pll = get_mpll(mpllcon, xtal);
clk_msysclk.clk.rate = pll;
fclk = pll / get_fdiv(clkdiv0);
hclk = s3c2443_prediv_getrate(&clk_prediv);
hclk /= s3c2443_get_hdiv(clkdiv0);
pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);
s3c24xx_setup_clocks(fclk, hclk, pclk);
printk("CPU: MPLL %s %ld.%03ld MHz, cpu %ld.%03ld MHz, mem %ld.%03ld MHz, pclk %ld.%03l MHz\n",
(mpllcon & S3C2443_PLLCON_OFF) ? "off":"on",
print_mhz(pll), print_mhz(fclk),
print_mhz(hclk), print_mhz(pclk));
Update from OP
I have been looking for this output from dmesg
, but I could not find anything - the dmesg
output was littered with debug messages, and the beginning was missing. Clearly the kernel message buffer was too short to hold all messages until I connect by telnet. By putting /bin/dmesg > /tmp/dmesg.log
early in the startup process, I was able to get this output, confirming what I wanted to know:
Linux version 2.6.21 (gcc version 4.2.2)
CPU: ARM926EJ-S revision 5 (ARMv5TEJ)
Machine: SMDK2416
...
CPU S3C2416 EVT3
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C2416: mpll on 534.000 MHz, cpu 534.000 MHz, mem 133.500 MHz, pclk 66.750 MHz
Best Answer
tl;dr You're fine, you can fully utilize your processor and you will not have any troubles with performance. A new motherboard/ram is not required.
CPUs have a cache on them, this is where all data access takes place. If there is data that is in memory but not in the cache, it has to be loaded into the cache first.
The speed of the ram has less to do with how long it takes to access it than the memory timings do. These timing specify exactly how many cycles it takes to access the RAM. You can see this Wikipedia Article for details about memory timings.
As Far as your CPU is concerned, it actually has a internal clock speed much less than 2 GHz, what gives you the 2 GHz effective clock speed is the CPU Multiplier. As long as your base clock speed is less than the speed for your ram, you're fine. For example, my i5 2500k runs at 3.6GHz, its base clock speed is 100MHz, and its multiplier is 36.
Another thing to be aware of, is that your ram isn't actually running at 1600MHz, is running at 200MHz. You can get a table of that info here. But as I said above, that 200MHz is higher than the base clock speed of 100MHz, so even on a good processor like my i5, 200MHz is more than enough speed.