Understanding Processor Speed

enf0rcerenf0rcer intrigued... Join Date: 2003-03-16 Member: 14584Members
<div class="IPBDescription">where art thou clock speed?</div>I remember when it was very easy to tell which CPU was the best - you'd look at the clock speed and depending how many Ghz the thing was you'd know how fast it is. Now we've got front side bus, cache, and duo cpu to worry about. Honestly it means very little to me.

I know that an "old school" p4 at 3.2ghz is actually much slower than say a 2.66ghz dual core cpu. But beyond the obvious well it's faster caues it's dual core I have no idea how to measure which processor is better in a lineup. How <i>much </i> faster is the dual core - would it be analagous to just going 2.66 x 2 or is it not that effecient.

Anyone have a simple set of rules for figuring out what is best and by how much?

Comments

  • TychoCelchuuuTychoCelchuuu Anememone Join Date: 2002-03-23 Member: 345Members
    Just check benchmarks. Engadget, Tom's Hardware, Maximum PC, and all sorts of other people have already done the tests for you. It's just a matter of looking at the charts.
  • enf0rcerenf0rcer intrigued... Join Date: 2003-03-16 Member: 14584Members
    we'll lets say for some really strange reason that I dont want to look up benchmarks every time I come across 2 different cpus, then what do I do - I'm not looking for shortcuts I just want to understand the basis of this stuff.

    like here's another one intel core 2 duo and extreme - extreme is quad core - does it literally translate into 4 times the processing power or is it some other factor.

    I guess that's as basic as the question gets - does duo core literally operate like dual core?
  • scaryfacescaryface Join Date: 2002-11-25 Member: 9918Members
    edited April 2007
    core duo is basically just a brand name for intel's dual core processors.

    if you have a dual core processor, in many or most cases, it won't perform better than the single core version of the processor if you are only running one processor intensive program at a time. This is because for a program to make use of multiple cores/processors it has to be threaded, which is a matter of how the program is written, and whether the program can physically be written to use multiple cores. Because of this, you can't say that a dual core 2.4 ghz processor is equivalent to a single 4.8 ghz processor. Most common programs and games are not written to take advantage of multiprocessor systems, but this is changing as dual core processors become more common. For example, Crysis will supposedly perform much better with a multicore processor. For some programs that are threaded, there may be a huge boost in performance. Also, most people don't run only one program at a time. For example, on my dual core system i can play a game while running a virus scan with very little drop in fps. You're really better off just finding benchmarks.
    as a rule of thumb, the more expensive it is and the higher the model number, the better it probably is. <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />
  • GreeGree Join Date: 2003-05-18 Member: 16454Members
    You have asked an immensely complicated question that I am not sure I am fully qualified to answer, but I will try.

    I start with just basic a basic multi-core setup. Simply put having 4 cores does not mean 4 times faster, it means that the CPU can do 4 things, calculations and whatnot, simultaneously. However, this is only true if your operating system supports multiple processors. Windows XP should support multiple cores, but even then there is likely a limit to the number it can handle. Furthermore, if the operating system you are running supports multiple processors, but the software you are running on top if it doesn't, that program will see no added benefit other than it will have more time with a single CPU. It should see more time with a single processor if the operating system actually distributes the load evenly across all available cores. One word of warning though, if the CPU you want is actually 2 chips Microsoft Windows will be slower than a single chip with an equal number of cores. This is because Windows lacks proper <a href="http://en.wikipedia.org/wiki/Non-uniform_memory_access" target="_blank">NUMA</a> support. That is about all I know of multi-core and multiple processor technology.

    Now as for the cache, simply put more is better. The cache on the CPU is where it stores what it should do next. If this is large it reduces how often the CPU should have to access the RAM in the system. The CPU can access this much faster than the RAM in the system.

    The front side bus is how the CPU accesses other parts of the system. I am not too familiar with it myself, but I will try my best to explain it. The speed of your front side bus directly determines how fast your system can actually run. A slow front side bus will cause the CPU to have idle time since it will be working faster than the front side bus can supply it with instructions. The speed of the RAM in the system plays a roll in this as well. The system RAM also has a clock speed which, if it is slower than the front side bus, will slow down the system. According to <a href="http://en.wikipedia.org/wiki/Front-side_bus" target="_blank">the Wikipedia</a> article system performance can vary unexpectedly with differing speeds of memory and the front side bus.

    Other things can also affect how the performance of the CPU. If, for example, one had a system with identical computer in every way except for the CPU being made by different companies; the performance of once system could vary from program to program. This is due to how the programs were compiled and how they were written. Since no companies make CPUs with identical specifications and software can, and often does, preform differently on competing processors; a true benchmark is therefor very difficult. So, in the end, direct comparison of processors is next to impossible between brands, however it should be possible to do a direct comparison between processors made by the same manufacturer. The only way to know for certain which processor would be better would be to do a benchmark between them on similar systems and running the type of application you needed it to run.
  • enf0rcerenf0rcer intrigued... Join Date: 2003-03-16 Member: 14584Members
    thank you - great explainations. I understand the stressing of benchmark importance - I really just wanted to know what the numbers were refering too - you've done a great job of that.

    I wasn't clear on duo core limitations either so the software explaination is handy too. I think that'll make me postpone a hardware upgrade until they are more commonplace and can actually be used to their potential by programs I may be using.

    (oh and I was making the distinction between duo core and dual core as in dual core being 2 physical cores, not one core replicating two pipelines or whatever you call them. Either way the point has been made and I understand the difference now)

    thanks guys!
  • GwahirGwahir Join Date: 2002-04-24 Member: 513Members, Constellation
    An interesting trend in multi core CPUs is that they're dropping the branch predictor. A branch predictor is used to make an informed guess at which way a branch will go (taken or not taken). Most modern CPUs with a predictor can guess correctly avoer 95% of the time. When it gets it wrong, depending on the architecture, there is a penalty as there are now useless instructions in the CPU that must be ignored (time wasted processing them). Removing the predictor saves space and power.

    An example of where this is really great, Niagara. It's a webserver with multiple multi-core CPUs. In webserving, the individual job delay doesn't matter much so long as it isn't horribly long but there are many users who want content so parallelism is more important than individual job speed. This setup handles that very well.

    You must note that single thread programs are actually slower here, but overall performance increases.
  • the_x5the_x5 the Xzianthian Join Date: 2004-03-02 Member: 27041Members, Constellation
    I actually completely understand the hardware achitecture and even know some confidential information about AMD X2 architecture, but what I do not understand is how you can write a piece of software to utilize multi-threaded instructions. How do you do that? Isn't that entirely up to the OS? If it's easy, then why don't more companies (and especially game developers) use that?

    While we are asking questions about multi-core hardware, I figured I'd ask about a hole in my knowledge about the software link. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
  • [WHO]Them[WHO]Them You can call me Dave Join Date: 2002-12-11 Member: 10593Members, Constellation
    <!--quoteo(post=1621208:date=Apr 15 2007, 10:57 PM:name=the_x5)--><div class='quotetop'>QUOTE(the_x5 @ Apr 15 2007, 10:57 PM) [snapback]1621208[/snapback]</div><div class='quotemain'><!--quotec-->
    what I do not understand is how you can write a piece of software to utilize multi-threaded instructions. How do you do that? Isn't that entirely up to the OS? If it's easy, then why don't more companies (and especially game developers) use that?

    While we are asking questions about multi-core hardware, I figured I'd ask about a hole in my knowledge about the software link. <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" />
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    There aren't multi-threaded instructions afaik. All you're doing is running multiple threads (a thread being a procedural set of instructions). Even on single cpu configurations, you can write multi-threaded applications using generic multitasking. For single cpu you don't get anything done any faster, but you can have one thread doing something that takes a long time while the other thread is doing windows maintanence or running a game loop or whatnot.

    Just to be clear. Multi-threaded programming is a nightmare to debug. There are lots of ways to approach it, but they all get nasty really fast the more you have the threads interact with each other.
  • BlackMageBlackMage [citation needed] Join Date: 2003-06-18 Member: 17474Members, Constellation
    it's not the clock speed that's important, it's what you do with it
  • DrSuredeathDrSuredeath Join Date: 2002-11-11 Member: 8217Members
    <a href="http://youtube.com/watch?v=PKF9GOE2q38" target="_blank">Relevant?</a>
  • RobRob Unknown Enemy Join Date: 2002-01-24 Member: 25Members, NS1 Playtester
    edited April 2007
    Yeah, think of multi-threading as several lines of execution running through the same program at the same time. This differs from multi-<i>processing</i> in that threads use the same memory block. Most of the time, you can't be quite sure which thread changed variables...

    Sneaky threads.

    [edit]The link above is pretty much a Mac advertisement. <img src="style_emoticons/<#EMO_DIR#>/tounge.gif" style="vertical-align:middle" emoid=":p" border="0" alt="tounge.gif" /> But, it's fairly true. What he leaves out is that no processor is designed for general purpose processing. You need to choose the hardware that's going to suit the software you run. You wouldn't pit a 4-by-4 mammoth against a formula 1 car on a track and expect the 4x4 to win any more than you'd pit them on a mountain and expect the formula 1 to win.
  • DrfuzzyDrfuzzy FEW... MORE.... INCHES... Join Date: 2003-09-21 Member: 21094Members
    I'd personally stray away from multi-cores for now till software catches up, even source has problems using more than one processor. While its good to have that extra kick, it takes longer for the cores to communicate while playing games and can cause extra lag, my buddy had a problem with it.
Sign In or Register to comment.