UNIVERSITY OF DELAWARE DEPARTMENT OF COMPUTER & INFORMATION SCIENCES Course: CIS 360 Computer Architecture Professor: Paul D. Amer Office: 101-C Smith Hall Semester: Spring 1994 Phone: 831-1944 Email: amer@cis.udel.edu Hours: T,Th: 3:30-4:45pm and by appointment Course Organization CIS360 relays an understanding of the principles and techniques employed in the architecture of digital computing systems. Computer organization is presented as a hierarchy including from bottom to top: the true hardware, the microprogramming level, the conventional machine level, the operating system level, and the assembly language level. CIS360 provides an overview of each level except the operat- ing system level which is presented in CIS361. Of all levels, the microprogramming level is emphasized the most in this course. All students successfully completing CIS360 will also be competent with the C or C++ programming language, and the Sun Workstation. Prerequisites for this course are CIS260: Machine Organization and Microcomputers, EE202 (or 210/211): Intro to Digital Systems, and all of their prerequisites which include CIS 220 (Data Structures). It is assumed that students are proficient (not merely familiar) with one high level language (most likely C++, C, or Pascal), one assembly language (such as Motorola 68000 or Intel 8086/88 assembly), program- ming skills (modularity, documentation, etc.), and many of the basic concepts and technical terms employed in computer science. If you do not have these prerequisites, you may not belong in this class at this time. Some topics covered include: microcomputers and microprogramming, memory addressing, secondary storage media, macros, assembly process, instruction formats, telecommunications, number representation, and character coding schemes. Assignments and Grading 1 Midterm (April 7) 100 points (25%) 1 Final (during finals week) 100 points (25%) 4 Homeworks 40 points (10%) Programs: Integer Representation 40 points (10%) Microprogrammable machine (2 parts) 120 points (30%) ---- Total 400 points Policy: The programs MUST be written in C or C++ under a UNIX operat- ing system. Test data files will be made available on the Sun works- tations provided for this course by the University's Academic Comput- ing Services. Students using other machines are responsible for accu- rately transferring the test data. The first programming assignment on integer representation must be done independently; the microgrammable machine assignments may be done in teams of at most two. For team efforts, a signed statement by both team members explaining each person's contribution to the project. Homeworks are explained later in this syllabus. Assignments are due at the beginning of class on the announced due date. Unexcused late assignments will be penalized at most 3 points per day including weekends and not accepted more than two weeks after the due date. Late assignments should be time stamped and turned in to the TA. Late assignments are better than no assignments. Assign- ments are considered turned in when they are delivered to the TA, not when they execute on the machine. I believe that grades indicate relative performance, hence, final grades, in part, are assigned according to a curve. Based on total points, the following approximate percentages of grades will be awarded. Ranges allow for variation among classes and natural break- points. A,A- (10-20%), B+,B,B- (20-50%), C+,C,C- (10-25%), D+,D,D- (0-15%), E (?). In addition to the curve, certain grade guarantees are defined. Earn- ing more than 90%, 80%, 70%, 60% of the total number of points will guarantee a grade of A-, B-, C-, D-, respectively. All students are graded on the same scale. Borderline cases are influenced primarily by exam scores and in part by class attendance and participation. A philosophical note on grades. I do the best I can in measuring how much course material you demonstrate that you know. This is done through assignments and tests. I do not grade intelligence, creativity, nor in particular how much time and effort you put into the course. Textbooks Structured Computer Organization, 3rd Edition, by Andrew S. Tanenbaum, Prentice-Hall, 1990 (required) The Soul of a New Machine, by Tracy Kidder, Avon Books, 1981 (required) Any book on the C or C++ programming language. Homework Questions The following homework question sets taken from the text by Tanenbaum are required for all students. A subset of these questions will be graded. Variations of these questions will appear on the exams including the hard questions. Chapter Questions 1 2,3,5,6,10,11 2 1-11,15-25 3 (optional) 1,2,4-7,9,... (Good for students w/o EE202 or EE210/211) (Find typo in Figure 3-19) 4 1-5,8-13,19-21,23-25 (In 8, give specific numbers for your comparison) 5 2,4-12,18-20,23-27,30 7 1,3-9,12,13,17-19,21 Some questions require the student to make reasonable assumptions pos- sibly resulting in different answers. In these cases, be sure to clearly state your assumptions. Due dates will depend on the progress of the lectures and will be announced during class. It is recommended strongly that you do the questions in pace with the class lectures, not the night before they are due. Homework Study Groups Homework is to be done independently with the following exception. In the past I have permitted the formation of homework study groups. By a study group, I mean the following: 2-4 people decide to study together. Each person individually makes a sincere, best effort to answer all questions in written form. Before the assignment is due, the group gets together to go over those problems that caused diffi- culty. Each person contributes his/her thoughts on the answers and, most importantly, on other questions that naturally arise from answer- ing homework problems. Then each person individually writes up an answer set to be turned in. By a homework study group, I do NOT propose the following: several people decide to study together. Each person selects a share of the problems and works only on those problems. The night before the prob- lems are due, each person rotely copies the other group members' solu- tions. By a homework study group, I do NOT propose the following: the night before the problems are due, a person asks a 'friend' to let him/her copy the homework answers. This is cheating for both participants. Real friends do not ask others to cheat on their behalf. Each person is responsible for the answers turned in. If you cannot explain your answer and how it was derived, it is considered cheating. I expect that all of you are capable of maturely distinguishing between the situations above (and their variations) and will avoid participating in the latter type.