Computer Organization and Architecture

  • Instruction Set Architecture (ISA)
    Studied how processors interpret and execute instructions, with an emphasis on performance implications.

  • Computer Arithmetic
    Explored binary operations, ALUs, and how arithmetic units handle calculations at the hardware level.

  • Processor Internals & Pipelining
    Designed and analyzed datapaths and control paths, implementing pipelined architectures to improve throughput.

  • Memory Hierarchy & System Design
    Investigated cache structures, RAM access patterns, and strategies for minimizing latency and bottlenecks.

  • I/O Systems
    Learned how CPUs communicate with external devices, focusing on buses, controllers, and interrupt handling.

  • Parallelism & Performance Optimization
    Applied parallel processing techniques and evaluated system performance through simulation and modeling.

  • Hardware/Software Co-Design
    Explored strategies for optimizing systems by aligning hardware capabilities with software needs.

  • Case Studies
    Analyzed real-world processor architectures and their trade-offs.

Course | Master of Science in Electrical Engineering
Semester: Spring 2025
Instructor: Dr. Sudeep Pasricha

Course Overview

Technical Scope

This course provided a deep dive into how modern computers are built and operate—from the low-level language a processor understands to the complex flow of data through processing units, memory, and I/O systems. It explored the fundamental building blocks of computer architecture, including instruction set design, arithmetic logic, control units, and memory hierarchy. A strong emphasis was placed on bridging the gap between software and hardware, helping students understand how high-level code is ultimately executed at the circuit level. This perspective is essential for designing and optimizing efficient, high-performance computing systems in both embedded and general-purpose applications.

Final Reflection

This course sharpened my understanding of how hardware and software interact at a fundamental level, equipping me with the ability to analyze and optimize computer systems for real-world applications. The course strengthened my problem-solving skills in designing efficient processors, memory architectures, and I/O systems—all critical for developing high-performance and reliable technology solutions. This foundation prepares me to contribute effectively to roles in embedded systems design, hardware-software integration, and computer architecture development, where a deep technical understanding and practical system-level insight are essential.