Computer Architecture

Course: ELL782 and SIL 618
Semester I, 2021-22
Credits: 3 (3-0-0)



Instructor: Dr. Smruti R. Sarangi

Lectures
: [Online on YouTube] We will use Teams, Impartus, Moodle, and Acadly.
                Slot M: Monday and Thursday: 5 to 6:30 PM
Course Description: This course will give an introduction to designing and programming high performance processors.

Evaluation
  1. Assembly language programming: bubble sort and recursive merge sort (15%)
  2. Branch prediction assignment (15%)
  3. 5 Quizzes (25%)
    For SIL 618: 2 quizzes (10%) and the third assignment (15%)
  4. Minor: 20%
  5. Major: 25%
Audit criteria: 40% overall.

Piazza link:  piazza.com/iit_delhi/fall2021/ell782

Teaching Assistants
    1. Akanksha Dixit
    2. Tanvi Singla

Textbook:
Main Textbook: Advanced Computer Architecture:
Advanced Computer Architecture (link to the book)
Background on processors and caches: Basic Computer Architecture (link)


Date
Slides
References
Week 1


Basic Computer Architecture
Chapter 3
Week 2

Chapter 8
Only Part I
Week 3

Chapter 9
All four parts
Week 4
Slides: Chapter 2
Chapter 2 [Advanced Architecture book]:
1. Summary of in-order pipelining [YouTube]
Week 5:
Slides: Chapter 3
2. Motivation for OOO pipelines [YouTube]
    Interaction between the architecture and OS [pdf]
3. Register renaming and precise exceptions [YouTube]
Chapter 3:
1. Fetch logic and predicting if an instruction is a branch or not. [YouTube]
Week 6:
Slides: Chapter 4
2. Branch prediction [YouTube]
3. Decode stage [YouTube]
Chapter 4:
1. Instruction renaming [YouTube]
Week 7:

2. Wakeup, select, and broadcast [YouTube]
3. Load store queue [YouTube]
Week 8:

Slides: Chapter 5
4. Instruction commit [YouTube]
Chapter 5:
1. Aggressive Speculation [YouTube]
2. Replay schemes [YouTube]
Week 9:

Chapter 7: Caches Chapter 5:
3. Compiler based techniques [YouTube]
Chapter 7:
1. Overview of caches [YouTube]
2. Cache optimizations and virtual memory [YouTube]
Week 10:

Chapter 9: Multicore Systems
3. SRAM and CAM arrays [YouTube]

Chapter 9: (Multiprocessor Systems)
Coherence, Consistency, and Memory Models
1. Parallel programming and hardware threads [YouTube]
2. Theoretical foundations: overview of coherence and consistency [YouTube]
Week 11:
Chapter 13: Security
Security:
Chapter 13
1. Cryptographic fundamentals and encryption [YouTube]
2. Hashing and secure processors [YouTube]