Computer Architecture — Lecture Notes and Teaching Resources
This page provides a collection of Computer Architecture lecture notes, slides, tutorials, project material, examination resources, and related teaching resources. The material has been made available as an open educational resource for students, teachers, researchers, and independent learners studying computer organization and architecture.
The resources cover the organization and design of computer systems from digital logic and machine-level data representation through processor organization, memory hierarchy, input-output systems, and parallel processing. The material can be useful for undergraduate Computer Science and Engineering courses as well as for self-study and revision.
About These Materials
These lecture materials were developed and used during teaching of Computer Architecture to B.Tech. Computer Science and Engineering students at the Indian Institute of Technology Jodhpur during the academic sessions 2012–13, 2013–14, and 2014–15. They are presented here as a structured collection of learning resources rather than simply as archived course material.
The collection includes lecture slides, tutorials, quizzes, examination resources, project material, and supporting documents. Some resources retain their original course-specific context because they were developed for actual teaching and assessment.
Course Overview
Prerequisites
- Computer Fundamentals and C Programming
- Data Structures and Algorithms
- Basic knowledge of discrete mathematics is desirable.
Course Description
Computer Architecture introduces the fundamental principles behind the organization and design of computer systems. The course examines how digital logic, data representation, instruction sets, processors, memory systems, input-output mechanisms, and parallel processing work together to form a complete computing system.
The material progresses from digital logic and machine-level representation to processor organization, instruction execution, memory hierarchy, cache organization, virtual memory, I/O systems, communication mechanisms, and parallel processing.
Learning Outcomes
- Understand fundamental concepts of computer organization and architecture.
- Design and analyze basic combinational and sequential logic circuits.
- Understand data representation and arithmetic operations at machine level.
- Analyze instruction set architecture, addressing modes, and processor organization.
- Understand memory hierarchy, cache organization, virtual memory, and memory performance.
- Understand I/O organization, interrupts, buses, protocols, and DMA.
- Understand fundamental concepts of multiprocessors and parallel processing.
- Apply computer architecture concepts to the analysis and design of computing systems.
Lecture Notes and Course Modules
The following modules organize the available lecture notes and teaching resources by major areas of Computer Architecture.
Module 1: Digital Logic and Digital Systems
Topics Covered
- History of computer architecture
- Combinational and sequential logic circuits
- FPGA as a building block
- Multiple representations and layers in hardware design
- Hardware design tools and languages including Verilog and VHDL
- Physical constraints including gate delays, power, fan-in, and fan-out
Learning Resources
- Syllabus
- Motivation
- Introduction to Computer Organization — Lecture Slides
- Logic Circuits and Minimization — Lecture Slides
- Architecture Design Methodology — Lecture Slides
- Gate Level and Word Level Design — Lecture Slides
- Tutorial Sheet #1: Basic Concepts
- Tutorial Sheet #2: Design of Combinational and Sequential Circuits — Solution
- Quiz #1 Questions
- Quiz #1 Solution
Module 2: Machine-Level Representation of Data
Topics Covered
- Data units: bits, bytes, and words
- Number systems and number bases
- Fixed-point and floating-point representation
- Signed numbers and two's complement representation
- Non-numeric data representation
- Character and array representation
Learning Resources
Module 3: Assembly-Level Machine Organization
Topics Covered
- Von Neumann machine and basic computer structure
- Control unit and instruction execution
- Instruction sets and addressing modes
- Assembly language and machine language formats
- Subroutine calls, I/O, and interrupts
- Memory segments including stack, heap, and static areas
- Multiprocessors and Flynn's taxonomy
Learning Resources
- Processor-Level Design — Lecture Slides
- Instruction Set Architecture and Assembly Language Programming — Lecture Slides
- Microprocessor History — Article
- Hardwired and Microprogrammed Control — Lecture Slides
- Tutorial Sheet #4: Bus Architecture, Instruction Set and Assembly Language
- Latex Template for Semester Project Synopsis
- Latex Template for Semester Project Report
- List of Semester Projects Allotted
Module 4: Memory System Organization and Architecture
Topics Covered
- Storage systems and memory technologies
- Memory hierarchy and temporal and spatial locality
- Main memory organization and operations
- Latency, cycle time, bandwidth, and interleaving
- Cache memories, mapping, block size, replacement, and store policies
- Multiprocessor cache consistency and synchronization
- Atomic memory operations
- Virtual memory, page tables, and TLB
- Fault handling and reliability
- Error coding, compression, and data integrity
Learning Resources
Module 5: Interfacing, Communication and Parallel Processing
Topics Covered
- I/O types, handshaking, buffering, and interrupts
- External storage systems and drives
- Interrupt structures and acknowledgement
- Buses, protocols, and DMA
- Remote access and communication layers
- Multimedia support
- RAID architectures
- Advanced processors and parallel processing
Learning Resources
Additional Course Resources
Projects
Examination Resources
About These Lecture Notes
These Computer Architecture materials are part of a broader collection of open educational resources developed from Prof. K. R. Chowdhary's experience in teaching Computer Science and Engineering. They are intended to support students, teachers, and independent learners who wish to study fundamental and advanced concepts of computer organization and architecture.
The materials may be used for classroom teaching, independent study, revision, tutorials, assignments, and examination preparation. Because some documents were originally prepared for specific courses and academic sessions, learners should use the topic descriptions on this page as a guide to the organization of the available resources.
Related Computer Science Learning Resources
Additional lecture notes and teaching resources in Computer Science and Artificial Intelligence are available through this website.