CMSC 411
Computer Systems Architecture

CMSC 411






Class meets TTh 11:00--12:15 in CSIC 2107.


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 newsgroup at csd.cmsc411 - only visible from within UMD


Name Email Phone Office Office Hours
Alan Sussman


AVW 4145 Tu 2-3PM
W 3-4PM
Mustafa Bilgic


AVW 1112 M 1-3PM
W 10-11AM

Tentative 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, 13 September 2004 06:06 PM