So with 2,600,000,000 cycles per second (give or take), one cycle takes about 0.3846 nanoseconds (or 384.6 picoseconds but it's easier to go with ns). My RAM is of type DDR2-800 so CAS latency (for the sake of simplicity that's all to be considered) is expected to be 5 nanoseconds.
To find how many clock cycles we need to cover 5 nanoseconds, we divide the access time by the cycle time and obtain 13 cycles.
Is this correct? Does it really take 13 CPU cycles just to for the memory to fetch the data? (That's to say, from the time the memory sets out to access the data to the moment it ends up at the data bus) That's a ridiculous impact on CPU performance! I understand there is also the cache memory which is supposed to be the uber fast memory that reduces the latency to a lot smaller amounts. But say that wasn't available. For the sake of argument, say I was operating with truly random access memory where the next address of memory to access if a flip of a coin away and I've somehow managed to remove all helper technology such as cache memory and whatnot. If by every instruction I sacrifice 13 CPU cycles, that divides my total operating frequency from 2.6GHz to 200MHz (2.6GHz / 13).
It looks to me like being careless with programming and unmindful of how data is being tossed around, the performance can be heavily handicapped. Obviously in actual situations there is cache memory, pipelines, even multi-core processors which may (or may not
EDIT: I just realized... This doesn't really pertain to games and it doesn't seem particularly like a "For Beginners" question.... Sorry about that XD This was the only forum I knew where I could possibly get an answer to that.





















