CSE/EEE 230 Computer Organization and Assembly Language
Disclaimer: this web page is the official syllabus for the course; paper copies will not be distributed. During the semester, changes may be made to the syllabus. If the change is significant, notification will be given in class, and an announcement will be made in Blackboard. Minor editing changes will not be announced. The student is responsible for reading this syllabus at the beginning of the semester to acquaint himself or herself with the course policies, and for checking the syllabus periodically throughout the semester for relevant information.
Spring 2017 — Course Information
|Lecture Sections||11477 (CSE230), 11633 (EEE230)|
|Date & Time||MWF 2:00–2:50|
|UGTA's||Mauricio Gutierrez, Matthew Natale|
Catalog Course Description
Register-level computer organization. Instruction set architecture. Assembly language. Processor organization and design. Memory organization. IO programming, Exception/interrupt handling. Prerequisite: CSE 120 or EEE 120 with C or better; CSE 100, 110 or 200 with C or better OR Computer Science or Computer Systems Engineering Graduate student; Credit is allowed for only CSE 230 or EEE 230. Three (3) credit hours. Lecture/No lab.
At the end of the course the student shall be able to:
- Explain how programs written in high-level languages are executed by a computer system.
- Write relatively simple assembly language programs employing flow of control constructs and procedures.
- Explain what hardware factors impact program performance and how to write programs for performance.
- Explain techniques used by computer hardware designers to improve performance.
- Explain the reasons for the ongoing transition to multiprocessor architectures.
- Explain data representation, instruction sets, and addressing modes.
- Explain how a datapath can be implemented as a single-cycle or pipelined design.
- Explain how the memory hierarchy impacts performance.
The material to be covered in this course will be drawn from Chapters 1-6 of the textbook, although not necessarily in the order listed here. We will also not cover all of the material in the textbook as there is too much to be discussed in a one semester course.
Chapter 1: Computer Abstractions and Technology
- What is "computer organization?"
- The five classic components of a computer system.
- Defining performance.
- Measuring performance.
- The classic CPU performance equation.
- Performance and the power consumption wall.
- Multiprocessors and parallel computing.
Chapter 2: Instructions: Language of the Computer
- Instructions and instruction sets. Instruction set architecture (ISA).
- Operations and operands.
- Representing signed and unsigned integers.
- Encoding instructions.
- MIPS logical instructions.
- MIPS instructions for making decisions.
- Supporting procedures in computer hardware.
- Representing characters and strings.
- MIPS addressing modes.
- Instruction decoding.
- MIPS assembly language example programs.
Chapter 3: Arithmetic for Computers
- IEEE 754 single and double precision floating point formats.
Chapter 4: The Processor
- The basic MIPS implementation instruction set.
- Review of digital logic design conventions.
- Building the single cycle datapath.
- Adding the control to the single cycle datapath.
- An overview of pipelining.
- Pipeline hazards.
- The MIPS pipelined datapath and control.
Chapter 5: Large and Fast: Exploiting the Memory Hierarchy
- Memory hierarchy and the principle of locality.
- Memory technologies: RAM (SRAM and DRAM), ROM (Flash).
- Cache basics. Direct mapped caches.
- Measuring and improving cache performance.
- Set and fully associative caches.
- Reducing the miss penalty using multilevel caches.
- Virtual memory and implementing protection with virtual memory (if time permits).
Chapter 6: Parallel Processors from Client to Cloud
- Parallel programming, the speed-up problem, and Amdahl's Law.
- SISD, SIMD, MISD, and MIMD architectures.
- Hardware multithreading.
- Shared memory processors.
Office Hours & Support
The instructor will be available during his office hours to answer any questions you may have about the course, the material, or the assignments. I'm a friendly guy (except when I'm not), and willing to talk with you and help you as much as I can, so stop by if you want, but please be aware that I also teach other courses and have other duties as well, so I am quite busy. When you come in for help, please be prepared to ask pointed and specific questions about what you do not understand or are having difficulty with. It is next to impossible for me to help you if you come in and say, "I don't understand anything." Also, a final word of advice. I may not be available as much as you would like the day before or the day an assignment is due. I will give you plenty of time to complete the assignments as long as you start working on them well before the deadline. This will give you ample time to meet with me or the TA to discuss your questions as you are working on the assignment. Start early!
We have a graduate TA, Zuwei Guo (Zuwei.Guo@asu.edu), who will be available for seven weekly office hours to assist you with your homework assignments and to answer any questions about the material that you may have. He will also grade a few of the homework assignments and exams. Zuwei's office hours are MWF 3:30-6:00 in CTRPT 114.
We have two undergraduate TA's (UGTA's) assigned to the course, Mauricio Gutierrez (firstname.lastname@example.org) and Matthew Natale (Matthew.Natale@asu.edu). Their duties will be to assist me in various ways in and out of the classroom. These duties will include holding two weekly office hours each during which they will be available to help you with the assignments or to just answer questions about the material. Mauricio's office hours are TuTh 1:30-2:30 and Matthew's are M 3:00-5:00, both in CTRPT 114.
There are three graders for the course, who will perform the grading. Zuwei, the grad TA, is also grading the last couple of homework assignments and the final exam. Each grader will hold one office hour per week so you may meet with him or her to ask questions about the grading of an assignment or exam.
|Grader's Name||Office Location||Office Hours|
|Mauricio Gutierrezemail@example.com||CTRPT 114||TuTh 1:30-2:30|
|Julia Liufirstname.lastname@example.org||CTRPT 114||Th 10:45-11:45|
|Amit Raneemail@example.com||CTRPT 114||Tu 3:00-4:00|
The School of Computing, Informatics, and Decision Systems Engineering (CIDSE) provides free tutoring for CSE/EEE 230 in the CIDSE Tutoring Center, which is located in CenterPoint 114 (CTRPT 114), which is across Mill Ave from BYENG. The hours are Mon through Fri 9:00am to 6:00pm.
Course Materials & Resources
The website you are currently viewing is the main website for this course (I will refer to it as the course website), and most course information will be available here. I only use Blackboard for: (1) posting important announcements; (2) student submission of assignment files; (3) posting assignment, quiz, and exam solutions and grading rubrics; and (4) posting scores in the Blackboard Grade Center.
- The textbook is Computer Organization and Design, 5th Ed, David Patterson and John Hennessy, 2013, Morgan Kaufman, ISBN: 978-0-12-407726-3. (I do not assign homework questions directly from the book so it is your choice if you wish to purchase the 5th edition; you could easily get by with the 4th edition, which is less expensive.
- Textbook Green Card
- My ASU Courses (Blackboard)
- MIPS Architecture Volume I-A: Introduction to the MIPS32 Architecture
- MIPS Architecture Volume II-A: The MIPS32 Instruction Set
- MIPS32 Instruction Set Quick Reference
- MIPS Assembly Language Programmer's Guide
Various methods will be used to present the material and assess the student's understanding and comprehension.
Specific reading assignments will not be given but it is expected that the student will read the relevant sections in the textbook as we discuss the material in the lectures. I will also provide course notes which are intended to augment the material in the book, so read and study the notes as well.
There will be h homework assignments (likely five to eight), each consisting of short-answer type exercises and MIPS assembly language programming exercises. Each homework assignment will be published on the course website at least one week before the assignment deadline and are accepted for grading on a variable deadline (except for the final homework assignment which will be due the day before the final exam).
|> 48 hrs before the deadline||Bonus of 20% of earned pts.|
|> 24 hrs and ≤ 48 hrs before the deadline||Bonus of 10% of earned pts.|
|≤ 24 hrs before the deadline||Accepted for grading with no bonus/no penalty.|
|< 24 hrs after the deadline||Penalty of 10% of assignment pts.|
|≥ 24 hrs and < 48 hrs after the deadline||Penalty of 20% of assignment pts.|
|≥ 48 hrs after the deadline||Not accepted for grading. Score will be 0 pts.|
Assignments that are submitted more than 24 hours early will be awarded bonus points. For example, if the assignment is worth 50 points and you earn 33 points by submitting the assignment 50 hours before the deadline, then you will be awarded 33 × 20% = 6.6 bonus points, for a total assignment score of 39.6 points. Assignments that are submitted less than 48 hrs after the deadline will be penalized points. For example, if the assignment is worth 50 points, and you earn 33 points by submitting your assignment one minute after the deadline, then you will be penalized 50 × 10% = 5 points, for a total assignment score of 28 points. The penalty for 24 to 48 hours after the deadline is 20% of the assignment points. In no case will an assignment be graded when submitted 48 hours or more after the deadline. Assignment solutions must be uploaded to Blackboard for grading; in no case will an emailed assignment be accepted for grading.
Short-answer solutions to homework assignments must be typed using either a text editor or word processor and submitted to Blackboard in PDF. A solution that is submitted in a file format other than PDF will be graded with a 25% penalty if the TA or grader can open the submitted file. If the grader cannot open the submitted file for grading, then the student will be assigned a score of zero. Newer versions of Microsoft Word will export documents in PDF format. If you use Open Office or Libre Office, you can export a document in PDF format using the File | Export as PDF menu item. Otherwise, there are freeware programs that you may download and install which will convert a file into PDF format. One such Windows-based program is named CutePDF; Google it.
Each assignment will be worth 50 points and your lowest homework assignment will be dropped. At the end of the term a homework assignment percentage, denoted hw in the course percentage formula below, will be calculated as the sum of the points you earned on your h - 1 highest scoring homework assignments divided by 50(h - 1). Your homework assignment percentage—including bonus points—will be limited to a maximum of 100%.
Note: In cases of academic integrity violations—when the student is assigned a score of 0 on a homework assignment—no homework scores will be dropped, and the homework assignment percentage will be calculated as the sum of all earned homework assignments scores divided by 50h.
There will be q (probably around 6 to 9) open-book, open-notes, work-with-one-friend quizzes during the semester. A quiz will generally involve material that was covered in the current or previous lecture. Reading the book and the course notes ahead of each class should help you learn the material and earn higher scores on the quizzes. Each quiz will be worth 10 points and your two lowest scoring quizzes will be dropped. At the end of the term a quiz percentage, denoted q in the course percentage formula below, will be calculated as the sum of the points you earned on your q - 2 highest scoring quizzes divided by 10(q - 2). Note that quizzes are essentially extra credit as your quiz percentage will be added to your final course percentage. For example, if your course percentage, sans quizzes, is 83.3% (which would be a B) and your quiz percentage is 95%, then 0.95 × 5 = 4.75% will be added to your course percentage changing it to 88.05%, which would raise your grade to A. See the note in the Examinations section below regarding quizzes and your exam scores.
Note: In cases of academic integrity violations—when the student is assigned a score of 0 on a quiz—no quiz scores will be dropped, and the quiz percentage will be calculated as the sum of all earned quiz scores divided by 10q.
There will be two in-class midterm examinations; the exam dates are listed on the monthly calendars in the Schedule section. There will be a noncomprehensive final exam given during the final exam period, see the May calendar. Each exam will be worth 100 points. One-half of the points earned on the two lowest scoring quizzes will be added to your first and second midterm exam scores at the end of the term, which in theory, would allow you to score 105 on both of the midterms.
Only in exceptional, documented cases (exceptional is defined by the instructor and will generally involve something like a note from the neurosurgeon who performed your emergency hemispherectomy on the day of the exam) will an exam be given after the exam date. If you know you are going to be absent on the date of an exam for a good reason (generally only business travel for your job or travel for an approved ASU function, documentation required) then you may be permitted to take the exam early. If a serious-enough situation warrants a midterm makeup exam, the exam will be administered during finals week.
Note: You will be required to show proper photo identification (an ASU Suncard, driver's license, military ID card, or passport) when handing in your examination for grading. If the instructor or teaching assistant does not recognize you, and you cannot produce photo identification, your exam will not be accepted for grading.
Calculating Final Letter Grades
Your final letter grade will be based on your final course percentage, FCP, which itself is based on the calculation of two course percentages:
(hw × 40%) +
((mid1 + ql1 / 2) × 20%) +
((mid2 + ql2 / 2) × 20%) +
(final × 20%) +
(q × 5)
CP2 = ((mid1 + ql1 / 2) × 33.33%) + ((mid2 + ql2 / 2) × 33.33%) + (final × 33.33%) + (q × 5)
Where hw is your homework assignment percentage, calculated as described in the Homework Assignments section above; mid1, mid2 and final are your three exam scores, ql1 is your lowest quiz score, ql2 is your second lowest quiz score, and q is your quiz percentage, calculated as described in the Quizzes section above. Note that CP2 is based solely on your exam and quiz scores, i.e., if you do not want to complete the homework assignments and you wish to base your grade entirely on your exam scores, then that option exists. Your final letter grade will be based on your final course percentage which is calculated as,
FCP = ceiling(max(CP1, CP2))
Note that the ceiling of x is the smallest integer that is greater than or equal to x. For example, the ceiling of 79.2 is 80, the ceiling of 80 is 80, and the ceiling of 79.99999 is 80; essentially, the ceiling function always rounds up when the number is not a whole number. Letter grades are assigned per this table:
|FCP > 100||A+|
|FCP ∈ [87.5, 100]||A|
|FCP ∈ [75, 87.5)||B|
|FCP ∈ [62.5, 75)||C|
|FCP ∈ [50, 62.5)||D|
|FCP < 50||E|
If you believe a graded assessment (i.e., a homework assignment, quiz, or exam) was marked incorrectly, the first step is to meet with the TA or grader who graded the assessment in question and discuss your concerns with him or her. If the TA or grader made an honest mistake, then he/she will correct it and enter the updated score in Blackboard. On the other hand, if the TA or grader correctly marked, or believe they correctly marked, the assessment using the instructor-provided grading rubric, and after conferring with them, you disagree then you may file a grade appeal with the instructor using this form. Please read the form instructions carefully. Basically, you have one week from the date the assessment was graded to file your grade appeal. No appeals will be accepted after the one week period for any reason. You must submit the original quiz or exam answer sheet along with your grade appeal form in person to the instructor; emailed forms will be discarded. Grade appeals are considered by the instructor at the end of the semester before calculating your final course percentage and letter grade (the reason is, that in most cases, whether the appeal is successful or not, it will not affect a student's course percentage enough to change the student's letter grade). At that time, I will regrade your assessment only if giving you the points in question would change your final course percentage enough to raise your final letter grade. If your score was changed, the new score will be entered in the Blackboard Grade Center.
In general, the instructor believes learning is a collaborative activity, that students learn best when they work together, and that students should be encouraged to learn from and teach each other. These activities would include working together on assignments and quizzes, and jointly studying for exams. In completing the assignments and quizzes, student-pair collaboration is encouraged and will be permitted as long as each member of the pair contributes equally to the work. Collaboration is only acceptable between members of the same pair-team; inter-team collaboration is forbidden and violators will be sanctioned. Collaboration on examinations is not permitted; each exam must be completed by the individual student. Failure to abide by these rules will result in a score of zero being assigned to one or both members of the team (i.e., if I have a reasonable hunch that one student did all of the work on an assignment and the other student simply put his/her name on it, then the student who did all of the work will receive the assignment score and the other student will be given a score of zero). In cases where a homework assignment or quiz is submitted for grading with more than two students' names on the assessment or in cases of inter-team collaboration, all involved students will earn a score of 0. For the second offense, all students will earn a score of 0 and the infraction will be reported to the Fulton Schools of Engineering Dean's Office for disciplinary action. Any student accused of cheating on an exam will be given a score of 0 and will be reported to the Fulton Schools of Engineering Dean's Office for disciplinary action for the first offense.
Note: See the Assessment section concerning how academic integrity violations are handled for homework assignments, quizzes, and exams.
You are strongly encouraged to acquaint yourself with the ASU Academic Integrity Policy
The ASU Student Services Manual (SSM 201-10) permits the instructor to withdraw a student from a course for disruptive behavior with a mark of W (withdrawal) or E (failure). Note that "disruptive behavior" is defined by the instructor, not by the University or the student. Violation of conventional and acceptable classroom behavior will result in the offender being asked to exit the classroom and notification of the offense to the Fulton Schools of Engineering's Dean's Office. If required, Campus Security will be called. A warning may or may not be provided.
There is a strong and well-established correlation between class attendance, learning, and performance; therefore, regular class attendance and participation is expected. I intend to begin class each day on time (give or take a few minutes) and I expect you to be present and ready at that time. However, you are adults, and you (or someone who may or may not love you) are paying for your education, and ultimately, it is your education. If you want to squander this opportunity, then no gimmick I devise to try to get you to come to class and participate will be successful, so lecture attendance will not count toward your final course grade. That said, any extra credit quiz points you earn may alter your final letter grade if your final course percentage lies on the border between two letter grades, so for that reason alone, I would recommend regular lecture attendance.
Note that in general, you may sit where you wish. However, the instructor has the right to ask you to sit in a specific seat or move to a different seat at any time during the semester. In the past, I have moved students whom I suspected were cheating during an exam, and I will do so in this course if I believe you are looking at another student's paper or sharing answers during an exam.
Requirements for Success in this Course
The instructor assumes that you are mature and responsible adults, that you are enrolled in this course because you wish to learn the material, that you will read any assigned readings before class begins, that you will come to class prepared to discuss the reading and ask questions, that you will complete the assignments to the best of your ability on time, that you will actively participate in class discussions, and that you will ask questions about material you find confusing. The instructor believes that college students must be actively involved in their own learning process, that they cannot just sit and listen to lectures and expect to learn the material, that one of the purposes of college education and the Arizona State University mission is for the student to self-develop skills such as problem solving, independent learning, critical thinking, and effective written and spoken communication. To succeed in this course you must:
- Be prepared for every class, attend every class, and pay attention.
- Read the textbook and other assigned readings prior to class.
- Begin and complete the assignments well before the due date.
- Prepare thoroughly for and complete every exam.
- Do any additional exercises you must to understand the material.
- Work with a partner if you wish or if it helps you.
- Ask questions in class. If you do not feel comfortable asking the question in class, talk with me outside of class.
- If you do not complete an assignment by the deadline, complete it anyway later.
- If you miss points on an assignment or exam determine why your answer was graded incorrect and learn the correct answers.
- Seek help from the instructor, TA, or the tutoring center before you are too far behind on your understanding of the subject.
- Read your email every day; I often send important announcements via email.
- Check the course website and Blackboard every day for new announcements, material, and updates.
Having said all that, I want you to know that I care about all of my students and their education. I want all of you to succeed, to feel you have gained something from the course, to have some fun in the process, and I will do all I reasonably can to assist you in your efforts!
Statement on Accommodations
The Disability Resource Center (480-965-1234; Matthews Center; email: firstname.lastname@example.org) is the central location for students requiring accommodation. Any student requiring accommodation must contact and register with the Center before any accommodation requests can be granted by the instructor. If you require accommodation, please contact the DRC as soon as possible so the instructor can work with you to ensure your success.
Title IX is a federal law that provides that no person be excluded on the basis of sex from participation in, be denied benefits of, or be subjected to discrimination under any education program or activity. Both Title IX and university policy make clear that sexual violence and harassment based on sex is prohibited. An individual who believes they have been subjected to sexual violence or harassed on the basis of sex can seek support, including counseling and academic support, from the university. If you or someone you know has been harassed on the basis of sex or sexually assaulted, you can find information and resources at http://sexualviolenceprevention.asu.edu.
Links and Documents
10to1.s - Illustrates for and while loops.
ColorAge.s - Illustrates system calls.
EvenOdd.s - Illustrates if-else statements.
Fraction.s - Illustrates procedures and stack frames.
HelloWorld.s - The canonical introductory hello world program.
Prime1.s - Illustrates if-else statements and loops.
Prime2.s - An optimized version of Prime1.s