Credits: 1 unit (4 credit hours)
Contact Hours: 3 lecture & 3 lab
Instructor: Professor Jeffrey O. Pfaffmann
Last Taught: Fall 2013
Text Book: Dive Into Systems
By Matthews, Newhall, and Webb. (Free Online Textbook, V1.0 Aug 2022.)
Supplementary: C: In a Nutshell. Second Edition.
By Peter Prinz & Tony Crawford. (O’Reilly Media, 2015.)

C Programming Language, 2nd. By Kernighan and Ritchie. (Prentice Hall PTR, 1988.)

Description: A study of digital logic, computer components, internal and external memory, instruction sets, interrupts, micro- and macro-programming. Lecture/laboratory.
Prerequisites: CS150 (Data Structures and Algorithms)

Specific Course Goals:

After successfully completing this course, the student will be able to:

  • Develop a machine-level understanding of C, analyzing and enhancing programs to improve performance.
  • Discuss the behavior of the computer memory hierarchy and different processor designs and design implementation.
  • Understand and present material on understanding combinational circuits.
  • Read and explain a contemporary conference paper related to computer architecture.

Student Outcomes:

ABET/CAC Outcome 1 Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions..
ABET/CAC Outcome 2 Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
ABET/CAC Outcome 6 Apply computer science theory and software development fundamentals to produce computing-based solutions.

Topics covered:

  • Overview of Computer Organization from OS to Gate.
  • Information Representation
  • C to Assembly in x86 and x86-64
    • Mapping from C to Assembly to Machine Code
    • Data Formats
    • Arithmetic and Logical Operations
    • Control Structures
    • Procedures
    • Array Allocation and Access
    • Higher-Level Data Structures
  • Circuit Design
    • Boolean Algebra
    • Combinational Circuits
  • Multiplexer, Demultiplexer, Encoder, and Decoder
  • Half, Full, Ripple Adder, and Arithmetic-Logic Units
    • Sequential Circuit Design and Usage
  • Clocking Signals, Latches, and Flip-Flops
  • Counters
  • Registers
    • Architecture Components
  • Data Buses, Register Files, and Control Basics
  • Hardwired Control Logic
  • Micro-Code Control Logic
  • Basic Memory
  • Instruction Set Architecture Basics
    • Serial Processor Design and Operation
  • Design Tradeoff and Machine Speedup
  • RISC Design Characteristics
  • CISC Design Characteristics
    • Pipelined Processor Design and Operation
    • Super-Scalar Processor Design and Operation
  • Memory Hierarchy
    • Two-Level Hierarchy and Speedup
    • Caching
    • Paging
    • Disk Performance