CS 250: Computer Architecture - Department of Computer Science - Purdue University Skip to main content

CS 250: Computer Architecture

Prerequisites:

CS 18200 (Foundations of Computer Science)

CS 24000 (Programming in C)

Detailed Syllabus:

  1. Digital Logic:
    • fundamentals of digital logic;
    • using a breadboard to create a digital circuit;
    • using logic gates to build and test combinatorial circuits;
    • wiring and testing a circuit that uses a clock to control a sequence of operations.
    • Data paths and a fetch-execute cycle.
  2. Processors:

    • operand addressing and instruction representation;
    • RISC and CISC machines;
    • CPUs;
    • programming a RISC computer in assembly language;
    • converting among one's complement, two's complement, signed, and sign-magnitude representations;
    • writing code to test whether the underlying hardware uses one’s or two’s complement arithmetic;
    • writing code to test whether the underlying hardware uses big-endian or little-endian byte order;
    • writing a function in assembly language that is called from C;
    • calling a C function from an assembly language program;
    • rearranging instructions to avoid pipeline stalls.
  3. Memory:

    • physical and virtual memories;
    • access paradigm;
    • physical and virtual addressing;
    • caches and caching;
    • comparing programs that access an array in row-major and column-major order;
    • stepping through the mapping from virtual address to physical address;
    • calculating the memory bank into which a given memory location maps when using N-way interleaving.
  4. Input/Output:

    • buses and bus address spaces;
    • programmed and interrupt-driven I/O;
    • multiplexing;
    • a programmer’s view of I/O;
    • buffering;
    • basic role of a device driver.
  5. Design Considerations:

    • parallelism and parallel architectures;
    • data pipelining;
    • pipeline stalls and flush times;
    • performance of a data pipeline;
    • power and energy;
    • hardware modularity and module reuse
Last Updated: Apr 25, 2017 4:41 PM

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone: (765) 494-6010 • Fax: (765) 494-0739

Copyright © 2024 Purdue University | An equal access/equal opportunity university | Copyright Complaints

Trouble with this page? Disability-related accessibility issue? Please contact the College of Science.