SO! I have been enlisted to upgrade my sister’s computer. I am tying (and think I have succeeded) to put together a quad-core system for £350. This consists of an Intel Q8300: £100, ATI Radeon HD 4870 512MB: £90, branded 600W PSU: £50, 3GB DDR2 800Mhz RAM: £55 (4GB is just too expensive), motherboard: £50. Total ~£350.
NOW. The problem is that there are no good sites online to compare the Q8300 against other alternatives (mainly the Q6600). On forums, the Q8300 fares very badly becuase:
1) it is hard to overclock
2) it has only a 4MB cache (vs 8MB in the Q6600)
Unfortunately you largely get the feeling that these discussions are conducted by leet kiddies who don’t really know anything about computer architecture, and so it’s hard to find a fair discussion.
Here is my take:
Q8300 vs Q6600 by Steph.
1) overclocking: here’s the deal guys, if you overclock you’re the computer nerd equivalent of one of those people who has 4 exhausts on their car and their engine artificially tweaked to make it louder. You might think you’re awesome, but everyone else thinks you’re a twat.
Proper reason: it doesn’t matter how cool you keep it, if you’re pushing it far past its rating you’re still risking damaging it and a damaged CPU is not something you want because it’ll manifest itself in random looking, hard to diagnose crashes (and please note: passing a stress test for a few hours isn’t proof of stability, there’s nothing beyond hand waving to say that a damaged CPU will be more likely to exhibit errors under stress and not under normal usage). Your CPU is responsible for almost everything. If it starts occasionally giving you the wrong result then that might have the effect that your webpage has a single wrong character on it (probably unnoticable), or it might have the effect that your OS kernel tries to write into an illegal area of memory (uh-oh). Maybe Windows users are used to random crashes, but they would annoy the heck out of me. And if you’re not pushing it that far then it’s not going to give you a noticable difference for anything. And most games on most systems are GPU bound, so unless you’re doing something that REALLY IS CPU intensive like massive media editing or prime factoring big numbers then you won’t see any real effect (i.e. one you can perceive without a bechmark or frame rate counter) . In 99% of cases, overclocking is pointless and immature. Look at it like this: you can overclock your router but it’s not going to make your internet connection faster because the speed at which the router can process data is not a limiting factor. You can overclock your CPU but it’s (probably) not going to make your computer faster (except in fairly specific tasks).
Plus you shorten the lifetime of your hardware, and if you spend any extra money on cooling (which you almost certainly will) why didn’t you just use that money to buy a better CPU in the first place? Duh.
2) the CPU cache. Quick review: the cache is necessary because programs are stored in somewhere called memory (RAM). Memory is pretty big and can fit a lot in it, but it’s a long way away and it takes a long time to get data from memory over to the CPU. CPUs can process the incoming data faster than they can fetch it. This means they spend a lot of their time doing nothing, waiting for data to trickle through. To minimise this, a cache is built onto the CPU which keeps a copy of things that are expected to be used often. The cache is local to the CPU so it’s very fast to access. But since it’s on the CPU, there isn’t a lot of room to build it and it’s pretty small in capacity. So when the CPU needs some data, it first says “wait, let’s see if it’s in the cache”. If it is (a cache hit), then it rejoices as it retrieves it very quickly. So a bigger cache is better, right? The bigger the cache, the more it holds, the higher the probablity of a cache hit, RIGHT?
Well yes, but the probability of a cache hit is logarithmic in terms of the capacity of the cache. That means doubling the cache size doesn’t double the number of cache hits; the increase in hit percentage gets lower every time you double it (look at this graph, ignore the scale, and imagine ‘Cache capacity’ on the X, and ‘probability of cache hit’ on the Y). This should be self evident if you accept that the most recent data used in the program is what’s most likely to be used again in the near future. That’s not a law built into the fabric of the universe, it’s just how it usually works out (if that wasn’t roughly the case, it would be hard to make the CPU cache do anything useful anyway). The ‘older’ some data is in the context of the program’s execution, the less likely it is to be used again. Doubling the cache size doubles the amount of data you can fit in the cache, but it doesn’t double the amount of USEFUL data (data whose absence implies a cache miss) in the cache. Simply put, an extra 4MB of cache capacity gives you an extra 4MB of OLD data. There’s a chance that some of that old data will be used again before it’s kicked out, but the probablity of which is not nearly as high as for the ‘newest’ 4MB.
And the cache is not the only factor in the performance, so don’t look at the idea of “well it will increase cache hit probability a bit though” as being an absolute performance indicator. Yes, two identical CPUs but one with double the cache of the other should have the one with the larger cache performing faster. But the Q8300 is clocked a bit higher than the Q6600 (2.5Ghz vs 2.3Ghz), which I strongly suspect will negate the cache issue.
The Q8300 also fares better in the sense that its core is smaller (insert figures here) which means it runs cooler and consumes less power, and it’s about £50 cheaper. A 4->8MB cache is not worth a 50% increase in price. Overall on paper, there is no reason to buy a Q6600 over a Q8300.
caveats:
1) the Q8300 doesn’t support Intel VT-x, and the Q6600 does. If you don’t know what that is, you don’t need it. Even if you do virtualise, you probably still don’t need it unless you KNOW you do. VirtualBox claim their software methods are just as fast or faster than Intel or AMD’s hardware virtualisation support, and from my own experience this is true for AMD’s. I can’t speak for Intel’s but I’d be surprised if it’s noticable. That’s perfectly good for home users. Servers may be different. To 99% of buyers, this isn’t a consideration.
2) For scientific computing you might often be multiplying together big matrices (yes matrix multiplication happens all the time in games, but 4×4 is not big so no it doesn’t apply), and if you know how matrix multiplication works, you will see that it will inherently give a lot of cache misses if your matrix is big compared to your cache (although a decent programmer in a performance critical program would order the steps in their multiplication routine to focus on maximising cache hits). But this is a specialist area and if it affects you, you already know it.
3) I should also have mentioned that task switching kills the cache a bit so a bigger cache is definitely more useful if you want to run a lot of things at once and one or two of those are CPU intensive. However, few people try to play Crisis while encoding videos.