CmpSci 535

Computer Architecture

Course Syllabus

Fall, 2007

 

Chip Weems                                                                            Office Hours:

Office: CS-342                                                                        W: 10:30 – 11:30 AM

Phone: 545-3163    E-mail: weems@cs.umass.edu                 Or by appointment

                                                                                               

Optional Textbook:  Computer Organization and Design, Second Edition (no longer in print), David Patterson and John Hennessy, Morgan Kaufmann, 1998

 

Course Goals:

 

As a computer scientist, you are expected to have a deeper understanding of how computers work than would a typical user. This means that you are expected to be able to do such things as:

¥ determine why a particular piece of code executes slowly even though it should be fast in theory;

¥ specify a hardware configuration that enables an application to meet a given performance requirement;

¥ estimate the impact on performance of switching to a different hardware platform or upgrading to a new generation of the current platform;

¥ analyze and explain the implications of some new piece of computer technology for products or services that your employer provides;

¥ and answer inane questions at parties like "why doesn't my Xeon run any faster than my neighbor's AMD system?"

 

The goal of this class is to provide you with a working knowledge of how computers operate, and the general principles that affect their performance. We are not going to focus heavily on specific technology (such as a currently popular microprocessor) because within one to three years all of that technology will be obsolete. Instead, we cover the fundamentals that allow your understanding of technology to grow with future developments. You will also gain a better appreciation of the cost/performance tradeoffs encountered in designing a computer system and why some of them don't seem to make any sense. We'll take a look at some of the common tricks that architects use to boost performance. Toward the end of the course we'll take a look at some advanced architectures and consider their future impact.

 

Course Notes:

 

Course notes are available at http://www.cs.umass.edu/~weems/courses.html. It's best to read them before class, as they are good preparation for our discussion questions. I usually make minor updates to them as the semester progresses, as a result of using them. I apologize in advance for the rough editing of the notes -- they really are just my own personal notes, and are designed to remind me of things I should discuss in class. If you would like to provide me with feedback on them, please send me e-mail.

 

Grading:

 

Midterm:     10%               Homework:     20%              Class Participation:    40%

Final:           10%               Project::           20%

 

Exams

 

Exams are open book and open notes. This is so that you can look up formulas or data as needed -- I don't expect you to memorize this sort of information for exams. I do expect you to have read the notes, attended class, and to know where to look up the information that you need. There won't be time in the exams to read material you're unfamiliar with. The purpose of the exams is for you to demonstrate that you have attained an operational level of understanding of the material. Bring a calculator to all exams unless I specifically tell you that it won't be needed.

 

Homework

 

Number: At most eight homework assignments will be given out.

Due Dates: They are each due at the start of class one week later.

Late Policy: You must do your work on time because we'll be correcting it in class. If you know that you have a specific time conflict, make arrangements with me in advance for a separate assignment for late submission. The answers will usually be given out in class on the due date, so credit cannot be given for regular homework turned in after that.

Format: All homework and in-class assignments will be done in an 11x14 spiral-bound field sketch book with at least 50 pages of high quality, non-lined paper. Do your work in pen (color choice is up to you). Please do not use pencil, with the exception of colored art pencils, which may be used for illustrations. Do not remove pages from the book or paste other work in. Neatly cross out mistakes. Think before writing and plan drawings out in advance so that you keep a neat and presentable book that you can be proud of.

Collaboration: The purpose of the homework is to give each person a chance to gauge their comprehension of material from class, and to practice answering questions like those that will appear on the exams. It is thus best for you to do the work alone. If someone else in the class asks you for help, try to take the role of a teacher and help them find the solution on their own; don't just give them an answer. If I feel that people are submitting answers that are merely copies of each other, I will grade the one solution and divide the credit equally among the copies.

I will allow one specific kind of collaboration within a team: If you've all completed your homework, you may review each other's notebooks and mark them as if you're grading them. Then you can return the notebooks and redo the work as necessary. This must be clearly marked in the notebook – "Reviewed by (indicate name)," and include written grading comments (the reviewer should not provide the correct answer). Then, next to the original problem, indicate where the redone version appears ("Redone on page nn."), and label the redone version clearly as "Corrected Problem X, Homework Y." The goal is for you to become proficient in answering questions like those on the exams. I want to see that you've reached the point that you can get the answer on your own – even if it takes more than one try to reach that point. I anticipate that everyone will do well on the homework, and in the end, the grading is more a matter of recording that you've practiced enough to master the specific problem-solving skills.

Grading: Homework will be corrected as an exercise in class. I will have teams exchange homework and then mark each other's work. Be considerate of your fellow classmates by writing legibly and organizing your answers in a clear manner. You should mark answers that are obviously correct or wrong, and comment on answers that are not clear-cut. I will review all homework and assign an overall numerical grade -- some number of points, with the maximum number indicated. Each of the homework assignments makes up the same percentage of your final grade.

Teams

Soon after the end of the add-drop period, I will divide the class into two-person teams. Your grade for the semester depends on your performance as a team. Only under the most exceptional cases will I assign a different grade to the members of a team. Thus, you are responsible not only for your own grade, but for that of your team partner. Your grade thus depends equally on how well your partner does in the class. If your partner is having trouble with some concept, you need to work to ensure that he or she understands it before an exam. Some ways that you can help to ensure that your partner does well:

Meet regularly for study sessions.

Quiz each other on concepts.

Work together on problems from textbooks, or on problems that you make up which are similar to assigned homework. Try doing some of the latter before you tackle the actual homework assignment, so that doing the assignment comes easily.

Do not help each other on the actual homework, but use it as a mini-test between yourselves. Review each other's homework after it is written and discuss how it might be improved. Then make corrections separately. You won't be able to collaborate on exams, and you need this sort of practice to be well-prepared.

Get together and review homework assignments prior to each exam. Make up mock exams for each other and then grade them.

Be realistic with your partner in discussing your abilities and time commitments when you divide up project work. Look at the long-term project workload – you can partition the work over the semester as well as on each module.

Come to class on time, well prepared. Meet before class to review your preparations; identify, discuss and clarify issues from the reading, and formulate any questions you need to ask in class.

Be very explicit in communicating your expectations of each other. Write them down and sign them.

Make sure that you have each other's schedules, phone numbers, e-mail addresses, etc. Establish a clear policy of when it is OK to contact one another. Let each other know when you are going to be unavailable with enough advance warning for good contingency planning.

Communicate! Communicate! Communicate! Tell each other what you are thinking. Don't keep thoughts inside. Remember to praise each other for jobs well done. If you feel the need to criticize, use statements that start with "I thinkÉ." or "I feelÉ" Avoid criticism that starts with an accusatory "You didÉ," or "You alwaysÉ"

Think of yourselves as a team. Develop some team spirit. Name your team or your project computer design. Develop a unique style for your homework and demos that you share in common (e.g., team colors, a logo, a border pattern that appears on each page of your sketch book). Get to know each other as individuals. Do lunch. Discuss hobbies, career goals. If you each take the time to care about the other, then you'll do what has to be done to excel as a team.

Semester Project

 

The project involves programming an emulator for a computer system. Your team will be designing the computer in stages through the semester. It will be built in a modular manner that follows the actual construction of a system's hardware. There will be in-class demonstration dates for the different modules. You can either bring your demo on a laptop, or write it in a manner that can be run from a standard web browser (e.g., as a Java Applet). The goal is to have a complete, simple computer simulation operational about a month before the end of the semester, and then to add performance-boosting mechanisms and measure their effects. A report on the design of the emulator, together with the basic machine's performance and results of the improvements will be due at the final exam. At each demo, each team member is expected to report on the tasks assigned to them in terms of progress to date and goals to be achieved before the next meeting.

Class Participation

 

A large component of your learning takes place in class. It is where you have me as a resource. I will lecture to you very little. Much of what you need to know about computer architecture you either already know intuitively or somebody else in class already knows. Most of the time it is a matter of making this knowledge explicit and relating it to a larger whole so that you understand its significance in perspective. Thus, I will mainly pose questions for discussion, guide discussion, and add information here and there as necessary to carry the discussion forward or to lead it into a digression that adds depth in a different direction. I will also have some in-class exercises that you will do as teams or as paired-teams. Thus, it is very important that you attend class regularly. I will keep attendance throughout the semester. Please let me know in advance of any scheduled absences. If you are unable to attend class due to illness, please let your partner know so that he or she can properly prepare for class.

 

It is very important that we focus our attention during the limited time we have together in class. Each of us comes in filled with thoughts from outside of the classroom. Thus, each day we will begin promptly with a brief mind-clearing exercise, followed by a focusing exercise. During the mind-clearing exercise we will sit in silence and focus our attention on something that helps to quiet other thoughts. To then focus our attention within the classroom, we will recite some words in unison (these may be a piece of a poem, some nonsense words, song lyrics, a short piece of prose, etc.). The recitation also serves to warm up our voices. Because it is important that we not be distracted while doing these exercises, I will close the door promptly at the start of class. If you arrive late and the door is already closed, wait outside until I reopen it and invite you in. I will record late arrivals on the day's attendance, and lateness will count against your class participation grade (three late arrivals are equivalent to one absence).

 

In addition to attendance, your class participation grade depends on how much you contribute to discussions and the in-class exercises, your record of in-class exercises in your sketch-book, my sense of how well you are prepared for class, and the overall attitude and quality of participation that you display.

Learning Process

 

It is well documented that we learn in different ways with the two hemispheres of our brains. Our right hemisphere is oriented toward the artistic and creative side of things while our left hemisphere is oriented toward the logical and analytical. Learning is more effective when both hemispheres are engaged and reinforcing one another. Thus, you will find that I sometimes assign unusual homework and class work that is designed to stimulate this kind of holistic learning. I may ask you to write a poem about a technical topic, or to draw an artistic representation of a concept. I won't evaluate these works on their artistic merit, but I will look for evidence of both personal creativity and knowledge being employed. Keep in mind they will also be reviewed by other students in the class.

 

Thus, in addition to a sketch book, you will need appropriate art supplies for some of your assignments. Colored art pencils are likely to be good choices. Inexpensive children's crayons and colored felt pens are difficult to use with subtlety – please avoid them.