Fetch, Decode, Execute....

I was taught back at school, that there were 3 main CPU cycles: Fetch, Decode and Execute.But now in the course I'm doing they include a fourth, Store.

Is this right?
Has anyone got any usefull information about it?
Are there any intruction's that are exceptions to the 'Store' psrt of the cycle?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

There are lots of choices about how you describe the machine execution.  Here is a quote from a file on the 8031 family;

"A machine cycle consists of a sequence of 6 states, numbered S1
through S6. Each state time lasts for two oscillator periods. Thus a
machine cycle takes 12 oscillator periods or 1þs if the oscillator
frequency is 12MHz."

Some instructions can be short, like your first description.  Something like incrementing a register.
A much longer type would be moving one memory location to another, where you have to fetch and decode to know what to do, then fetch from external memory then store to external memory.
Lab_RatAuthor Commented:
I see. Are there any instructions that don't store anything?

Output to a port springs to mind...
Sure, instructions which operate on registers don't store in the sense the words being used here.  That would be ADD, INC, DEC, RR, ones like that.
And branch instructions don't usually storein this sense either, JMP, JSUB, RET.

It's sort of theres store and then theres store.
Store to the data memory.
Store to the program memory.
Store to the registers.
Store to the PC.
It gets to be a philosophic arguement.
Suppose you do a shift left.  You end up with bits in a new place, did you 'store' them there.  Classically the answer would be no, because you didn't take an action to specifically cause that result, it just happened.

Usually 'store' refers just to data memory.
If you look at what actually has to happen to get some data there's lots of steps.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Introducing the "443 Security Simplified" Podcast

This new podcast puts you inside the minds of leading white-hat hackers and security researchers. Hosts Marc Laliberte and Corey Nachreiner turn complex security concepts into easily understood and actionable insights on the latest cyber security headlines and trends.

> Are there any intruction's that are exceptions to the 'Store' psrt of the cycle?

Sure. "Test I/O" sets the "condition-code", and "Branch" changes the "next-instruction-address", while "BranchConditional 0,0" is a "null-operation", which never(!) branches to location "zero".
This 'BC 0,0' is a two-byte instruction, and often is used when it is necessary that the following instruction must be aligned on a four-byte boundary.
What you should be able to tell from this discussion is that the answer, like in so many things, it "it depends".

Some bipolar micros of the 80's had a single cycle, and within-chip sequencing was handled purely through propagation delays.  I think some embedded RISC chips continue this practice.  On Harvard architecture chips, there are different flavors of "store" which are very different from the chip's perspective.  Chips like the PIC seem to include both these extremes.

So the answer to your question depends very much on the particular part.
Lab_RatAuthor Commented:
They're all good answers, unfortunatly I don't know who to post the points too, a vote anyone?
I decline -- award the points to somebody else ... Otta.
Lab_RatAuthor Commented:
Otta, you should back up your request with some concreate evidence, as production of curiosity without satisfactory resolution is highly unfair! (I'm nosey about your reason!Please, please, eloborate :)

But, o.k., I'll award the points tooooooooooo....

3rsrichard, because you've supplied me with the most information, ta!
Why thank you.  I will cherish them.
> production of curiosity without satisfactory resolution is highly unfair!

Never look a gift-horse in the mouth.  :-)

Other than getting a free E-E T-shirt for accumulating 100000 points, I don't know what else I would do with another 50 points.  :-)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.