Javascript required
Skip to content Skip to sidebar Skip to footer

Computer Organization and Design 4th Edition Solutions Chapter 2

Goodreads Choice Awards 2021
Open Preview

See a Problem?

We'd love your help. Let us know what's wrong with this preview of Computer Organization & Design by David A. Patterson.

Thanks for telling us about the problem.

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

Be the first to ask a question about Computer Organization & Design

Community Reviews

 · 1,569 ratings  · 63 reviews
Start your review of Computer Organization & Design: The Hardware/Software Interface
Rex
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

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!

...more
YouKneeK
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

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.

...more
Nikoleta
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. 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. ...more
Stefan Kanev
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 e 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). ...more
David
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
http://nptel.iitm.ac.in/video.php?sub...

Passed Computer Architecture

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
http://nptel.iitm.ac.in/video.php?sub...

Passed Computer Architecture

...more
سليمة
Nov 16, 2017 rated it it was amazing
Essential book for anyone interested in computer architecture
astaliegurec
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 bas

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.

...more
Erik Wilson
Aug 16, 2021 rated it really liked it
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
Ayush Bhat
May 20, 2017 rated it it was amazing
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.
Brock Pereira
May 21, 2018 rated it really liked it
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

Radu-Valentin
Sep 17, 2021 rated it did not like it
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... 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... ...more
بلال مہربان
Oct 12, 2017 rated it it was amazing
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. 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. ...more
Collen Jones
Apr 28, 2019 rated it really liked it
A truly solid overview of system architecture with excellent sections on history and common fallacies but also a bit of a slog at times.
Fahad Ghouri
Aug 30, 2019 rated it it was amazing
Excellent insight into basic computer architecture and design! Very good for getting a basic understanding and making you ready to work through higher concepts.
John
One of my favorite textbooks in college - extremely informative!
Mike
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.
Rahul Kumar
Best book for beginners on computer architecture
Victor
Dec 25, 2014 rated it really liked it

Very good introduction and reminder for computer architecture, reviewing all topics such as instruction decoding, memory hierarchies, pipelines, I/O, computer clusters, vector computers, GPUS, energy consumption. In my opinion some previous knowledge must be got before reading this book, since it omits many implementation details. Appendix are added so that you can extend your knowledge in more advanced topics.

For those understanding Spanish, I strongly recommend this other book: Conceptos básic


Very good introduction and reminder for computer architecture, reviewing all topics such as instruction decoding, memory hierarchies, pipelines, I/O, computer clusters, vector computers, GPUS, energy consumption. In my opinion some previous knowledge must be got before reading this book, since it omits many implementation details. Appendix are added so that you can extend your knowledge in more advanced topics.

For those understanding Spanish, I strongly recommend this other book: Conceptos básicos de arquitectura y sistemas operativos: Curso de Ordenadores. Gregorio Fernández. It probably better explains many details such as microarchitecture and micro programming omited in the Hennesy-Patterson book.

...more
Tom Sturgeon
The Hennessy/Patterson books are the best introduction to computer architecture. The writing is clear and the different models of microprocessors are closer to real than toy architectures used pedagogically in other books.

Of course, there is a RISC-V version for that ISA, but the transition from MIPS to RISC-V or ARM isn't difficult.

I like the Stallings, Harris and Chen books, but H/P is the most thorough with a good organization of topics.

I particularly found their presentation of floating poi

The Hennessy/Patterson books are the best introduction to computer architecture. The writing is clear and the different models of microprocessors are closer to real than toy architectures used pedagogically in other books.

Of course, there is a RISC-V version for that ISA, but the transition from MIPS to RISC-V or ARM isn't difficult.

I like the Stallings, Harris and Chen books, but H/P is the most thorough with a good organization of topics.

I particularly found their presentation of floating point arithmetic enlightening as well as various heuristics for rounding.

...more
Ben Haley
This book drew abstract mathematical concepts down to their underpinning hardware implementations. In doing so, it clarified the practical concerns that drive the development of new software systems. Patterson, who is brilliant in his straightforward execution does a great job of revealing that the land of information does have a bottom where it grinds up against a land of silicon and copper. For me it's a relief. This book drew abstract mathematical concepts down to their underpinning hardware implementations. In doing so, it clarified the practical concerns that drive the development of new software systems. Patterson, who is brilliant in his straightforward execution does a great job of revealing that the land of information does have a bottom where it grinds up against a land of silicon and copper. For me it's a relief. ...more
João
I am currently teaching a BSc-level course using this book. It is very well structured for either "hardcore" hardware-related courses or more software-inclined (or at least not so low-level hardware) courses. I have mixed feelings towards the approach of anticipating some issues of multicore architectures (e.g. cache coherence) w.r.t. to the description of the corresponding architectures in Chapter 7. I am currently teaching a BSc-level course using this book. It is very well structured for either "hardcore" hardware-related courses or more software-inclined (or at least not so low-level hardware) courses. I have mixed feelings towards the approach of anticipating some issues of multicore architectures (e.g. cache coherence) w.r.t. to the description of the corresponding architectures in Chapter 7. ...more
Jonas
A solid introduction at the freshman level, but just not all that inspiring. The basic chapters, especially the one on assembly languages and the appendix on logic design, are very good; the later chapters unfortunately feel a bit rushed and really only cover the barest essentials. Additionally, some pretty important content, e.g. on GPUs and Verilog, is only available online.

The exercises are numerous and quite good.

Muhamamd Daneshgar
This book is one of my most hated books. Its prolix style make your mind exhausted with loads of jejune materials. I know it's a very famous academic textbooks and scholars applaud it. Perhaps it's catered for professors rather than for engineers and true learners.
In a nutshell, the efficiency of this book is very poor. You learn very little in expense of wasting a good deal of your precious time.
This book is one of my most hated books. Its prolix style make your mind exhausted with loads of jejune materials. I know it's a very famous academic textbooks and scholars applaud it. Perhaps it's catered for professors rather than for engineers and true learners.
In a nutshell, the efficiency of this book is very poor. You learn very little in expense of wasting a good deal of your precious time.
...more
Dilshan Jayakody
Even this book is recommended to use as a textbook I use it as quick reference. All the chapters are well organized and up to date. Most of the chapters are based on modern hardware platforms like ARM and x86.

Highly recommended as textbook for computer architecture and related courses.

up to now the only bad thing which I notice in this book is some of the content are in the supplied CD-ROM, which is bit annoying sometimes.

Szymon Wylezol
A great and easy to follow book, and certainly the most comprehensive one on computer architecture. The only drawback is the material on the included cd - there is too much of it to print it, and reading it all on screen is not very comfortable. Perhaps it's time to split the book into two volumes. Otherwise a great buy. [my review from amazon] A great and easy to follow book, and certainly the most comprehensive one on computer architecture. The only drawback is the material on the included cd - there is too much of it to print it, and reading it all on screen is not very comfortable. Perhaps it's time to split the book into two volumes. Otherwise a great buy. [my review from amazon] ...more
كوثر الشريفي
I had no idea about the MIPS assembly language, nor did I know much about designing processors..etc. This book really helped me in understanding the various steps involved in designing processors and so many other concepts that any beginner needs. The examples and problems are really good, as well as the explanation.
Meg
Some of the metaphors and long rambling passages were tough to get through, but overall this book has loads of interesting information about computer architecture that is presented in a manageable way. Despite my silly amazon review, I do recommend this book to anyone interested in computer hardware design.
Adam
Oct 14, 2008 rated it liked it
Another of my college texts. Although I have not found a need to reference this book since graduation, it was useful in developing an understanding the components within a computing system and how they interact, possible problems, and how to address them at design time.

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

Holiday-themed books are always a good time. A quality romance or cozy mystery becomes enhanced, somehow, when there's a connection to those...

Welcome back. Just a moment while we sign you in to your Goodreads account.

Login animation

Computer Organization and Design 4th Edition Solutions Chapter 2

Source: https://www.goodreads.com/book/show/83895.Computer_Organization_Design