Most Helpful Customer Reviews
10 of 11 people found the following review helpful:
5.0 out of 5 stars
The foreword to this book, March 4, 2005
This review is from: Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools (Hardcover)
There are two ways to learn more about your country: you can study it directly by travelling around in it, or you can study it indirectly by leaving it. The first method yields facts and insights directly in-context, and the second by contrast.
Our tradition in computer engineering has been to seldom leave our neighborhood. If you want to learn about operating systems, you read an OS book; for multiprocessor systems, you get a book that maps out the MP space.
The book you are holding in your hands can serve admirably in that direct sense. If the technology you are working on is associated with VLIWs or "embedded computing", then clearly it is imperative that you read this book.
But what pleasantly surprised me was how useful this book is, even if one's work is not VLIW-related or has no obvious relationship to embedded computing. I had long felt it was time for Josh Fisher to write his magnum opus on VLIWs, so when I first heard he and his co-authors were working on a book with VLIw in the title, I naturally and enthusiastically assumed this was it. Then I heard the words "embedded computing" were also in the title, and felt considerable uncertainty, having spent most of my professional career in the general-purpose computing arena. I thought embedded computing was interesting, but mostly in the same sense that studying cosmology was interesting: intellectually challenging, but what does it have to do with me?
I should have known better. I don't think Josh Fisher can write boring text. He doesn't know how. (I still consider his "Very Long Instruction Word Architectures and the ELI-512" paper from ISCA-10 to be the finest conference publication I have ever read.) And he seems to have either found like-minded co-authors in Faraboschi and Young, or he taught them well, because Embedded Computing: A VLIW Approach is enthralling in its clarity and exhilarating in its scope. If you are involved in computer system design or programming, you must still read this book, because it will take you to places where the views are spectacular, including those looking over to where you usually live. You don't necessarily have to agree with every point the authors make, but you WILL understand what they are trying to say, and they WILL make you think.
One of the best legacies of the classic Hennessy and Patterson computer architecture textbooks is that the success of their format and style has encouraged more books like theirs. In Embedded Computing: A VLIW Approach, you will find the Pitfalls, Controversies, and occasional Opinion sidebars that made H&P such a joy to read. This kind of technical exposition is like vulcanology done while standing on an active volcano. Look over there, and see molten lava running under a new fissure in the rocks. Feel the heat; it commands your full attention. It's immersive, it's interesting, and it's immediate. If your Vibram soles start melting, it's still worth it. You probably needed new shoes anyway.
I first met Josh when I was a grad student at Carnegie-Mellon in 1982. He spent an hour earnestly describing to me how a sufficiently talented compiler could, in principle, find enough parallelism via a technique he called Trace Scheduling, to keep a really wild looking hardware engine busy. The compiler would speculatively move code all over the place, and then invent more code to fix up what it got wrong. I thought to myself "so THIS is what a lunatic looks like up close. I hope he's not dangerous." Two years later I joined him at Multiflow and learned more in the next five years than I ever have, before or since.
It was an honor to review an early draft of this book, and I was thrilled to be asked to contribute this foreword. As the book makes clear, general-purpose computing has traditionally gotten the glory, while embedded computing quietly keeps our infrastructure running. This is probably just a sign of the immaturity of the general-purpose computing environment (even though we non-embedded types don't like to admit that). With general-purpose computers, people "use the computer" to do something. But with embedded computers, people accomplish some task, blithely and happily unaware that there's a computer involved. Indeed, if they had to be conscious of the computer, their embedded computers would have already failed: antilock brakes and engine controllers, for instance. General-purpose CPUs have a few microarchitecture performance tricks to show their embedded brethren, but the embedded space has much more to teach the general computing folks about the bigger picture: total cost of ownership, who lives in the adjacent neighborhoods, and what they need for all to live harmoniously. This book is a wonderful contribution towards that evolution.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
5 of 5 people found the following review helpful:
4.0 out of 5 stars
Good for the right reader, December 5, 2006
This review is from: Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools (Hardcover)
That reader has a pretty strong idea, already, of how computers and compilers work, and is ready for a different kind of view. There are a few valuable differences here, compared to most discussions. The first is its emphasis on embedded systems. Loosely speaking, that's any computer that doesn't look like a computer: anti-lock brakes, iPods, microwave ovens, or the processor[s] internal to disk drives. Ignoring the tiny fraction with keyboards and screens, that's pretty much all of computing. The second distinctive feature of this book's viewpoint is it emphasis on the computer as a whole, including cooperating SoC components, operating systems and such, power management, and the instruction set processor itself. Programmers from the Windows/Unix world may be startled by the idea that the instruction set and processor data paths are variables, adjustable to the task at hand. The book's emphasis on close system integration follows the consequences of custom instruction sets out through the simulators, linkers, and compilers that put the processor to work. The authors offer wide-ranging and hard-won insight into optimization techniques, giving glimpses at the scars these project-hardened veterans have picked up along the way.
The book's most distinctive feature, however, is its emphasis on Very Long Instruction Word (VLIW) processors. These come in many flavors. One classic structure comes from TI's DSPs with 8 ALUs controlled in every cycle; standard superscalar and Intel's EPIC are also noted, for contrast and variety. The book is thick (over 600pp) and dense, so no summary can do it justice and still fit here.
The book's personal note is part of its charm. The authors aren't afraid to take on widespread opinoins in their "Flame" sidebars. One in particular struck home for me: the polite diatribe against "smart" assemblers that hide the machine from the people who really need to see it. Amen, brother! My worst experience of that sort was in the 90s-era TI C5x family. It had delayed branches, with two words in the delay slot. You could put either two one-word instructions or one two-word instruction into that slot. After annoyance that you can imagine, I discovered that the compiler was putting a one-word instruction in the branch shadow followed by a two-word instruction. It was executing one and a half instructions in the branch delay, with un-helpful effect. That second instruction was the one the assembler was "helping" with. If the immediate operand had been smaller, it would have been a one-word instruction and would have been fine. The immediate value was too big, though, so the assembler converted that same opcode into a different two-word machine instruction with a larger immediate field - kaboom!
It's a good survey and a good introduction for people who want a wider view of what computing is about. Given the rise of reconfigurable computing, it's also helpful in putting readers in the frame of mind needed for defining their own computers as a matter of course. The breadth of coverage means that, despite the book's mass, its coverage of some topics lacks depth. I can't really fault the authors, though, since there's so much to say and since different readers have such different needs. The depth is there, but it's in the exercises and copious references so readers have to dig into it on their own. This isn't a book for every reader, but it's a helpful compendium for people with many kinds of needs a bit away from what computer science usually offers.
//wiredweird
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
5 of 7 people found the following review helpful:
5.0 out of 5 stars
Well written, Comprehensive, April 4, 2005
This review is from: Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools (Hardcover)
This is the first technical book that inspired me to read it cover-to-cover in many years. It was well-written, and covered a lot of material. I really liked the breadth of material, and enjoyed reading the lessons from personal experiences. Also, the choice of material validates one of the lessons I learned from my graduate advisor, many years ago, that architecture, software, and applications should all be studied together.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|
|
Most Recent Customer Reviews
|