The elements of computing systems : building a modern computer from first principles - Nisan, Noam; Schocken, Shimon (MIT Press, 2005)