COMP 230: Computer Architecture and Organization, Fall 2018

This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class.

Logistics

Content

This course aims to convince students that no magic is required to make computers work by teaching the design and operation of digital computers. By learning about the organization of computers, including processor datapath, processor control, memory systems, and I/O, students will develop an intuition about why hardware is the way it is and how software interacts with hardware. Through detailed implementation experience students will learn to make careful tradeoffs between functional, performance and cost goals when selecting and interconnecting hardware components.

Topics

Possible topics include:

Sources

The course textbook will be:

Other sources will be posted on this webpage as needed.

Policies

Assessment

Assignments

The course workload is as follows:

Category Number of Assignments
Homework 7–8
Exams 3

Some homework assignments will be written assignments only; some will include programming components. Your lowest homework score will be dropped.

Exams will be open book and notes unless otherwise specified. Each exam focuses primarily, but not necessarily exclusively, on material covered since the previous exam. The final exam will include a small number of cumulative questions, and I reserve the right to include at most two cumulative questions on each of the other exams.

Workload

The weekly workload for this course will vary by student but on average should be about 11 hours per week. The follow tables provides a rough estimate of the distribution of this time over different course components for a 16 week semester.

Category Total Time Time/week (hours)
Lectures   3
Homework 80 5
Exam Study 16 1
Reading+Unstructured Study   2
    11

Grading

Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing.

Category Weight
Homework 35%
Exam 1 15%
Exam 2 15%
Final Exam 25%
Participation 10%

Your participation grade is based on a variety of activities. During class I will often make sure of the Socrative app, so you’ll need to install this on your phones. Participating in Socrative questions and with in-class group activities is required for a decent participation grade; a full grade also includes asking questions either in class or in office hours.

This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:

Score Grade
94–100 A
90–93 A-
88–89 B+
82–87 B
80–81 B-
78–79 C+
72–77 C
70–71 C-
68–69 D+
62–67 D
60–61 D-
0–59 F

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.

Schedule

The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.

Date Topic Assignment
Wed 08/22 Introduction and Components of a Computer Read/review Ch. 1, HW 0 out
Fri 08/24 Measuring Performance  
Mon 08/27 Measuring Performance II HW 1 out, Read Appendix B.1
Tue 08/28 Basic Logic Design Read B.2
Wed 08/29 Combinational Logic Read B.3
Fri 08/31 More Combinational Logic and Integer Representation  
Mon 09/03 A Simple ALU Read B.5
Tue 09/04 Carry Lookahead Addition Read B.6
Wed 09/05 Clocks and Memory Read B.7-9
Fri 09/07 Homework Presentations and ECC HW 1 due (Solutions), HW 2 out
Mon 09/10 Homework Review and MIPS Arithmetic Instructions Read 2.2-2.1
Tue 09/11 R-format Instructions Read 2.3-2.4
Wed 09/12 I-format Instructions Read 2.5
Fri 09/14 Logic and Conditional Instructions Read 2.6-2.7
Mon 09/17 Loop Exercises HW 2 due (Solutions), HW 3 out
Tue 09/18 More Loops  
Wed 09/19 Procedures Read 2.8
Fri 09/21 More Procedures and Character Data Read 2.9
Mon 09/24 Addressing Modes and Linking Read 2.10, Practice Exam 1
Tue 09/25 Homework Presentations and Dynamic Linking HW 3 due (Solutions)
Wed 09/26 Pointers versus Arrays  
Fri 09/28 Exam 1 Review Practice Exam 1 Solutions
Mon 10/01 Exam 1 (Solutions)  
Tue 10/02 Programming with SPIM Read A.1-A.6, A.9, HW 4 out
Wed 10/03 Integer Arithmetic and Basic Multiplication Read 3.1-3.2
Fri 10/05 Multiplication and Division Read 3.3-3.4
Mon 10/08 Optimized Division; Floating Point Read 3.5
Tue 10/09 Floating Point Representation  
Wed 10/10 Floating Point Arithmetic and MIPS  
(10/11–10/15) (Fall Break) (Fall Break)
Tue 10/16 Review FP and Matrix Multiply Read 3.6-3.8
Wed 10/17 SIMD Matrix Multiply Read 3.9-3.10
Fri 10/19 Homework Review and Simple DataPath HW 4 due (Solutions), HW 5 out, Read 4.1
Mon 10/22 Simple Processor Implementation Read 4.2-4.4
Tue 10/23 Single-Cycle Exercises  
Wed 10/24 Pipelining Overview Read 4.5
Fri 10/26 Pipelining Implementation Read 4.6
Mon 10/29 (Class Cancelled)  
Tue 10/30 Data Hazards Read 4.7
Wed 10/31 (Class Cancelled) Read 4.8-4.9 (optional)
Fri 11/02 Homework Review and ILP Overview HW 5 due (Solutions), HW 6 out
Mon 11/05 (Class Cancelled) Practice Exam 2
Tue 11/06 Static Scheduling Read 4.10
Wed 11/07 Exam 2 Review Practice Exam 2 Solutions
Fri 11/09 Exam 2 (Solutions)  
Mon 11/12 Exam Review and Superscalar Skim 4.11-4.14
Tue 11/13 Memory Hierarchy Read 5.1-5.2
Wed 11/14 Basics of Caches Read 5.3
Fri 11/16 Cache Performance Read 5.4
Mon 11/19 Associativity Read 5.5
Tue 11/20 Homework Review and Cache Blocking HW 6 due (Solutions), HW 7 out
(11/21–11/25) (Thanksgiving Break) (Thanksgiving Break)
Mon 11/26 (Class Cancelled)  
Tue 11/27 Virtual Machines and Virtual Memory Read 5.6-5.7
Wed 11/28 Common Framework for the Memory Hierarchy Read 5.8
Fri 11/30 Cache Coherence Read 5.13, 5.15-5.16
Mon 12/03 Parallel Programs Read 6.1-6.3, Practice Exam 3
Tue 12/04 Multithreading, Multicore, GPU Read 6.4-6.5
Wed 12/05 Review HW 7 due, Practice Exam 3 Solutions
Tue 12/11 8:00 AM Final Exam  

Monmouth College Services