Lecture Syllabus

  1. Computer Technology and Abstractions

    1. Brief history of computer technology

    2. Classes of computers

    3. Basic abstractions

    4. Basic computer organization

  2. Processor Design

    1. Binary integer arithmetic

    2. ALU

    3. Datapath Design

    4. Control Design

  3. Instruction Set Architecture

    1. ARM ISA

    2. Addressing modes

    3. Assembly language

    4. Subroutines

  4. Software

    1. Assembler, Linkers, Compilers, Debuggers

    2. Interaction between C and assembly

    3. Operating systems

  5. Input/Output

    1. Polling

    2. Interrupts

    3. Bus protocols

    4. Parallel and serial interfaces

  6. Memory

    1. Memory Types: SRAM, DRAM, SDRAM

    2. DMA

    3. Virtual Memory

  7. Processor Performance

    1. Pipelining

    2. Memory hierarchy & Caches

  8. Arithmetic

    1. Fixed-point

    2. Efficient Addition and subtraction

    3. Efficient Multiplication

    4. Floating-point