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.
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.
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 |
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.
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.
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)
Item | % of Grade |
Preparation and Participation | 10% |
Quizzes | 20% |
Assignments | 45% |
Exams (Final) | 25% |
EP uses a +/- grading system (see “Grading System”, Graduate Programs catalog, p. 10).
Score Range | Letter 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 |
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 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 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 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:
Correctness – 70%
Compiles correctly and performs basic functionality – 30%
Compiles and implements some functionality
Completely and correctly implements the assignment – 40%
Test cases cover all major functionality of the assignment.
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.
Documentation of program and code – 30%
You should follow the Programmers Style guide for this class.
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.
All program files should have a preamble with your name, date, and what the program is supposed to do..
All functions should be documented with what the function does, and input and output parameters for the function.
A Makefile should be included with every submission.
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. Due dates are given on the Canvas Calendar feature.
Late homework will be graded with a penalty of 10% a day for up to 4 days. The 10% penalty will be taken on the base grade, not the grade the student earns. For example, if the student received a 75/100 on an assignment that was one day late, the grade will be 65/100, NOT 68/100. All late home will have a penalty except in super exceptional circumstances. "I was sick with the Flu/Covid" will not be accepted unless you are admitted to the hospital.
Homework answers will be posted on Friday of the week the homework is due. Therefore any homework that is more than 4 days late will be given a grade of 50%.
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.
IMPORTANT!!!! While 90%+ of you would never consider cheating, and so I hate to mention this, cheating is becoming more rampant lately. If you do not get outside help on assignments, you can safely ignore the rest of this message. I have not seen any of this except from students who have used resources outside of class.
I have found that assignments that have not been done by students most often have some telltale structures which give away that it is not original work. Therefore no instructions, pseudo instructions, or any type of assembly language that has not been covered in class will be accepted in assignments, quizzes, or tests. The PUSH and POP pseudo instructions, and the BX instruction, are absolutely disallowed. Memory such as block storage symbol (bss) memory may not be used. Your programs must begin at the "main" label. You must use the gcc compiler for your programs, and must include a makefile with all assignments so I can check that you are doing this. You must execute a function return from the main.
If you follow the structure of programs given in class, none of this will impact you. The only time I see these issues are when students either get programs from the internet (such as Chegg.com), or get help with their program. I have never seen a student come across the "PUSH" or "BX" instruction by doing their own research, and if someone did, they would have the good sense to talk to me before using tit.
If I find anything that is outside of the scope of the material in this class in a students work, the following will hold:
A - If it is an assignment, the assignment will receive a grade of 0% and the student will have to resubmit a working program that is in accord with the rules stated above. A working program will receive a grade of 50%.
B - If a student uses these disallowed instructions or final on the final, a grade of "F" will be recorded for the class.
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.