Course Title: Computer Architecture
Course Overview:
The Computer Architecture course explores the design and organization of computer systems at the hardware level. Students will learn about the structure of processors, memory systems, input/output devices, and how these components interact to execute programs. The course covers topics such as instruction set architecture, pipelining, memory hierarchy, and parallel processing.
Course Objectives:
Understand the basic principles of computer architecture.
Learn about instruction set architecture and its impact on processor design.
Study pipelining and parallel processing techniques for improving system performance.
Explore memory systems, cache hierarchies, and virtual memory.
Understand input/output systems and peripheral device communication.
Gain practical experience through simulations and hands-on projects.
Course Outline:
Introduction to Computer Architecture
Overview of computer organization and architecture
Role of the CPU, memory, and I/O devices
Historical perspective and evolution of computer architectures
Instruction Set Architecture (ISA)
Characteristics of instruction sets
RISC vs. CISC architectures
Assembly language programming and machine instructions
Processor Design and Microarchitecture
CPU components (ALU, registers, control unit)
Datapath design and control signals
Single-cycle and multi-cycle CPU architectures
Pipelining and Instruction-Level Parallelism
Pipelined CPU design
Pipeline hazards and techniques for hazard mitigation
Superscalar and out-of-order execution
Memory Systems
Memory hierarchy (cache, main memory, secondary storage)
Cache organization (direct-mapped, set-associative, fully associative)
Cache coherence and consistency
Virtual Memory and Paging
Address translation and memory management units (MMUs)
Demand paging and page replacement algorithms
TLB (Translation Lookaside Buffer) and page tables
Input/Output Systems
I/O interfaces and device controllers
Polling vs. interrupts
DMA (Direct Memory Access) and I/O processing
Parallel Processing and Multi-core Architectures
Parallelism concepts (task-level, data-level, instruction-level)
Multi-core processors and SIMD (Single Instruction, Multiple Data)
Thread-level parallelism and multi-threading
Computer Architecture Simulations
Simulating computer architectures using software tools (e.g., Logisim, SPIM)
Performance analysis and benchmarking
Designing and optimizing hardware components
Project Work and Case Studies
Building a simple CPU or memory system simulator
Analyzing and optimizing performance using real-world benchmarks
Case studies of modern processor architectures (e.g., ARM, x86)
Assessment Methods:
Simulations and hands-on projects related to computer architecture.
Quizzes and exams covering theoretical concepts, design principles, and performance analysis.
Programming assignments in assembly language or hardware description languages (e.g., Verilog).
Analysis of case studies and research papers on computer architecture topics.
Textbook:
“Computer Organization and Design: The Hardware/Software Interface” by David A. Patterson and John L. Hennessy
References:
“Computer Architecture: A Quantitative Approach” by John L. Hennessy and David A. Patterson
Online resources and tutorials on computer architecture design and simulation tools
Admission Open for this course
Contact Number: 03307615544