The Elements of Computing Systems Building a Modern Computer from First Principles - Nisan, Noam; Shimon Schocken (USA MIT Press, 2005)