Lecture Syllabus
- Computer Technology and Abstractions - Brief history of computer technology 
- Classes of computers 
- Basic abstractions 
- Basic computer organization 
 
- Processor Design - Binary integer arithmetic 
- ALU 
- Datapath Design 
- Control Design 
 
- Instruction Set Architecture - ARM ISA 
- Addressing modes 
- Assembly language 
- Subroutines 
 
- Software - Assembler, Linkers, Compilers, Debuggers 
- Interaction between C and assembly 
- Operating systems 
 
- Input/Output - Polling 
- Interrupts 
- Bus protocols 
- Parallel and serial interfaces 
 
- Memory - Memory Types: SRAM, DRAM, SDRAM 
- DMA 
- Virtual Memory 
 
- Processor Performance - Pipelining 
- Memory hierarchy & Caches 
 
- Arithmetic - Fixed-point 
- Efficient Addition and subtraction 
- Efficient Multiplication 
- Floating-point