Class meets TTh 12:30--1:45 in CSIC 1121.
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.
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 (Appendix B): 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 2 & 3): 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 (Appendix C & 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 6): 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 Chapter 4 & Appendices E & H): 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 Friday, 20 March 2009 05:41 PM