Computer Architecture [UG] (ELL305)

The course is to be jointly taught by Sumantra and Kaushik Saha
This page houses the part to be covered by the first instructor, Sumantra.

[WhatsApp Group: Internal Link: IIT Delhi]


General Information

Apart from those who have to take this courses as a Program Core (PC), people are also welcome to sit through the course.

Credits: 3 (LTP: 3-0-0) [Slot E]

Schedule for Classes:

Tuesday
10:00 - 11:00
LH-325
Wednesday
10:00 - 11:00
LH-325
Friday
10:00 - 11:00
LH-325

Schedule for Examination:

Mid-Term: 16 Sep (Tue) 10:30am-12:30pm, LH-108/LH-111/LH-114/LH-121.
Please check the room number and exact seat number by logging in to https://exam.iitd.ac.in/ Please note that this mapping is visible only a few hours before the actual examination. (To be announced)

Teaching Assistants: 


Books, Papers and other Documentation

Basic Texts:

Reference Books:

Papers:

The above list is (obviously!) not exhaustive. Other reference material will be announced in the class. The Web has a vast storehouse of tutorial material on Computer Organisation/Architecture other related areas.

Lecture Schedule, Links to Material (where applicable)

Please see the link to the I Sem (Autumn) 2024-2025 offering of this course, for an idea of the approximate structure of the course.

The files for this courses are on the moodlenew and MS-Teams forums. In case the files themselves (on the MS-Teams forum) are not accessible, one can try the alternate link here: [Link]
S.No.
Topics
Lectures
Instructor
References/Notes
1
Introduction:
Basic introduction to computers, models, and memory hierarchy.
01-06
SDR
General references on the Internet, [SRS-Basic], [Patterson-CACM85]
The von Neumann and Harvard models. Instructions, memory, ALU, CPU, registers. Who addresses and access what. Instructions and data for a CPU. How does a computer boot up? The role of the BIOS/UEFI. How does a computer identify instructions and data. Given data, how does it identify signed/unsigned numbers, fixed and floating point numbers.
25 Jul (Wed) {lecture#SDR-01} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_intro1_20aug24.pdf
The puzzling question of the range of numbers represented in a fixed point system. A 4-bit example. Unsigned representation. Signed representations: signed-bit representation, one's complement representation for negative integers, two's complement representation for negative integers. The pitfalls of finite wordlength effects: under-flow and over-flow, extreme cases of disasters.
29 Jul (Tue) {lecture#SDR-02} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_intro2_29jul25.pdf
How does a computer boot up? (contd.) Where does an Operating System come in? Miscellaneous concepts.
30 Jul (Wed) {lecture#SDR-03} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_intro3_30jul25.pdf
Modalities for I/O, memory-mapped and direct I/O, ROM.
A gentle introduction to RISC, with history, technological developments, and basic features.
01 Aug (Fri) {lecture#SDR-04} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_intro4_01aug25.pdf
A gentle introduction to RISC (contd): RISC pipelining. A simple example with 2-stage (general instructions) and 3-stage pipelines (LOAD/STORE). Structural, Data and Control hazards, and some hardware and software solutions.
05 Aug (Tue) {lecture#SDR-05} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_intro5_05aug25.pdf
A gentle introduction to RISC (contd): the optimised delayed branch.
Representation of floating point numbers: the IEEE 754 representation.
06 Aug (Wed) {lecture#SDR-06} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_floating_06aug25.pdf
2
Instruction Set Fundamentals: Software and Hardware
The SimpleRISC Instruction Set
07-11
SDR
[SRS-Basic] Chapter 3: Assembly Language. Section 3.3.
The SimpleRISC hardware: 15 general-purpose registers including the stack pointer sp, and the special-purpose return address register ra. A special register for programmer-inaccessible flags. The 21-instruction SimpleRISC instruction set.
1. Register Transfer Instruction mov
2. Arithmetic Instructions add, sub, mul, div, mod, cmp.
3. Logical Instructions and, or, not.
4. Shift Instructions lsl, lsr, asr.
5. Memory Access Instructions ld, st.
6. Unconditional Branch Instruction b.
7. Conditional Branch Instructions beq, bgt.
08 Aug (Fri) {lecture#SDR-07} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_SimpleRISC1_08aug25_12aug25_14aug25.pdf
8. Subroutine instructions: call and ret.

Taking a step back, and examining the basic philosophy (`taseer') of instruction set design: a programming language, encoding it in hardware, and lastly, designing the circuits to get it working. It is not a direct mathematical optimisation problem!

9. The nop instruction
12 Aug (Tue) {lecture#SDR-08} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_SimpleRISC1_08aug25_12aug25_14aug25.pdf
---
13 Aug (Wed) {lecture#SDR-xx}
---
[No class]
A non-trivial example of programming in SimpleRISC assembly language: a recursive subroutine to compute the factorial of a number. The basic C code, followed by a SimpleRISC assembly version.

Getting back to instruction set design: opcodes, and tweaks. Inserting a 32-bit number into a register.

Encoding the SimpleRISC instruction set:
1. Encoding 0-address instructions
14 Aug (Thu) {lecture#SDR-09} 10:00am-11:00am
SDR
[hybrid lecture]
moodlenew.iitd.ac.in: video_SimpleRISC_14aug25.mp4, lecture_notes_SimpleRISC1_08aug25_12aug25_14aug25.pdf
2. Encoding 1-address instructions.
Encoding 3-address instructions.
19 Aug (Tue) {lecture#SDR-10} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_SimpleRISC1_19aug25.pdf
Encoding cmp, not and mov instructions.

Encoding the ld and st instructions.
20 Aug (Wed) {lecture#SDR-11} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_SimpleRISC3_20aug25.pdf
3
Arithmetic Circuits
Addition, Multiplication, Division
11-14
SDR
[SRS-Basic] Chapter 8: Computer Arithmetic. Section 8.1.3.
Starting with half-adders.
The concept of a (propagation) delay: as clear as...mud. `It's a jungle out there'. It clearly depends on the implementation.
20 Aug (Wed) {lecture#SDR-11} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_arith1_20aug25.pdf
The effect of variable propagation delays along parallel paths. Static Hazards: characterisation, removal, and...cases where they can be useful!
The consensus on standardisation of propagation delays: `gate-level delay'.
A full adder.
22 Aug (Fri) {lecture#SDR-12} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_arith2_22aug25.pdf
The advantages and disadvantages of a Ripple-Carry Adder.
Block operation. O. J. Bedrij's `Carry Select Adder': faster addition at the cost of more hardware. Two stages of computation, and the overall O(\sqrt(n)) time complexity.
The Carry Look-Ahead Adder: the irritating C_{out} computation takes two gate delay levels, with multi-input AND and OR gates.
24 Aug (Sun) {lecture#SDR-13} 08:00am-09:00am
SDR
[Online-only class: 08:00am-09:00am]
(Make-up class for the missed 13 Aug (Wed) class)
moodlenew.iitd.ac.in: video_arith3_24aug25.mp4, lecture_notes_arith3_24aug25.pdf
This should be O(1)...however, fan-in restrictions! Derivation of the O(log n) time complexity: the two-phase design.
26 Aug (Tue) {lecture#SDR-14} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_arith4_26aug25.pdf
4
Processor Design
Instruction Processing Pipeline
14-19
SDR
[SRS-Basic] Chapter 9: Processor Design. Section 9.2.
The 5 units of a SimpleRISC instruction pipeline. A `Register File'. The concept of a `bus'.
26 Aug (Tue) {lecture#SDR-14} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_processor_design1_26aug25.pdf
Control and Data paths. A nice hardware hack: a biphasic clock. Design of the following units: Fetch Unit, Operand Fetch Unit.
27 Aug (Wed) {lecture#SDR-15} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_processor_design2_27aug25.pdf
Reading the registers.
The Execute Unit.
The ALU.
29 Aug (Fri) {lecture#SDR-16} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_processor_design3_29aug25.pdf
The ALU (contd).
The Memory access Unit.
The Register Write-Back Unit.
Putting it all together!
30 Aug (Sat) {lecture#SDR-17} 06:00am-07:00am
SDR
[Online-only class: 06:00am-07:00am]
moodlenew.iitd.ac.in: video_processor_design4_30aug25.mp4, lecture_notes_processor_design4_30aug25.pdf
A step back, to understand what op1 and op2 are, in the SimpleRISC processor design.
The hardwired control unit.
Microprogramming: the 1995 Intel Pentium story. An old 1960s concept! Plus and minus points.
31 Aug (Sun) {lecture#SDR-18} 06:00am-07:00am
SDR
[Online-only class: 06:00am-07:00am]
(Make-up class for the 10 Sep (Wed) class to be missed)
moodlenew.iitd.ac.in: video_processor_design5_31aug25.mp4, lecture_notes_processor_design5_31aug25.pdf
Microprogramming in a new avatAr. `flashing' of a processor/`firmware update'. Three manifestations of the same: the Intel story (translation table), SoC and Custom diagnostic routines such as BIST. An important concept in microprogrammed processors: the crucial role of a bus.
01 Sep (Mon) {lecture#SDR-19} 07:30pm-08:30pm
SDR
[Online-only class: 07:30pm-08:30pm]
(Make-up class for the 02 Sep (Tue) class to be missed)
moodlenew.iitd.ac.in: video_processor_design6_pipelining1_01sep25.mp4, lecture_notes_processor_design6_01sep25.pdf,
5
Principles of Pipelining
Basic Concepts of Pipeline, for SimpleRISC
19-21
SDR
[SRS-Basic] Chapter 10: Principles of Pipelining. Sections 10.2
The 5-stage SimpleRISC pipeline, with `latches' in between stages. Basic concept of an `instruction packet'. The IF and OF stages, with the instruction packet.
01 Sep (Mon) {lecture#SDR-19} 07:30pm-08:30pm
SDR
[Online-only class: 07:30pm-08:30pm]
(Make-up class for the 02 Sep (Tue) class to be missed)
moodlenew.iitd.ac.in: video_processor_design6_pipelining1_01sep25.mp4, lecture_notes_pipelining1_01sep25.pdf
---
02 Sep (Tue) {lecture#SDR-xx} 10:00am-11:00am
---
[No class]
---
03 Sep (Wed) {lecture#SDR-xx} 10:00am-11:00am
---
[No class]
The EX, MA and RW stages with the instruction packet.

Hazards and pipeline diagrams (space-time diagrams).
07 Sep (Sun) {lecture#SDR-20} 08:00am-09:00am
SDR
[Online-only class: 08:00am-09:00am]
(Make-up class for the 03 Sep (Wed) class to be missed)
moodlenew.iitd.ac.in: video_pipelining2_07sep25.mp4, lecture_notes_pipelining2_07sep25.pdf
Two ways to implement a `bubble'. `Forwarding', to make matters a little efficient.
Small notes: interrupts, privileged instructions, `green computing' is an oxymoron! multiple issue in-order pipelines: EPIC/VLIW, OOO (out-of-order) pipelines. Register renaming.
09 Sep (Tue) {lecture#SDR-21} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_pipelining3_09sep25.pdf
---
10 Sep (Wed) {lecture#SDR-xx} 10:00am-11:00am
---
[No class]
Mid-Term
16 Sep (Tue) 10:30am-12:30pm, LH-108/LH-111/LH-114/LH-121.
SDR
Please check the room number and exact seat number by logging in to https://exam.iitd.ac.in/ Please note that this mapping is visible only a few hours before the actual examination.
6
Caches
Basic Concepts of Caches, for RISC Pipelines
22-24
SDR
[HP5, HP6] Cache Basics: Appendix B: Review of Memory Hierarchy. Sections B.1 and B.2 Multiprocessor Cache Coherence: Chapter 5: Thread-Level Parallelism. Sections 5.1 and 5.2
Getting the strategy `write': write-back and write-through. write-allocate and no-write-allocate.
Multi-processor Cache Coherence: The Write-Invalidate Protocol, a snooping protocol.
11 Nov (Tue) {lecture#SDR-22} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_cache1_11nov25.pdf
The Write Invalidate Protocol, in all its gory details (contd).
12 Nov (Wed) {lecture#SDR-23} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_cache2_12nov25.pdf
A loaded numerical involving split and unified cache, involving the average miss rate, and the average memory access time.
14 Nov (Fri) {lecture#SDR-24} 10:00am-11:00am
SDR
moodlenew.iitd.ac.in: lecture_notes_cache3_14nov25.pdf

[Internal Link: IIT Delhi]


Examinations and Grading Information

The marks distribution is as follows (out of a total of 100):
Mid-Term
40 (SDR)
End-Term
40 (KS)
Mini-Project
20 (KS)
Grand Total
100

Attendance Requirements:

Attendance requirements: according to the IITD policy for Semesters
Illness policy: illness to be certified by a registered medical practioner.
Attendance in Examinations is Compulsory.


Course Feedback

Link to Course Feedback Form
Tapan K. Gandhi, Sumantra Dutta Roy, Subrat Kar Department of Electrical Engineering, IIT Delhi, Hauz Khas,
New Delhi - 110 016, INDIA. tgandhi@ee.iitd.ac.in, sumantra@ee.iitd.ac.in, subrat@ee.iitd.ac.in