Hacker News new | past | comments | ask | show | jobs | submit login
Modern Computer Architecture and Organization - Second Edition (2022) (packtpub.com)
155 points by teleforce on Aug 23, 2023 | hide | past | favorite | 73 comments



Does anyone know/recommend the author?

Sometimes I feel Packt books are not the highest quality. Happy for anyone to disagree and tell me a different impression.

I was reached out by Packt a few times on LinkedIn with something like: "hey, if you want to write about stuff, let us know".


My experience with them was less than favorable. We started our book journey with them but had to abandon them because their editorial team & processes were so bad. Their insistence on artificially inflating the book's thickness with larger fonts was just the final straw.

We were fortunate to work with Manning & O’Reilly to complete our book. The quality, professionalism, and integrity we saw with them and the contrast with Packt was night and day.


Did you have to pay a fee to get out of the contract with Packt?


No, we tried escalating the issues on those practices to the exec team, explicitly requesting a change in policies to enhance the quality of our book. The middle managers we were dealing with simply threw in the towel after that.

PS: This was several years ago, and the policies may have degraded even further since then.


Same here. Packt's business model is quantity over quality. Some of the books are a copy paste of the official documentation with minimal changes. And there is no depth at all. I stay away from Packt books, but if there is a recommendation, can read this one.


I was an (unpaid) technical reviewer for a Packt book on Arduino back in 2012. After a couple of chapters I realized that the book made little sense and was mostly plagiarized. It took more effort and conflict than I liked to convince Packt that this was a problem and couldn't merely be fixed by editing. I definitely would not be a Packt reviewer again.


What's the incentive for donating your time in such a role? Name on the cover?


Helping the community...


> What's the incentive for donating your time in such a role? Name on the cover?

Name in the book as the technical reviewer, and a copy of the physical book if it goes to print.


+1 for staying away from Packt. I was once part of the review process for a draft. It was poorly written by someone who clearly wasn’t a domain expert. The published version was just as bad as the draft, irrespective of the feedback given by all the reviewers.


+1 on the questionable quality of content by Packt. It's generally not the highest quality content from whatever little experience I have. Most of the books that I read had outright wrong examples, that did not even compile. Content always seemed rushed and superfluous with no real thought given to coherency.


I downloaded a few books ~5 years ago and the quality wasn't that great, it was like reading a reworded tutorial in a random website.

Checking the author is a good call


I think so too. But I have also read good Packt books, it depends on the author.


I got asked to write a book by Packt as a lead author with two years experience in a junior position. This was a (badly) paid role of like 800 GBP or something. Take from that what you will...


Yeah, I was similarly approached (on LinkedIn) to write a book on a topic I'm nowhere near an expert nor vocal about it in social media, etc.

I'm not really in social media at all, so I take the approach as a cold-call for writing a book, which seems like a red flag to me.


Packt is hit & miss but some have decent authors and good reviews.

"Machine Learning with PyTorch and Scikit-Learn" by Sebastian Raschka et al.

"In-Memory Analytics with Apache Arrow" by Matthew Topol.


> Does anyone know/recommend the author?

Haven't heard of him before, but did get a little giggle from the website's almost 'bizspeak' description of a tool they have. It's so vague I have to give it credit.

https://ledin.com/real-time-simulation-protocol/

It's a broken link so can't even see what it does.


IME Packt is very poor. I had one excellent book, one okay one and a whole lot of trash. The entire brand is on my Do Not Buy list.


> Sometimes I feel Packt books are not the highest quality.

Well, I have observed sometimes they are not the lowest quality. So on any subscription service I try to filter out Packt books if possible.


from what I gathered, pakt tends to be a free for all. manning offers a similar subscription service and I've found that while the selection is smaller, the quality is much better.


IMO, the best textbooks for computer architecture and organisation are Computer Organisation and Design and Computer Architecture: A Quantitative Approach, both by Patterson and Hennessy.

The former book even comes in a variety of assembly languages, including MIPS, ARMv8 (or a subset, called LEGv8, heh), and RISC-V.


Also a good option for those whose main interests are on the software side is "Computer Systems: A Programmer's Perspective" by Randal Bryant and others.


CSAPP is a good prereq for the OP's recommendations if you want an ordering.


> Computer Organisation and Design and Computer Architecture: A Quantitative Approach, both by Patterson and Hennessy

What's the main difference between the two?


The former of the books is introductory material which is taught at the Bachelors Level while the other book is more rigours and suited as a masters/research level book.


I feel lucky then that I had to take both a comp org and comp arch course when I did my bachelors, the first course used the first book and the second course used the second book.

Our final project in the first class was to develop a software simulator in Unix for a MIPS processor and get it to run software that was created by the assembler we had to write in our system tools class.

Our final project in the last class was to develop a synthesizable Verilog implementation of a basic MIPS processor (with bonus credit for making it superscalar). It was really cool to see a computer system created by me from the ground up including an assembler, loader, and linker and using the simulator we wrote previously to check the Verilog implementation against.

Fantastic material, was a good read, and I still have my copies of both books 20 years after starting my undergrad.

Now I kind of want to implement a MIPS processor in software, write a machine monitor, assembler, loader, and linker for it and see if I can get that working on an FPGA....


If you're interested in ARM and hardware design, "Digital Design and Computer Architecture: ARM Edition" by Sarah Harris and David Harris is available in the ACM Digital Library as a free PDF: https://dl.acm.org/doi/book/10.5555/2815529


Note that the current edition of Harris and Harris has replaced the legacy ISA with RISC-V proper.


Better option: Computer Organization and Design by Patterson and Hennessy, ISBN 978-0124077263. Comes in MIPS (original version now in its 5th edition), ARM and RISC-V focused flavors, covers "instructions unique to architecture X" as part of its discussion.


I could not agree more with this recommendation. For folks who don't yet have this book but are interested, there is a set of online companion materials[0] that are freely available and contain a good bit of useful information.

[0] https://www.elsevier.com/books-and-journals/book-companion/9...


I had no idea they did RISC-V and ARM versions! Very cool.

This was the book for the "weed-out" class I took my first semester in college. Nearly failed that class, but it opened my eyes to so much more of computing, beyond just "coding".


> Nearly failed that class

I did fail it in university. Took it again and got an A-, and now love working with assembly and computer architecture.


The struggle make your knowledge crystallize even better, on top of overcoming the failure. I almost wish anyone to fail one important class in university.


I deeply regret the courses I barely passed. And the courses for which I had prior knowledge to pass comfortably but not engage on the nuances.


That was me with a high performance scientific computing class.


Does anyone have an idea how bad is the ARM version? The reviews online say they did not fully adapt it from MIPS, and that the instruction set is partially made up instead of using the real one, which means listings won't work on real hardware.


>which means listings won't work on real hardware.

They will. LEG is a subset of ARM. What won't work is ARM software on LEG hardware.

I would recommend getting the current edition, which has replaced ARM/LEG with the industry standard RISC-V.


Does RISC-V version include GPU?

I am more inclined for ARM version since that's applicable to both all current Apple hardware and school Chromebooks.


The ISA doesn't really matter (at least, not between MIPS, ARMv8, and RISC-V) when you're first diving into computer organisation. That's why one book can be sold with three different ISAs. The overarching concepts are mostly the same: you have digital logic, IEEE-754, basic assembly (add, sub, and, not, xor, load, store, shift), pipelining and hazards, caches.

Only afterwards do the differences between the ISAs come to play, when you have complex vector and ISA-specific instructions, superscalar pipelines, atomic instructions, etc.


It matters for engagement, e.g. if you can actually run examples painlessly.


The open standard ISA RISC-V has the advantage there, with open source hardware implementations (like C906 and C910) and good tooling and simulators.

RISC-V is rapidly building the strongest ecosystem.


Overall I enjoyed this book. However their opening paragraph to floating point numbers is offensive.

"programming languages support numbers with fractions, which are called reals in mathematics. Here are some examples of reals:

3.14159265... (pi)

2.71828... (e)"

>fractions are called reals in mathematics

>immediately gives pi and e as an example


I agree it's bad phrasing, but isn't the only real error here using "with fractions" rather than "with fractional digits"? Perhaps this is an idiomatic difference between different English dialects, such as American vs British? I'm not sure. If you read fractions as meaning fractional digits, the inaccuracy goes away completely, I think.

I would also use "real number" instead of "real", but that may be more of a stylistic choice rather than idiomatic.


Isn’t this technically true though? Fractions are just rational reals. The examples listed are still reals, just irrational.


It's bad pedagogy. But it is also technically incorrect. You can have fractions with complex numbers.


Good point! I’m not a mathematician so the pedagogy here doesn’t really irk me. But, I do also believe that teachers should be held to a higher standard, especially when writing out educational text. Thanks for the clarification!

Also, I bet the authors weren’t intentionally trying to lead readers astray with that statement. Most books have a preface with some point of contact if you find errors. I’m sure if you wrote in the authors would be happy to fix this up :)


i think i can see the nitpick here: pi and e aren't representable as rational numbers, and aren't representable exactly in IEEE754


I wouldn't say it's a nitpick. Rationals are fractions of integers, not just any fractions at all. Rationals are _examples_ of reals, but it's bad pedagogy to say "fractions, which are called reals" because it sounds like the authors are giving a definition of reals. While they technically did not say this was a definition, it is sloppy.


Fractions = rational numbers, which are an infinitely small subset of the real numbers. The rest of the reals are irrational numbers, of which pi and e are examples.


Fraction doesn't have to be rational.


This book is the reason I was able to pass my computer architecture exams in grad school. Just lugged the 800 page monstrosity around an entire semester and read it every chance I could. A really wonderful book ... I should get a recent copy and re-read it again.


God this book fucking rules! Used this in school and was the only textbook I found myself just working through outside of class for my own personal enrichment and entertainment. Can't recommend it enough


Agreed. Appendix B of this book in and of itself is an incredible summary of how a computer works generally.


Waiting for the GPU covering version. (I do have an older version of the book though).


If I recall correctly, there is indeed a chapter about GPUs in the fifth edition. Maybe it's an appendix, but I'm pretty certain! :)


The description of the ARM edition says Nvidia GPU is used throughout the book for comparison


I managed to get my hands on a really old version of this book (maybe 20 yrs old - no ARM I don't think). Do you think that is still good? Or should I just get the new one?


The description on the official site says the target is grad students. Is it fair to say that is not an introduction to the subject?


It depends what you mean or want by way of introduction. Are you interested at all in how your CPU does what it does and why, or were you interested in the "learn x86, ARM and RISC-V" tag-line that was originally on the book title. Do you imagine you will read this book and be writing all your software in assembler straight after? That won't happen, most likely - if you want that and insist you do, I'd suggest the flatassembler forums.

The COD book I recommended was recommended to me by an EE undergrad who took it on one of their courses, and I think it is suitable as an introduction to how computers actually work, with plenty of real-world examples and mentions of architecture features that indicate specific tradeoffs. Of course, whether that is suitable is really going to depend on the person reading it.

The Packt book looks like it might be attempting to do the same thing - except I am slightly worried it likely digresses a bit into virtualization, self driving cars and quantum computers (based on the Packt TOC and github repo). I'm going to say this is scope creep - I don't know how deep it goes into virtualization, but personally I think understanding how x86 does virtualization is much less useful than understanding the wider problem of how to partition hardware. If it doesn't say LPAR somewhere in there or discuss mainframes, I'd be disappointed. Self-driving cars do not, in my opinion, belong in a book on how modern computers work, and I'm not sure the author's experiments with IBM's quantum computer cloud thingabob are really what I want out of such a book either.

That said, I've not read the Packt book and I can't say anything about the earlier content. I have read the COD book - but I wish I'd come across it earlier than I did. Still, I got something out of it.

Some graduate textbooks are highly specialized and for niche fields - my formal education is in mathematics and I can definitely say this about some graduate maths books - but this is not one of them. I think it is widely applicable to anyone who a) wants an introduction to how computers do their stuff or b) already broadly knows, but has some gaps and wants to fill them in.


Thanks for the recommendation. I bought the book.

And FWIW the book you recommended is for undergrads and is a much more accessible read, according to the authors. I saw "Computer Architecture: A Quantitative Approach" and got confused.


>Comes in MIPS (original version now in its 5th edition), ARM and RISC-V focused flavors

They're not flavors, they're editions. They have changed their ISA over time.

The current edition uses RISC-V.


Why does the book try to teach everything at once? Also, since it's packtpub I will be wary of it anyway.


Subscription: FREE

and in smaller font under:

Free Trial for 7 days. $12.99 p/m after trial.

There goes my trust in a publisher I hear of for the first time :)


Can anyone recommend a book like "Modern Processor Design: Fundamentals of Superscalar Processors" but more recent? I'd like to know the details of how current processors are implemented. Something like the next level after "Computer Architecture: A Quantitative Approach."


Have packt got any better?

I’ve always steered clear as they seem to publish anything, regardless of quality.


No they have not. There is the odd book and author that are quality but it seems to be the exception. You can almost always guarantee:

The formatting is atrocious. You will regularly get blurry and illegible images for things like terminal screen shots or else just regular text on a white page that is supposed to be terminal output.

Books often to appear to have not been proof read.

There are regularly pages that have one or two sentences on them. Presumably this is done in order to pad the book length.

As a company they are pure garbage. There is probably no way any independent publisher can put out that volume of books and maintain any level of quality. I believe their business model is simply to flood search results with their titles. In a given year they will put many titles on the exact same subject or tech stack.


I was about to ask the same question - basically the Packt books I have read have been (almost) universally poor quality.

It's been a long while since I've bothered with them so hoping that's changed somewhat.



no. these are the files for the book, not the book itself. the files are useless without the original text


Because I can't keep up with all of tech, I usually get books from publishers I trust. First on that list is O'Reilly's. These guys are not on the list. Also if I buy through Amazon, I buy used. Cuts down on a lot of crap.


I always find computer architecture a strange/tricky topic to cover in a tech book, its either too vague, or too specific, often forgetting about using the right tool for the job. From the index, this looks like the latter but if I get a chance I'll check it out.

The only one I've found so far that hit the right notes for me personally was Software Architecture Patterns (9781098134273), Mark Richards.

This topic list looks interesting, if not a bit too 'distracted'.


> Software Architecture Patterns (9781098134273), Mark Richards.

It's interesting that you compare this with a book about computer architecture because "Software Architecture Patterns" doesn't seem to be concerned with computer architecture at all but more about ... software architecture with concepts such as Event-driven architecture and microservices.


Software architecture and computer architecture are two completely different topics. They have very little overlap; the two disciplines only come together when writing compilers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: