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