Computer Organization and Design
- Instruction Set Architectures
- Representing Instructions on the computer
- Arithmetical and Logical Instructions
- Memory access instructions
- Control flow instructions
- Function call instructions
- Computer Arithmetic
- Signed and unsigned numbers
- Addition and subtraction
- Multiplication and Division
- Floating point operations
- Translating and starting a program
- Compilers, compiler optimization
- Object code generation
- Assemblers
- Linking
- Run-time execution environment
- Performance evaluation
- CPU performance and its factors
- Performance metrics
- Performance factors
- Comparing performance
- SPEC benchmarks
- Datapath and Control, and ALU design
- Single-cycle implementation
- Pipelining
- Pipelined datapath
- Pipelined control
- Pipeline hazards
- Structural
- Control
- Data hazards
- Hazard detection and resolution
- Memory Hierarchy
- Overview of SRAM and DRAM design
- Basic of caches
- Framework for memory hierarchy
- Measuring memory performance
- Peripherals and disk storage