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