|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instructor
Andree Jacobson | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schedule
Lectures: Tue + Thu 9:30am - 10:45am; MECH 208. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Teaching Assistant
William McMain (Email: praetorfenix69_at_gmail_dot_com) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Catalogue Description
341L. Introduction to Computer Architecture and Design. (3) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Course Overview and GoalSo, you have completed CS152, CS241, and ECE238 - this means that you are ready for CS341. Some assumptions I'll make about you when you come to class is that you understand binary logic, truth tables, have a notion of number systems (hex and octal), are familiar with programming in Java and C, have a basic understanding of data structures and memory management in a computer. With the above mentioned knowledge, we are now prepared to go deeper into the computer system to try to understand how a processor works, conceptually. Previous to this course, you know that when you write a command in a program, the compiler translates this into machine code that is executed on the system. In this class, we will understand exactly how that command is executed inside the processor by disecting a simple MIPS processor and analyzing it. The substantial parts of this part of the course is to understand datapaths through the processor. We will also look in quite some detail on computer arithmetic, and repeat some of the binary logic you did in ECE238 to make sure it's second nature to you. Furthermore, we'll look at performance and how to do some optimizations in the processor and at assembly code level. We'll also talk about cache memory and how to do input/output at a very low level. We will write programs in C and MIPS assembly througout the semester, and the purpose of these programs is to emphasize certain concepts that we will cover during the class. The class has a 50 minute recitation session on Fridays at 2pm. Even though we have this session, you should be prepared to spend a fair amount of work on programs/projects in this class outside class and section time. The main goal of this class is to increase your understanding of the organization of a processor, and the how the operating system interacts with the processor to perform work. We're taking you toward the hardware in this class, to complement the software portion that is addressed in CS351. This class is absolutely necessary if you are intersted in operating systems (one of the required 400-level classes in the major), and compiler design. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PrerequisitesCS241 and ECE238 or their equivalents. If you are unsure if you have the appropriate knowledge before starting this class, please talk to the instructor about your particular case. All the work that you will do and turn in is to be done on the CS linux systems, so you must have a basic understanding of how to work in linux, which you should have gotten from cs241. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Course Web PageThe course web page will always have updated information on what is happening in the class. There is a Lecture Plan from which you can see what has been covered in each class. This page will also have links to digital versions of handouts so that they can be printed out in case you missed a class. At the bottom of the class homepage there will be a list with urgent messages, and updates to the webpage. For example about changes in assignments, etc. It is your responsibility to keep yourself informed about these things. It is my responsibility to keep the page up to date. Grades will also be posted on the web page. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Required Textbook
The course will follow the text book fairly closely, though we may also use some supplemental materials. Homework assignments will be based largely on the content of the book, and use the same vocabulary. Supplemental materials may be handed out in class, or may be available through the course web page. It is the student's responsibility to be informed of all the materials used for the class. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cheating & Collaboration a.k.a Academic HonestyThe university has a strict policy on academic integrity. This policy is supposed to be followed by all students. Your individual effort is required on all assignments unless otherwise noted. For all individual assignments, the solutions turned in must be your own original work. You are allowed to talk about these assignments with your peers, but keep the discussion on a high level. If you discuss a solution in terms of source code, you are cheating! Be aware that we will be checking all your solutions for similarities to other student's solutions. Violations to the academic integrity will be delt with in a strict manner. In the end, cheating does not benefit anyone! Please try to be honest to each other. If you have any doubts about if something is considered cheating or not, it is your responsibility clear it with your instructor in advance. Policy: A first offense will be penalized by a negative equivalent of the value of the assignment. I.e., if the assignment is worth 200 points, you will get -200 points for the assignment, and it will count toward your final average. A second incident will automatically result in a failing grade in the class. All academic integity violations will be reported to the appropriate authorities (i.e., the department and college). It will remain in your records until graduation and can possibly result in further disciplinary actions. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assessments and GradingThere will be a number of programming assignments, written homeworks, and exams throughout the semester. You are responsible knowign all material covered in class, on assignments, homeworks, for the exams. Requests for regrades will be honored within one week from the day the assignment was returned to you. After that one week, no regrades will be accepted. The TAs grade according to the instructors wishes, if you have any problems with grading policies, please address them to the instructor directly. You should however turn in all requests for regrades of assignments to the TA. When you do, you should also supply a proper explanation of what you think was misgraded on a separate sheet of paper attached to the front of a printed out version of your assignment. The grade distribution for each element in the class will be as follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Late PolicyEach student has a total of four (4) late days over the semester. One day constitutes 24 hours. I.e, if the assignment is due on Wedensday at noon, you can use one (1) late day and turn it in by noon on Thursday without penalty. Partial days (turnin on Wednesday night, instead of Thursday noon) still counts as one whole late day. You can choose how you want to distribute the late days over the semester (3, 2+1, 1+1+1). Note, late days are only valid for homeworks and assignments - Not exams. There is no penalty for using late days, however after you have used all your late days - Late assignments will not be accepted (nor graded) and will be result in a score of 0. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attendance PolicyYou are expected to be attend every lecture, and arrive to class on time. Also be prepared to interact with the class during lectures. If I find it necessary I will take attendance and if you are not present in class without a valid excuse you will be withdrawn from the class. You are ultimately responsible for knowing all materials covered in lecture. If you need to miss a class or recitation session, please inform the instructor before class. Notes from class will be available on the web page, but do not assume that just reading those notes will compensate for absence in class.
As a courtesy to other students please restrict activities such as eating and talking on the phone to somewhere outside the classroom. Also, please turn your cell phones off or to vibrate during class hours. Students with ringing phones face a risk of getting many questions during the remainder of class :) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Computer Access/SetupYou are expected to do program development in the Unix environment on the CS departments linux machines (moons.cs.unm.edu). If you do not already have a CS account, you need to talk to the CS support staff in FEC 307, about getting an account. Once you have an account, you can access the computers in the lab on the third floor of Farris. Note, that all assignments will have to be turned in from these computers. Turnin instructions are available on the assignments page of the class web page. You may develop your programs and documentation on other machines such as your laptop, etc but you should always make sure that everything compiles and runs just fine on the CS department linux machines. Failure to do so may result in severe point deductions on assignments.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Topic OverviewThis overview is a tentative outline and is subject to change. It is your responsibility to come to class, and check the webpage for updates to the schedule, change of exam dates, and coverage.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Page last modified 01/25/2008 12:00PM by Andree |