EECS 2021

Computer Organization


Syllabus
Notes
Notices
Dates
Labs
FAQs
Contact Info
Marks
Last Modified:
Jan 10 2022

Course Description


In this course we will discuss the core concepts of computer organization. We will examine concepts related to both hardware (gates, memory, binary system, etc) and software (compilers, assemblers, etc) and of course their interface. We will introduce and use in the lab assignments two important tools in this course: assembly programming (we use RISC-V) and hardware programming (we use Verilog). By the end of the course students will be able to:
  • Translate high-level code to assembly language and machine code.
  • Represent data in machine readable form and describe how it is stored and manipulated in a CPU.
  • Synthesize hardware of increasing complexity from logic gates to a simple CPU using a Hardware Description Language.
  • Evaluate computer performance and compare performance on different architectures and designs.
  • Describe and analyze I/O and Parallel Hardware.
  • Lecture Hours

    Day Time Zoom link
    Mon.2:30pm Zoom
    Wed.2:30pm Zoom

    All lectures (remote and in-person) will be recorded and made available for you on eclass (Moodle). It is strongly recommended to attend the lectures in real time but if you have time conflict with other courses offered during the time slot, it is strogly recommended to watch the video shortly afterwards and before the labs.

    Tests

    There will be a midterm worth 25% and a final worth 30%. The final will cover all the material in the course and will be during the regular exam period.

    Labs.

    There will be eight lab assignments carrying in total 15% of the final mark. These will be during the prescheduled labs. The seven best labs will count. The programming components of the labs are marked by the TAs at the end of the lab session and you get either pass or fail. If you miss a lab you get a fail for this lab. Missing only one lab will not directly affect your final mark for the course (since the best seven out of the eight count) but missing more than that will. There will be TAs and the instructor available through Zoom/Moodle (or in person when this starts) during the lab, and you can ask them for hints and guidance for the programming part of the lab. Also the TAs or the instructor can ask to review your work so far and offer help. Make sure you understand how to share your working window (not the whole screen) on zoom.

    The regular labs may include a multiple choice quiz that will carry 50% of the mark. If for example you complete and submit the programming assignment and receive 80% on the quiz the mark for this lab will be 90%. There will be two labtests, one after the first four regular labs and the other after the other four regular labs which carry 15% each. The labtests are conducted in a similar manner but the TAs and the instructor will only answer clarification questions. Labs and labtests will be virtual until we return to in-person.

    You prepare for the labs by studying the material for the labs in this site. Make sure you study the lab for the week, the user manual, the assembler manual and system calls manual

    If you complete the regular lab early, you ask a TA or the instructor to review the programming component and record the result. Then you can log out. Otherwise submit your work which will be marked by the TAs.

    While the labs are done remotely (through eclass) students are expected to join the lab zoom session to interact with the TAs.

    Text

    The text is "Computer Organization and Design: The Hardware/Software Interface" by David A. Patterson, John L. Hennessy RISC-V edition.

    Last Modified: Jan 10 2022