525.712.81 - Advanced Computer Architecture

Electrical and Computer Engineering
Fall 2024

Description

This course covers topics essential to modern superscalar processor design. A review of pipelined processor design and hierarchical memory design is followed by advanced topics including the identification of parallelism in processes; multiple diversified functional units in a pipelined processor; static, dynamic, and hybrid branch prediction techniques; the Tomasulo algorithm for efficient resolution of true data dependencies; advanced data flow techniques with and without speculative execution; multiprocessor systems; and multithreaded processors.

Expanded Course Description

Advanced Computer Architecture starts with the basic description in this syllabus. What makes this class unique is that we will study the basics with advanced technology that will aid in the design and fine tuning multicore and parallel processing systems. In this class, methods of simulation will be used to benchmark different architecture designs using GEM5. GEM5 allows the student to run real code on simulations of X86, MIPS, RISCV and ARM processors. Simulations of GPU’s are also available. The internal quality metrics that provide critical feedback to the design decisions are uncovered in GEM5.

In addition, examples of parallel programming will be performed using the CUDA GPU on the Jetson Orin Nano to provide benchmark data. GEM5 will also allow the class to monitor the steps taken by multicore systems to maintain coherence. This level of simulation is being used to design RISC-V processors by industry.

Cluster programming will also be investigated using OpenMPI. In place of exams, a class project with presentation will be done at the end of the semester. The presentation will be recorded via Zoom and provided for following years classes.

Instructor

Profile photo of Nicholas Beser.

Nicholas Beser

nick.beser@jhuapl.edu

Course Structure

This course covers topics essential to modern superscalar processor design. A review of pipelined processor design and hierarchical memory design is followed by advanced topics including the identification of parallelism in processes; multiple diversified functional units in a pipelined processor; static, dynamic, and hybrid branch prediction techniques; the Tomasulo algorithm for efficient resolution of true data dependencies; advanced data flow techniques with and without speculative execution; multiprocessor systems; and multithreaded processors. Methods of simulation will be used to benchmark different architecture designs using GEM5. Examples of Parallel programming will be performed using CUDA GPU to provide benchmark data. Cluster programming will also be investigated using OpenMPI. In place of exams, a class project with presentation will be done at the end of the semester. The presentation will be recorded via Zoom and provided for following years classes.

The course content is divided into modules. Course Modules can be accessed by clicking Course Content on the left menu. A module will have several sections including the overview, content, readings, discussions, and assignments. Students are encouraged to preview all sections of the module before starting. Most modules run for a period of seven (7) days, exceptions are noted on the Course Outline page. Student’s will be able to access the reading material two day’s earlier, however the discussion topic and homework submittal will be scheduled during a 7 day period. Students should regularly check the Calendar and Announcements for assignment due dates. Homework problems will be required for each module with the exception of Modules 12 and 13. In the place of exams, the students will do one research project and document with a report, and presentation. Depending on the number of students, the Student Projects will be presented in the form of a TEAM’s conference. A 30 minute video will be prepared by the student.The school is loaning the student Jetson Orin Nano that hosts a Ubuntu Linux system. This is a ARM multi-core processor with a CUDA compatible GPU. This equipment should be returned to the school at the end of the semester.

Course Topics

Course Goals

To provide the students with advanced knowledge of advanced computer architecture design, covering extensive simulation and applications to parallel programming. This class will bridge the development of internal architecture components with the programming and simulation side as a way of measuring performance of the internal processor architecture

Course Learning Outcomes (CLOs)

Textbooks

Patterson, David A., Hennessy, John L., Computer Architecture, A Quantitative Approach, Sixth Edition, 2017, Morgan Kaufmann Publishing ISBN ‎ 978-0128119051. (Required)

Hwu, Wen-mei W., Kirk, David B, Hajj, Izzat El, Programming Massively Parallel Processors Fourth Edition, 2023, Morgan Kaufman Publishing, ISBN 978-0-323-91231-0 (Recommended)

Pacherco, Peter, Malensek, Matthew, An Introduction to Parallel Programming, 2nd Edition, 2020, Morgan Kaufman Publishing, ISBN 978-0128046050. (Recommended)

Other Materials & Online Resources

Jetson Orin Nano and Lab Equipment

The school is loaning the student a Jetson Orin Nano system with two Raspberry Pi cameras, a USB-a to USB-c cable, and a case. While the computer can be operated with the USB-c cable, the boards are a stand alone computer system (ARM64, Nvidia GPU and 1 Terabyte SSD drive). The system works best with a separate monitor, keyboard and mouse. The Jetson Orin Nano uses a Display Port, so an adapter will also be needed to connect to a HDMI, DVI or VGA monitor. Students should receive a FedEx package with a prepaid shipping lab. Please keep the second box and shipping label  to return your hardware. The school will be auditing the return so that future classes can use the equipment.

Required Software

Ubuntu 20.04 or 22.04 system

In addition to the Jetson Orin Nano, the class will be using the GEM5 Computer Architecture Simulation system that runs on the Linux Operating System. The student should have access to Linux via running on a X86 system, VM system, or Windows WSL 2 System.

Student Coursework Requirements

It is expected that each class will take approximately 8–11 hours per week to complete. Here is an approximate breakdown: reading the assigned sections of the texts (approximately 2–3 hours per week) as well as some outside reading, listening to the audio annotated slide presentations (approximately 1–2 hours per week), and writing/programming assignments (approximately 2-4 hours per week). The should also be about 3 hours discussion activity each week.

This course will consist of three basic student requirements:

  1. Preparation and Participation (Class Discussions) (30% of Final Grade Calculation)

The discussion aspect of the class will consist of topics to be discussed every week. Students are expected to participate, offering researched comments and information. Assignments are based partially on the text, and on problems offered by Dr. Beser, Programming may be required to complete the assignment or perform the discussion forum.

Each student is responsible for carefully reading all assigned material and being prepared for discussion. The majority of readings are from the course text. Additional reading may be assigned to supplement text readings.

Post your initial response to the discussion questions by the evening of day 3 for that module week. Posting a response to the discussion question is part one of your grade for class discussions (i.e., Timeliness).

Part two of your grade for class discussion is your interaction (i.e., responding to classmate postings with thoughtful responses) with at least two classmates (i.e., Critical Thinking). Just posting your response to a discussion question is not sufficient; we want you to interact with your classmates. Be detailed in your postings and in your responses to your classmates' postings. Feel free to agree or disagree with your classmates. Please ensure that your postings are civil and constructive. Please understand that the discussion group is an exploration of the topic. All comments should be constructive, and respeective of the participants. A lack of civility will result in a F for that session.

Dr. Beser will monitor class discussions and will respond to some of the discussions as discussions are posted. In some instances, Dr. Beser will summarize the overall discussions and post the summary for the class.

Evaluation of preparation and participation is based on contribution to discussions.

Preparation and participation is evaluated by the following grading elements:

    1. Timeliness (50%)
    2. Critical Thinking (50%)

Preparation and participation is graded as follows:

100–90 = A—Timeliness [regularly participates; all required postings; early in discussion; throughout the discussion]; Critical Thinking [rich in content; full of thoughts, insight, and analysis].

89–80 = B—Timeliness [frequently participates; all required postings; some not in time for others to read and respond]; Critical Thinking [substantial information; thought, insight, and analysis has taken place].

79–70 = C—Timeliness [infrequently participates; all required postings; most at the last minute without allowing for response time]; Critical Thinking [generally competent; information is thin and commonplace].

<70 = F—Timeliness [rarely participates; some, or all required postings missing]; Critical Thinking [rudimentary and superficial; no analysis or insight is displayed].

Note, that the grading criteria as staged is very subjective. As a rule of thumb for the students, I have adopted a simpler approach. Please don’t misunderstand that the grading criteria is just a quantity measure. I am looking for responses that  add to the class understanding of the problem or help a classmate with a question. Here is a more quantitative rubic:

If you treat the discussion forum as a conversation, and not a polished report for each post, you will find that talking to your classmates will get you more than enough posts for the week, and give you an opportunity to explore the topics with the class. Please don’t save your posts for Sunday night at 10:00pm. You can’t start a conversation while walking out the door.

  1. Assignments (40% of Final Grade Calculation)

Assignments will include a mix of qualitative assignments (e.g. literature reviews, model summaries), quantitative problem sets, and verilog programming problems. Include a cover sheet with your name and assignment identifier. Also include your name and a page number indicator (i.e., page x of y) on each page of your submissions. Each problem should have the problem statement, assumptions, computations, and conclusions / discussion delineated. All Figures and Tables should be captioned and labeled appropriately. Please submit multiple items in a single ZIP file.

All assignments are due according to the dates in the Calendar.

Late submissions will be reduced by one letter grade for each week late (no exceptions without prior coordination with the instructor).

If, after submitting a written assignment a student is not satisfied with the grade received, the student is encouraged to redo the assignment and resubmit it. If the resubmission results in a better grade, that grade will be substituted for the previous grade.

Qualitative assignments are evaluated by the following grading elements:

    1. Each part of question is answered (20%)
    2. Writing quality and technical accuracy (30%) (Writing is expected to meet or exceed accepted graduate-level English and scholarship standards. That is, all assignments will be graded on grammar and style as well as content.)
    3. Rationale for answer is provided (20%)
    4. Examples are included to illustrate rationale (15%) (If a student does not have direct experience related to a particular question, then the student is to provide analogies versus examples.)
    5. Outside references are included (15%)

Qualitative Assignments are graded as follows:

100–90 = A—All parts of question are addressed; Writing Quality/ Rationale/ Examples/ Outside References [rich in content; full of thought, insight, and analysis].

89–80 = B—All parts of the question are addressed; Writing Quality/ Rationale/ Examples/ Outside References [substantial information; thought, insight, and analysis has taken place].

79–70=C—Majority of parts of the question are addressed; Writing Quality/ Rationale/ Examples/ Outside References [generally competent; information is thin and commonplace].

<70=F—Some parts of the question are addressed; Writing Quality/ Rationale/ Examples/ Outside References [rudimentary and superficial; no analysis or insight displayed].

Quantitative assignments are evaluated by the following grading elements:

    1. Each part of question is answered (20%)
    2. Assumptions are clearly stated (20%)
    3. Intermediate derivations and calculations are provided (25%)
    4. Answer is technically correct and is clearly indicated (25%)
    5. Answer precision and units are appropriate (10%)

Quantitative Assignments are graded as follows:

100–90 = A—All parts of question are addressed; All assumptions are clearly stated; All intermediate derivations and calculations are provided; Answer is technically correct and is clearly indicated; Answer precision and units are appropriate.

89–80 = B—All parts of question are addressed; All assumptions are clearly stated; Some intermediate derivations and calculations are provided; Answer is technically correct and is indicated; Answer precision and units are appropriate.

79–70=C—Most parts of question are addressed; Assumptions are partially stated; Few intermediate derivations and calculations are provided; Answer is not technically correct but is indicated; Answer precision and units are indicated but inappropriate.

<70=F—Some parts of the question are addressed; Assumptions are not stated; Intermediate derivations and calculations are not provided; The answer is incorrect or missing; The answer precision and units are inappropriate or missing.

  1. Presentations and Project Report (30% of Final Grade Calculation)

In the place of exams, the class will do a research project and paper. The topics will be suggested during the first 6 weeks of the class, and the student will turn in a preliminary proposal by week 6 (Module 6). The proposal will follow a template that will be provided to the class (Follows the classic Independent Research and Development Proposal Outline). At the end of Module 9, the student will turn in a status report. The status report could be a simple summary of progress made to date, or be a completely new proposal. By the end of Module 9, the project topic will be frozen. It should be noted that Module 12 and 13 will not include homework, and that the discussion topic will be lighter than previous weeks, so that the student may have sufficient time to finish the research paper and presentation.

Due to the large number of students, the Student Projects will be presented in the form of a TEAM’s conference. A 30 minute video will be prepared by the student. All sections of the class will be organized as 6 person teams. Each student will ask discussion questions to each paper in their team, and at least one question to papers outside of their team.

The grading of the presentation will be based on meeting the objectives set out in the proposal. (Note that the reason that the student can repropose by week 9, is that the scope of the project can be reduced to meet reality.) There are four elements in the grade (project proposal, project status report (or new proposal), Project paper, and Project presentation. All students are expected to participate in the TEAM’s conference for the grade.

The student project report will be due by the last day of the semester.

The student projects will be archived for future classes. A FERPA form is required by the school in order to include your project in the class archive. The archive includes the past student’s proposal, status reports, presentation (powerpoint and video), report, and supporting documentation. Signing the FERPA form is voluntary, and helps future students select projects.

Grading Policy

Student assignments are due according to the dates in the Calendar. Dr. Beser will post grades one week after assignment due dates.

We generally do not directly grade spelling and grammar. However, egregious violations of the rules of the English language will be noted without comment. Consistently poor performance in either spelling or grammar is taken as an indication of poor written communication ability that may detract from your grade.

A grade of A indicates achievement of consistent excellence and distinction throughout the course—that is, conspicuous excellence in all aspects of assignments and discussion in every week.

A grade of B indicates work that meets all course requirements on a level appropriate for graduate academic work. These criteria apply to both undergraduates and graduate students taking the course.

100–90 = A 89–90 = B 79–70 = C <70 = F

Final grades will be determined by the following weighting:

Item

% of Grade

Preparation and Participation (Class Discussions)

30%

Assignments

40%

Project Report and Presentation (Plus Proposal and Status Report)

30%

 

Course Policies

Academic Misconduct Policy

Students should read policies pertaining to academic misconduct and netiquette at http://ep.jhu.edu/genpolguid. Please read below how the Academic Misconduct Policy applies to your class.

Collaborations and discussions between students are key ingredients to success in a graduate course. You are encouraged to discuss the course material with each other as you sort through concepts that may be difficult to comprehend or controversial. However, the line between collaboration and cheating needs to be carefully delineated. Whenever you turn in work with your name on it to be evaluated, graded and included in your record it must represent an individual effort by you alone. If you include direct quotes from any source in your discussions, written assignments, the final exam, or any other submission for which you will receive a grade you must provide attribution. Students using published material without reference, or copying the work of another individual will receive a warning at the first incident. Any further incidents will result in the student receiving a zero on the assignment and the matter will be referred to the Associate Dean. Contact us if you have any questions, no matter how slight, about this policy, or if you have questions about a particular assignment.

Plagiarism

Plagiarism is defined as taking the words, ideas or thoughts of another and representing them as one's own. If you use the ideas of another, provide a complete citation in the source work; if you use the words of another, present the words in the correct quotation notation (indentation or enclosed in quotation)

 

A comment regarding the use of AI tools: I am fascinated by the development of tools such as ChatGPT and Github Copilot. These tools are excellent for discovering techniques, rectifying English, and providing IT support. If you choose to utilize them, remember to attribute the source (i.e., ChatGPT). Do not assume that the information provided is inherently correct or comprehensive. There are numerous instances where ChatGPT fabricates nonexistent examples. Code generated by Github Copilot may contain outdated versions that no longer exist due to intellectual property concerns. I do not prohibit its use, but I do insist that proper citation is observed.

Courteous and Civil Behavior During Discussion Group

The discussion board is a critical element of the class work. It is a time of exploration of a topic. A friendly discussion where ideas and concepts are freely exchanged is the primary goal. At no time should a student feel intimated or threatened during this activity. Dr. Beser expects that the students will exercise restraint in critical comments. Comments should be constructive, polite, and should demonstrate a respect for the class. Poor behavior will not be tolerated. Continued bad behavior will result in expulsion.

Academic Policies

Deadlines for Adding, Dropping and Withdrawing from Courses

Students may add a course up to one week after the start of the term for that particular course. Students may drop courses according to the drop deadlines outlined in the EP academic calendar (https://ep.jhu.edu/student-services/academic-calendar/). Between the 6th week of the class and prior to the final withdrawal deadline, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and withdrew from the course.

Academic Misconduct Policy

All students are required to read, know, and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students.

This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. Course materials (old assignments, texts, or examinations, etc.) should not be shared unless authorized by the course instructor. Any questions related to this policy should be directed to EP’s academic integrity officer at ep-academic-integrity@jhu.edu.

Students with Disabilities - Accommodations and Accessibility

Johns Hopkins University values diversity and inclusion. We are committed to providing welcoming, equitable, and accessible educational experiences for all students. Students with disabilities (including those with psychological conditions, medical conditions and temporary disabilities) can request accommodations for this course by providing an Accommodation Letter issued by Student Disability Services (SDS). Please request accommodations for this course as early as possible to provide time for effective communication and arrangements.

For further information or to start the process of requesting accommodations, please contact Student Disability Services at Engineering for Professionals, ep-disability-svcs@jhu.edu.

Student Conduct Code

The fundamental purpose of the JHU regulation of student conduct is to promote and to protect the health, safety, welfare, property, and rights of all members of the University community as well as to promote the orderly operation of the University and to safeguard its property and facilities. As members of the University community, students accept certain responsibilities which support the educational mission and create an environment in which all students are afforded the same opportunity to succeed academically. 

For a full description of the code please visit the following website: https://studentaffairs.jhu.edu/policies-guidelines/student-code/

Classroom Climate

JHU is committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone has the right to be treated with dignity and respect. Fostering an inclusive climate is important. Research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. At no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity. 
 
If you have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to the course instructor directly. Reporting will never impact your course grade. You may also share concerns with your program chair, the Assistant Dean for Diversity and Inclusion, or the Office of Institutional Equity. In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).

Course Auditing

When a student enrolls in an EP course with “audit” status, the student must reach an understanding with the instructor as to what is required to earn the “audit.” If the student does not meet those expectations, the instructor must notify the EP Registration Team [EP-Registration@exchange.johnshopkins.edu] in order for the student to be retroactively dropped or withdrawn from the course (depending on when the "audit" was requested and in accordance with EP registration deadlines). All lecture content will remain accessible to auditing students, but access to all other course material is left to the discretion of the instructor.