Computer Architecture Logo

Computer Architecture

Course Materials, Lecture Slides, Tutorials and Examination Resources

Indian Institute of Technology Jodhpur

Course Information

This course was taught to B.Tech. Computer Science and Engineering students at Indian Institute of Technology Jodhpur during the academic sessions: 2012-13, 2013-14, 2014-15.

Prerequisites

Course Description

Computer Architecture introduces the fundamental principles behind the organization and design of modern computer systems. The course covers digital logic design, machine-level representation, instruction set architecture, memory hierarchy, input-output organization and parallel processing concepts.

Course Outcomes

Course Modules

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 (Verilog/VHDL)
  • Physical constraints: gate delays, power, fan-in and fan-out

Learning Resources

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: characters and arrays

Learning Resources

Module 3: Assembly Level Machine Organization

Topics Covered

  • Von Neumann machine: basic 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: stack, heap and static areas
  • Multiprocessors and Flynn's taxonomy

Learning Resources

Module 4: Memory System Organization and Architecture

Topics Covered

  • Storage systems and memory technologies
  • Memory hierarchy and importance of 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 and Communication

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