Modern Computer Architecture and Organization

Book description

A no-nonsense, practical guide to current and future processor and computer architectures, enabling you to design computer systems and develop better software applications across a variety of domains

Key Features

  • Understand digital circuitry with the help of transistors, logic gates, and sequential logic
  • Examine the architecture and instruction sets of x86, x64, ARM, and RISC-V processors
  • Explore the architecture of modern devices such as the iPhone X and high-performance gaming PCs

Book Description

Are you a software developer, systems designer, or computer architecture student looking for a methodical introduction to digital device architectures but overwhelmed by their complexity? This book will help you to learn how modern computer systems work, from the lowest level of transistor switching to the macro view of collaborating multiprocessor servers. You'll gain unique insights into the internal behavior of processors that execute the code developed in high-level languages and enable you to design more efficient and scalable software systems.

The book will teach you the fundamentals of computer systems including transistors, logic gates, sequential logic, and instruction operations. You will learn details of modern processor architectures and instruction sets including x86, x64, ARM, and RISC-V. You will see how to implement a RISC-V processor in a low-cost FPGA board and how to write a quantum computing program and run it on an actual quantum computer. By the end of this book, you will have a thorough understanding of modern processor and computer architectures and the future directions these architectures are likely to take.

What you will learn

  • Get to grips with transistor technology and digital circuit principles
  • Discover the functional elements of computer processors
  • Understand pipelining and superscalar execution
  • Work with floating-point data formats
  • Understand the purpose and operation of the supervisor mode
  • Implement a complete RISC-V processor in a low-cost FPGA
  • Explore the techniques used in virtual machine implementation
  • Write a quantum computing program and run it on a quantum computer

Who this book is for

This book is for software developers, computer engineering students, system designers, reverse engineers, and anyone looking to understand the architecture and design principles underlying modern computer systems from tiny embedded devices to warehouse-size cloud server farms. A general understanding of computer processors is helpful but not required.

Table of contents

  1. Modern Computer Architecture and Organization
  2. Why subscribe?
  3. Contributors
  4. About the author
  5. About the reviewer
  6. Packt is searching for authors like you
  7. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Code in Action
    5. Conventions used
    6. Get in touch
    7. Reviews
  8. Section 1: Fundamentals of Computer Architecture
  9. Chapter 1: Introducing Computer Architecture
    1. The evolution of automated computing devices
      1. Charles Babbage's Analytical Engine
      2. ENIAC
      3. IBM PC
      4. The iPhone
    2. Moore's law
    3. Computer architecture
      1. Binary and hexadecimal numbers
      2. The 6502 microprocessor
      3. The 6502 instruction set
    4. Summary
    5. Exercises
  10. Chapter 2: Digital Logic
    1. Electrical circuits
    2. The transistor
    3. Logic gates
    4. Latches
    5. Flip-flops
    6. Registers
    7. Adders
      1. Propagation delay
    8. Clocking
    9. Sequential logic
    10. Hardware description languages
      1. VHDL
    11. Summary
    12. Exercises
  11. Chapter 3: Processor Elements
    1. A simple processor
      1. Control unit
      2. Arithmetic logic unit
      3. Registers
    2. The instruction set
    3. Addressing modes
      1. Immediate addressing mode
      2. Absolute addressing mode
      3. Absolute indexed addressing mode
      4. Indirect indexed addressing mode
    4. Instruction categories
      1. Memory load and store instructions
      2. Register-to-register data transfer instructions
      3. Stack instructions
      4. Arithmetic instructions
      5. Logical instructions
      6. Branching instructions
      7. Subroutine call and return instructions
      8. Processor flag instructions
      9. Interrupt-related instructions
      10. No operation instruction
    5. Interrupt processing
      1. IRQ processing
      2. NMI processing
      3. BRK instruction processing
    6. Input/output operations
      1. Programmed I/O
      2. Interrupt-driven I/O
      3. Direct memory access
    7. Summary
    8. Exercises
  12. Chapter 4: Computer System Components
    1. Technical requirements
    2. Memory subsystem
    3. Introducing the MOSFET
    4. Constructing DRAM circuits with MOSFETs
      1. The capacitor
      2. The DRAM bit cell
      3. DDR4 SDRAM
      4. Graphics DDR
      5. Prefetching
    5. I/O subsystem
      1. Parallel and serial data buses
      2. PCI Express
      3. SATA
      4. M.2
      5. USB
      6. Thunderbolt
    6. Graphics displays
      1. VGA
      2. DVI
      3. HDMI
      4. DisplayPort
    7. Network interface
      1. Ethernet
      2. Wi-Fi
    8. Keyboard and mouse
      1. Keyboard
      2. Mouse
    9. Modern computer system specifications
    10. Summary
    11. Exercises
  13. Chapter 5: Hardware-Software Interface
    1. Device drivers
      1. The parallel port
      2. PCIe device drivers
      3. Device driver structure
    2. BIOS
      1. UEFI
    3. The boot process
      1. BIOS boot
      2. UEFI boot
      3. Embedded devices
    4. Operating systems
    5. Processes and threads
      1. Scheduling algorithms and process priority
    6. Multiprocessing
    7. Summary
    8. Exercises
  14. Chapter 6: Specialized Computing Domains
    1. Real-time computing
      1. Real-time operating systems
    2. Digital signal processing
      1. ADCs and DACs
      2. DSP hardware features
      3. Signal processing algorithms
    3. GPU processing
      1. GPUs as data processors
    4. Examples of specialized architectures
    5. Summary
    6. Exercises
  15. Section 2: Processor Architectures and Instruction Sets
  16. Chapter 7: Processor and Memory Architectures
    1. Technical Requirements
    2. The von Neumann, Harvard, and modified Harvard architectures
      1. The von Neumann architecture
      2. The Harvard architecture
      3. The modified Harvard architecture
    3. Physical and virtual memory
    4. Paged virtual memory
      1. Page status bits
      2. Memory pools
    5. Memory management unit
    6. Summary
    7. Exercises
  17. Chapter 8: Performance-Enhancing Techniques
    1. Cache memory
      1. Multilevel processor caches
      2. Static RAM
      3. Level 1 cache
      4. Direct-mapped cache
      5. Set associative cache
      6. Fully associative cache
      7. Processor cache write policies
      8. Level 2 and level 3 processor caches
    2. Instruction pipelining
      1. Superpipelining
      2. Pipeline hazards
      3. Micro-operations and register renaming
      4. Conditional branches
    3. Simultaneous multithreading
    4. SIMD processing
    5. Summary
    6. Exercises
  18. Chapter 9: Specialized Processor Extensions
    1. Technical requirements
    2. Privileged processor modes
      1. Handling interrupts and exceptions
      2. Protection rings
      3. Supervisor mode and user mode
      4. System calls
    3. Floating-point mathematics
      1. The 8087 floating-point coprocessor
      2. The IEEE 754 floating-point standard
    4. Power management
      1. Dynamic voltage frequency scaling
    5. System security management
    6. Summary
    7. Exercises
  19. Chapter 10: Modern Processor Architectures and Instruction Sets
    1. Technical requirements
    2. x86 architecture and instruction set
      1. The x86 register set
      2. x86 addressing modes
      3. x86 instruction categories
      4. x86 instruction formats
      5. x86 assembly language
    3. x64 architecture and instruction set
      1. The x64 register set
      2. x64 instruction categories and formats
      3. x64 assembly language
    4. 32-bit ARM architecture and instruction set
      1. The ARM register set
      2. ARM addressing modes
      3. ARM instruction categories
      4. ARM assembly language
    5. 64-bit ARM architecture and instruction set
      1. 64-bit ARM assembly language
    6. Summary
    7. Exercises
  20. Chapter 11: The RISC-V Architecture and Instruction Set
    1. Technical requirements
    2. The RISC-V architecture and features
    3. The RISC-V base instruction set
      1. Computational instructions
      2. Control flow instructions
      3. Memory access instructions
      4. System instructions
      5. Pseudo-instructions
      6. Privilege levels
    4. RISC-V extensions
      1. The M extension
      2. The A extension
      3. C extension
      4. The F and D extensions
      5. Other extensions
    5. 64-bit RISC-V
    6. Standard RISC-V configurations
    7. RISC-V assembly language
    8. Implementing RISC-V in an FPGA
    9. Summary
    10. Exercises
  21. Section 3: Applications of Computer Architecture
  22. Chapter 12: Processor Virtualization
    1. Technical requirements
    2. Introducing virtualization
      1. Types of virtualization
      2. Categories of processor virtualization
    3. Virtualization challenges
      1. Unsafe instructions
      2. Shadow page tables
      3. Security
    4. Virtualizing modern processors
      1. x86 processor virtualization
      2. ARM processor virtualization
      3. RISC-V processor virtualization
    5. Virtualization tools
      1. VirtualBox
      2. VMware Workstation
      3. VMware ESXi
      4. KVM
      5. Xen
      6. QEMU
    6. Virtualization and cloud computing
    7. Summary
    8. Exercises
  23. Chapter 13: Domain-Specific Computer Architectures
    1. Technical requirements
    2. Architecting computer systems to meet unique requirements
    3. Smartphone architecture
      1. iPhone X
    4. Personal computer architecture
      1. Alienware Aurora Ryzen Edition gaming desktop
      2. Ryzen 9 3950X branch prediction
      3. Nvidia GeForce RTX 2080 Ti GPU
      4. Aurora subsystems
    5. Warehouse-scale computing architecture
      1. WSC hardware
      2. Rack-based servers
      3. Hardware fault management
      4. Electrical power consumption
      5. The WSC as a multilevel information cache
    6. Neural networks and machine learning architectures
      1. Intel Nervana neural network processor
    7. Summary
    8. Exercises
  24. Chapter 14: Future Directions in Computer Architectures
    1. The ongoing evolution of computer architectures
    2. Extrapolating from current trends
      1. Moore's law revisited
      2. The third dimension
      3. Increased device specialization
    3. Potentially disruptive technologies
      1. Quantum physics
      2. Spintronics
      3. Quantum computing
      4. Carbon nanotubes
    4. Building a future-tolerant skill set
      1. Continuous learning
      2. College education
      3. Conferences and literature
    5. Summary
    6. Exercises
  25. Answers to Exercises
    1. Chapter 1: Introducing Computer Architecture
    2. Exercise 1
    3. Answer
    4. Exercise 2
    5. Answer
    6. Exercise 3
    7. Answer
    8. Exercise 4
    9. Answer
    10. Exercise 5
    11. Answer
    12. Exercise 6
    13. Answer
    14. Chapter 2: Digital Logic
    15. Exercise 1
    16. Answer
    17. Exercise 2
    18. Answer
    19. Exercise 3
    20. Answer
    21. Exercise 4
    22. Answer
    23. Exercise 5
    24. Answer
    25. Exercise 6
    26. Answer
    27. Chapter 3: Processor Elements
    28. Exercise 1
    29. Answer
    30. Exercise 2
    31. Answer
    32. Exercise 3
    33. Answer
    34. Exercise 4
    35. Answer
    36. Exercise 5
    37. Answer
    38. Exercise 6
    39. Answer
    40. Chapter 4: Computer System Components
    41. Exercise 1
    42. Answer
    43. Exercise 2
    44. Answer
    45. Chapter 5: Hardware-Software Interface
    46. Exercise 1
    47. Answer
    48. Exercise 2
    49. Answer
    50. Chapter 6: Specialized Computing Domains
    51. Exercise 1
    52. Answer
    53. Exercise 2
    54. Answer
    55. Exercise 3
    56. Answer
    57. Chapter 7: Processor and Memory Architectures
    58. Exercise 1
    59. Answer
    60. Exercise 2
    61. Answer
    62. Exercise 3
    63. Answer
    64. Chapter 8: Performance-Enhancing Techniques
    65. Exercise 1
    66. Answer
    67. Exercise 2
    68. Answer
    69. Exercise 3
    70. Answer
    71. Chapter 9: Specialized Processor Extensions
    72. Exercise 1
    73. Answer
    74. Exercise 2
    75. Answer
    76. Exercise 3
    77. Answer
    78. Exercise 4
    79. Answer
    80. Exercise 5
    81. Answer
    82. Exercise 6
    83. Answer
    84. Exercise 7
    85. Answer
    86. Exercise 8
    87. Answer
    88. Chapter 10: Modern Processor Architectures and Instruction Sets
    89. Exercise 1
    90. Answer
    91. Exercise 2
    92. Answer
    93. Exercise 3
    94. Answer
    95. Exercise 4
    96. Answer
    97. Exercise 5
    98. Answer
    99. Exercise 6
    100. Answer
    101. Exercise 7
    102. Answer
    103. Exercise 8
    104. Answer
    105. Chapter 11: The RISC-V Architecture and Instruction Set
    106. Exercise 1
    107. Answer
    108. Exercise 2
    109. Answer
    110. Exercise 3
    111. Answer
    112. Exercise 4
    113. Answer
    114. Chapter 12: Processor Virtualization
    115. Exercise 1
    116. Answer
    117. Exercise 2
    118. Answer
    119. Exercise 3
    120. Answer
    121. Chapter 13: Domain-Specific Computer Architectures
    122. Exercise 1
    123. Answer
    124. Exercise 2
    125. Answer
    126. Chapter 14: Future Directions in Computer Architectures
    127. Exercise 1
    128. Answer
    129. Exercise 2
    130. Answer
    131. Exercise 3
    132. Answer
    133. Exercise 4
    134. Answer
  26. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: Modern Computer Architecture and Organization
  • Author(s): Jim Ledin
  • Release date: April 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781838984397