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

Mon, Wed, Thur, Fri


Reference Material for the course

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

Text Book (TB 2): Digital Design and Computer Architecture By Harris et al.

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:

Course Content

Computer Organization and Architecture: The science and art of designing, selecting, and interconnecting hardware components and designing the hardware/software interface to create a computing system that meets functional, performance, energy consumption, cost, and other specific goals.

Introduction to Computer Architecture (TB-Chapter 1, 3, R2-Chapter 1,2) 

(23-08-2024) -- [Lecture 1] Course Introduction and Course Structure -  [Video Lecture]

(27-08-2024) -- [Lecture 2] Levels of Transformation, Cross Compilation[Video Lecture]

(27-08-2024) -- [Lecture 3] Current research and future directions in computer architecture.

[Asssignment 1] - Due Date 10 September 

(28-08-2024) -- [Lecture 4]  What is Architecture and Organization? Computing models: Von Neumann model, Register Based, Registers, Computer architectures  -  [Video Lecture]

H/W: Learn about the express Memory

Summarize the paper "Memory Performance Attacks: Denial of Memory Service in Multi-Core Systems"

(29-08-2024) -- [Lecture 5]  Instruction set Architecture and its components, Microarchitecture and its components  -  [Video Lecture]

(30-08-2024) -- [Lecture 6]  Addressing modes: Register/Memory direct and indirect modes, AutoIncrement, Autodecrement, Immediate, PC relative, and base-index offset  -  [Video Lecture]

Digital logic: Gates, Registers, and Memories (Reference: TB1 Chapter 6, TB2 Chapter 1,2,3,5) 

(02-09-2024) -- [Lecture 7] Digital Logic: Switching Networks, NMOS and PMOS Transistors  -  [Video Lecture]

(03-09-2024) -- [Lecture 8] Digital Logic: General nMoS logic and PSeudo nMOS Logic  -  [Video Lecture]

(04-09-2024) -- [Lecture 9] Digital Logic: Tristate buffer, Power consumption

(09-09-2024) -- [Lecture 10] Combinational Circuits such as Multiplexer, Decoder, Logic using multiplexers  -  [Video Lecture]

(10-09-2024) -- [Lecture 11] Combinational Circuits: Programmable Logic Array, Introduction to Sequential Circuits

(11-09-2024) -- [Lecture 12] Sequential Circuits (SC): Need of SC, Memory Elements, Flip Flops [Video Lecture]

(12-09-2024) -- [Lecture 13] Sequential Circuits (SC): Timing of Sequential Circuits, Introduction to memory arrays [Video Lecture]

(16-09-2024) -- [Lecture 14] Design of SRAMs, DRAMs, ROM and PROM  [Video Lecture]

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

(17-09-2024) -- [Lecture 15] Introduction to RISC V ISA and Base Integer Version[Video Lecture]

(18-09-2024) -- [Lecture 16] RV32I Instructions: R/I Format instructions -  [Video Lecture1][Video Lecture2]

(23-09-2024) -- [Lecture 17] RV32I instructions: Load and S Format instructions -  [Video Lecture]

(30-09-2023) -- [Lecture 18] RV32I instructions:  - SB/UJ format instructions, RISCV assembly programs -  [Video Lecture]

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

(07-10-2024) -- [Lecture 19]  -- Von Neumann Model of Computation for a Processor Design

(09-10-2024) -- [Lecture 20]  -- Processor Design: RISC V  DataPath, Control Path, Fetch Stage, and Decode Stage  - [Video Lecture]

(21-10-2024) -- [Lecture 21] -- Processor Design: Execute, Memory Access, and Register Write-back Stage - [Video Lecture]

(23-10-2024) -- [Lecture 22] -- Processor Design: Design of Control Path, Hardwired and Microprogrammed Control, Horizontal and Vertical Microprogramming - [Video Lecture]

(23-10-2024) -- [Lecture 23] -- Single-Cycle and Multi-Cycle Processors, Thermal Breakdown, Performance Equation - [Video Lecture]

(24-10-2024) -- QUIZ

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

(25-10-2024) -- [Lecture 24] -- Processor Pipelining: Uniform Pipeline, Ideal Pipeline, Pipeline Diagram, 5-stage pipeline - [Video Lecture]

(25-10-2024) -- [Lecture 25] -- Pipeline Hazards: Data Hazard, Control Hazard, and Structural Hazard - [Video Lecture]

(28-10-2024) -- [Lecture 26] -- Handling RAW Hazards: Software Solution, Dependency-Check Logic, and Scoreboarding - [Video Lecture]

(28-10-2024) -- [Lecture 27] -- Handling Control Hazards - Stalling Pipeline, Delayed Branching, Branch Prediction - [Video Lecture]

(29-10-2024) -- [Lecture 28] -- Pipeline Hazards Summary | Precise interrupts | Performance Evaluation - [Video Lecture]

Memory System (TB-Chapter 10)

(06-11-2024) -- [Lecture 29] -- Introduction to Memories and Memory Interleaving: Channels, Ranks, Banks and Memory Arrays [Video Lecture]

(06-11-2024) -- [Lecture 30] -- Memory System: On-chip and Off-chip Memory, Principle of Locality, Need of Caches -  [Video Lecture][Video Lecture]

Assignment 2: Design a program that internally executes some other programs (given as input) and verifies the spatial and temporal locality of the executed program.

(07-11-2024) -- [Lecture 31]  -- Cache Mapping Techniques: Fully Associative, Direct Mapping, and Set Associative - [Video Lecture]

(08-11-2024) -- [Lecture 32] -- Cache Operations, Write-back, and Write-Through Cache, Cache Misses, Cache Optimizations [Video Lecture]

Memory System (TB-Chapter 10)

(11-11-2024) -- [Lecture 33]  -- Introduction to Multiprocessors, Asymmetric and Symmetric Multiprocessing, Loosely Coupled and Tightly coupled multiprocessors, Multicores - [Multiprocessors] 

(12-11-2024) -- [Lecture 34]  -- Flynn's classification: SISD, SIMD, MISD, MIMD, Multithreading: coarse-grained, fine-grained, and simultaneous multithreading - [Video Lecture] 

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

(Self Reading 1) --  Representation of Numbers in Decimal, Octal, Hexadecimal and Binary, signed binary number representation, Floating Point Numbers[Video Lecture1] [Video Lecture2][Video Lecture3]

(Self Reading 2) -- Computer Arithmetic: Binary Addition and Subtraction, Ripple carry adder, Carry Lookahead adder - [Video Lecture]

(Self Reading 3) --  Computer Arithmetic: Multiplication of Binary Numbers, Iterative Algorithm, Booths Algorithm - [Video Lecture]

(Self Reading 4) --  Computer Arithmetic: Binary Division, Restoring Division Algorithm, Non-Restoring Division Algorithm [Video Lecture]

(Self Reading 5) --  Arithmetic operations for floating-point numbers, Truncation: Chopping, Von Neumann Rounding, and rounding - [Video Lecture]

(Self Reading 6) --  Compilation Flow: Compiler, Assembler, Linker and Loader [Video Lecture]

(Self Reading 7)  -- Virtual Memory: Overlap Problem, Size Problem, Virtual Memory Map, Virtual Address, Physical Address, Segmentation - [Virtual Mem] [Segmentation]

(Self Reading 8)  -- Paging, Page-Tables - Single level, multi-level and Inverted, Translation LookAside Buffer - [Paging]