A collection of notes and resources for the Computer Systems Organisation (CSO) course at IIIT Hyderabad.
- Computer Arithmetic
- Instruction Set Architecture
- Processor Architecture and Design
- Memory Hierarchies
- Exceptional Control Flow
- Virtual Memory
- Week 1
- Lecture 1 (24 May, Monday) – Introduction to Computer Systems
- Goal
- Course Outline
- Major Functional Units of a Computer
- Program Execution on a Computer System
- Programming Abstractions
- Instruction Set Architecture
- Lecture 2 (26 May, Wednesday) – Integer Representation
- Instruction Set Architecture (contd.)
- Data Representation (Binary Representation, Word Size, Virtual Address Space)
- Lecture 3 (28 May, Friday) – Integer Representation (contd.)
- Storage Format
- Boolean Algebra and Shift Operations
- Unsigned and Signed Integers
- Lecture 1 (24 May, Monday) – Introduction to Computer Systems
- Week 2
- Lecture 4 (31 May, Monday) – Integer Representation (contd.)
- Integer Addition
- Negation (Signed Integers)
- Integer Multiplication
- 1's Complement Representation
- Lecture 5 (02 June, Wednesday) – Instruction Set Architecture/Assembly Language Programming
- Instruction Set Architecture
- Assembly Code
- Instruction Format
- Lecture 6 (04 June, Friday) – Instruction Set Architecture/Assembly Language Programming [3.2, 3.3, 3.4.1]
- Instruction Format (contd.)
- Assembly Code Examples
- Processor State
- Data Formats
- Accessing Information: Registers
- Operand Specifiers
- Lecture 4 (31 May, Monday) – Integer Representation (contd.)
- Week 3
- Lecture 7 (07 June, Monday) – Data Movement Instructions [3.4]
- Single-Suffix Instructions
- Three-Suffix Instructions
- Stack Operations
- Example
- Lecture 8 (09 June, Wednesday) – Arithmetic and Logical Instructions [3.5]
- The
leal
Instruction - Unary and Binary Operations
- Shift Operations
- Example
- Special Arithmetic Operations
- The
- Lecture 9 (11 June, Friday) – Condition Codes [3.6]
- Condition Codes
- Conditional Instructions
- Use Cases
- Lecture 7 (07 June, Monday) – Data Movement Instructions [3.4]
- Week 4
- Lecture 10 (14 June, Monday) – Conditional Branching
- Jump Instructions
- If-Then-Else
- Lecture 11 (18 June, Friday) – Conditional Branching 2
- Pipelining
- Loops
- Do-While
- While
- For
- Switch-Case
- Lecture 10 (14 June, Monday) – Conditional Branching
- Week 5
- Lecture 12 (21 June, Monday) – Procedures
- Procedures
- Stack Frames
- Transferring Control
- Register Usage Conventions
- Procedures
- Lecture 13 (23 June, Wednesday) – Processor Architecture and Design
- Procedures (contd.)
- Recursion
- CISC vs RISC
- Y86 ISA
- Program State
- Instruction Format
- Y86 Programs
- Procedures (contd.)
- Lecture 14 (25 June, Friday) – Y86 Implementation
- Sequential Y86 Implementations
- Instruction Stages
- Fetch
- Decode
- Execute
- Memory
- Write-back
- PC update
- Hardware Structure
- Lecture 12 (21 June, Monday) – Procedures
- Week 6
- Lecture 15 (28 June, Monday) – SEQ Timing
- SEQ Timing
- SEQ Stage Implementations
- Fetch
- Decode and Write-Back
- Lecture 16 (30 June, Wednesday)
- SEQ Stage Implementations (contd.)
- Execute
- Memory
- PC Update
- Pipelined Instruction Processing
- SEQ Stage Implementations (contd.)
- Lecture 17 (02 July, Friday)
- Pipelined Y86: SEQ+
- Pipelined Y86: PIPE-
- Pipe Registers
- Naming Convention
- Select A
- Next PC Prediction
- Pipeline Hazards
- Pipelined Y86: PIPE
- Forwarding
- Lecture 18 (03 July, Saturday)
- Pipelined Y86: PIPE (contd.)
- Exception Handling
- Stage Implementations
- Pipelined Y86: PIPE (contd.)
- Lecture 15 (28 June, Monday) – SEQ Timing
- Week 7
- Lecture 19 (05 July, Monday)
- Pipelined Y86: PIPE (contd.)
- Pipeline Control Logic
- Stalling and Bubbles
- Pipelined Y86: PIPE (contd.)
- Lecture 20 (07 July, Wednesday)
- Memory Organisation
- Flat vs Hierarchical Memory
- The Memory Pyramid
- SRAM vs DRAM
- DRAM
- Structure
- Example
- Memory Organisation
- Lecture 21 (09 July, Friday)
- DRAM (contd.)
- Main Memory
- Disk Storage
- Structure
- Disk Access
- DRAM (contd.)
- Lecture 19 (05 July, Monday)
- Week 8
- Lecture 22 (12 July, Monday)
- Memory Pyramid 2.0
- Caches
- Principle of Caching
- Lecture 23 (14 July, Wednesday)
- Caches (contd.)
- Structure of the Cache
- Caches (contd.)
- Lecture 24 (16 July, Friday)
- Caches (contd.)
- Examples
- Caches (contd.)
- Lecture 22 (12 July, Monday)
- Week 9
- Lecture 25 (19 July, Monday)
- Control Flow
- Smooth and Jittery Transitions
- Exceptional Control Flow
- Why ECF
- Exceptions
- Handling Exceptions
- Classes of Exceptions
- Interrupts
- Traps and System Calls
- Faults
- Aborts
- Control Flow
- Lecture 26 (23 July, Friday)
- Process Flows
- Processes
- The Abstraction
- System Call Error Handling
- Process Control
- Process Flows
- Lecture 25 (19 July, Monday)
- Week 10
- Lecture 27 (26 July, Monday)
- Virtual Memory
- Introduction
- Physical and Virtual Addressing
- Pages and Paging
- Address Spaces
- Virtual Memory
- Lecture 28 (28 July, Wednesday)
- Virtual Memory (contd.)
- Advantages
- Address Translation
- Virtual Memory (contd.)
- Lecture 27 (26 July, Monday)