Fundamentals of Computer Organization and Design
Description:This advanced textbook provides a comprehensive survey of hardware and software architectural principles and methods of computer systems organization and design. It covers both CISC and RISC processors in detail, presenting Pentium, PowerPC, MIPS, SPARC and Itanium.
In addition, assembly language programming for both CISC (Pentium) and RISC (MIPS) processors is covered in detail. Numerous assembly language code examples are included to give hands-on experience to students. These examples are not code fragments, but completely working programs that the students can run when they download the free assemblers.
Topics and features: * Detailed discussion of digital logic and memory design * Concepts are related to practical designs and implementations * Presentation of material is suitable for self-study * Extensive examples and figures are used to help students grasp the concepts * Large number of end-of-chapter exercises will reinforce the concepts discussed in the chapter * Free assembler information for students to download from book website * Each chapter begins with an overview and ends with a summary.
This book is very hard to follow.
I and the students I worked with found this book to be a very difficult introduction to computer hardware. This book assumes its readers understand the topic much better than a sophomore/junior computer science major does. It then proceeds to explain only the most complex details.
Broad but shallow
Of the 1030 pages in this book, approximately 250 pages are spent on a Pentium assembly-language tutorial -- while barely 40 pages are spent on all of memory-caching. Virtual memory gets another 20 pages. USB gets 10 pages, IEEE 1394 gets 5 pages, and PCI gets a whopping 12 pages. There's no discussion of the current APIC interrupt controller (vital for multi-processor systems), while the outdated 8259 PIC chip is presented as the interrupt controller of choice for Pentium systems.
As a practicing engineer, I seriously question both the topics the author has chosen and the weight he has given to them.
I am the author of this book. I would like to mention some of the special features of the book: It covers both CISC (Intel IA-32) and RISC (MIPS) assembly language programming. Extensive assembly language examples are given. These programs can be run under Windows and Linux.
The book covers a total of five architectures: one CISC (IA-32) and four RISC (MIPS, PowerPC, SPARC, IA-64 Itanium). It also gives a comprehensive and up-to-date coverage of system buses including PCI, PCI-X, AGP, USB, and IEEE 1394.
Four chapters are dedicated to digital logic principles including combinational and sequential logic circuits and memory design. For complete details, see the table of contents posted on the book's website.
The book's home page also has detailed instructions to download free assemblers. You can also download the source code of all the programs given in the book. For instructors and students, viewgraph slides are available for all the chapters.