Sunday, February 20, 2011

Computation Structures (MIT Electrical Engineering and Computer Science)



Computation Structures (MIT Electrical Engineering and Computer Science)
| 1989-12-13 00:00:00 | | 0 | Computer Science


Computation Structures focuses on computer architecture as a complicated problem in digital design. As such, the initial sections discuss the basic principles of designing digital circuits and systems. The context is subsequently used to discuss more and more advanced ideas without a lot of confusing structure. For example, pipelining is initially discussed in terms of speeding up simple arithmetic circuits, which allows the reader to focus on the conceptual issues of pipelining rather than the embedded problem. Using this aggregative approach, the authors build their way up through a series of simple machines to begin talking about processes and process semantics. In addition, Computation Structures contains a nice section on microcode, which is seldom discussed in most books. The text is clear and the exercises well chosen.

User review
Freakin' awesome book.
This book is very comprehensive, and drills deep down into the magic layers that make computers work. Anyone seriously interested in programming, and electronics should read this volume.

User review
Outstanding introduction
Ward and Halstead have put together the best introduction to computing hardware I've seen. Only Wirth's Digital Circuit Design for Computer Science Students equals it, but with a slightly different thrust and a good deal less detail in its coverage. The authors wrote this book as a text for a grueling one-semester course, but I can imagine it working well as a two-term book for students who need more time to absorb material.


It twenty-one chapters (plus appendices) start at the transistor level, then `whole-heartedly accept the digital abstraction.` Fast-paced discussions apply that abstraction to the workhorses of digital design: binary numbers, logic realization, state machines, and synchronous design discipline. By the book's midpoint, it already addresses microcode control of the datapaths that students have already examined, and move on to implementation of two different insturction sets on microcoded platform that the students designed (with guidance) and built. Given this gritty level of understanding, the last chapters address system issues, including the software process abstraction, operating system concerns, and a little about interfacing to electronics outside of the processor itself.


Omissions matter as much as inclusions in the book's syllabus. The text breezes over logic minimization, logic hazards, state machine design, giving just enough of each tool for a student to get a job done. Asynchronous design appears only briefly, to explain the goings-in inside of latches and registers. Large-scale issues of clock jitter and skew appear briefly if at all. Students who eventually need to know the fussy bits can learn them elsewhere, but those bodies of knowledge really don't support the goal of computing system design. By analogy, a mechanical engineer could study the details of a screw's thread pitch, depth, and geometry or of steel's metallurgy, but neither will really help in building a bridge. Those low-level details matter, but interfere with higher-level integration.


One aspect of this book deserves equal praise and complaint. The 1990 copyright date means that it's quickly moving into the past. It treats TTL and even RTL as going concerns, and omits FPGAs completely. To be really useful, this book's obsolete technologies need an update. At the same time, this older perspective keeps microcoding alive and well, the only book I know that puts it in the students's hands and put it to work. Microprogramming is an idea whose time has come (again) in control for large-scale logic design, as a useful step between the mouse-milking fussiness of state-machine control and the heavyweight sluggishness of standard instruction set processors. More importantly, this puts the processor's instruction set and basic operation back under the student's control, where it needs to be for today's configurable computing.


Don't let the age put you off. No other title surpasses this as an introductory text for designers of computing hardware. It bridges the much-ignored gap between logic design and computer architecture. It neither bogs down in carry chains and Booth multipliers, nor leaps ahead to virtual memory and interprocessor communication. I recommend it to any student who wants a practical approach to this important layer in computing's conceptual stack.


-- wiredweird

User review
Timeless concepts
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.


Download this book!

Free Ebooks Download