Computer Organization and Architecture

Instructor

Dr. Janibul Bashir

Course Overview

In this course, we'll study about the architecture and organization of computer systems. We will study about the basic processor designing, pipelining and memory systems.

Course Code

ITT303

Lectures

Online

Text Book (TB): Computer Organisation and Architecture By Smruti Ranjan Sarangi

Reference (R1): Computer Organisation and Embedded Systems By Carl Hamachar et al.

Reference (R2): Computer Organisation and Design By Patterson et al.

Video Lectures: Computer Organisation and Architecture

Announcements:

  1. Assignment 1 has been released on GradeScope [August 19, 2021].

  2. Assignment 2 has been released on Gradescope [August 30, 2021].

  3. Midterm Results have been shared with all the students [October 28, 2021].

  4. Assignment 3 has been released on Gradescope [November 03, 2021].

Course Content

Introduction (TB-Chapter 1, 3, R2-Chapter 1,2)

(02-08-2021) -- Course Introduction and Course Structure - Lecture 1

(04-08-2021) -- What is Architecture and Organization? Von Neumann model, Registers, Control and Data flow model, Assembly language, Memory and data representation - Lecture 2

(06-08-2021) -- Instruction Set Architecture and its features, ISA Components: Instructions and memory, Registers and Register architectures - Lecture 3

(09-08-2021) -- Addressing Modes: Register/Memory direct and indirect modes, AutoIncrement, Autodecrement, Immediate, PC relative, and base-index offset - Lecture 4

Language of Bits and Computer Arithmetic (TB-Chapter 2, 3, R-Chapter 1, 9)

(11-08-2021) -- Language of Bits: Number system, Decimal to Binary Conversion - Lecture 5

(13-08-2021) -- Binary Representation of signed numbers: Sign-magnitude, 1s complement, and 2s complement representation - Lecture 6

(16-08-2021) -- Binary Representation of Floating-Point numbers: IEEE754 representation, Normal and Denormal Floating-point numbers - Lecture 7

(18-08-2021) -- Computer Arithmetic: Binary Addition and Subtraction, Ripple carry adder, Carry Lookahead adder - Lecture 8

(23-08-2021) -- Computer Arithmetic: Binary Multiplication, Iterative Algorithm, and Booths Algorithm - Lecture 9

(25-08-2021) -- Computer Arithmetic: Binary Division, Restoring Division Algorithm, Non-Restoring Division Algorithm, Arithmetic operations for floating-point numbers, Truncation: Chopping, Von Neumann Rounding, and rounding - Lecture 10

RISC-V ISA and compilation flow (Reference: RISC-V online documentation)

(27-08-2021) -- RISCV ISA: Features, RV32I Verson, Instruction Fomats, and R-Format Instructions - Lecture 11

(31-08-2021) -- RISCV ISA: I-Format Instructions, S-Format Instructions - Lecture 12

(06-09-2021) -- RISCV ISA: U-Format Instructions, SB-Format Instructions, and UJ-Format Instructions - Lecture 13

(08-09-2021) -- Understanding RISCV with programs - Lecture 14

(10-09-2021) -- Compilation Flow: Compiler, Assembler, Linker and Loader - Lecture 15

Digital logic: Gates, Registers, and Memories (Reference: TB Chapter 6)

(13-09-2021) -- Digital Logic: Switching Networks, NMOS and PMOS Transistors, Logic Gates, Combinational Circuits - Lecture 16

(16-09-2021) -- Digital Logic: Combinational Logic, Sequential Logic, Registers, SRAM memories - Lecture 17

(20-09-2021) -- Digital Logic: SRAM Arrays, DRAM Memory, Refresh Logic, ROM, PROM - Lecture 18

Processor Designing (TB-Chapter 8, R-Chapter 5)

(23-09-2021) -- Processor Design: RISC V DataPath, Control Path, Fetch Stage, and Decode Stage - Lecture 19

(25-09-2021) -- Processor Design: Decode, Execute, Memory Access, and Register Writeback Stage - Lecture 20

(27-09-2021) -- Processor Design: Design of Control Path, Hardwired and Microprogrammed Control, Horizontal and Vertical Microprogramming - Lecture 21

Processor Pipelining (TB-Chapter 9, R-Chapter 6)

(11-10-2021) -- Single-Cycle and Multi-Cycle Processors, Thermal Breakdown, Performance Equation - Lecture 22

(13-10-2021) -- Processor Pipelining: Uniform Pipeline, Ideal Pipeline, Pipeline Diagram, 5-stage pipeline - Lecture 23

(15-10-2021) -- Pipeline Hazards: Data Hazard, Control Hazard, and Structural Hazard - Lecture 24

(19-10-2021) -- Handling RAW Hazards: Software Solution, Dependency-Check Logic, and Scoreboarding - Lecture 25

(25-10-2021) -- Hardware Solution for handling RAW Dependency - Data Forwarding - Lecture 26

(28-10-2021) -- Handling Control Hazards - Stalling Pipeline, Delayed Branching, Branch Prediction - Lecture 27

(01-11-2021) -- Pipeline Hazards Summary | Precise interrupts | Performance Evaluation - Lecture 28

Memory System (TB-Chapter 10)

(03-11-2021) -- Memory System: On-chip and Off-chip Memory, Principle of Locality, Need of Caches - Lecture 29

(08-11-2021) -- Cache Mapping Techniques: Direct Mapping, Fully Associative Mapping, and Set Associative Mapping - Lecture 30

(11-11-2021) -- Cache Operations, Write-back, and Write-Through Cache, Cache Misses: Compulsory, Capacity, and Conflict Misses, Cache Optimizations: Write Buffer, and Early restart - Lecture 31

(15-11-2021) -- Virtual Memory: Overlap Problem, Size Problem, Virtual Memory Map, Virtual Address, Physical Address - Lecture 32

(18-11-2021) -- Page Tables: Single Level, Two Level, and Inverted Page Table, TLB, Swap Space, MMU - Lecture 33