CMSC 411
Computer Systems Architecture

CMSC 411






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 , under the Spring 2006 Classes, CMSC 411 link


Name Email Phone Office Office Hours
Alan Sussman


AVW 4145 M 2-3PM
Tu 11AM-noon
W 4-5PM

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 branches?
  • 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