Course Outline

Objectives: Upon completion of this course, students will be able to:


Topic Outline:   (Time table not yet tested, subject to change)

  1. Weeks 1 and 2: Review and Introductory Material
    1. Preface: How to use the text
    2. Appendix C (on CD-ROM): The Basics of Logic Design
      1. Gates and circuits
      2. Boolean algebra and truth tables
      3. Combinational logic
      4. Sequential logic
      5. Finite state machines
    3. Appendix B: Introduction: Assemblers, Linkers, and the SPIM simulator
      1. Assemblers, linkers, loaders
      2. The MIPS assembly language
            (For more information, refer to text by Britton -- or similar text)
      3. The SPIM simulator for running MIPS programs
            (Version 7.4 currently installed on Computer Science Linux boxes)
    4. Chapter 1: Introduction: Computer Abstractions and Technology
      1. What's going on below?
      2. Computer Performance
      3. Benchmarks; Metrics
      4. Some historical comments

  2. Week 3: Chapter 2: Instructions -- Language of the Computer
        (For more information, refer to text by Britton -- or similar text)
    1. Operations; Operands
    2. Bits, bytes, words
    3. Signed and unsigned numbers
    4. Numbers and number bases; Conversions
    5. Instruction formats for MIPS
    6. Addressing Modes
    7. Synchronization
    8. Decision-making
    9. Procedure/function calls; Stack
    10. Arrays; Pointers
          (Note: this information is used throughout the course)

  3. Weeks 4 and 5: Chapter 3: Arithmetic for Computers
    1. Special purpose codes
    2. Binary arithmetic and hardware
    3. Computer arithmetic
    4. Multiplication and division
    5. Floating-point numbers

  4. Weeks 6 through 8: Chapter 4: The Processor
    1. Logic design conventions
    2. Structure; Datapaths
    3. Control unit
    4. A simple implementation
    5. Pipelining and a Pipelined implementation
    6. Pipelined Datapaths
    7. Data and Control Hazards; Forwarding; Stalls
    8. Exceptions
    9. Comparison of different implementations
    10. Parallelism

  5. Weeks 9 through 11: Chapter 5: Large and Fast: Exploiting Memory Hierarchy
    1. Caches; Measuring performance
    2. Virtual memory
    3. Common framework for memory hierarchies
    4. Virtual machines
    5. A finite state machine used for cache control
    6. Parallelism with caches: cache coherence
    7. Cache control

  6. Weeks 12 and 13: Chapter 6: Storage and Other I/O Topics
    1. Dependability, Reliability, Availability
    2. Disk and Flash Storage
    3. Connecting processors with memory and I/O devices
    4. Interfacing I/O devices with processors, memory, and the operating system
    5. I/O Performance
    6. Design of an I/O system
    7. Redundant arrays of inexpensive disks: RAID
    8. Networks

  7. Weeks 14 and 15: Chapter 7: Multicores, Multiprocessors, and Clusters
    1. Problem: parallel processing programs
    2. Shared-memory multiprocessors
    3. Clusters and other message-passing multiprocessors
    4. Hardware multithreading
    5. Categories: SISD, MIMD, SIMD, SPMD, Vector
    6. Multiprocessor networks
    7. Multiprocessing performance and benchmarks

  8. if time ...: Appendix A: Graphical Processing Units

  9. Week 16: Final Exam