About Lectures on Computer Architecture
By Dr. Isuru Nawinne
This lecture series provides a comprehensive guide to computer architecture, covering topics from fundamental abstractions to advanced concepts in processor design, memory systems, and multiprocessing. Each lecture includes detailed notes, diagrams, and examples to support your learning journey.
Companion Guide for Practicals
Students' Guide to Practicals on Computer Architecture
Hands-on practical series to complement the lecture series, providing practical experience in processor microarchitecture and memory systems using Verilog. Students build their own processors and implement memory hierarchy with caching.
Lecture Notes
Click on any lecture to view the detailed notes and diagrams.
Foundations
Computer Abstractions
By Dr. Isuru Nawinne
Introduction to the lecture series on Computer Architecture. This lecture introduces the fundamental concepts of computer system abstractions and the relationship between hardware and software.
Technology Trends
By Dr. Isuru Nawinne
This lecture covers the historical development of computer technology, Moore's Law, technology scaling trends, the power wall problem, the shift to multi-core processors, and how programs are compiled and executed in computer systems.
Understanding Performance
By Dr. Isuru Nawinne
This lecture provides a comprehensive exploration of performance concepts in computer systems, including response time, throughput, CPU time, clock cycles, CPI (Cycles Per Instruction), and Amdahl's Law.
Programming Concepts
Introduction to ARM Assembly
By Dr. Kisaru Liyanage
This lecture provides an introduction to ARM Assembly language programming, and covers the core concept of computer instructions. By Dr. Kisaru Liyanage.
Number Representation and Instruction Encoding
By Dr. Kisaru Liyanage
This lecture covers the number representation in an ARM CPU, and introduces data processing instructions for arithmetic and logic operations.
Branching
By Dr. Kisaru Liyanage
This lecture introduces branch instructions and flow control in an ARM Assembly programs.
Function Call and Return
By Dr. Kisaru Liyanage
This lecture covers function calling conventions in ARM, and stack management.
Memory Access
By Dr. Kisaru Liyanage.
This lecture covers loading data from memory, storing data to memory, and the build process of an assembly program.
Processor Architecture
Microarchitecture and Datapath
By Dr. Isuru Nawinne
This lecture introduces processor microarchitecture, focusing on implementing the MIPS ISA through hardware design. The lecture covers MIPS instruction types, basic digital logic review, datapath construction, and single-cycle processor design.
Processor Control
By Dr. Isuru Nawinne
This lecture covers the design of the control unit for a MIPS processor, with specific focus on generating ALU control signals through a two-stage approach. The lecture builds upon the datapath elements covered previously and demonstrates how control signals are generated from instruction opcodes and function fields.
Single-Cycle Execution
By Dr. Isuru Nawinne
This lecture completes the single-cycle MIPS processor design by analyzing control signals for all instruction types (R-type, Branch, Load, Store, Jump), introduces timing analysis with delay values, and demonstrates performance limitations that motivate multi-cycle and pipelined implementations.
Pipelined Processors
By Dr. Isuru Nawinne
This lecture introduces pipelining as a performance enhancement technique for MIPS processors, explains the concept using real-world analogies, analyzes the three types of hazards (structural, data, and control) that impede pipelining efficiency, and discusses solutions including forwarding and branch prediction.
Pipeline Analysis
By Dr. Isuru Nawinne
This lecture provides an in-depth analysis of MIPS five-stage pipeline operation, introduces pipeline registers required between stages, examines load/store instruction execution cycle-by-cycle, discusses timing and delay considerations, and includes practical exercises on clock frequency calculation and pipeline optimization.
Memory Systems
Memory Hierarchy and Caching
By Dr. Isuru Nawinne
This lecture introduces memory systems, starting with historical context and transitioning into the fundamental concepts of cache memory and memory hierarchy.
Direct Mapped Cache Control
By Dr. Isuru Nawinne
This lecture continues the discussion on cache memory, focusing on detailed read and write operations in a direct-mapped cache, handling cache misses, and introducing write policies (specifically write-through). The lecture explores how the cache controller manages different access scenarios and maintains data consistency.
Associative Cache Control
By Dr. Isuru Nawinne
This lecture continues the discussion on caching, with a focus on associative caches and performance implications.
Multi-Level Caching
By Dr. Isuru Nawinne
This lecture discusses mutli level cache hierarchy implementations, and their performance considerations.
Virtual Memory
By Dr. Isuru Nawinne
This lecture introduces the concept of virtual memory in computer systems.
Advanced Topics
Multiprocessors
By Dr. Isuru Nawinne
This lecture introduces multiprocessing and different types of multiprocessor architectures./p>
Storage and Interfacing
By Dr. Swarnalatha Radhakrishnan
This lecture covers storage and interfacing design considerations in computer systems.
About the Author
Dr. Isuru Nawinne
Senior Lecturer, Department of Computer Engineering
"I have come to believe that a great teacher is a great artist, and that there are as few as there are any other great artists. Teaching might even be the greatest of the arts since the medium is the human mind and spirit."
Dr. Isuru Nawinne received his B.Sc. degree in Engineering from the University of Peradeniya, Sri Lanka (2011), and his Ph.D. in Computer Science and Engineering from the University of New South Wales, Sydney, Australia (2016). He teaches one of the best computer architecture foundational courses in the world, with materials and delivery methods that consistently produce impressive outcomes. His students often pursue PhD research at world renowned universities, and are regularly recruited by world-leading computer architecture companies including ARM and SiFive.