Top positive review
5.0 out of 5 starsExcellent overview
Reviewed in the United States ๐บ๐ธ on January 5, 2014
This fast-paced book touches on every level of computer organization, from the logic design level, through compilers and linkers, to memory models, parallelism, and computing in networks. It presents a broad-based survey, for the diligent early student who wants to know more about what to expect from future coursework Still, the field is huge and there's only so much you can cram into 1000 pages or so - this really does just touch on each topic rather than going into any great depth.
If there's anything I might fault this for, it's the tendency to treat each topic in isolation. For example, debuggers depend on both object code formats and hardware exceptions. Processor instruction sets are influenced by compiler design, OS synchronization needs, debugger features, and lots more. Compiler implementation supports the needs of driver developers and multithreaded applications. Complex instructions (like floating point) can be implemented in hardware or in software, using traps, depending on design tradeoffs. In short, everything depends on everything - but it's almost impossible to present all those relationships in a linear text.
But, that's the kind of thing that a classroom instructor can add to the curriculum. This already presents a sound foundation and framework.
-- wiredweird