Developed as the text for the basic computer architecture course at MIT, Computation Structures integrates a thorough coverage of digital logic design with a comprehensive presentation of computer architecture. It contains a wealth of information for those who design computers or work with computer systems, spanning the entire range of topics from analog circuit design to operating systems. Ward and Halstead seek to demystify the construction of computing hardware by illustrating systematically how it is built up from digital circuits through higher level components to processors and memories, and how its design is affected by its intended uses. Computation Structures is unusually broad in scope, considering many real world problems and tradeoff decisions faced by practicing engineers. These difficult choices are confronted and given careful attention throughout the book. Topics addressed include the digital abstraction; digital representations and notation; combinational devices and circuits; sequence and state; synthesis of digital systems; finite state machines; control structures and disciplines; performance measures and tradeoffs; communication; interpretation; microinterpreter architecture; microprogramming and microcode; single sequence machines; stack architectures; register architectures; reduced instruction set computers; memory architectures; processes and processor multiplexing; process synchronization; interrupts, priorities, and real time; directions and trends. Stephen A. Ward and Robert H. Halstead are both Associate Professors of Computer Science and Electrical Engineering at MIT. Computation Structures is included in the MIT Electrical Engineering and Computer Science series.
This book is quite idiosyncratic in its kind. The content is quite theoretic, so that probably it won't be the best choice for more pragmatic and practice-oriented courses, for which the two books from Patterson-Hennessy, e.g., will be more suited. However, the value of this book lays in the shocking amount of knowledge it carries. This is the classic gap-filling book: my opinion is that many CS student of us that will read this book page by page, will discover that they really didn't know something they thought they knew instead. This is simply because the discussion is organic and continuos from the start to the end, and the writing is never too hard, so that any gap will easily show itself during the reading.
Have a look at the table of contents. It starts from digital logic basics and it ends at the Interrupts chapter (this means, almost, operating systems). The distance seems to be prohibitive, but the path traced by prof. Ward and Halstead is remarkably solid and meaningful. Once basic logic circuits blocks are covered, it leads to computation issues (from FSM to Turing Machines), passing from performance considerations (e.g. pipelining) and memory hierarchies (cache memory is extensively covered).
Two chapters are devoted to milestone architectures: the S machine and the G machine. Such a thorough coverage on these two machines is something I've not found in other books.
The chapters on Processes, Processor Multiplexing, Processes Synchronization and Interrupts are good and at the level of an OS course. The astonishing thing is that the background to face these issues is well built before (again, recall that the book starts from basic Logic Levels !).
This book has been a very worthy read. My course used materials from different books, internet resources and my instructor's knowledge. The instructor itself suggested us to give the book a complete read when we had time (we didn't cover all the topics of the book) because we would have really learned important things. I've not done it completely, but the more I do it, the more I agree.