Wed, 16 Nov 2011, 19:16


One of my TAs mentioned after class that I used the word "atomic" today,
and he does not think I ever explained what "atomic" means in the context 
of computereze.  So, I am doing so here:

The word has its origins from chemistry where we talk about atoms, such that
a carbon atom is different from a hydrogen atom is different from a nitrogen
atom, etc.  The idea of "atom" is that if you break the atom down further,
the ingredients do not display the characteristics of the atom.  That is,
protons, neutrons, electrons and if you look at one of them, say a neutron,
you can not tell which atom it came from.  

So, when we say "atomic" in computer jargon, we mean something that can not
be broken down further.  For example, we say that an instruction is the atomic
unit of processing, we mean it is the smallest unit of processing since we can 
not execute half of an instruction.  We either execute the whole instruction 
or none of the instruction.

In class I used the term "atomic" to describe one of the states in a computer's
finite state machine.  That is, we either do everything specified in that state
or none of it.  We do not do just part of work of that state.  i.e., the state
is the atomic unit of what goes on in a single cycle of the microarchitecture.

OK?

...and while I have your attention, a couple of other things:

1. Today in class, in dealing with interrupts, I mentioned that the PSR
is pushed first and then the PC is pushed, as described in Appendix C.  
This contradicts the explanation in Chapter 10, where the PC is pushed
first and then the PSR.  Chapter 10 is incorrect.  Appendix C is correct.  
The errata sheet on the McGraw-Hill website contains that correction to 
chapter 10.

2. In class in checking for stack overflow/underflow, we tried to use
BRnz or BRzp.  It turns out that creates a problem which I did not realize
at the time.  Simply using BRz makes the problem go away.

Thanks for reading.  Good luck with the rest of the course.

Yale Patt