Hi Every1,
I hope that this topic will not cause problems like the previous one!!
Anyway what I want to know is this.
When Intel and others quote a CPU speed of say 1000MHZ correct me if I am wrong but that is 1000 * 10 ^ 6 cycles per second right? which equates to ((1000 * 10 ^ 6) / 7) MIPS approx if the CPU has a 7 stage pipeline??
Its all very well to know how fast the CPU is going but what I am interested in is how many instructions of code on average a particular processor can process per second.
I assume that each cycle that the processor handles is 1 stage in the pipeline for example - 1 cycle might be the prefetch stage and then then next cycle might be the decode stage and so on...... Am a right here guys??
Anyone that can help out would be much appreciated.
Cheers
Beno
P.S -> I am on summer holidays from uni so this is not for an assignment or anything like that! :-)
------------------
Have a nice day
[This message has been edited by Beno (edited 12-11-2001).]
Ghost_Hacker
12-11-2001, 11:28 AM
Here some information that you may find interesting.
"The MIPS rating of a CPU refers to how many low-level machine code instructions a processor can execute in one second. Unfortunately, using this number as a way of measuring processor performance is completely pointless because no two chips use exactly the same kind of instructions, execution method, etc. For example: on one chip, a single instruction may do many things when executed (CISC = Complex Instruction Set Computing), whereas on another chip a single instruction may do very little but is dealt with more efficiently (RISC = Reduced Instruction Set Computing). Also, different instructions on the same chip often do vastly different amounts of work (eg. a simple arithmetic instruction might take just 1 clock cycle to complete, whereas doing something like floating point division or a square root operation might take 20 to 50 clock cycles).
People who design processors and people like me who are interested in how they work, etc., almost never use a processor's 'MIPS' rating when discussing performance because it's effectively meaningless (like many people, I did at one time used to think that a CPU's MIPS rating was all important. Ironically, an employee at MIPS Technologies Inc. corrected my faulty beliefs when I asked him about the performance of the R8000).
MIPS numbers are often very high because of how processors work, but in fact the number tells one little about what the processor can actually do or how it works (ie. a processor with a lower MIPS rating may actually be a better chip because its instructions are doing more work per clock cycle). There are dozens of different processor and system benchmarks, such as SPEC, Linpack, MFLOP, etc. One should always use the test that is most relevant to one's area of interest and the system concerned. With games consoles, however, this is a bit of a problem because no one has yet made a 'games console' benchmark test - people have to use existing benchmarks which were never designed for the job. Heh, game designers might say that the only real benchmark for a console is how good the games are, but tech types will never fully listen to that argument. :-)
An example: imagine a 32bit processor running at 400MHz. It might be rated at 400MIPS. Now consider a 64bit processor running at 200MHz. It might be rated at 200MIPS (assume a simple design in each case). But suppose my task involves 64bit fp processing (eg. computational fluid dynamics, or audio processing, etc.): the 32bit processor would take many more clock cycles to complete a single 64bit fp multiply since its registers are only of a 32bit word length. The 32bit CPU would take at least twice as long to carry out such an operation. Thus, for 64bit operations, the 32bit processor would be much slower than the 64bit processor. Now think of it the other way round: suppose one's task only involved 32bit operations. Unless the 64bit registers in the 64bit CPU could be treated as two 32bit registers, the 32bit CPU would be much faster. It all depends on the processing requirements.
The situation in real life is far more complicated though, because real CPUs rarely do one thing at a time and in just one clock cycle. Simple arithmetic operations may take 1 cycle, an integer multiplty might take 2 cycles, a fp multiply might take 5 clock cycles, and so on. Worse, some CPUs are designed to do more than one of the same kind of operation at once, ie. they have more than one of a particular kind of processing unit. Modern high-end CPUs (eg. R10000, PA8000 series, 21264, etc.) often have 2 or more integer processing units, 2 or more fp processing units and at least one load/store unit. Sometimes, they may have special units too, for example to accelerate square root calculuations (eg. a dedicated fast Fourier unit).
But it doesn't stop there! Today, there are technologies such as MMX (from Intel) which is designed to allow a 64bit integer register to be treated as multiple 32bit, 16bit or 8bit integer registers, and also MDMX (from MIPS Technologies Inc.) which does the same but is more powerful in that it also allows the same register splitting to be done with fp registers. These new ideas enable many more calculations to be performed in the same amount of time compared to older designs. An example: Gouraud shading involves 32bit fp operations; using a 64bit fp register as two 'separate' 32bit fp registers will (at best) double the processing ability of the CPU."
And from another web site
"Of all the misleading performance metrics out there, MIPS and GFLOPS ratings have got to be two of the most widespread. I myself have even been known to quote GFLOP numbers from vendors; when that’s all you have to go on, then you don’t have too much of a choice. Of the two, MIPS has to be the most worthless. (I’ve never been guilty of quoting MIPS.) For a given program, the MIPS (Millions of Instructions Per Second) rating is calculated by dividing the instruction count of the program by its execution time in milliseconds.
You don’t even have to think too hard to come up with a good criticism of MIPS. The instruction count for a particular program is completely dependent on the nature of the program and the instruction set architecture (ISA). For example, the "Hello World" program, when compiled for a CISC ISA, might use ten instructions; when compiled for a RISC ISA, it might use twenty. If the program takes the same amount of time to execute on both CPUs, the RISC chip will have MIPS rating twice as high as the CISC chip, even though both chips did the same amount of work in the same amount of time. In fact, not only does MIPS vary drastically between ISAs, it also varies between different programs on the same computer."
iisbob
12-11-2001, 05:07 PM
More or less this is what AMD is trying to tell people with their new naming scheme; that it's not how fast the CPU moves that's important, but how many apps it can perform in an instruction cycle that's important.
makes sense-but i'll have to say that telling everyone you have a 2.3 GHZ procesor sounds a lot more cool than saying " It performs at a rating of 2100+ ". http://www.PCGuide.com/ubb/rolleyes.gif
------------------
iisbob
""I was gratified to be able to answer promptly, and I did. I said I didn't know."
Mark Twain
Thanks ghost_hacker and iisbob
------------------
Have a nice day
vBulletin v3.6.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.