ENGR 851 - Advanced Microprocessor Architectures - Fall 2013
Instructor: Seapahn Megerian, Ph.D.
San Francisco State University
School of Engineering
ENGR 851 course bulletin
Contact Info and Office Hours:
Email: | engr851 at seapahn.us |
Office: | SCI 170A |
Office hours: | Tuesdays after lecture and by appointment. |
Time and Place
Lecture, Tuesday, 18:10-20:55, HH 201
Textbook
- Computer Architecture, A Quantitative Approach, 5th Edition
- By John L. Hennessy and David A. Patterson
- Morgan Kaufmann; 5 edition (September 30, 2011)
- ISBN-10: 012383872X
- ISBN-13: 978-0123838728
Course Description:
Engr 851 provides an overview of advanced topics in microprocessor design and computer architectures. In addition to delving into a wide array of traditional processor design issues such as computation models, instruction sets, memory organization, pipelining, speculative and out of order execution, superscalar, VLIW, and EPIC, class discussions will often revolve around current challenges, trends, and hot topics from both industrial and academic domains. The goal of the course is to present in-depth discussions in historic and state of the art architectures, while at the same time encouraging the exploration of options in the coming generations of post-"Moore's Law" age of computer design. Highly parallelized and massively multi-core (with hundreds, thousands, and even larger number of cores), the evolution of large-scale flash memories, and the ever increasing density of complex systems-on-chip are some of the factors that demand fundamental changes in how computer architects have been approaching new design problems. Students are expected to have taken an undergraduate level computer architecture course. Prior knowledge of operating systems, parallel programming, and multi-threading will be very helpful but is not required.
Prerequisites
- Engr 456 - Computer Systems
- Engr 356 - Basic Computer Architecture
- Operating systems knowledge recommended.
- Background and relevant material will be reviewed as deemed necessary by the instructor.
Grading
10% - Class participation
40% - Midterm
50% - Final exam
Tentative Course Schedule:
- 08-27: Introductions, course overview, system-level performance metrics
- 09-03: Linux fundamentals needed for this course; SimpleScalar
- 09-10: RISC, CISC, EPIC, SuperScalar, and VLIW
- 09-17: Pipelining and hazards
- 09-24: Superscalar and VLIW continued
- 10-01: Register renaming, branch prediction, and speculative execution.
- 10-08: Multitasking vs multi-threading
- 10-15: More multithreading, Midterm review, sample problems
- 10-22: Midterm - Take-home
- 10-29: Memory hierarchies
- 11-05: Memory, caching, and analysis
- 11-12: Caching with multi-cores and multi-processors
- 11-19: Virtual Memory
- 11-26: No class (Fall recess)
- 12-03: Arm Processor Architectures
- 12-10: Final exam review
The sections below will be regularly updated throughout the course so check back often!
Announcements
- Background topics - Things that you should already be familiar with.
- The Computer Architecture Page - A great general source of information on tools, software, books, and papers.
- Installing SimpleScalar on 64-bit Ubuntu 12.04.
- More detailed instructions for installing SimpleScalar and GCC cross-compiler
- From the instructions, you'll need:
- Hint: In the instructions above, if you copy-paste the commands directly, they may not work. Note that "–host=$HOST" for example should be using the minus sign (-). The text in the instructions is using a special character that does not seem to be '-' (looks like it though).
- Reading Assignments so far:
- Appendix A - Instruction Set Principles
- Appendix C - Pipelining
- Chapter 3 - Instruction Level Parallelism
- Lecture Notes: 8-27 Intro (thanks Anurag!)
- Lecture Notes: 9-03 Linux and SimpleScalar (thanks Anurag!)
- Lecture Notes: 9-17 Instruction Level Parallelism (thanks Carol!)
- Lecture Notes: 9-24 ILP continued (thanks Juhi!)
- Lecture Notes: 10-1 Increasing ILP (thanks Maryam!)
- Midterm Topics
- Book: Chapters 1, 3. Appendices A and C.
- Pipelining
- Superscalar, EPIC / VLIW
- Multithreading
- Multi-core Architectures
- Branch Prediction
- Register Renaming
- Sample Midterm
- Midterm Exam
- Due Monday 10/29 at 11:59pm
- Password: megerian
- Cache index/tag example from class here.
- Simple multithreading example in widnows.
- Simple multithreading example in linux.
- Final exam will be distributed on the evening of 12/11. It will be due by 11:59pm 12/18 (Wed).
- Arm lecture slides
- Arm infocenter link : Example link for ARM1156T2-S pipeline stages. Feel free to explore that site.
- ARM Processors and Architectures Comprehensive Overiew - 2012
- ARM Processors and Architectures Fundamentals
- http://www.arm.com/support/university/academic-resources.php] ARM Academic Resources
- Final Exam
- Due Wednesday 12/18 at 11:59pm
- Password: megerian