CSCI 463
Computer Architecture and Systems Organization
Fall 2021

Course Information

Organization and use of computer systems. Basic concepts and examples from microcomputers and networks, peripheral components, data communications, and the relationship between hardware components and the operating system.

Course Syllabus

Contact Information and Office Hours

Instructor
John Winans jwinans@niu.edu
Office Hours:
Tuesdays & Thursdays 11:00am - 12:00pm & 2:00pm - 4:00pm
and by appointment
Teacher's Assistants

All office hours will be held on Microsoft Teams unless otherwise scheduled by appointment.

Tentative Schedule

Week Topics Assignment
1 - 08/22 Introduction
Computing History
Boolean Algebra
A1
2 - 08/29 Counting In Binary (review)
Integer Representation
Floating Point Numeric Representation
Bitwise Operators
3 - 09/05 Combinational Circuits
A2
4 - 09/12 Sequential Circuits
Latches, Memory
Counters
Finite State Machines
5 - 09/19 Data/Memory Buses
Von Neumann machines
Addressing Modes
The Instruction Cycle
Assembly Language
A3
6 - 09/26 Machine Instruction Formats
Subroutine Calling Conventions
7 - 10/03 Multiprocessors/Multicore Organization
Bus Arbitration
Virtual Memory
Page Fault Handling
Shared Memory
8 - 10/10 The Flynn Taxonomy A4
Midterm 
9 - 10/17 Freestanding programs
10 - 10/24 Storage Systems
Memory Hierarchy
Latency
11 - 10/31 Cache Memories
Inter-core Synchronization
Threads
A5
12 - 11/07 Threads
I/O
Interrupts
13 - 11/14 Introduction To Networks
IPC
A6
14 - 11/21 External Storage
Data Integrity
RAID
🦃
15 - 11/28 Multimedia A7
16 - 12/05 FINAL EXAM WEEK:
Section 1 (NIU) Tuesday, December 7, Noon-1:50 p.m.
Section PE1 (Harper College) TBA (See email.)

Assignments

All assignments are due at, or before, 23:59:59 in US/Central time on the dates specified. The timestamp of the assignment submission shall be used to determine when you handed it in.

Course Information

Using Linux, MacOS, WSL,...

DANGER WILL ROBINSON! Developing and testing your assignments on your own PC is encouraged. However, your grade is based solely on our ability to build and run your program on hopper.cs.niu.edu as described in the assignment handouts! Therefore, it does not matter if it runs OK on your own system. A program that fails to build or run on hopper.cs.niu.edu will be graded as such.

You must test your program on hopper.cs.niu.edu before handing it in.

[On Windows, you can install WSL and then use one of its terminal windows to do development and testing of Linux code on a Windows PC.]

But... you must still test your program on hopper.cs.niu.edu before handing it in.

Introduction

Lectures:

Computer History

Lectures:

Web Links:

Boolean Algebra

Lectures:

Handouts:

Web Links:

Reading, Printing, and Formatting Numbers in C++ (Review)

Bonus!! Some reviews for those that forgot how to do this!

Lectures:

Some Useful C++ Standard Library References

C++ Stuff You Should Know (Review)

Here are some more topics you might find useful. There are placed here for you to refer back to if/when it becomes necessary to review.

How to use Doxygen

Lectures:

Handouts:

Web Links:

Numeric Representation

Lectures:

Handouts:

Web Links:

Logic & Bitwise Operations

Lectures:

Web Links:

Combinational Circuits

Lectures (1):

Lectures (2):

Schematic Handouts (1):

Schematic Handouts (2):

Web Links:

Sequential Circuits & Memory

Lectures:

  • The Sequential Circuits (part 1): The RS Latch
  • Sequential Circuits (part 2): More RS Latches & D-Latches
  • Static Memory (is just a bunch of D-Latches!)
  • Schematics & Other Handouts:

    Web Links:

    Counters & Finite State Machines

    Lectures:

  • Counters (Sync & Async)
  • Mealy & Moore Finite State Machines
  • Schematics & Other Handouts:

    Web Links:

    Note that there are more types of latches and flip-flops than I will discuss in this course. If you look around the web for more information you might find yourself confused if you run into those other types. Here are some links that discuss this subject using D-Latches:

    The Von Neumann Machine

    Lectures:

    Web Links:

    I was always confused why the common term for the von Neumann machine was to refer to it as an architecture when the topic is actually referring to its organization.

    The so-called von Neumann architecture might be easier to understand when discussed in the same context as an alternative approach that is referred to as the Harvard architecture.

    Addressing Modes

    Lectures:

    Handouts:

    RISC-V Architecture

    Lectures:

    A Cure For Insomnia:

    The following two lectures turned out to be way longer than I had expected. I post them here if you are interested in the details connecting combinational and sequential circuits with finite state machine concepts to design a viable RV32I processor. The content in these two lectures will not appear in quizzes nor exams.

    Handouts:

    Address Spaces & Subroutine Calling Conventions

    Lectures:

    Writing Freestanding Programs for a RISC-V CPU

    Lectures:

    Web Links:

    Multiprocessors

    Lectures:

    Web Links:

    Memory

    Lectures:

    Handouts:

    Threads & Synchronization

    Lectures:

    Input/Output

    Lectures:

    Web Links:

    Interrupts

    Lectures:

    Web Links:

    Networks & IPC

    Lectures:

    Handouts:

    Note: The IPC and Advanced IPC tutorials are shared below under the 4-Clause BSD copyright.

    RAID (Redundant Array of Inexpensive Disks)

    Lectures:

    Web Links:

    Audio Files

    Lectures:

    Handouts:

    Web Links:

    Last modified: 2021-11-19T08:59:10-06:00