CSE 378: Machine Organization and Assembly Language
Ben Dugan, Spring 2002
Course Outline (Subject to change)
- Introduction to architecture and organization (Chapter 1) [Week 1]
- Machines & Logic Design (Appendix B)
- General Purpose Machines (Hardware) (Ch 3.1-3.5 ;Ch 4.1-4.4) [Week 1]
- General computer structure
- Memory structures: registers, information units, addressing
- CPU components
- 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
- General Purpose Machines (Sofware) (A.1-A.4 Ch3.9) [Week 3]
- Assemblers
- Linkers
- Loaders
- Compilers
- Procedures and stacks (Chapter 3.6, Appendix A.7) [Week 4]
- Performance metrics (Chapter 2) [Week 4]
- ISA Survey: RISC, CISC, etc. (Chapter 3.12, and skim VAX ISA)
[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