Thank you Martin; Your explanation makes eminent sense. On Thu, 2005-12-22 at 11:32 -0500, Martin Hicks wrote: > 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: I've got William Stallings "Computer Organization and Architecture". It has a similar diagram to yours. > > /\ <- 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. > But Stallings never quite says "The original value is still in memory" I wanted to be sure I understood properly. A lot operations depend on the original value still being in memory. Thanks, it is always easier to understand something when one can get some external confirmation but things that are iffy in ones own mind. Regards Bill