CPSC 220: Computer Architecture

      Department of Mathematics and Computer Science
      Hobart and William Smith Colleges

      Fall, 2018.

      Instructor:  David J. Eck  (eck@hws.edu)

      Monday, Wednesday, Friday, 10:10–11:05 PM, Room Gulick 2000.
          Lab:  Thursday, 1:30–2:55, Room Rosenberg 009.
          
      Regular Office Hours:  Monday, Wednesday, Friday  11:15–12:10 and 2:00–3:00
                             Thursday  12:00–1:00

      Course Handout:  http://math.hws.edu/eck/courses/cpsc220_f18.html
      
Labs and Assignments
Lab 1, August 30
Numbers and Bits
Lab 2, September 6 and 13
Larc ML Programming
Lab 3, September 13 and 20
Writing a Larc Simulator

First Week: August 27, 29, and 31

Welcome to the course!

The reading for the first week is Chapter 1, Sections 1 through 4, and Chapter 2, Section 4. (All readings are from the textbook, Computer Organization and Design ARM Edition, unless otherwise noted.) You should read Section 2.4 before the lab on Thursday. You should also read the lab handout before the lab, especially the material on Java bitwise and shift operators (if you are not already familiar with them).

Second Week: September 3, 5, and 7

We will work mostly on the ISA for the Larc model computer this week, and Thursday's lab will ask you to write some machine language programs for Larc. We will talk about Section 1.6 from the textbook on Friday, and that is the last we will see of Chapter 1.

The reading for the week is Chapter 3 of the Larc manual, which will be handed out in class on Monday, and Section 1.6 in the textbook. You should also read the lab worksheet before the lab on Friday. A link will be posted on this page by Tuesday afternoon.

As announced in class, I have to cancel my 11:15 to 12:10 office hours this week. However, I will have extended afternoon office hours: Monday, Tuesday, Wednesday, and Friday, 1:30 to 4:00.

Third Week: September 10, 12, and 14

You will start Lab 3 this week. Lab 3 asks you to write a functional simulator program for the Larc computer in Java. We will spend some time on Monday this week talking about what that means. Remember that Lab 2 is due next week, and Lab 3 is due the week after that.

We never did get to Section 1.6 last week, so we will need to spend some more time on Chapter 1, but after that we will move on to Chapter 2 and the ARMv8 architecture and assembly language. The new reading for the week is Sections 2.1 to 2.3.

Fourth Week: September 17, 19, and 21

Reminder: There is a test coming up next Wednesday, September 26.

We will continue to work on ARMv8 assembly programming, from Chapter 2 in the textbook. The reading for this week is: Section 2.6, Section 2.7, Section 2.8 pages 100 to 103 only, and Section 2.9. This material covers branches, logical operations, simple function calls, and string representation. Section 2.5, which covers machine language, is optional. I will talk about ARM machine language briefly in class, but you will not be responsible for learning it in detail. You read Section 2.4, on binary numbers, at the beginning of the semester, but you might want to review it now.

Lab 2 is due on Thursday. You should submit your machine language programs in a folder named lab2, and place that folder in your homework directory in /classes/cs220/homework. I will not collect or print the files until after the lab, but I will not answer any questions about Lab 2 during the lab period on Thursday. You should come to office hours if you have questions. Lab 3 is due next week. There is no new lab this week. You can work on Lab 3 during the lab period on Thursday.