ŷ

Jump to ratings and reviews
Rate this book

Computer Organization and Design ARM Edition: The Hardware Software Interface

Rate this book
The new ARM Edition of Computer Organization and Design features a subset of the ARMv8-A architecture, which is used to present the fundamentals of hardware technologies, assembly language, computer arithmetic, pipelining, memory hierarchies, and I/O.

With the post-PC era now upon us, Computer Organization and Design moves forward to explore this generational change with examples, exercises, and material highlighting the emergence of mobile computing and the Cloud. Updated content featuring tablet computers, Cloud infrastructure, and the ARM (mobile computing devices) and x86 (cloud computing) architectures is included.

An online companion Web site provides links to a free version of the DS-5 Community Edition (a free professional quality tool chain developed by ARM), as well as additional advanced content for further study, appendices, glossary, references, and recommended reading.

720 pages, Paperback

First published January 1, 1993

313 people are currently reading
2,366 people want to read

About the author

David A. Patterson

53books33followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
620 (36%)
4 stars
575 (34%)
3 stars
347 (20%)
2 stars
106 (6%)
1 star
35 (2%)
Displaying 1 - 30 of 79 reviews
Profile Image for Rex.
52 reviews6 followers
July 4, 2012
I remember when I first learn computer architecture in China. The book we used is terribly complicated. I once thought computer architecture as a subject with random things to memorized.

Fortunately, I study this book years later in the US. It goes through the fundamental philosophy of computer architecture design and it gives lots of examples, pictures, and exercises to help you understand the concept.

The book not only talks about simple examples, it also break the real machine down to show how the principles in the book being applied in the real world. I find that very fascinating! I also teach this subject for undergraduate students. By going through the flow of the book, the student are able to understand the fundamental principles of computer architecture.

This book is a true learner-centric textbook!
Profile Image for YouKneeK.
666 reviews88 followers
February 22, 2015
This textbook was required reading for my Computer Organization and Architecture university course. Sometimes it can be difficult to give a textbook a fair review because, in a typical course, students are rarely required to read the entire book and they may be given reading assignments that are not in sequential order. This means it’s not easy to judge the progression of the material as presented in the textbook from beginning to end.

Such was the case with this textbook. In my class, we skipped around and read different sections from different chapters rather than reading any single chapter all the way through. One thing I was impressed with, given how much we skipped around, was how easy it was to pick up each section we were asked to read. Even if it was a section in the middle of a chapter we hadn’t read from before.

Unlike some textbooks I’ve read, there weren’t any cryptic terms or acronyms that I couldn’t easily find the definition to. Definitions for new terminology were noted in the margins, making it easy to refer back to them if needed. In general, explanations were clear and the examples were good. However, there were quite a few grammatical/spelling errors and there was some awkward phrasing that required rereading in order to understand what the authors were trying to convey. Sometimes they skipped intermediate topics, such as jumping from a single-cycle datapath to a pipelined datapath without covering the multi-cycle datapath which I understand was in previous editions of the book. My university course provided very good supplementary content and I found the concepts easy to understand when presented in that logical progression. I might have struggled more if I had been limited to the book's presentation, but it's hard to say for sure since I wasn't in that position.

I don’t normally comment much on the physical aspect of books I read, but this book was literally falling apart as I read it. School textbooks are the only type of book that I still purchase in a physical format, and this textbook was no exception. I saw a couple reviews on Amazon where reviewers mentioned that their pages fell out, but I needed the textbook and I wanted it in a physical format, so I bought it with the plan to be extra careful with the pages. Sure enough, as soon as I started reading, pages started randomly falling out. I would gingerly turn a page, and sometimes the page would turn and come out of the book. I don’t resell my textbooks, but anybody who does probably wouldn’t be able to resell this one. Maybe that was the goal�

The falling pages became quite a problem for me because I took several business trips while taking this course and I was afraid to travel with the book. I didn’t want to have pages falling out all over the place and getting lost where I would never find them again, and I figured the flimsy book would never survive my laptop bag or my suitcase, so I purchased the e-book version of the textbook to use while traveling. The e-book version had its own issues. There weren’t any page numbers, which could be a problem when I needed to reference specific pages for my class, and the tables and diagrams were very small. I was reading on a 10.5� tablet, with a screen nearly as big as the pages in the physical book, but the size in the e-book was drastically different from the size on the printed page and did not fully utilize the space. I constantly had to zoom in on them so I could read them, which meant I couldn’t see them in context with the text on the page. Perhaps all of this is normal with e-textbooks; I haven’t read enough of textbooks in this format to know. It definitely frustrated me, though. If I could give half stars, I would give this book 3.5 stars.
Profile Image for Stefan Kanev.
125 reviews233 followers
May 4, 2016
This is a good textbook, but I would recommend picking it up unless you have a lot of time (or you are studying it in a course). I started reading it because I realized my understanding for processors was ancient and wanted to update it a bit. It does go into the new and fancy stuff, but it definitely helps you get a good overview. After you've finished it, you'll have a good idea how to (conceptually) build a basic computer. Two major caveats: the writing is a bit boring and academical (to be expected out of a textbook) and it will take ages to read it. If you're interest is just casual, you might be better by picking Code by Petzold (although that is quite basic and matches my "ancient" knowledge about processors).
Profile Image for Nikoleta.
253 reviews12 followers
March 21, 2018
Probably the best textbook I've ever read. Everything is actually explained and the examples aren't overbearing. The content itself can get a bit dry but still very useful. However, the amount of typos is ridiculous.
Profile Image for Parsa.
42 reviews11 followers
November 3, 2022
I wish it was a little less convoluted and a little more concise. Stop it with the 50 page laundry analogy!!
Profile Image for seen.
624 reviews289 followers
Read
November 11, 2024

Made me glad I am not a computer engineering student. It was interesting while it lasted though.

Profile Image for David.
615 reviews9 followers
January 14, 2015
Used this as my textbook for ECE425 - Computer Architecture and thought it explained a lot more than what the professor tried to teach. I would recommend reading this a few times before listening to the professor go over whichever topic you're covering and I'm sure it'll help you.

I recommend also watching these videos throughout the course


Passed Computer Architecture
Profile Image for Ivan.
942 reviews33 followers
December 1, 2024
This used to be the Bible of any Computer Hardware Engineer/VLSI engineer/Complex Semiconductor Device engineer... such as formerly myself. Read this up during the summer break1st year of Masters. Now I am more and yet different than all of that. What a strange, wonderful and surprising 20 years.
Profile Image for سليمة.
3 reviews1 follower
November 16, 2017
Essential book for anyone interested in computer architecture
Profile Image for Tiago.
50 reviews8 followers
March 13, 2024
Solid textbook, written by very smart people, but has a few shortcomings as a learning device.
- Many of the problems have not been ported from the 64-bit version (RV64) to the 32-bit version (RV32) of RISC-V in the 2nd edition, leading to awkward questions that use some of the 10 instructions not introduced in the 2nd edition that are eliminated by the switch
- It's clear there's still some way to go in separating this book from its more advanced sibling, "Computer Architecture: A Quantitative Approach." A lot of material in the appendices seems to have been copied and pasted without a second thought.
- As others mention, there are lots of typos. The most frustrating ones are in exercises and examples that confuse the reader or make results very weird. You'd need to use an answer key to spot some of the typos.
- In the said answer key for the book, definitions are not always consistent. For instance, in the chapter 4 exercises, different questions seem to define "number of NOPs as a percentage of cycles" as a function either of the number of cycles (which I think is the expected definition, counting BOTH instructions and NOPs) or as a function only of the number of instructions.

The authors made the great decision to write this book around the 7 great ideas in computer architecture introduced in chapter 1, and to always remember performance implications in exercises and examples. I would rate it 5 stars if only the editor did a better job.
Profile Image for astaliegurec.
984 reviews
June 20, 2021
4.0 out of 5 stars
Very Informative, But Has Many Editing Problems
March 18, 2005

This is a tough book to review. On one hand, it's got an amazing amount of information in it. On the other, it's got a lot of editing problems. It also suffers from a lack of focus on who its audience is. So, splitting the difference, I'm rating this book at 4 stars out of 5.

Regarding the book's audience, it's vital that you pay attention to the chart on page xiii of the Preface. It maps your path through the book based on whether you're a software-type or a hardware-type. Assuming I was so brilliant that I could ignore such trivia, I attempted to plow my way through the whole book. Software-type that I am, I had some tough times in a couple of sections and then utterly failed to understand anything when I hit the core of Chapter 5. If I had paid attention to that chart, I would have known to skip that part of the book. However, even for the material that's within the path laid out for you by that chart, a lot of the work seems to assume knowledge on the part of the reader. For instance:

- Chapter 2 is about the MIPS assembly language. In the exercises, you're supposed to write various code snippets. Many of these snippets assume far more familiarity with writing entire assembly programs than is presented.
- The exercises at the end of each chapter are broken into three types: regular, "For More Practice," and "In More Depth." Those last two types require far more knowledge than is presented. It looks like the authors culled them from previous editions and, instead of trashing them, just stuck them on the CD and referenced them.
- Exercise 3.9 is annotated as requiring Section 3.2. But, unless you're very familiar with the implementation of MIPS assembly language, there's no way that someone using the material in that section alone could do the problem.
- Exercise 3.13 is annotated as requiring Section 3.3. Yet, the question is completely undoable unless you've at least read Appendix B. Of course, Appendix B, itself, is practically indecipherable unless you've had previous experience/knowledge with Logic Design.
- Exercises 7.21, 7.22 and 7.38 talk about "the first 1 million references in a trace of gcc." The book contains no definition of what that means. Those questions also mention the cache simulator "dinero" and say, "see the Preface of this book for information on how to obtain them." There's no such information in the Preface or on the CD. The CD does have MipsIt software which includes a cache simulator, but it doesn't seem to work reliably on my XP SP2 system (it also doesn't seem to accept those "traces" as input). That could be operator error, though. Doing a Google search pointed me to max.stanford.edu as a source of the software and traces. But, it seems you have to have a Linux system (or be smarter than me) to use them.
- Exercise 7.35 gives a C code snippet and asks you to calculate the expected cache miss rate. There's nothing in the book about calculating expected miss rates from algorithms. Also, the exercise is assigned partially against section 7.4. Section 7.4 covers virtual memory, not caches.
- Most of the Chapter 8 exercises are mis-referenced (i.e., they're labeled as being associated with certain sections of the chapter which have nothing to do with the question). Along with the standard problem of assuming knowledge that's not covered in the book, many of them teach new information instead of testing/re-enforcing comprehension of the provided material.

There are many incorrect page number and section number references in the book. This is especially bad in the exercises where it becomes impossible to do certain ones since the code and data they're referencing isn't findable (at least easily). This problem does seem to get better as you get to the later chapters. There are also problems with basic typography. Some examples:

- Exercise 3.29 wants the reader to come up with a non-restoring division algorithm based on the restoring division algorithm in Figure 3.11 on page 185. The figure and page numbers are right, but the text of the question refers to "step 3b" and "restoring the Remainder" that aren't present there. So, there's no way to figure out what the authors are doing or what they want the reader to do in the exercise.
- Many of the tables and diagrams in the book use "color" to help indicate something important. Unfortunately, the color used is dark blue. Unless you look very carefully, there's no difference between the regular text/line color (black) and the "emphasized" version.
- The text description of Figure 7.31 on page 544 mentions labeled sections that show differences in performance based on cache associativity. The labels are missing.
- Exercise 7.45 gives you a C snippet that you're supposed to document. It contains "!!" as an operator. C has no such operator. My guess is it's either a logical AND, "&&", or a logical OR, "||".

Also, the chapters are WAY too long and there are no exercises following the sections. For instance, Chapter 2 is 100 pages long over 20 sections. All the exercises (59 of them) are clumped together in the back of the chapter. The authors note the necessary section numbers with these exercises, but each section needs its own set of exercises immediately following it. This would also alleviate the problem where the authors have the wrong section numbers assigned to exercises. If these exercises were at the end of a section instead of clumped with 60 other exercises at the back of the chapter, they'd stand out more if they didn't belong.

And, finally, the book needs answers to the questions.

As an aside, this book is used in Florida State University's (FSU) CDA 3101: Computer Organization course.
Profile Image for Erik Wilson.
117 reviews1 follower
August 16, 2021
I read this during my downtime of my 2021 summer internship with Progressive Insurance. It was available in their library of resources and I’ll be using it in a course for my senior year this fall. I don’t really feel comfortable writing a real review, since the author obviously knows more than me. But any textbook I can read in my leisure definitely deserves some credit. Interesting read and very useful for someone looking to learn
8 reviews
April 12, 2022
Architecture opens up the black box of computing and allows us to understand how to make better use of hardware to achieve high performance computing. In some high performance scenarios, without this knowledge, only for the upper operating system or other abstraction of the operation, it is likely to achieve the desired effect, so it is highly recommended to learn this knowledge!
4 reviews
June 15, 2022
The number of tyops in this would be embarrassing in a first edition, but it's unacceptable in a second edition.

Also, speculative execution attacks (e.g., spectre and meltdown) are only mentioned on half a page at the end. In 2 pages the entire problem could have been addressed in sufficient detail.
5 reviews
October 17, 2022
Great book for learning how computers work from first principles. The authors clearly break down the pieces of a microprocessor and the natural developments in computer design. I'd recommend getting the latest edition to get coverage of recent developments on TPU and GPUs for ML applications.

I only wish I would've read this sooner!
Profile Image for Ayush Bhat.
49 reviews24 followers
May 20, 2017
This is almost a standard book for computer organization but takes a lot of time per page.
This is kind of a prerequisite to read the Computer Architecture: A Quantitative Approach from the same authors.
Profile Image for Brock Pereira.
18 reviews2 followers
May 22, 2018
I understand why this book is the “hallmark� of hardware design textbooks, but I couldn’t help but want to bang my head off the desk during this class.

Otherwise - great book, easy to read and understand
13 reviews
September 17, 2021
Don't get me wrong, the book had some good things too, like the analogies made with the real world. But it can get tricky if you aren't really into reading and it takes quite a lot of time to finish it, let alone comprehending it thoroughly...
Profile Image for Nikos Alexo.
17 reviews
October 21, 2022
Read this for some introduction into RISCV and to refresh my architecture knowledge. It really delivers on the architecture side but felt that the riscv side was not so strong towards the last chapters.
Profile Image for Mo.
68 reviews
February 28, 2024
One of the best university textbooks I held only. Thorough thoughts on performance measure, compilation process mapping of assembly to object code file and memory mapping, instruction set design and operations... Wish I had the time to read the updated version.
11 reviews
May 3, 2025
Have now taken two courses over this book, one that skimmed lightly and one that went into depth into the topic. Both instances P&H have been a great and reliable resource, with nice examples to help the reader grasp the various ideas presented throughout the material.
Profile Image for بلال مہربان.
5 reviews5 followers
October 12, 2017
This was my course book in Software engineering 4th semester. Every thing in the book was so detailed that most of the time i did't needed my professors help to understand the concepts.
24 reviews2 followers
April 29, 2019
A truly solid overview of system architecture with excellent sections on history and common fallacies but also a bit of a slog at times.
Profile Image for Fahad Ghouri.
2 reviews2 followers
August 30, 2019
Excellent insight into basic computer architecture and design! Very good for getting a basic understanding and making you ready to work through higher concepts.
10 reviews
November 27, 2019
One of my favorite textbooks in college - extremely informative!
Profile Image for Mike.
103 reviews3 followers
March 1, 2020
I was really enjoying this and using it to supplement my electronics project. But my house poltergeist seems to want it more than I do and the book as now disappeared completely mid read.
Displaying 1 - 30 of 79 reviews

Can't find what you're looking for?

Get help and learn more about the design.