http://www.cs.dartmouth.edu/courseguide/grad/cs_107.html
The focus of this course is the functionality and implementation of computing machines. The course examines different kinds of machines and implementation strategies; for example, traditional instruction sets, RISC machines, direct execution machines, data flow machines, micro-programming, parallelism, pipelining, architectures for LISP and Prolog, systolic array machines, memory systems, and bus design.