CS 0447 Computer Organization & Assembly Language

Summer Term: 2127

 

 

Class

Recitation

Recitation

Time:

12:30 PM – 02:15 PM

04:30 PM – 05:20 PM

04:30 PM – 05:20 PM

Days:

TH

T

H

Room:

5129 SENSQ

6110 SENSQ

6110 SENSQ

Webpage:

http://www.cs.pitt.edu/~jmisurda/teaching/cs0447.htm

Contact Information

 

Instructor: Jonathan Misurda

 

TA: Fan Zhang

Office:

6203 SENSQ

 

Office:

6150 SENSQ

Email:

jmisurda@cs.pitt.edu

 

Email:

zhangfan@cs.pitt.edu

Office Hours:

Mon, Tue, Wed: 2:30–4:30

 

Office Hours:

Wed: 3:00–4:30pm
Fri: 1:30–5:00pm

Description

Computers as real, physical objects allow for the algorithms and programs we create to be utilized to solve problems. This course presents the concepts and implementation details necessary to explore how a computer is designed (its architecture) and works. We will discuss issues including representing data, building a useful set of primitive instructions (machine and assembly language) to build programs from, a real example of such an instruction set called MIPS, the design of electronic circuitry to do useful work, and putting together small circuits to build a working CPU.

Prerequisites

Before enrolling in this course, you must have completed or be currently enrolled in CS 0445 – Data Structures. If you have any questions about the prerequisite material for the course, please ask at the beginning of the term.


Course Purposes and Goals

The goals of this class are as follows:

Textbook

David A. Patterson and John L. Hennessy. Computer Organization and Design, Revised Fourth Edition, Fourth Edition: The Hardware/Software Interface. Morgan Kaufmann, 2011.

ISBN-10: 0123747503

Class Policies

Exams:  There will be two midterms and a final. The exams will be closed book/notes. The final exam will be the last day of class in the normal classroom. Cheating on exams will not be tolerated.  Anyone caught cheating will be given a zero for the test or for the course and reported to the department following University procedures.

Projects:  There will be 3 out-of-class assignments given.  These are to be completed in the given time (no extensions will be given without a valid excuse. LATE WORK IS NOT ACCEPTED. Contact me before the deadline for clarifications.)  These are meant to be your own work; anyone found to be collaborating will be disciplined in accordance to University policy.  Cheating means (but is not limited to): using code from previous terms, other universities, your friends, finding it on the Internet, getting help from unapproved forums, or outsourcing it.

Labs and Quizzes:  Attending recitation is an important part of this course.  In recitation you will be able to work in a structured setting while completing small tasks (Labs). Concepts from class will be expanded upon and tested with unannounced quizzes.

Participation:  Attendance will not be taken, but in a small class, any absence will be noticed.  Several unexcused missed classes will adversely affect your grade.


Grading

Your grade will be based upon 3 exams, 4 projects, labs and quizzes (the lowest one of which will be dropped), and participation:

First Midterm

15%

Second Midterm

15%

Final Exam

15%

3 Projects

30% (10% each)

Labs and Quizzes

20%

Participation

5%

Total

100%

The scale for the term will be:

Percentage

100

95

90

89

85

80

79

75

70

69

65

60

< 60

Letter

A+

A

A-

B+

B

B-

C+

C

C-

D+

D

D-

F

Disability Resources and Services:

If you have a disability for which you are requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 216 William Pitt Union, (412) 648-7890, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.

Academic Integrity

Students are expected to comply with the University of Pittsburgh’s Policy on Academic Integrity. Any student suspected of violating this obligation for any reason during the semester will be required to participate in the procedural process as outlined in the University Guidelines on Academic Integrity. For further information see: http://www.pitt.edu/~provost/ai1.html


Term Schedule

The daily topics are subject to change depending on our pace.  They are there to assist you in the readings so you can focus on those concepts prior to class.

 

Week 1: 5/15/2012 - 5/17/2012

Readings for this week: Section 2.4

 

Topics:

·         Numbers and representations

o   Binary, Octal, Hexadecimal

o   Integers, Floating Point, text

o   Range and sign

 

Week 2: 5/22/2012 - 5/24/2012

Readings for this week: Sections 2.1–2.3

 

Monday, May 21: Add/Drop Ends

 

Topics:

·         General computer architecture

o   Five classic components

o   What is machine code?

o   What is assembly language?

o   Toolchain

 

Week 3: 5/29/2012 - 5/31/2012

 

Readings for this week: Section 2.6

 

Topics:

·         MIPS Assembly language

o   Registers

o   Memory

o   Representation

o   ALU Operations

 

Week 4: 6/5/2012 - 6/7/2012

 

Readings for this week:  Sections 2.7–2.10

 

Topics:

·         MIPS Assembly language continued

o   Control transfers

o   Memory operations

o   Functions

 

Week 5: 6/12/2012 - 6/14/2012

Readings for this week: Review Chapter 2

 

Thursday, June 14: First Midterm Exam

 

Topics:

·         Finish up MIPS

·         Review for the midterm exam

 

Week 6: 6/19/2012 – 6/21/2012

 

Readings for this week:  Appendix C

 

Topics:

·         Basics of hardware design

o   Transistors

o   Logic gates

o   Circuits and Boolean equations

o   Flip-flops

 

Week 7: 6/26/2012 - 6/28/2012

 

Readings for this week:  Appendix C (continued)

 

Topics:

 

·         Combinational Logic

o   Karnaugh Maps

·         Sequential Logic

 

Week 8: 7/3/2012 - 7/5/2012

Readings for this week: Chapter 3

 

Friday, July 6: Monitored Withdrawal Deadline

 

Topics:

·         Algorithms for hardware

o   Addition

o   Multiplication

o   Division

 

Week 9: 7/10/2012 - 7/12/2012

Readings for this week:  Chapter 1

 

Thursday, July 12: Second Midterm Exam

 

Topics:

·         Performance measures

·         Review for the midterm exam

 

Week 10: 7/17/2012 - 7/19/2012

Readings for this week:  Chapter 4.1–4.4

 

Topics:

·         Putting it all together

o   Single cycle CPU

o   Control signals

 

Week 11: 7/24/2012 - 7/26/2012

Readings for this week:  Appendix D

 

Topics:

·         State machines

·         Multicycle CPU

 

Week 12: 7/31/2012 - 8/2/2012

Readings for this week:  Prepare for the final exam

 

Thursday, August 2: Final Exam

 

Topics:

  • Review for the final exam