Class meets TTh 3:30--4:45 in CSIC 3120.
CMSC 311 and CMSC 330 with a grade of C or better.
Changes (correcting errors, clarifying ambiguities, etc.) to the web pages, projects,
due dates, etc. will be placed on the recent
changes web page.
Read the class forum at
https://forum.cs.umd.edu , under the Spring 2006 Classes, CMSC
Schedule of topics
- Unit 1 (Chapter 1): Computer design and evaluation
- What do we mean by computer performance?
- How do we measure it?
- Unit 2 (Chapter 2): Computer instruction sets
- How are instruction sets designed?
- How does design influence performance?
- Unit 3 (Appendix A): Instruction pipelining
- What is pipelining?
- What kinds of overhead are there in pipelining?
- How much speedup do we get?
- What are structural hazards, data hazards, and control hazards?
- What techniques are used to reduce stalls?
- How do we handle exceptions?
- How do we handle long instructions, such as floating point arithmetic?
- Unit 4 (Chapters 3 & 4): Instruction-level parallelism
- How can we take advantage of instructions that can be executed independently of others?
- How can we do major rearrangements, in hardware and software to
allow instructions to execute simultaneously?
- How can we execute instructions in parallel in the presence of
- Unit 5 (Chapter 5): Memory hierarchy
- How big should memory units be?
- How do we decide what to put in memory?
- If memory is full, how do we decide what to remove?
- How do we find something in memory?
- How do we handle writes?
- Unit 6 (Chapter 7): Storage systems
- How are input/output units such as disks and tapes organized?
- How do buses connect storage devices?
- How are file systems designed?
- Unit 7 (selections from Chapters 6 and 8): Networks & Parallel Computing
- Why parallel computing?
- What are message passing vs. shared memory architectures?
- How are computers interconnected?
- What are the limits of parallelism?
- What communication patterns are common?
Last updated Monday, 30 January 2006 05:18 PM