Javascript required
Skip to content Skip to sidebar Skip to footer

Computer Organization and Design Arm Edition Solutions Chapter 4

cover Basic Computer                                                Architecture
The book is now freely available. You can either view all the chapters online (links below), or download the entire book (pdf version) for free, or buy a version of it in print. For the print version, you can buy it on Amazon, Flipkart, or from the website of the publisher WhiteFalcon. If you like the book, please fill the feedback form. The book is available internationally on Amazon: USA, UK, Australia, Italy, Singapore, UAE, and Germany.

Second part of this two-book series:
Advanced Computer Architecture
link

Chapters
For a better viewing experience, click "Close Sidebar" at the right-top corner.
Introduction to Computer Architecture (pdf)
Computer Arithmetic (pdf)
The Language of Bits (pdf)
Processor Design (pdf)
Assembly Language (pdf)
Principles of Pipelining (pdf)
ARM Assembly Language (pdf)
The Memory System (pdf)
x86 Assembly Language (pdf)
Multiprocessor Systems (pdf)
Logic, Gates, Registers, and Memories (pdf)
I/O and Storage Devices (pdf)
RISC-V (pdf)
Real-world CPUs and GPUs (pdf)

Bibliography

The rest of the notes and a chapter on RISC-V are on the way....

PPT Slides
Introduction to Computer Architecture
Computer Arithmetic (1, 2)
The Language of Bits
Processor Design
Assembly Language
Principles of Pipelining
ARM Assembly Language
The Memory System
x86 Assembly Language
Multiprocessor Systems
Logic Gates, Registers, and Memories
I/O and Storage Devices

Videos
(All the videos are at least 720p HD quality. The resolution observed on YouTube depends on network connectivity.)
Introduction to the book, YouTube
Chapter 1: Introduction, YouTube
Chapter 2: Language of Bits
Part I, Boolean Algebra, Binary representation, YouTube
Part II, Negative Integers, YouTube
Part III, Floating point numbers, strings, YouTube
Chapter 3: Fundamentals of Assembly Languages
Part I: Fundamentals of assembly languages, YouTube
Part II: SimpleRisc assembly language, YouTube
Part III: Stacks, functions, and instruction encoding, YouTube
Chapter 4: ARM Assembly
Part I: Basics of the ARM assembly language, YouTube

      Part II: Branch instructions, memory instructions, and instruction encoding, YouTube
Chapter 5: x86 Assembly

      Part I: Basics of x86 assembly,  YouTube
Part II: ALU, Branch, and Function Call Instructions, YouTube
Part III: String instructions, Floating point instructions, YouTube
Part IV: Instruction encoding,  YouTube

Chapter 6: Digital Logic
Part I: Transistors and gates, YouTube
Part II: Latches, and flip-flops, YouTube
Part III: Memory cells,
YouTube

Chapter 7: Computer Arithmetic
Part I: Integer Adders, YouTube
Part II: Integer Multipliers, YouTube
    Part III: Wallace tree multiplier, YouTube
Part IV: Integer division, YouTube
Part V: Floating-point addition and subtraction, YouTube
Part VI: Floating-point multiplication and division, YouTube
Chapter 8: Processor Design
Part I: Processors with hardwired control units, YouTube

    Part II: Processor with Micro-programming - I, YouTube
Part III: Processor with Micro-programming - II, YouTube
Chapter 9: Principles of Pipelining
Part I: Basic concepts, and the notion of hazards, YouTube
Part II: Interlocks and forwarding, YouTube
Part III: Forwarding and performance analysis, YouTube

Part IV: Interrupts and Exceptions, YouTube
Chapter 10: Memory System
Part I: Overview of the Memory System, YouTube
Part II: Design of Caches, YouTube
Part III: Details of the memory system (formulae, cache misses, prefetching) YouTube
Part IV: Virtual Memory, YouTube
Chapter 11: Multiprocessor Systems
     Part I: Overview of Parallel Programming, YouTube
Part II: Coherence and Consistency, YouTube
Part III:
Cache Coherence Protocols, YouTube

Part IV: Multithreading and Vector Processing, YouTube
Part V: Graphics Processors and Interconnects, YouTube

Chapter 12: I/O and Storage Devices
     Part I: Overview, and the Physical layer (encoding, synchronization), YouTube
Part II:
Data Link, Network, and Protocol Layers YouTube
     Part III: PCI-X, USB, and Hard Disks, YouTube
Part IV: Optical and Solid State Drives, YouTube
(If any non-profit organization (of any country) wants a copy of these videos (original .mp4 format), the author will be happy to provide them, as long as their contents are not modified and they are available free of charge.)

Solutions Manual
The solutions manual currently contains all the exercises, and solutions for most of them (roughly 90%). It is not fully complete at this stage. Readers are requested to check this page frequently to get updated versions of the solution manual. The current version can be found here. Note that you require a password to open this document.  A large number of these solutions have been prepared by students; as a result there might be errors in this document. Please contact the author if you find any errors or need any clarifications. Note that the solution manual is for instructors only.

Supplementary Software

GUI Based SimpleRisc Emulator -- A GUI based SimpleRisc emulator. It can be used to write, run, and debug SimpleRisc programs. (Java source code) Written by Tushar Marda and Nikhil Kumar
Command Line SimpleRisc Emulator -- A command line based SimpleRisc emulator. It can be used to write, run, and debug SimpleRisc programs. (C source code and documentation) Written by Ritesh N.
SimpleRisc Processor in Logisim (Design 1) -- Design of the SimpleRisc processor in Logisim, along with documentation and examples. Written by Ritesh N. and Shubhankar Suman Singh
SimpleRisc Processor in Logisim (Design 2) -- Design of the SimpleRisc processor in Logisim, along with examples. Written by Tushar Marda and Nikhil Kumar
VHDL Model of the SimpleRisc Processor -- VHDL model of the single stage SimpleRisc processor along with examples and documentation. Written by Kunal Singhal and Swapnil Palash
EmuArm (GUI based ARM Emulator) -- GUI based ARM emulator for writing, running, and debugging programs written in ARM assembly. Written by Namita Atri and Geetika Malhotra
NASM assembler -- Netwide Assembler: Can be used to compile, and debug programs written in x86 assembly.
RISC-V emulator -- A simple 32/64-bit RISC-V emulator. Written by Smita Kumari and Prince Ranjan (summer interns from NIT Patna).
Tejas Architecture Simulator --  Can be used to simulate the behaviour of simple and complex multicore processors including their pipelines, memory hierarchies, and NOCs. The simulator can also run in parallel, simulate GPUs, and simulate energy consumption. Written by the SRISHTI group

Computer Organization and Design Arm Edition Solutions Chapter 4

Source: https://www.cse.iitd.ac.in/~srsarangi/archbooksoft.html