Inside the Machine 53
Paul S. R. Chisholm writes "Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture, written by Ars Technica's Jon "Hannibal" Stokes, talks about how CPUs work, and how they've evolved and advanced in the past fifteen years. The result is detailed, very up-to-date (including descriptions of Intel's Core 2), generally clear, and covers a lot of fascinating material." Read below for Paul's review.
Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture | |
author | Jon Stokes |
pages | 320 |
publisher | No Starch Press |
rating | 8 |
reviewer | Paul S. R. Chisholm |
ISBN | 1593271042 |
summary | A detailed look at how CPUs work, and how they've evolved and advanced in the past fifteen years |
How on earth have CPUs advanced as fast as they have? How have we gone from 60 MHz Pentiums in 1993 to 3.73 GHz Xeons (with two cores) and 2.66 GHz Core 2 Extremes (with four!) today? Sure, Moore's Law and competition pushed the chip makers, but how did they implement all that extra performance? In Inside the Machine, Jon "Hannibal" Stokes provides a thorough, exhaustive, nearly exhausting look at what's at the heart of your computer. If Stoke's name sounds familiar, he's a founder and long-time contributor to Ars Technica. Anyone who liked his work there, his comprehensive articles and brightly colored diagrams, will probably enjoy this book a lot.
The first two chapters cover the basics of CPU operation and machine language. These are pretty good, though you'll probably need some assembler language experience to really understand everything in these chapters. Even without such experience, you'll pick up enough to get through the rest of the book.
The next two chapters get more advanced, covering pipelined and superscalar execution. CPUs don't execute one instruction at a time. Instead, they break instructions into smaller operations, and work on those smaller operations in parallel. These two chapters begin to tell how CPUs do that. (The book also discusses caching, another huge performance booster. For some reason, Stokes doesn't get to that until chapter 11.)
The rest of the book discusses specific CPUs. From Intel, we see the original Pentium, Pentium Pro, Pentium 4, Pentium M, Core, and Core 2. (Intel didn't release as much information about the Pentium II and III.) From the Apple/IBM/Motorola alliance, we learn about the 601 (the heart of Apple's first "Power Mac"), 603, 604, 750 (G3), 7400 (G4), and 970 (G5). In the middle of all that, there's also an excellent description of 64-bit computing, its advantages, and even its disadvantages.
Every buzzword you've ever heard about CPUs is covered: front end vs. back end, branch prediction, out-of-order execution, pipeline stalls, SIMD, direct-mapped vs. N-way set associative mapping. That sounds intimidating, but Stokes introduces the concepts one at a time, clearly and in detail. The next time an overclocking fanatic tries to tell you why his AMD CPU is so much better than your Intel CPU (or vice versa), you'll not only be able to follow the whole discussion, you'll be able to argue back.
Stokes turns all this into a (highly technical) history of CPU development. One chip's virtue is its successor's vice; one generation's shortcoming is another's opportunity.
This book reinforced something I already knew but don't often enough live by: Portability depends on architecture (for example, x86 vs. PowerPC), but high performance depends on microarchitecture (for example, Pentium M vs. Athlon 64 X2). Today's Core 2 chips have many high performance features missing from the 1993 original Pentiums. A good compiler like gcc can take advantage of those additional features. This is bad news if you're using a binary Linux distribution, compiled to a lowest common denominator. It's good news if you're building and installing Linux from source, with something like Linux From Scratch or Gentoo/Portage. It's also good news for just-in-time compilers (think Java, .NET, and Mono); they're compiling on the "target" machine, so they can generate code tailored for the machine's exact microarchitecture.
The full color diagrams were a big help in understanding Stokes's points. On the other hand, I'm not sure why the book was printed in hardcover. To make it look more like a textbook? Is that a good thing?
The text is packed with jargon, buzzwords, and TLAs (Three Letter Abbreviations). Most of that is unavoidable, but a glossary would have been nice. Each chapter builds on the previous ones, so most readers will want to read all the chapters in order, paying close attention the whole time. Even so, this book had a lot more forward references ("I'll define that shortly" or "We'll get to that later") than most technical books.
Don't expect much non-technical discussion. Exceptions: There is a very good description of the Pentium 4's obsession with higher and higher clock speeds, including marketing pressures, and the resulting performance increases and drawbacks. The occasional "Historical Context" sections are also quite nice. But you'll see nothing on Apple's decision to move from PowerPC to Core, or the competitive battle between AMD and Intel. For that matter, you'll see almost nothing at all about AMD or its products.
Personally, I think Stokes missed an important opportunity to talk in depth about multiprocessing. He spends only four pages on the subject, and that only as part the description of the Core Duo. You'd think there was never a multi-core G5. There's only a couple of paragraphs on the difference between multiple CPUs and multiple CPU cores. ("Dual dual-cores" and the AMD 4x4, anyone?) He declines to discuss how caches interact with multiple CPUs or multiple cores. That's unfortunate, because anyone doing multi-threaded software development really needs to understand cache issues, at just about exactly the level this book covers. But you'll find nothing here about cache coherency, or about what out-of-order execution results might be visible only to multi-threaded software.
Jon Stokes had an incredibly ambitious goal: to write an accessible book that covers much of the same ground as Hennessy and Patterson's Computer Architecture and Computer Organization and Design. I don't think he achieved that, but he came pretty close.
You can visit the book's home page or the author's blog.
Paul S. R. Chisholm has been developing software for 25 years. He's worked at AT&T Bell Laboratories, Ascend Communications / Lucent Technologies, Cisco Systems, and some small startups you've never heard of. His latest article, "'Pure Virtual Function Called': An Explanation," appeared in The C++ Source. He lives and works in New Jersey.
You can purchase Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
One problem... (Score:1)
intel (Score:3, Informative)
Re: (Score:2)
Re: (Score:1, Informative)
Link (Score:1)
Re: (Score:1)
Re: (Score:2)
Expect to be the equivalent of a double-a in a pod sometime around the middle of next week.
Have a nice day.
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
But you'll see nothing on Apple's decision to move from PowerPC to Core, or the competitive battle between AMD and Intel. For that matter, you'll see almost nothing at all about AMD or its products.
You'll be able to fight back with not knowing what the fuck you're talking about, like a true slashd
Re: (Score:3)
Frankly I think it would do the quality of CPU discussion on
Re: (Score:1)
After all, the Itanium (which embraced exactly what you speak of) was such a huge success and well regarded by the community for its amazing integer performance.
The CPUs that have remove these things (are in-order, for example) are c
I just hope Tron is still in there (Score:3, Funny)
Re: (Score:2)
When asked for comment, Tron responded:
"Given the standard sub-standard training of most lusers,
they can kiss my glowing metal ass."
Re: (Score:2)
Different book name? (Score:1)
Perhaps he should have named his book something else.
Inside the Machine: An Illustrated Introduction to INTELprocessors and PC Architecture
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
64-bit? (Score:2)
Re: (Score:1)
And if you start looking at the supercomputers like Cray-1 and others, you find that 64-bit architecture has been in use for quite a while
http://en.wikipedia.org/wiki/64-bit [wikipedia.org] Wiki's 64-bit article has some info on what was and what is currently. Might be complete, might not be complete. Can't see much sources on that page, so it might not be accurate.
A bit more about the book and where to buy (Score:5, Informative)
The review doesn't mention this, so I thought I would since I know many Slashdot readers also read Ars, but may have missed this.
If you buy the book from Ars [arstechnica.com], shipping is free almost anywhere on earth (if the USPS ships there, so can we). Yes, we charge more than Amazon, but it's a good deal if you want to support Ars. We also include a free year of access to the Ars PDF Library, and we'll also be giving our customers a free copy of the digital edition when it's available later this year.
Re:A bit more about the book and where to buy (Score:4, Insightful)
Is that a limited-time offer? (Score:2)
I don't normally go out and buy coffee-table type books for myself, but they make really good entries on a gift list. If that offer from Ars is going to be good for a while, I'll definitely keep it in mind, the next time I get someone bugging me through an intermediary that they want to know what I'd like as a gift.
FYI (Score:2)
Meant to complement H&P, not replace it (Score:3, Informative)
He actually says in the book that it should be used as an introduction, before someone dives into H&P.
Re: (Score:2, Interesting)
Perfect sequel to "Code" (Score:5, Informative)
I thought it was the perfect logical sequel to an older book called "Code", by Charles Petzold (ISBN 0-7356-1131-9).
"Code", about 7 or 8 years old now, starts with the very basics of computation- beginning with binary codes and lightbulbs, then demonstrating how a microprocessor can be built from nothing but relays, and ending with a discussion of two classic microprocessors- the 8080 and 6800.
"Inside the Machine" basically picks up where "Code" finishes. It begins with a look at ISAs and CPUs, examine theoretical models slightly simpler than the 8080 and 6800, before moving onto pipelining and superscalar execution, and ending with the very latest from Intel.
It's a shame someplace like Amazon isn't selling them packaged together, you can easily work your way through Petzold's primer- beginning with the most fundamental basics of computing, end it with a solid understanding of the state of technology in the late 70's, then pick up Stokes' book and continue the journey through to the present day.
I recommend both books.
Re: (Score:2)
The reason I ask is that I used to code in Z80 years and years ago, but since then I've not written any assembler and although I have a vague understanding of whats changed, I don't actually know how any of it works -- memory management being one thing in particular that I don't understand!
Series of tubes explanation? (Score:2)
TLA = Three Letter Acronym (Score:2, Funny)
Re: (Score:2)
I've been a pedant, goodnight.
Re: (Score:1)
Other good texts... (Score:5, Interesting)
Another good read (Score:1)
Not so impressed (Score:1)
Editing: Each page of text appears to be split into 3 equal sections -