CSCI 370

Computer Architecture

Coordinator: Gary Zoppetti

Credits: 4.0

Description

Structure of digital computers including register transfer notation, instruction set architecture, computer arithmetic, pipelining and parallel processors. Offered in fall.

Prerequisites

C- or higher in CSCI 140 and CSCI 162.

Sample Textbooks

Course Outcomes

  1. Understand the history and development of modern computers.
  2. Understand the basic concepts of a von Neuman architecture system.
  3. Understand the elements of advanced systems, such as parallel, pipelined, and RISC/CISC architectures.
  4. Understand the nature of various I/O devices and systems.
  5. Understand the elements of assembly language programming.
  6. Understand the mechanics and usage of assembler, macro processors, and link editors.

Major Topics Covered

  1. Computer abstractions and technology
    1. Historical perspective
    2. The role of integrated circuits in modern computers
  2. Instructions
    1. Operations of computer hardware
    2. Instruction representation
    3. Arrays, pointers, indirection, addresses, and address modes
  3. Arithmetic
    1. Number representation
    2. Addition and subtraction
    3. Logical operations
    4. Multiplication and division
  4. The processor; datapath and control
    1. The concept of a datapath and control
    2. Simple implementations
    3. Clock cycles and synchronization
    4. Microprogramming
  5. Pipelining and parallel processors
    1. Conceptual issues
    2. Implementation considerations; stalls and forwarding
    3. Branches and exceptions
    4. SIMD and MIMD computers
    5. Programming and interconnection of parallel processors
  6. Memories
    1. Conventional memory implementations
    2. Caches
    3. Virtual memory
  7. Interfacing processors and peripherals
    1. Disk and file systems
    2. Buses
    3. Interfacing I/O devices to memory, processor, and operating systems
    4. Peripheral technology
  8. Assemblers and linkers
    1. Assemblers
    2. Linkers and loaders
    3. Memory usage
    4. Procedure calls
    5. Exception and interrupts
    6. Input and output
  9. The basics of logic design and Boolean algebra
    1. Gates, truth tables and logic equations
    2. Combinatorial logic
    3. Clocks
    4. Memory elements
    5. Finite state machines
    6. Implementation and minimization

Sample Laboratory Projects

  1. 1,2. Assembler for a one-register, one address machine. (two parts, due to the complexity of the problem).
  2. Simulation of a one-register, one address machine.
  3. Addressing modes and array implementation.
  4. Linking of externally compiled subroutines, interfacing with high-level languages.
  5. 6,7. Designing logic circuits, including the use of Boolean algebra. (two parts, due to the complexity of the problems).