CSE 378: Machine Organization and Assembly Language
Ben Dugan, Winter 2001
Course Outline (Subject to change)
- Introduction to architecture and organization (Chapter 1) [Week 1]
- Instruction set and assembly language (Chapter 3.1-3.7; Chapter 4.1-4.4)
[Week 1]
- General computer structure
- Memory structures: registers, information units, addressing
- CPU: instructions
- Example architecture: The MIPS R2000 (Chapter 3 and Appendix A) [Week 2]
- Introduction to SPIM
- Overview of MIPS: registers, data types, addressing
- Arithmetic-logical instructions; load and store; branches
- Instruction encoding
- Procedures and stacks (Chapter 3.6, Appendix A.7) [Week 3]
- RISC vs. CISC (Chapter 3.8, Appendix E) [Week 4]
- Performance metrics (Chapter 2) [Week 4]
- Processor implementation. Single cycle implementation (Chapter 5)
[Week 5]
- Data path.
- Multi-cycle implementation. Control.
- Control alternative: microprogramming
- Processor implementation. Pipelining (Chapter 6) [Week 6,7]
- Data path.
- Data hazards. Forwarding.
- Control hazards. Delayed branching. Branch prediction
- Memory hierarchy. Caches (Chapter 7.1-7.2) [Week 8]
- Cache organization.
- Cache write policies.
- Memory hierarchy. Virtual Memory (Chapter 7.3-7.7) [Week 9]
- Multiprogamming.
- Paging.
- Virtual address translation: page tables and TLBs.
- Input-Output (Chapter 8) [Week 10]
- I/O architecture. Buses.
- I/O devices. Disks
- I/O control
- Possibly one or more of the following topics:
- Floating-point. Arithmetic and functional units (Chapter 4)
- Parallel machines (Chapter 9)
- Networks
dugan@cs.washington.edu