605.611.8VL2 - Foundations of Computer Architecture

Computer Science
Fall 2024

Description

This course provides a detailed examination of the internal structure and operation of modern computer systems. Each of the major system components is investigated, including the following topics: the design and operation of the ALU, FPU, and CPU; microprogrammed vs. hardwired control, pipelining, and RISC vs. CISC machines; the memory system including caches and virtual memory; parallel and vector processing, multiprocessor systems and interconnection networks; superscalar and super-pipelined designs; and bus structures and the details of low-level I/O operation using interrupt mechanisms, device controllers, and DMA. The impact of each of these topics on system performance is also discussed. The instruction set architectures and hardware system architectures of different machines are examined and compared. The classical Von Neumann architecture is also compared and contrasted with alternative approaches such as data flow machines and neural networks. Course Note(s): The required foundation courses may be taken in any order but must be taken before other courses in the degree.

Instructor

Default placeholder image. No profile image found for Charles Kann.

Charles Kann

ckann@comcast.net

Course Structure

This course will use Zoom to facilitate weekly, synchronous course lecture and office hours. Lectures will be recorded for those who miss the lecture, and to allow students to replay parts of the lecture they need reenforcement on. Office hours are open, and will be Tuesday and Wednesday from 6-7.. I am free most days, so if I am on zoom you can connect, or email me and I will log on.

For more information regarding Zoom, please see the Zoom Student Quick Start Guide.

This class consists of a 2 hour 40 minute synchronous lecture each week, and weekly homework assignments. If possible students should attend the lecture, but lectures will be recorded for students who cannot attend for any reason.

This course is Canvas enhanced. All notes and other materials will be provided on Canvas. All assignments will be given in Canvas and should be submitted in Canvas.

The course materials are divided into sections which will correspond to the various layers of the computer architecture. See the course schedule and course modules for more information.

To get an A in the class, an individual or group project will be required. An A+ will require that the student(s) prepare the project and submit it for a conference/journal publication or at least an internet web site publication. If a paper is accepted, the school will pay costs associated with the student(s) attending the conference.



Course Topics

Computer Organization Review

Computer Organization Review (Continued)

IC’s

State Programming

Multiplication and Division Hardware

One Address CPU


MIPS Assembly and MIPS Machine Code

MIPS CPU data path and control unit

Instruction level parallelism: pipelining


The Memory Subsystem

Parallel Computing

The I/O subsystem

Course Goals

This course builds upon the knowledge acquired in a typical computer organization course to provide a more in-depth understanding of the internal operation of the control unit, the execution units, memory management, and the I/O and bus systems, as well as multiprocessor systems. Emphasis is placed on the more advanced features such as pipelining, cache memory organization and operation, superscalar and VLIW techniques. An examination of performance metrics will allow the student to better access the effectiveness of the various performance enhancement techniques.

Course Learning Outcomes (CLOs)

Textbooks


Author

Title

Publisher

ISBN

Patterson

Computer Organization &

Design: The Hardware/Software Interface

Morgan Kaufman

 0124077269

Note that the material does not change in this textbook. Parts of the text are renumbered, and problem numbers change, but the material is the same.  Buy the cheapest version of the book you can find.

Required Software

Kann, Charles W., "Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits - Second Edition" (2014). Open Textbooks. 1.
https://cupola.gettysburg.edu/oer/1 (Free Download)

Kann, Charles W., "Introduction To MIPS Assembly Language Programming" (2015). Open Textbooks. 2.
https://cupola.gettysburg.edu/oer/2 (Free Download)

Kann, Charles W., "Implementing a One Address CPU in Logisim" (2016). Open Textbooks. 3.
https://cupola.gettysburg.edu/oer/3 (Free Download)

Kann, Charles W., "Introduction to Assembly Language Programming: From Soup to Nuts: ARM Edition" (2021). Open Textbooks. 8.
https://cupola.gettysburg.edu/oer/8 (Free Download)

Student Coursework Requirements

Item

% of Grade

Preparation and Participation

10%

Quizzes

20%

Assignments

45%

Exams (Final)

25%

Grading Policy

EP uses a +/- grading system (see “Grading System”, Graduate Programs catalog, p. 10).

Score RangeLetter Grade
100-97= A+
96-93= A
92-90= A−
89-87= B+
86-83= B
82-80= B−
79-77= C+
76-73= C
72-70= C−
69-67= D+
66-63= D
<63= F

Course Evaluation

It is expected that each week students will spend about 3 hours in lecture, and approximately 4–7 hours to complete the homework.. Here is an approximate breakdown: reading the assigned sections of the texts (approximately 3–4 hours per week) as well as some outside reading, listening to the audio annotated slide presentations (approximately 2–3 hours per week), and writing assignments (approximately 2–3 hours per week).

This course will consist of the following basic student requirements:

Preparation and Participation (10% of Final Grade Calculation)

I tend to call on students in class, even using Zoom. While you do not technically have to attend class, it will help you if I at least recognize your name by the end of class.

Student Coursework Requirements

There are 3 types of course work associated with this class, written assignments, quizzes, and programs. Normally, one type of assignment will be given each week.

Written Assignments

Written assignments are questions to be answered by the student to help reinforce the concepts covered in that week. Written assignments will be turned in for a grade.

Quizzes

Quizzes will be given when there is written assignment or program assigned. They will be given in weeks where the student needs to study to understand a concept, but it really is not possible to assign a written assignment or program. Examples will be understanding Linux commands, understanding of the gdb debugger, etc.


Programs

Programs and homework will be assigned on a weekly basis. It is expected that each week's assignment will take approximately 4–7 hours per week to complete. Programs will be graded on the following basis:

  1. Correctness – 70%

    1. Compiles correctly and performs basic functionality – 30%

      1. Compiles and implements some functionality

    2. Completely and correctly implements the assignment – 40%

      1. Test cases cover all major functionality of the assignment.

      2. The submission should run as submitted. Include everything you need to make the program run. I (or the Ta) will allocate about 5 minutes for the assignment. If trying to figure out what you did takes longer than that, you will lose points.

  2. Documentation of program and code – 30%

    1. You should follow the Programmers Style guide for this class.

    2. A completed guide (or readme.txt) file with the program is submitted. Not following the guide will result in deductions for the project. Make sure to follow naming standards, indenting rules, and all other standards specified in the guide.

    3. All program files should have a preamble with your name, date, and what the program is supposed to do..

    4. All functions should be documented with what the function does, and input and output parameters for the function.

    5. A Makefile should be included with every submission.

Course Policies

All home, late or otherwise, should be turned in.  However, late homework is subject to a penalty to be determined by the professor.  Multiple late submissions or submissions more than a few days late receive progressively lower grades.  Medical excuses will be considered, but must be validated and in no case should a student fall more than 2 weeks behind in class.

In my experience, students who fall more than 2 weeks behind in a class generally do not do well.  If you fall more than 2 weeks behind in this class, strongly consider withdrawing from the class.  The school will often consider things like medical withdraw or a military deployment and will give a partial/full rebate of tuition.  As I said, please strongly consider this option.

Finally, incompletes in this class will are to be considered a rare exception. I will give an incomplete for this class only for a valid reason, and the student must have completed 80% of the class work (excluding the final) to be considered for an incomplete.  In addition, a schedule for completion must be submitted by the student and agreed to by the professor.  Generally students will be given up to 2 weeks to complete all material in the class. 

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.