Github Stackoverflow Email

Software developer notes

Today I would like to share impressions about the book by David M. Harris, Sarah L. Harris. If you would be interested in internals of a typical processor, here you will definitely find answers.

Here is my paperback translated in my native language (about 720 pages).

A first half is a classical one (it's similar in other books like "Digital Electronics: Principles and Applications" by Roger L. Tokheim etc). Basics of digital circuit design, mathematical logic are described in an accessible form for uninitiated readers. You will also understand how truth tables are implemented with transistors. This part ends by observing System Verilog - hardware description language. But in my humble opinion this is not wel-developed chapter for beginners. I turned to additional books in my native language (many people recommends "Verilog HDL. A Guide to Digital Design and Synthesis" by Samir Palnitkar).

The most interesting part starts from the second half. Description of a processor's interface is followed by examples of popular architectures (authors use the MIPS to demonstrate many aspects along the book). Then three (single cycle, multi cycle and pipeline) versions of processors will be implemented step by step. Each functional piece is described in terms of basic digital blocks. I especially liked the chapter dedicated to various optimizations - it helped a lot to understand vulnerabilities like Spectre and side effects of branch predictions. At the end authors study interaction between processor and peripheral I/O devices (including operational memory). Readers familiar with "Modern Operating Systems" by Andrew S. Tanenbaum may find similar points. (for more information you can refer to latter).

So, to sum up, I would like to note that this is the most fundamental book I have ever read. It gives strong basis for FPGA developers, extends outlook in embedded/electronics area, understanding digital design generally. Is it worth reading for other readers? At least I think you can surely have it in the collection of non-core books to read.

Books

About me

Hi! I am Alex, the author of this blog. Here are my technical (in the majority) thoughts and stories. I will be hoping that you find this site interesting and fun. Also you can feel free to contact me (support for comments will be added later).