Sat, 2 Nov 2013, 00:43
My students, This showed up in my mailbox. Nothing to do with the material of EE306, just a student curious about the origin and influence leading up to the LC-3. So, unless you have Program 3 done, please put this to the side until you have some extra time and don't know what to do with it. Feel free also to simply delete it if you wish. A student writes: > Dear Dr. Patt, > > This is a question unrelated to the programming assignment, but I was > wondering if your work on the LC-3 was influenced by the Little man > computer(LMC)? Because some of the pneumonics of the LC-3 look similar to > the the LMC, and the fact that it is based on the Von Neumann model. It > would be interesting to hear your take on this instruction model. Thank you > for your time. > > <<name withheld to protect the student curious about the origin of the LC-3>> Actually, I had never heard of the Litle Man Computer, although of course I knew of Stuart Madnick. In fact, he and John Donovan wrote the most important book on Operating Systems about the time I was just out of graduate school, if I remember correctly. He has been teaching at MIT for more than 40 years. So, I just googled LMC. It is an interesting ISA, but nowhere near as interesting as the LC-3! :-) Madnick and I clearly share a love of teaching, and both of us wanted to invent an ISA that was simple enough to teach students how computers work without getting bogged down with too much stuff to memorize. He came up with Little Man Computer. I came up with LC-3. I clearly won! Simple enough for the student to learn it without being cumbersome. So, he and I came up with different ISAs for doing this job, without having any idea of each other! You asked about what influenced the LC-3. Probably the PDP-11 (released around 1970 by Digital Equipment Corporation) more than anything else, although I am sure there were a lot of ideas spinning around in my head from a lot of other ISAs about what should go into the LC-3 and what should not. I came up with the LC-1 when I was at Berkeley teaching a junior level course in computer organization. At that time I did not have any chance at all of getting anyone to agree to let me teach this to freshmen, so we never really wrote many programs in LC-1 assembler. We were strictly interested in how the computer works. So, 8 opcodes rather than 15. The only BR was BRn, only one LD and one ST. When I started teaching EE306 material at Michigan in 1995, I came up with the LC-2, which expanded on the LC-1 by adding registers, addressing modes, Z and P (not just N) for Branching, etc. After five years of experience teaching the LC-2, I decided there were some improvements we could make, and LC-3 was born in time for the 2nd edition (blue cover) that we are using in class now. OK? Now back to work! Yale Patt