Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Computer organization and design

    Computer organization and design

    David A. Patterson · 2004

    In addition to thoroughly updating every aspect of the text to reflect the most current computing technology, the third edition uses standard 32-bit MIPS 32 as the primary teaching ISA; presents the assembler-to-HLL translations in both C and Java; highlights the latest developments in architecture in Real Stuff sections: Intel IA-32, Power PC 604, Googles PC cluster, Pentium P4, SPEC CPU2000 benchmark suite for processors, SPEC Web99 benchmark for web servers, EEMBC benchmark for embedded systems, AMD Opteron memory hierarchy, AMD vs. 1A-64.

    Systems & OSElectronics & HardwareComputer Science
    Open LibraryAmazon
    Stats for nerds
    50recommend
    101mentions
    84people
    2008–2026years
    58% recommend40% neutral2% critical

    Mentions per year

    2008201020122014201620182020202220242026

    What Hacker News says

    1. tux3Jul 2026
      You could read compiler books, but I would actually recommend reading about CPUs and computer architecture directly. If you understand how the hardware works, then the optimizations are all very natural and fit into the picture perfectly, instead of being some arcane compiler magic that you have to take as a disconnected fact.

      Personally I actually haven't read too many books on optimizations, I just absorbed information over years one thing at a time, but something like Computer Organization and Design is a pretty good intro to the low-level picture. If you want to drown in extremely dense technical topics that will give you a lot of jumping off points to search, read Agner Fog's microarchicture optimization guide (https://www.agner.org/optimize/). It won't tell you what LLVM is doing, but it'll tell you why it's doing it. Fair warning, it's dense and pretty dry.

      Then it depends how interested you are in doing low-level nonsense. If you spend a lot of time writing performance oriented systems code, you'll come to use profiling tools that show you the assembly. If you stare at it long enough, you sometimes start to question why the compiler wrote it this way. And you're naturally led as you try to optimize your code to wonder how LLVM is coming up with this ASM that it spits out and why it sometimes gets it wrong.

      There's nothing magical or that requires innate talent. You can learn all of this very naturally if you work close to the metal and take the time to question how the abstraction layer below you actually works. If you keep doing this, you eventually find out it's not that deep, it's just a lot of stuff accumulated over time, but none of it particularly difficult or inaccessible.

      thread
    2. tux3Oct 2025
      The RISC-V privileged spec describes their paging implementation (under the Supervisor-level ISA), while the unprivileged spec has a chapter and two appendices describing their memory model (RVWMO), formal axiomatic and operational models included.

      Finding the inevitable bugs in the formal model is left as an exercise to the reader (three bugs where the axiomatic/operational models disagree are already known).

      If you want a more gentle introduction, the Computer Organization and Design book is pretty nice.

      thread
    3. uticusJan 2025
      nice - reminds me of the excellent "Computer Organization & Design" by Patterson and Hennesy https://a.co/d/9U9Adl9
      thread
    4. thebeardisredDec 2024
      Personally, I recommend "Computer Organization and Design - The Hardware Software Interface" by Patterson and Hennessy. From it's preface (regarding this book):

      Some readers may be familiar with Computer Architecture: A Quantitative Approach, popularly known as Hennessy and Patterson. (This book in turn is often called Patterson and Hennessy.) Our motivation in writing the earlier book was to describe the principles of computer architecture using solid engineering fundamentals and quantitative cost/performance tradeoffs. We used an approach that combined examples and measurements, based on commercial systems, to create realistic design experiences. Our goal was to demonstrate that computer architecture could be learned using quantitative methodologies instead of a descriptive approach. It was intended for the serious computing professional who wanted a detailed understanding of computers.

      A majority of the readers for this book do not plan to become computer architects. The performance and energy efficiency of future software systems will be dramatically affected, however, by how well software designers understand the basic hardware techniques at work in a system. Thus, compiler writers, operating system designers, database programmers, and most other software engineers need a firm grounding in the principles presented in this book. Similarly, hardware designers must understand clearly the effects of their work on software applications.

      Thus, we knew that this book had to be much more than a subset of the material in Computer Architecture, and the material was extensively revised to match the different audience. We were so happy with the result that the subsequent editions of Computer Architecture were revised to remove most of the introductory material; hence, there is much less overlap today than with the first editions of both books.

      thread
    5. zoenolanSep 2024
      Newer editions of Computer Organization and Design: The Hardware Software Interface covers GPUs [1]

      Multiflow still has some relevant ideas [2]

      Programming on Parallel Machines: GPU, Multicore, Clusters and More. Gives you a look at some of the issues [3]

      SPIRV-VM is a virtual machine for executing SPIR-V shaders [4]

      NyuziRaster: Optimizing Rasterizer Performance and Energy in the Nyuzi Open Source GPU [5]

      Ocelot is a modular dynamic compilation framework for heterogeneous systems, providing various backend targets for CUDA programs and analysis modules for the PTX virtual instruction set. [6]

      glslang is the Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.

      [1]: https://www.goodreads.com/book/show/83895.Computer_Organizat...

      [2]: https://en.wikipedia.org/wiki/Multiflow

      [3]: http://heather.cs.ucdavis.edu/parprocbook

      [4]: https://github.com/dfranx/SPIRV-VM

      [5]: https://www.cs.binghamton.edu/~millerti/nyuziraster.pdf

      [6]:https://code.google.com/archive/p/gpuocelot/

      [7]: https://github.com/KhronosGroup/glslang

      thread
    6. musicaleSep 2024
      One classic textbook is Patterson and Hennessy, Computer Organization & Design: The Hardware-Software Interface.

      Learning how to program FPGAs (in verilog, etc.) is also a nice way for software people to start getting into hardware.

      thread

    Related

    Cover of Computer architecture
    2008–2026

    Computer architecture

    John L. Hennessy
    59 recommend · 110
    Cover of Computer organization and architecture
    2014–2026

    Computer organization and architecture

    William Stallings
    3 recommend · 12
    Cover of Computer Organization and Design RISC-V Edition
    2019–2025

    Computer Organization and Design RISC-V Edition

    David A. Patterson
    6 recommend · 10
    Cover of Computer systems
    2009–2026

    Computer systems

    Randal Bryant
    67 recommend · 110
    Cover of Computation structures
    2010–2026

    Computation structures

    Stephen A. Ward
    8 recommend · 15
    Cover of Structured Computer Organization
    2008–2024

    Structured Computer Organization

    Andrew S. Tanenbaum
    21 recommend · 34
    Cover of Digital Design and Computer Architecture
    2010–2026

    Digital Design and Computer Architecture

    Sarah Harris
    26 recommend · 43
    Cover of Advanced programming in the Unix environment
    2008–2025

    Advanced programming in the Unix environment

    W. Richard Stevens
    100 recommend · 153