Bill's CS234 B WS2 Homepage

    Online Gradebook - Check your current grade

     
    Class Period/Date  Topics/Links  Reading Due  Homework/Assignments 
    Day 1  / Jan 15 Syllabus, Policies, & Expectations
    Computer Components/Parts 
    Histroy of CS Architecture 
    History of Improtatn CS Figures
       
    Day 2  / Jan 17 Video: The Machine that Changed the World
    (I'll bring donuts)
    Finish CS History 
    1.1-1.8 Hw #1 Assigned / Solution 
    Day 3  / Jan 22 Components of the Computer
    Software System Hierarchy
    Appendix A, A.1-A.4
    2.1-2.3,
     
    Day 4  / Jan 24 Intro to Performance
    Analytical Performance Analysis
    2.4-2.6 Hw #1 Due / Solution 
    Hw #2 Assigned / Solution
    Day 5  / Jan 29 Finishing Analytical Performance
    Intro to Benchmarking
    2.7-2.9
    SPEC 2000 Handout, 4.1-4.2 (pg 215)
     
    Day 6  / Jan 31 Finishing Benchmarking and SPEC 2000
    Intro. to Numerical Representation
    Integers & Sign Representation
    Learning Binary
    Bill's Guide to binary numbers
    4.2 (pg 215)-4.3 (pg 223) Hw #2 Due / Solution
    Hw #3 Assigned / Solution
    Day 7  / Feb 5 Continue Binary Integers & Sign Pg 142, 4.8, pg 275 to pg (top) 288   
    Day 8  / Feb 7 Binary Math (Singed and Unsigned)
    ASCII /Character Representation 
        
    Day 9  / Feb 12 Floating Point (IEEE 754) Representation
    Moore's Law Paper (postscript)
    Test #1 Review
       Hw #3 Due Wed 2-13-2 by 5pm / Solution
    Day 10 / Feb 14 Intro. to ASM:
    Basic CPU Architecture/Overview/Review
    Simple Math Instructions: add, sub
    Simple Math Equations
    Instruction Formats: R-Format
    3.1-3.4 Hw #4 Assigned / Solution
    Quiz #1 / Solution
    Day 11 / Feb 19 Test #1: Topics    
    Day 12 / Feb 21 (Last day to drop w/o a WD)
    Load & Store Instructions: lw, sw
    Register Basics
    Memory/Array Structure/Indexing
    Equations with Array Elements
    Instruction Formats: I-Format
    A.5,A.7-A.9
    (esp. pg A.48-49)
    Hw #4 Due Fri. 2-22-2 by 5pm / Solution
    Hw #5 Assigned  / Solution
    Day 13 / Feb 26 lb/sb
    Alignment
    Labels
    Branching & Decision Instructions 
    Hello World Handout - Type / Try!
       
    Day 14 / Feb 28 Pseudo-Ops
    Basic structure/syntax of ASM programs
    Labels, Constants, and Assembler Directives
    J-Format
    3.6, A.6, 3.5, Hello World Handout Hw #5 Due / Solution
    Hw #5 Part B Assigned / Solution
    Lab #1 Assigned
    Day 15 / Mar 5 System Interrupts, Services, & Exceptions
    SPIM syscalls for I/O
    Improved Syscall Table!
    SPIM Manual
    Hw #5 Part B Due / Solution
    Day 16 / Mar 7 (Midterm)
    Memory Segments
    How the assembler "places" parts of the prog.
    Using SPIM
    SPIM Examples
    Stack/Register Usage Handout, 3.7 Hw #6 Assigned / Solution
    Day 17 / Mar 12 Stack & Register Usage Handout
    Procedure Calling Conventions Register Conventions Functions, Recursion, & the Stack (Examples)
    3.9, 3.10, 3.13, 3.14, 4.8 (pg 288-301) Lab #1 Due
    Lab #2 Assigned
    Mar 14 - Spring Recess



    Day 18 / Mar 19 Functions Continued
    3.8, 3.11, 3.15 Hw #6 Due / Solution
    Hw #7 Assigned / Solution
    Day 19 / Mar 21 Functions continued
    A.10-A.11  
    Mar 26/28 Spring Break



    Day 20 / Apr 2 More Functions / Stack
    Arrays vs. Pointers
    Addressing Styles
    Putting it all together Multi-Arg Functions and Large Return Vals: Depth & Examples
    Appendix B B.1,B.2, Handout? Hw #7 Due / Solution
    Lab #3 Assigned
    Day 21 / Apr 4 Putting it all together Multi-Arg Functions and Large Return Vals: Depth & Examples
    Floating Point Co-Processor and ASM
    Example of Floating point function
    MIPS Addressing Styles
      Lab #2 Due
    Day 22 / Apr 9 Breakpoints in SPIM
    Multidimensional Arrays
    C, C++, and ASM: Inlining, Locals, Globals, Initilizing, Pointers/Arrays, Pass by Value/Pass by reference, Short Circuit Evaluation, Multi Dim Arrays
    Chapter Review/Test Topics
    Quiz #2
    B.3, B.4 Quiz #2 / Solution
    Day 23 / Apr 11 Test #2: Topics 4.4,4.5 Hw #8 Assigned / Solution
    Day 24 / Apr 16 Gates & Intro. to Combinational Logic
    Propagation Delay
    Logic Equations Higher Components: Multiplexors, Decoders, Encoders, etc.
    Digital Logic Tutorial
    On-line digital systems tutorial
    Introductory Digital Electronics
    How stuff works: Boolean Logic
    Digital Logic
    B.5 Lab #3 Due
    Lab #4 Assigned
    Day 25 / Apr 18
    (Last day to drop)
    Logic Continued
    Intro to Programmable Combinational Logic
      Hw #8 Due / Solution
    Hw #9 Assigned / Solution
    Day 26 / Apr 23 Finishing Programmable Logic
    Logic Operations in MIPS
    Basic Adders & Chaining 1-Bit ALU
    B.6
    Day 27 / Apr 25 Intro. to Multi-Bit ALU and Bit Cells
       
    Day 28 / Apr 30 More Multi-Bit ALU, Subtraction, Overflow and SLT
    Latches - The RS Latch Behavior
    Latches, Flip-Flops and other memory elements
    RS Latch Timing
    (note: this RS latch is made from NAND gates, so it works slightly differently than the one discussed in class which worked from NOR gates)
    D Latch Demo/Timing
    RS Latch and D-Latch with timing info (pdf)
    4.6,4.7  Hw #10 Assigned / Solution
    Day 29 / May 2 Register & Memory Element Structure
    RAM Structure: SRAM, DRAM, etc.
    State Machines
      Lab #4 Due
    Hw #9 Due / Solution
    Day 30 / May 7 Finish State Machines
    Attendance Quiz
       
    Day 31 / May 9 Finish Multiplication and Division
    Big Picture - The Whole CPU/ALU and interaction.
    Chapter Review 
      Hw #10 Due / Solution
    Final  / May 14 4:00-6:00 pm / Test #3 Topics    

    External References/Help

    My notes, outlines, and assignments from previous semesters:

      CS234 FS1 Homepage

      CS234 SS1 Homepage

      CS234 WS1 Homepage

      CS234 WS0 Homepage

      CS234 FS0 Homepage

    Slides

    Publisher's Slides: Postscript / Powerpoint (95)
    David Patterson's Lecture Slides (One of the authors)

    Computer Organization and Design: The Hardware/Software Interface, Second Edition

    Text book website - References & notes from the text as well as updates and more current information.

    Recommended Reading

    Some Selections of material may be handed out in class:
    Basic Digital Electronics from Radio Shack for about $10
    A little introductions to the basics of Digital Electronics. In particular you may find the following useful: Chapters 4 (How Temporary Storage Circuits Work), 6 (More Permanent Storage Elements), and 7 (A Tour Through IC).
    The New Turing Omnibus by A.K. Dewdney for about $25
    A Must Read for any Comp. Sci. - Covers all the interesting C.S. topics. You may find want to look into Chapters 13 (Boolean Logic), 20 (Karnaugh Maps), 28 (Encoders and Multiplexors), 38 (Sequential Circuits), 17 (The Random Access Machine), 3 (Systems of Logic), and 48 (The SCRAM).
    (Really - this is a great source of background material for all C.S. courses. It makes a lot of the more interesting work & theory easy to read and understand)
    The MIPS Programmer's Handbook by Farquhar and Bunce
    An assembly language programmer's guide to programming the MIPS architecture. Only Chapter 2 and parts of the appendices may might be used.

    Software

    Spim Software & Homepage

    Bill's pcspim.exe which fixes an error in syscall 9 (memory allocation) (this fixes a minor logic error in mem.c - Unix users may want to download mem.c and recompile)

    The MIPS simulator will be using for several of our homework and lab assignments. There are versions for Windows, Unix, and Mac. The Unix version is installed on the C.S. Departments Sun Workstations, and a the Windows version is installed in the CS 207 lab.

    NEdit

    Those of you using Unix and X-Windows may be interested in the syntax highlighting scheme for NEdit developed by Allan Crain : mipsasm.pats

    NachOS:

    A simulated operating system built around a simulated MIPS R2000 Instructions set. (This isn't going to be used in class, but if you want to get a feel for the real low level OS details, give it a try)