CS 341: Introduction to Computing Systems
Computer Science Department
University of New Mexico
Albuquerque, NM.
Fall 2006.
Instructor: Edgar A. Leon
Email: leon _at_ cs
Phone: (505) 277 9211
Farris Engineering Center 301E
Office hours: Tue 10:45-12:15 and Fri 15:30-17:00.
Teaching assistant: Donour Sizemore
Email: donour _at_ cs
Phone: (505) 277 7160
Farris Engineering Center 304 (knock very loudly)
Office hours: Wed 13:00-14:30 and Fri 11:00-12:30.
Class mailing list: cs341 _at_ cs _dot_ unm _dot_ edu
Subscribe at http://mail.cs.unm.edu/cgi-bin/mailman/listinfo/cs341
Announcements
- 12/05: Final exam on Tue Dec. 12 at 7:30am.
- 11/01: Programming assignment 5 is now available.
- 10/04: Programming assignment 4 is available.
- 09/29: Homework assignment 4 is now available.
- 09/26: Programming assignment 3 is now available.
- 09/13: Homework 3 is now available.
- 09/12: Programming assignment 2 is now available.
- 09/05: Homework 2 is now available.
- 08/28: Instructor's office hours on Fri have changed.
- 08/22: Programming assignment 1 is available.
- 08/21: If you do not have a CS account (e.g., xxx@cs.unm.edu), get one: contact Rahul or George at FEC 307.
- 08/12: Syllabus and homework assignment 1 are now available.
- 08/09: Welcome to cs341. Please subscribe to the class mailing list.
Schedule
Learning the basics
- Week 1 (Aug 21 – Aug 25)
- Homework assignment 1: pretest.
- Programming assignment 1.
- Introduction to computer organization (Chapter 1).
- Computer language: MIPS (Chapter 2).
- Week 2 (Aug 28 – Sep 1)
- Homework assignment 1 due.
- Computer language (cont.).
- Week 3 (Sep 4 – Sep 8)
- Homework assignment 2.
- Programming assignment 1 due.
- Computer language (cont.).
- Week 4 (Sep 11 – Sep 15)
- Homework assignment 2 due.
- Programming assignment 2.
- Homework assignment 3.
- Computer arithmetic (Chapter 3).
- Week 5 (Sep 18 – Sep 22)
- Programming assignment 2 due.
- Assessing and understanding performance (Chapter 4).
The Processor
- Week 6 (Sep 25 – Sep 29)
- Homework assignment 3 due.
- Programming assignment 3.
- Homework assignment 4.
- Processor datapath and control: single cycle implementation (Chapter 5).
- Week 7 (Oct 2 – Oct 6)
- Programming assignment 3 due.
- Programming assignment 4.
- Single and multicycle implementation.
- Week 8 (Oct 9 – Oct 13) – Fall break
- Processor multicycle implementation.
- Week 9 (Oct 16 – Oct 20)
- Homework assignment 4 due.
- Review and midterm exam.
- Week 10 (Oct 23 – Oct 27)
- Programming assignment 4 due.
- Pipelining (Chapter 6).
- Week 11 (Oct 30 – Nov 3)
- Programming assignment 5: cache simulator.
- Pipelining: Hazards (cont.).
- Week 12 (Nov 6 – Nov 10) – OSDI'06
- Pipelining (cont.).
- Introduction to the memory hierarchy by Prof. Maccabe.
Memory Hierarchy and I/O
- Week 13 (Nov 13 – Nov 17) – SC'06
- Caches (Chapter 7).
- Week 14 (Nov 20 – Nov 24)
- Thanksgiving break.
- Caches (cont.).
- Week 15 (Nov 27 – Dec 1) – MC-NET'06
- Programming assignment 5 due.
- Cache performance.
- Introduction to virtual memory (Chapter 7).
- Week 16 (Dec 4 – Dec 8)
- Virtual memory and I/O (Chapter 8).
- Review for final exam.
- Week 17
- Final exam (Chapter 1 – Chapter 8): Tue Dec. 12, 7:30 - 9:30am.
Textbooks
- Patterson, D., and Hennessy, J., Computer Organization & Design, 3 Ed.
ISBN: 1558606041 - Other reading material
- Kidder, T., The Soul of a New Machine
ISBN: 0316491977
Homework Assignments
-
-
- Cache evaluation
Programming Assignments
-
- Fixed 8/28/06
-
-
- Typo: the turnin project name specifies “cs341.prog4”. It should read: “cs341.06.prog4”. In addition, the wiki page references syscall code 8 for allocating stack space. As many of you have noticed, that should be 9 as in the example program.
-
-
- Sample Solution: This sample solution is provided to illustrate the correct output of the project. To run this solution, simply gunzip the file on any CS dept linux machine. UPDATED WITH FIXES FOR SPLIT AND WRITE-BACK CACHES
- Example traces and specfiles are available in: /nfs/student/d/donour/classes/cs341-06/labs/cache_simulator
-
Sample Code
- Machine readable sample code is available on the CS machines in the directory: /nfs/student/d/donour/classes/cs341-06/labs
-
- Errata: Astute readers have noticed that the main function is missing the proper stack manipulations and return jump of the function call convention. At the end of the program there should be:
lw $ra, 0($sp)add $sp, $sp, 8jr $ra
- Move, simple demo of register move instruction
-
-
-
-
-
- Exercise 1: Write a MIPS program to read in two integers from the console and print the sum of the result
- Exercise 2: Write a MIPS program to read in two floating point numbers from the console and print the sum of the result.