I was wondering about this the other day when I was explaining binary and hexadecimal to a friend of mine and this came up. The question goes something like this:
How exactly do instruction execution speeds relate to clock speeds in modern computers?
For instance, say a clock signal of 1 MHz is used by a computer processor. The processor will execute operations on the edge of that clock (on the negative edge if I'm not mistaken), but this doesn't mean that a full instruction will be executed for each clock cycle.
To have a more specific example, if an Intel x86 processor has a MOV BX, 45 command, I am assuming that it will take several clock cycles to complete this since the number 45 has to be generated, and the BX register has to be located and so on. Maybe this one might be a single clock cycle since it is an immediate value being moved into a register, but hopefully this kind of explains my question. Maybe a JNE command would be a better example.
On top of this, there is the fetch-decode-execute cycle which would reduce the instructions-per-clock ratio to less than 1:1, is that correct? Please forgive me if I totally misunderstand how this stuff works. I am very interested in it and know that lots of you know quite a bit about it. Please feel free to shed some light on my ignorance :D
Thank you so much