Introduction to computer systems: General overview of computer abstraction and technology. Instruction set architecture: instruction type, format, operand, addressing mode. Computer arithmetic: addition, subtraction, multiplication and division. Floating point representation. Basics of microprocessor: pipeline, datapath and control. Data and control hazards. Parallelism: Instruction Level Parallelism (ILP). Memory hierarchy: Exploiting locality using
cache memory, virtual memory. I/O and storage: performance of disk and file systems.
Write program in assembly language (MIPS ISA) - compare performance between several implementations of a computer program.
Analyze processor performance for different implementation strategies: e.g., single vs. multi cycle, pipe lined vs. non pipe lined execution.
Simulate and compare performance of cache memory, compare caches with different configuration.
Analyze basic I/O operation and their performance.