Computer Architecture Essentials

Computer Architecture Essentials

3h 17mAdvanced2025-01-24

Authors

Eduardo Corpeño

Eduardo Corpeño

Electrical Engineer, Computer Programmer, and Teacher for 15+ years

Course details

This course provides a comprehensive introduction to computer architecture, designed for professionals without a strong hardware background. Explore the essential components of computing systems, including the CPU, memory, and I/O subsystems. The course covers advanced topics such as instruction execution techniques, memory management, and out-of-order execution. Additionally, learn about specialized architectures and emerging technologies like FPGAs and AI in hardware. By the end of this course, you will have the knowledge to analyze and optimize computing systems for enhanced performance and efficiency.

Learning objectives
Explain the fundamental components and architecture of computing systems, including the CPU, memory, and I/O subsystems.
Analyze and evaluate various instruction execution techniques, such as pipelining and out-of-order execution, and their impact on CPU performance.
Apply knowledge of memory hierarchies, caching strategies, and memory management techniques to optimize system performance.
Evaluate different I/O handling methods, including polling, interrupts, and direct memory access, and their applications in system design.
Analyze and discuss emerging technologies and specialized architectures, such as FPGAs, hardware accelerators, and neuromorphic computing, and their potential impact on the future of computing.

Skills covered

Upgrade and MaintenanceHelp Desk SkillsIT Help DeskProgramming LanguagesSoftware DevelopmentOne-Off

Concepts

Introduction

  • Getting started with computer architecture

Computer Architecture

  • Computer architecture
  • Components of a computing system
  • The CPU
  • The memory subsystem
  • The input output subsystem

The Central Processing Unit

  • The role of the CPU
  • CPU organization
  • Instruction set architectures
  • Number of operands per instruction
  • CISC vs. RISC architectures
  • Harvard vs. Von Neumann architectures
  • Assembly language

Instruction Execution Pipelining

  • Understanding pipelining
  • CPU pipeline stages
  • Pipeline hazards
  • Overcoming control hazards with software
  • Overcoming data hazards with software
  • Overcoming pipeline hazards with hardware
  • Impact on software - Pipelining

Out-of-Order Execution

  • Understanding OOO execution
  • OOO execution architecture elements
  • Tomasulo's algorithm
  • Instruction schedulers today
  • Performance improvements

Memory

  • Memory technologies
  • Memory hierarchy
  • Cache mapping

Complications with Memory

  • Paging
  • Hardware support for paging
  • Memory in multiprocessor systems
  • Cache coherence
  • Impact on software - The memory subsystem

Input Output

  • I O handling techniques
  • Polling vs. interrupts
  • Direct memory access
  • Serial communication
  • Layered communication protocols
  • Impact on software - I O handling

System Integration

  • Bus architectures
  • In-die buses
  • Motherboards
  • Systems on a chip

Specialized Architectures and Emerging Technologies

  • Embedded systems
  • FPGAs
  • Soft processors
  • Hardware accelerators
  • Cloud and edge computing
  • RISC-V - An industry-ready open architecture

Conclusion

  • Next steps
100,000 Toman