On Thu, Dec 22, 2005 at 11:00:02AM -0500, William Case wrote:
> Hi;
>
> Simple question which I can't find an answer to. Probably because it is
> so basic.
>
> Whenever a processor fetches a dWord from memory, is the word *always*
> copied to the processor or is it in fact moved -- leaving, as it were, a
> blank (Ox0000) at that particular address?
Get a computer architecture book. The computer's memory is a pyramid:
/\ <- processor registers (this one isn't always true)
/ \ <- L1 cache
/ \ <- L2 cache
/ \ <- ... other caches perhaps.
/ \ <- Main memory
Whatever is higher up the pyramid is a subset of the lower levels.
Also, generally, when you're writing back down the pyramid you have to
go through all levels.
I.e., if you were to write a register back to main memory, it would end
up in all the cache levels also.
Registers aren't always a subset of the caches and memory because some
of them are used as pointers to stacks, global pointers, etc. Also,
some architectures support in-situe memory operations, so the
value/pointer doesn't need to be in a register.
So, back to your initial question: The original value is still in
memory until you do a "store" of 0 back to the initial memory location.
mh
--
Martin Hicks || mort [ at ] bork [ dot ] org || PGP/GnuPG: 0x4C7F2BEE
Attachment:
signature.asc
Description: Digital signature