I am trying to understand the intricate terms related to performance of processors.
Computer performance is measured in FLOPS, which is short for FLOPs per Second. FLOPs itself stands for Floating-point Operations.
Now, why is floating-point operations considered for the performance of a computer. What about integer operations? Is there any source online (official citation) that would explain this trend? Google did not give me anything with my searching.
Now, what exactly does operation in FLOP mean? Does that mean a mathematical operation like MUL, ADD, DIV etc?
In this case, what would be an instruction? If an instruction is something like ADDPD, ADDSD etc, as I can see here (http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html), then one instruction can lead to many internal operations. Would that be micro-operations or uops?
I did not find the explanation for micro-operation on Wikipedia helpful. Whoever explains this clearly here will probably have to improve the Wikipedia article as well :)
According to the Hennessy/Patterson book on Computer Architecture (5th edition, page 233), the ARM Cortex-A8 (RISC) is able to execute two instructions per clock. Does that mean that the processor can perform, for example an ADDPD and an ADDSD (total=2 Instructions) in one cycle?
This source (http://en.community.dell.com/techcenter/high-performance-computing/w/wiki/2329) states the following:
Most microprocessors today can do four (4) FLOPs per clock cycle, that is, 4 FLOPs per Hz.
I believe the author is wrong. He probably implied 4 Instructions per cycles, limiting himself to CISC-based (Intel for example) processors. That is because some instructions like FMA on Haswell can boost performance whereby the processor can process more operations per cycle. In other words, 1 FMA instruction translates to a couple of operations. Am I right?
IPC stands for Instruction per Cycle. What instructions are referred here? The instructions retired by the processor? With a hardware counter, I can count the number of CPU cycles and the number of INST_RETIRED.ANY. Would that be the right way to calculate IPC?
Thank you very much for any answers and comments. Hopefully my question will help many other confused souls :)