CS441 System Architecture

Course
37426
Section
F01
Credits
3 + 0
Prerequisites:
  • CS321
  • EE341
Instructor
Orion Lawlor
Phone
907-474-7678
Office
Duckering 529
Email
lawlor@alaska.edu
Office Hours
By Appointment
Meeting Time
Room
Chapman 104
Course Website
/courses/cs441/2016-spring/
Required Texts
NO required text. Totally OPTIONAL text: Computer Organization and Design: The Hardware/Software Interface, Patterson and Hennessy, any edition.

Course Description

By the end of the course, you will be able to understand both the present and future of computer design for performance: parallelism. Specifically, we will cover circuit-level parallelism via circuit simulators; instruction-level transparent parallelism including pipelining, superscalar, and out-of-order execution; vector parallelism including SWAR, SIMD, and GPU programming; as well as coarser-grained parallelism including multicore, multi-thread, and distributed-memory network and cloud computing.

Tentative Schedule

    • Power fundamentals and circuit design basics
    • Physical properties of circuit switching
    • The CPU as a circuit
    • Pipelining and CPU instruction set design
    • Superscalar CPU design
    • SIMD: Single Instruction Multiple Data parallelism
    • SSE & AVX: SIMD for floating point
    • Multicore programming
    • Multicore: locks vs atomics
    • Deadline to apply for spring 2016 graduation
    • CUDA programming
    • CUDA memory model and atomics
    • CUDA/Multicore cache hierarchy
    • CUDA/Multicore memory access optimization
    • Parallelism: high performance computing
    • Tuning code for high performance
    • Project 1 presentations
    • Project 1 presentations cont'd
    • Spring break (no classes this week)
    • Bits in a floating point number: IEEE float
    • File formats and network protocols
    • Last day for student- and faculty-initiated withdrawals (W grade appears on academic transcript)
    • Network servers & sockets
    • HTTP and JavaScript
    • Begin registration and fee payment for fall 2016 semester (degree students)
    • JavaScript machine model and performance
    • JavaScript memory model and emscripten (C++ to JavaScript)
    • Virtualization technologies
    • Cloud computing
    • Quantum computers & programming
    • Biological computers & atomic hardware parallelism
    • SpringFest (no classes)
    • Project 2 presentations
    • Project 2 presentations cont'd (last day of class)
    • Final exam begins at 8am (!)
    • Commencement

Grading Policies

Weight Description
5% Attendance and class participation, graded at random intervals throughout the semester
15% Homework and in-class exercises
20% Project 1: a research project due just before spring break
20% Project 2: an applied project due at the end of the semester
20% Midterm exam, just before spring break
20% Final exam, at the end of the semester

Grades will be assigned based on the following percentage intervals:

A+
[99%, 100%)

A
[93%, 99%)
A-
[90%, 93%)
B+
[87%, 90%)

B
[83%, 87%)
B-
[80%, 83%)
C+
[77%, 80%)

C
[73%, 77%)
C-
[70%, 73%)
D+
[67%, 70%)

D
[63%, 67%)
D-
[60%, 63%)
F
[0%, 60%)

Course Goals And Requirements

To understand this, you will need to know at least the following topics from the course prerequisites:

 

From CS321 (OS), and its prerequisite CS301 (Assembly)

  • Bits, binary, hex, octal, bitwise operations (like & | ~ ^ << >>), and why they matter
  • Basic computer hardware: CPU, arithmetic, floating-point, cache, RAM, disk, network sockets
  • How the CPU runs, at the level of assembly language and machine code
  • Threads, processes, virtual memory, paging, shared memory, concurrency, task switching

From EE 341, and its prerequisite Physics 212

  • Volts, amps, ohms, power, capacitance, and how they affect circuit design at high density and speed
  • Logic gates: and, or, not, xor, nand, nor, and how they're useful to build circuits
  • Glue logic: tristate busses, mux/demux, flip-flops, and how to build circuits with them

Estimated Syllabus Completeness

98%

Late Work Policy

Late work will not be graded, unless it is due to circumstances beyond your control, or if you turn it in before I begin grading. I may begin grading at any time after the due date, even 12:01am the next day. You are encouraged to inquire if I have begun grading yet, since this acts as a reminder for me to do so!

Policies

Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee.

UAF academic policies http://www.uaf.edu/catalog/current/academics

CS Department policies http://www.cs.uaf.edu/departmental-policies/

Disabilities Services:

The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.

Updated: