Bill's CS234 SS2 Homepage

    Online Gradebook - Check your current grade

     
    Class Period/Date  Topics/Links  Reading Due  Homework/Assignments 
    Day 1  / Jun 11 Syllabus, Policies, & Expectations
    Computer Components/Parts 
    Histroy of CS Architecture 
    History of Improtatn CS Figures
       
    Day 2  / Jun 12 Video: The Machine that Changed the World
    (I'll bring donuts)
    Finish CS History 
    1.1-1.8  
    Day 3  / Jun 13 Components of the Computer
    Software System Hierarchy
    Appendix A, A.1-A.4
    2.1-2.3,
    Hw #1 Assigned / Solution
    Day 4  / Jun 14 Intro to Performance
    Analytical Performance Analysis
    2.4-2.6  
    Day 5  / Jun 17 Finishing Analytical Performance 2.7-2.9
    SPEC 2000 Handout, 4.1-4.2 (pg 215)
    Hw #1 Due / Solution
    Hw #2 Assigned / Solution
    Day 6  / Jun 18 Intro. to Benchmarking and SPEC 2000
    4.2 (pg 215)-4.3 (pg 223)  
    Day 7  / Jun 19 Intro. to Numerical Representation
    Integers & Sign Representation
    Learning Binary
    Bill's Guide to binary numbers
    Pg 142, 4.8, pg 275 to pg (top) 288   
    Day 8  / Jun 20 Binary Math (Singed and Unsigned)
    ASCII /Character Representation 
        
    Day 9  / Jun 21 Integer Representations & Math Moore's Law Paper (postscript)    Hw #2 Due / Solution
    Hw #3 Assigned / Solution
    Day 10 / Jun 24 Finish Integer Arithmatic
    Intro to. Floating Point
    3.1-3.4  
    Day 11 / Jun 25 Finish Floating Point Representation
    Test #1 Review
       
    Day 12 / Jun 26
    Intro. to ASM:
    Basic CPU Architecture/Overview/Review
    Simple Math Instructions: add, sub
    Simple Math Equations
    Instruction Formats: R-Format
    A.5,A.7-A.9
    (esp. pg A.48-49)
    Hw #3 Due / Solution
    Hw #4 Assigned / Solution
    Quiz #1  / Solution
    Day 13 / Jun 27 Register Basics
    Instruction Formats: I-Format  
       
    Day 14 / Jun 28 Test #1: Topics 3.6, A.6, 3.5, Hello World Handout  
    Day 15 / July 1
    Last day withdrawl w/o WD
    Load & Store Instructions: lw, sw, lb & sb
    Alignment
    Memory/Array Structure/Indexing
    Equations with Array Elements
    Basic structure/syntax of ASM programs
    Labels
    SPIM Manual

    Day 16 / July 2
    Branching & Decision Instructions 
    Hello World Handout - Type / Try!
    Pseudo-Ops
    Labels, Constants, and Assembler Directives
    J-Format

    Hw #4 Due / Solution
    Hw #5 Assigned / Solution
    Lab #1 Assigned
     
    Day 17 / July 3 System Interrupts, Services, & Exceptions
    SPIM syscalls for I/O
    Improved Syscall Table!
    Memory Segments
    How the assembler "places" parts of the prog.
    Using SPIM
    SPIM Examples


    July 4 - No Class



    July 5 - No Class  


    Day 18 / July 8 Stack & Register Usage Handout
    Procedure Calling Conventions Register Conventions Functions, Recursion, & the Stack (Examples)
    Functions
    Stack/Register Usage Handout, 3.7
     
    Day 19 / July 9 More Functions / Stack
    Arrays vs. Pointers
    Addressing Styles
    Putting it all together Multi-Arg Functions and Large Return Vals: Depth & Examples
    3.9, 3.10, 3.13, 3.14, 4.8 (pg 288-301)
    Hw #5 Due / Solution
    Hw #6 Assigned / Solution 
    Day 20 / July 10 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
      3.8, 3.11, 3.15,A.10-A.11
    Appendix B B.1,B.2
    Lab #1 Due
    Lab #2 Assigned
    Day 21 / July 11 Breakpoints in SPIM
    Multidimensional Arrays
    B.3, B.4  
    Day 22 / July 12 ?
    4.4,4.5
    Day 23 / July 15 ?
    B.5 Hw #6 Due / Solution
    Day 24 / July 16 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

       
    Day 25 / July 17 Gates & Intro. to Combinational Logic
    Propagation Delay
    Logic Equations Higher Components: Multiplexors, Decoders, Encoders, etc.
    B.6 Hw #7 Assigned / Solution
    Lab #2 Due
    Lab #3 Assigned
    Day 26 / July 18 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
       
    Day 27 / July 19 Test #2: Topics
    4.6,4.7   
    Day 28 / July 22 Logic Continued
    Intro to Programmable Combinational Logic
       
    Day 29 / July 23 Finishing Programmable Logic
    Logic Operations in MIPS
    Basic Adders & Chaining 1-Bit ALU
      Hw #7 Due / Solution
    Hw #8 Assigned / Solution
    Lab #3 Due
    Lab #4 Assigned
     
    Day 30 / July 24 Intro. to Multi-Bit ALU and Bit Cells
     
    Day 31 / July 25
    More Multi-Bit ALU, Subtraction, Overflow and SLT
    Latches - The RS Latch Behavior
    Latches, Flip-Flops and other memory elements

     
    Day 32 / July 26
    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)

    Hw #8 Due / Solution
    Hw #9 Assigned / Solution
    Day 33 / July 29
    Register & Memory Element Structure
    RAM Structure: SRAM, DRAM, etc.


    Day 34 / July 30
    State Machines

    Lab #4 Due
    Day 35 / July 31
    Finish State Machines
    Attendance Quiz

     
    Day 36 / Aug. 1
    Finish Multiplication and Division
    Big Picture - The Whole CPU/ALU and interaction.
    Chapter Review 


    Hw #9 Due / Solution
    Final  / Aug 2 11:00am-1:00 pm / Test #3 Topics    

    External References/Help

    My notes, outlines, and assignments from previous semesters:

      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)