CSE 320 Computer Organization and Architecture Spring Semester 2012 DESCRIPTION Boolean algebra and digital logic. Combinational and sequential circuits. Representations of data and instructions. Architecture and major components of computer systems. Assembly language programming and interfacing to high level languages. Assembler and linker processing. OBJECTIVES This course will introduce students to the interface between the hardware and software of modern computing systems by studying the ISA (instruction set architecture) of a typical microprocessor. Students will learn about: a. the design of combinational and sequential circuits, b. the representation of and operations on basic data types, c. the architecture and organization of digital computing systems, d. the process of translating and executing a computer program. The primary vehicles to achieve these objectives are the study of general concepts and the study of a specific computing system which illustrates these concepts. Students will write C and assembly language programs in a UNIX environment on a SPARC system. INSTRUCTOR M. McCullen Office hours: 2142 Engineering Tu/W/Th 1:30-2:30 PM 517-355-2354 and by appointment mccullen@cse.msu.edu TEACHING ASSISTANT J. Rivera (riveraji@msu.edu) COURSE WEBSITE Information related to the course is available on the Internet at: http://www.cse.msu.edu/~cse320/ Those files are also accessible under the "/user/cse320" directory. COURSE MATERIALS The following materials are required: Principles of Computer Architecture (Murdocca; Prentice-Hall, 2000; ISBN 0-201-43664-7) CSE 320 Course Notes (McCullen; MSU Printing, 2012) The textbook is available at local bookstores; the course notes are available at the Spartan Bookstore in the International Center. LECTURE SESSIONS Regular attendance at lecture is critical to your success in this course. COURSE GRADES Your course grade will be based on the sum of the points you earn in the following two categories: Examinations (60% of total course points) Computer Projects (40% of total course points) To be eligible to earn a non-zero grade in the course, you must receive at least 50% of the total points available for the examinations and at least 50% of the total points available for the computer projects. The following table gives the scale for course grades: 4.0 90% of points available 3.5 85% of points available 3.0 80% of points available 2.5 75% of points available 2.0 70% of points available 1.5 65% of points available 1.0 60% of points available The scale will be adjusted at the end of the semester, if necessary. EXAMINATIONS Two midterm examinations and a final examination will be conducted during the semester, and will constitute 60% of the total course points. Midterm Exam #1 (18%) Wednesday, 2/22 during lecture Midterm Exam #2 (18%) Wednesday, 4/4 during lecture Final Exam (24%) Friday, 5/4 10:00-Noon Make-ups for examinations will be arranged if your absence is caused by documented illness or personal emergency. A written explanation (including supporting documentation) must be submitted to your instructor; if the explanation is acceptable, an alternative to the examination will be arranged. When possible, make-up arrangements must be completed in advance. COMPUTER PROJECTS A series of computer projects will be assigned during the semester and will constitute 40% of the total course points. These projects will include the design and implementation of assignment solutions using C and assembly language programs. To be eligible for full credit, a solution to a computer project must conform to the specifications stated on the handout for that assignment. Solutions that conform to some, but not all, of the specifications will be eligible for partial credit. To be eligible for any credit, a solution to a computer project must be submitted for grading by the deadline stated on the assignment handout. Solutions which are submitted after the deadline will not be accepted. If you are unable to complete a computer project by the specified due date due to illness or personal emergency, contact your instructor. If your explanation is acceptable, the assignment due date will be extended (or we will make other appropriate arrangements). To be eligible for any credit, a solution to a computer project must be your own work. You are encouraged to discuss the assignment specifications with your instructor, your Teaching Assistant, and other students from the class. However, anything that you submit for grading must be your own work. Under no circumstances should you share a project solution with another student. Each project solution is electronically compared to all other solutions to identify similar solutions. Students who submit solutions which are essentially identical will receive a penalty grade, such as a score of zero for that assignment or a grade of zero in the course. NOTES The instructor reserves the right to modify course policies, the course calendar, and assignment specifications, if necessary. Any extenuating circumstances which impact on your participation in the course should be discussed with your instructor as soon as those circumstances are known (such as absences due to illness or religious observances). All students are expected to be responsible users of the computer system provided for this course. Account usage guidelines published by the Department of Computer Science and Engineering are posted under: http://www.cse.msu.edu/facility/policy.php The Department of Computer Science and Engineering expects all students to adhere to General Student Regulation 1.00, Protection of Scholarship and Grades. The principles of truth and honesty are fundamental to the educational process and the academic integrity of the University; therefore, no student shall: 1.01 claim or submit the academic work of another as one's own. 1.02 procure, provide, accept or use any materials containing questions or answers to any examination or assignment without proper authorization. 1.03 complete or attempt to complete any assignment or examination for another individual without proper authorization. 1.04 allow any examination or assignment to be completed for oneself, in part or in total, by another without proper authorization. 1.05 alter, tamper with, appropriate, destroy or otherwise interfere with the research, resources, or other academic work of another person. 1.06 fabricate or falsify data or results MSU regulations, ordinances and policies regarding academic honesty and integrity are posted under: http://www.msu.edu/unit/ombud/RegsOrdsPolicies.html Students who violate the standards for academic honesty and integrity may receive a failing grade in the course. LECTURE CALENDAR Date Topics and associated readings ---- ------------------------------ 01/09 Course introduction (M&H, 1.1-1.8) 01/11 Combinational circuits (M&H A.1-A.7, A.10, B.1-B.2.2 and B.2.4) 01/16 *** Martin Luther King, Junior Day *** 01/18 continued 01/23 continued 01/25 Sequential circuits (M&H A.11-A.15) 01/30 continued 02/01 Number systems for computing (M&H 2.1-2.2.4) 02/06 Fixed point numbers and operations (M&H 2.2.5-2.2.6 and 3.1-3.3) 02/08 continued 02/13 continued 02/15 Floating point numbers and operations (M&H 2.3 and 3.4) 02/20 continued 02/22 ### Exam #1 ### 02/27 The SPARC ISA (M&H 4.1-4.2, course notes) 02/29 continued 03/05 *** Spring Break *** 03/07 *** Spring Break *** 03/12 SPARC assembly language basics (M&H 4.2-4.5, course notes) 03/14 continued 03/19 SPARC subprograms (M&H 4.6 and 10.4, course notes) 03/21 continued 03/26 SPARC data organization (M&H 4.5, course notes) 03/28 continued 04/02 continued 04/04 ### Exam #2 ### 04/09 SPARC floating point operations (course notes) 04/11 The translation process (M&H 5.1-5.3) 04/16 continued 04/18 ISA implementations -- microarchitecture (M&H 6.1-6.3) 04/23 continued 04/25 continued