Syllabus for CS 440 - Computer Organization and Architecture

Instructor Information

Refer to Discussion Forum, in the Faculty Notes

Course Title

CS 440 - Computer Organization and Architecture

Course Description

CS 440 - COMPUTER ORGANIZATION AND ARCHITECTURE (3). Introduces Machine Architecture with coverage of digital logic, machine level data and instruction representation, ALU design, and organization of the processor datapath and control. Examines performance analysis, memory system hierarchy, pipelining, and communication.

Prerequisite Courses

CS390 Principles of Programming Languages
AND
CS324 Algorithms & Complexity

(or CS370 Assembly Language -- only for degree plans prior to Fall 2015)

Please note that CS210/CS310 are pre-requisites to CS390 and CS324 (and CS361/CS362 are pre-requisites to CS370), so knowledge of the subjects covered in those courses will also be assumed.  You need to have a working knowledge of the following topics within each course:

  1. Practice with problem definition, solution construction, top-down design techniques, algorithmic development, documentation, testing, debugging, and maintenance (CS361/CS362 or CS210/CS310).
  2. Ability to use control structures including: if and switch statements and while, do-while, and for loops (CS361 or CS210) and data structures (CS362 or CS310).

Course Overview

The computer lies at the heart of computing. All students of computing should acquire some understanding and appreciation of a computer system's functional components, their characteristics, their performance, and their interactions.

It is important to understand Computer Architecture in order to structure a program so that it runs efficiently on a real machine. And when selecting a system to use, it is important to understand the tradeoff among various components, so you can accurately compare competing systems, and understand technical literature on new computer systems.

This course will cover the basic concepts of Computer Architecture that are important for you to understand, including the CPU control and datapath, memory systems including caching and virtual memory, and input/output subsystems.

WARNING to students: 
Many students find this course to be one of the more difficult of the courses in the Regis Computer Science curriculum.  So please be sure you will have adequate time to devote to this course before taking it.

Course Outcomes

Upon completion of this course, students should be able to:

1. Explain digital logic and its use in digital systems.

a.  Describe the progression of computer architecture from vacuum tubes to VLSI.
b.  Detail the basic building blocks and their role in the historical development of computer architecture.
c.  Use mathematical expressions to describe the functions of simple combinational and sequential circuits.
d.  Design a simple circuit using the fundamental building blocks.

2. Understand machine level representation of data.

a.  Explain the reasons for using different formats to represent numerical data.
b.  Explain how negative integers are stored in sign-magnitude and twos-complement representation.
c.  Explain how floating point numbers are stored in IEEE formats.
d.  Convert numerical data from one format to another.
e.  Discuss how fixed-length number representations affect accuracy and precision.
f.  Perform simple mathematical and logical operations upon numerical data.
g.  Describe the internal representation of nonnumeric data.

3. Understand assembly level machine organization.

a.  Explain the organization and functional units of the classical von Neumann machine, and explain how instructions are executed on it.
b.  Summarize how instructions are represented, at both the machine and assembly levels, for a specific instruction set design.
c.  Explain how instruction formats vary, such as addresses per instruction and variable length vs. fixed length formats.
d.  Write simple assembly language program segments.
e.   Demonstrate how fundamental high-level programming constructs are implemented at the machine-language level.

4. Describe the functional organization of a processor datapath and performance enhancements.

a.  Explain a single cycle datapath implementation.
b.  Compare alternative implementations of datapaths (e.g. multicycle).
c.  Discuss the concept of control points and the generation of control signals.
d.  Explain basic instruction level parallelism using pipelining and the major hazards that may occur.
e.  Describe the implementation of hazard detection and use of register-forwarding for data hazard reduction
f.  Explain the concept of branch prediction and how it is used.
g.  Characterize the costs and benefits of prefetching.
h.  Explain speculative execution and identify the conditions that justify it.

5.  Describe memory system organization and architecture.

a.  Identify the main types of memory technology.
b.  Explain the effect of memory latency on running time and how the memory hierarchy reduces the effective memory latency.
c.  Describe the principles of memory management.
d.  Describe the role of cache and compare and contrast direct, fully-associative and set-associative cache organizations.
e.  Explain the workings of a system with virtual memory management.

6.  Describe interfacing and communication.

a.  Explain how interrupts are used to implement I/O control and data transfers.
b.  Identify various types of buses in a computer system.
c.  Describe data access from a magnetic disk drive and flash drive.

7.  Understand technical literature on computer systems.

8.  Analyze a computer system's expected performance.

a.  Analyze how each component of a computer system affects performance.
b.  Measure performance using benchmarks and performance metrics.

Course Materials

Required Texts

Patterson, David A., Hennessy, John L., (2014), Computer Organization and Design: the Hardware /Software Interface, (5th Edition). Morgan Kaufmann Publishers, ISBN-13: 978-0124077263, ISBN-10: 0124077269.

Technology Tools

A PowerPoint Viewer
Some of the course content is presented via PowerPoint slide shows. If needed, you can download the free PowerPoint viewer via this link:
http://www.microsoft.com/en-us/download/details.aspx?id=13

      NOTE:  The entire Microsoft Office suite is available free to all Regis students, so you may want to download that instead.

Course Policies about repeating the course or adding the course late

Repeating the course

If you are repeating this course (due to a previous withdraw or low grade), you are responsible for immediately notifying the instructor.  Course assignments/exams that you submitted when you last took the course cannot be repeated -- you will be required to complete alternate assignments and/or exams.

Adding this course during the Drop/Add Period

If you added this course during the drop/add period, after class began on Monday, you are responsible for immediately notifying the instructor by email that you joined the course late. Be aware that none of the course due dates will be extended for you. Even if a due date already passed when you added the course, late points will still be deducted.

Course Policies and Procedures on Academic Integrity

Collaboration/Collusion

Working together on CS440 assignments is NOT permitted.  All assignments submitted in CS440 must be completed on your own. 

Additionally, all CS440 programming assignment requirements are copyrighted.  It is therefore illegal to upload or post any of the assignment requirements to any non-Regis website.
Therefore, it is also violation of the Regis Academic Integrity Policy to do either of the following, either during the time you are taking the course or after course completion.

Plagiarism

Plagiarism is submitting someone’s ideas as your own.  Plagiarism includes submitting code or other work that was obtained from another person, a publication, or an internet web source. 

In cases of suspected collusion, plagiarism, or any other form of cheating in CS440, the faculty member will discuss the matter with the student(s) involved. The faculty member reserves the right to question any student orally or in writing about any assignment, and to use the evaluation of the student's understanding of the assignment and of the submitted solution as evidence of cheating. 

All cheating incidents will be reported to the Computer Science department and the Academic Integrity Board for possible further action.

Pre-Assignment

Complete the following tasks:

Students will read the first week's assigned reading in the textbook (listed in the Course Assignments grid below) and complete the participation activities before the day of class.   Be prepared to ask questions on unclear areas and to respond to questions about information in the assigned reading.

Online Format: Sign on to WorldClass (D2L) and become familiar with the course navigation.

Course Assignments and Activities

 
Week WorldClass Online Course Topics Textbook Readings* Activities/Assignments and Percentages**
1
  • Computer Systems and Current Technology
  • Numbering Systems and Numeric Representations
  • Arithmetic and Logic Operations and Units

Ch. 1: Sec 1.1 – 1.5
Ch. 2: Sec 2.1 – 2.4
Ch. 3: Sec 3.1 – 3.3, page 196 to top of 211 of Sec 3.5
Appendix B: Sec B.1 – B.3

Participation in Discussions
12% for entire course

2
  • Arithmetic and Logic Operations and Units (cont)
  • Instruction Set Architecture

Ch. 2: Sec 2.5 – 2.7, 2.10 – 2.12, and 2.19 – 2.20

Optional:  Sec 2.16 – 2.18

Participation in Discussions

Exam #1  16%

3
  • Instruction Processing and the Datapath (single cycle)
  • Performance Analysis

Appendix B Sec B.5 pages B-26  – B-35, Sec B.7 all, and Sec B.8, pages B-50 – B-56
Ch 1, Sec 1.6
Ch 4: Sec 4.1 – 4.4 

Participation in Discussions

Project Overview

4
  • Instruction Processing and the Datapath (multi-cycle)
  • Performance Analysis

Appendix B Sec B.5 pages B-26  – B-35, Sec B.7 all, and Sec B.8, pages B-50 – B-56
Ch 1, Sec 1.6
Ch 4: Sec 4.1 – 4.4 

Participation in Discussions

Exam #2  16%

5
  • Pipelining

Ch 4: Sec 4.5 – 4.8, 4.13 – 4.14

Optional:  Sec 4.11

Participation in Discussions

Project Draft

6
  • Memory Hierarchy

Appendix B: Sec B.9
Ch 5: Sec 5.1 – 5.8 and 5.15 – 5.16

Participation in Discussions

Exam #3  16%

7
  • Input and Output (I/O)

Ch 5:  Sec 5.11

Participation in Discussions

Final Project  24%

8  

None

Participation in Discussions

Final Exam  16%

Maximum Possible: 100%

*Previous Edition Reading Assignments:  Alternate reading assignments for the previous edition of the textbook (4th edition) will be available in your instructor's syllabus.

**Note to Classroom sections only:  Your instructor's syllabus, handed out the first night of class, will indicate any changes to this grid.  Classroom requirements for the Final Project and Presentations will be handed out in class.

Exams

There will be four exams. The first 3 exams will be online, timed exams, and the last exam will be an essay exam.  Exam questions will be cumulative, taken from reading assignments and course content.

Final Project

Each student will submit a final project, covering the details of one specific architecture.

Discussion Participation

Participation is important because we can all learn from each other.  Your participation points will make a difference in the final grade.  Participation means: 

1.  a.  Present in class every session (classroom)
     b.  Present in the forum every week (online)
2.  a.  Effectively responds to questions from the facilitator (classroom)
     b.  Regularly checks forum and submits all required items by the deadlines (online)
3.  Interacts/replies to other students in classroom/forum discussions

Summary of Assignments and Percentage Weight:

Assignments Weighted Percentage

Participation Activities

12%

Exams
(4 exams at 16% each)

64 %

Final Project

24 %

TOTAL

100 %

Online Sections

See your instructor’s faculty syllabus in WorldClass for the online Discussion points distribution.

Additional CC&IS Policies

Each term, students are expected to review the CC&IS Policies and Procedures Syllabus Addendum on the Regis website.