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.
Another one I picked up in the rush to figure out VLSI before my multicore architecture class has its midterm, this seeming sister volume to the epic classic Introduction to Algorithms by Cormen, Rivest and Leiserson of MIT (they used the same LaTeX templates if nothing else) is thus far one of the best introduction-to-broad-advanced-topics I've seen, and it'll occupy a place of high honor on my shelves. The first five chapters, building up to the basic digital abstraction (that of logic gates) from the basics of circuit physics, were a tour de force providing me an immediate firmament. A longstanding gap in my education (and that, I suspect, of many computer scientists) -- despite a strong amateur study of physics, nonetheless! -- has been filled, and I thank Mssrs. Ward and Halstead for that. The final (21st) chapter is a wonderful coverage of paradigms contrasting the von Neumann model, a list I'd built up mentally only through numerous diverse sources. I'm still skipping around, but highly recommended.
(With apologies to Mike Alberghini, who last night claimed I'm turning GoodReads into my own Nigerian spam channel.)