I'm new to Computer Organization and even to this community. I didn't find anything which was simple, clear and up to the point. Any examples supporting the discussion is appreciated. I'm not looking for some text book answer.
Here's an example of my view to question: What is a Programmer's Model ? Programmer's model shows what the CPU has available to a programmer for the execution of computer programs. It covers the CPU resources for execution of the CPU's instruction set. (resources like state variables, AKA registers that can affect — or be affected by — the execution of instructions)
This programmer's model would NOT detail hardware, such as how the CPU's electronic circuitry works, how buses transport data or the I/O peripherals available. i.e. The underlying details of how all of that is actually accomplished are hidden from the programmer.
In other words, the programmer's model would NOT cover functions that cannot be observed by CPU instructions. [EXCEPTION: those instructions trying to detect hardware operations, such as cache behavior, read/write variances because of varying bus delays etc are excluded]
So, similarly I wish to know what is a Memory Model ?