The Elements of Computing Systems: Building a Modern Computer from First Principles by Shimon Schocken, Noam Nisan (Paperback, 2008)