Bill's CS234 FS2 Homepage

    Online Gradebook - Check your current grade

     
    Class Period/Date  Topics/Links  Reading Due  Homework/Assignments 
    Day 1  / Aug 27 Syllabus, Policies, & Expectations
    Computer Components/Parts 
    Histroy of CS Architecture 
    History of Important CS Figures
       
    Day 2  / Aug 29 Video: The Machine that Changed the World
    (I'll bring donuts)
    Finish CS History 
    1.1-1.8  Hw #1 Assigned / Solution
    Day 3  / Sept 3 Components of the Computer
    Software System Hierarchy
    Intro to Performance
    A.1-A.4

    Day 4  / Sept 5 Analytical Performance Analysis
    Intro. to Benchmarking
    SPEC 2000 Handout
    2.1-2.5
    Day 5  / Sept 10 Analytical Performance Analysis
    Intro. to Benchmarking
    SPEC 2000
    SPEC 2000 Handout
    2.7-2.9
    4.1-4.2 (pg 215)
    Hw #1 Due / Solution
    Hw #2 Assigned / Solution
    Day 6  / Sept 12 Benchmarking Conclusions
    Intro. to Numerical Representation
    Integers & Sign Representation
    Learning Binary
    Bill's Guide to binary numbers
    Binary Math (Singed and Unsigned)
    4.2 (pg. 215)-4.3 (pg 223)
    Day 7  / Sept 17 ASCII /Character Representation 
    Moore's Law Paper (postscript)
    pg 142
    Day 8  / Sept 19 Finish Integer Arithmatic
    Intro to. Floating Point
    4.8-(pg  288) Hw #2 Due - Fri. 9-20-2 / Solution
    Day 9  / Sept 24 Finish Floating Point Representation
    Test #1 Review
       Quiz #1 / Solution
    Day 10 / Sept 26 Test #1: Topics

     
    Day 11 / Oct 1 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 #3 Assigned / Solution
    Day 12 / Oct 3
    Register Basics
    Memory:
    Basic Memory Structure
    Load & Store Instructions: lw, sw
    Instruction Formats: I-Format  
    Alignment
    Memory/Array Structure/Indexing
    Equations with Array Elements
    A.5
    Day 13 / Oct 8
    Last day to Drop
     without WD
    lb & sb
    Basic structure/syntax of ASM programs
    Labels, Constants, and Assembler Directives
    Immeadiate Instructions
    Branching & Decision Instructions
    Pseudo-Ops
      Hw #3 Due / Solution
    Hw #4 Assigned / Solution

    Day 14 / Oct 10 More Pseudo-Ops
    Instruction Formats: J-Format
    Hello World Handout - Type / Try!
    System Interrupts, Services, & Exceptions
    3.5
    Lab #1 Assigned
    Day 15 / Oct 15
    SPIM syscalls for I/O
    Improved Syscall Table!
    Memory Segments
    How the assembler "places" parts of the prog.
    Using SPIM
    SPIM Examples
    Stack/Register Usage Handout
    SPIM Manual
    Hello World Handout
    A.8-A.9
    (esp. pg A.48-49)
    Hw #4 Due / Solution
    Hw #5 Assigned / Solution
    Day 16 / Oct 17
    Procedure Calling Conventions Register Conventions Functions, Recursion, & the Stack (Examples)
    Functions
    3.6, A.6-A.7
    Stack/Register Usage Handout
    Lab #2 Assigned
    Day 17 / Oct 22 More Functions / Stack
    Large Argument / Return Value Handout

    Lab #1 Due
    Day 18 / Oct 24 Arrays vs. Pointers
    Putting it all together Multi-Arg Functions and Large Return Vals: Depth & Examples
    3.7-3.11
    Large Argument / Return Value Handout

    Day 19 / Oct 29 Floating Point Co-Processor and ASM
    Example of Floating point function
    MIPS Addressing Styles  
    4.8 (pg 288-301), 3.13-3.14
    Hw #5 Due / Solution
    Day 20 / Oct 31 Breakpoints in SPIM
    Multidimensional Arrays
    A.10-A.11
    Lab #2 Due
    Lab #3 Assigned
    Day 21 / Nov 5 C, C++, and ASM: Inlining, Locals, Globals, Initilizing, Pointers/Arrays, Pass by Value/Pass by reference, Short Circuit Evaluation, Multi Dim Arrays
    Test #2 Review

     
    Day 22 / Nov 7 Quiz #2 Solution
    Logic Review
    Gates & Intro. to Combinational Logic
    Propagation Delay
    Logic Equations Higher Components: Multiplexors, Decoders, Encoders, etc.
    Digital Logic Tutorial
    On-line digital systems tutorial
    How stuff works: Boolean Logic
    Digital Logic


    Day 23 / Nov 12 Test #2: Topics
    Extra Credit
    Extra Credit Solution
    B.1-B.3
    Lab #3 Due Nov. 13 by 4:00pm
    Day 24 / Nov 14 Logic Continued
    Intro. to Programmable Combinational Logic (And Two Level Logic)

    Hw #6 Assigned / Solution
    Day 25 / Nov 19
    Last day to Drop
    Finishing Programmable Logic
    Logic Operations in MIPS
    Basic Adders & Chaining 1-Bit ALU
    4.4-4.5 (pg 241)

    Lab #4 Assigned / Checklist
    Hw #6 Due / Solution / Functions


    Day 26 / Nov 21 Intro. to Multi-Bit ALU and Bit Cells
       
    Day 27 / Nov 26 More Multi-Bit ALU, Subtraction, Overflow and SLT
    Latches - The RS Latch Behavior
    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)
    Latches, Flip-Flops and other memory elements
    D Latch Demo/Timing
    RS Latch and D-Latch with timing info (pdf)
    4.3
    Hw #7 Assigned / Solution
    Day 28 / Dec 3 Register & Memory Element Structure
    RAM Structure: SRAM, DRAM, etc.
    B.4-B.5  
    Day 29 / Dec 5 State Machines
    B.6  Lab #4 Due Fri. Dec 6th / Checklist / Functions
    Day 30 / Dec 10 Finish State Machines
    B.7   Hw #7 Due Wed. Dec 11th / Solution
    Day 31 / Dec 12
    Finish Multiplication and Division
    Big Picture - The Whole CPU/ALU and interaction.
    Test #3 Review
    4.6-(pg 259), 4.7
    Attendance Quiz
    Section A Final
    Dec 17
    4:00pm-6:00pm
    Test #3 Topics
    Study Materials!!!

     
    Section B Final
    Dec 19 / 10:30am-12:30pm
    Test #3 Topics
    Study Materials!!!


    External References/Help

    My notes, outlines, and assignments from previous semesters:

      CS234 SS2 Homepage

      CS234 WS2 Homepage

      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)