I'm kinda confused about the exact definition of a "machine cycle".
For example, some source online say that it is:
The four steps which the CPU carries out for each machine language instruction: fetch, decode, execute, and store.
While the book Programming the Z80, which supposedly has a good reputation, says:
We have seen that all instructions are executed in three phases: FETCH, DECODE, EXECUTE. We now need to introduce some definitions. Each of these phases will require several clock cycles. The Z80 executes each phase in one or more logical cycles, called a "machine cycle."
Now what confuses me here is that - from what I understood - the first one is basically saying: A machine cycle is a fetch-decode-execute cycle, while the book is basically saying: A machine cycle is the one - or more - clock cycle that happens in each fetch, decode or execute cycle individually.
So, what is what?