CPS310 - Computer Organization II Winter 2010


Instructor: Mark Fiala


Marks for all labs, midterm, and final exam updated Apr 21/2011. NOTE: some sections had incorrect math in the lab mark calculation. As per the CFM, each lab is weighted the same at 3.5%.
Section 1, 2, 3, 4.

Final exam marks posted here . The average was 79.5%.

Here are the datasheets you will have at the back of the final CPS310_final_exam_datasheets.pdf, part B and part C .

Check here regularly for course news.


Course Management Form

  • CPS310 Winter 2011 CFM


  • Lectures

  • Lectures 0,1 Associated simulator files. Time permitting, brief history of computer slides (Murdocca).
  • Lectures 2,3. Associated simulator files.
  • Lectures 4,5
  • Lectures 6,7,8,9 . Associated PIC and 6052 examples from class.
  • Lecture 10,11 6052 code examples from class.
    ARC processor slides from Chapter 4 of the text (slides courtesy of the textbook author).
  • Lectures 11,12,13 AVR assembly programming. Harvard, Von Neumann architectures wikipedia page .
  • Lectures 14,15,16,17
    Some AVR code from class avr_ascii_string_from_ram_example.asm . IEEE-754 floating point number notes (Murdocca). Signed and unsigned numbers: addition, subtraction, and multiplication. Murdocca's Chapter 3 (slides 1-13, slides 17, 23) Video on 6502 reverse engineering
  • Lectures 18,19,20,21
    Chapter 3 (slides 1-13, slides 17, 23), Chapter 4 (up to slide 19), Chapter 6 (up to slide 11), Appendix B , and practice exam , answers .
  • Final exam review

    Exam Preparation
  • Here is a document providing what to study for the midterm (this will be useful for the final as well).
  • Here are the reference sheets that you will have at the back of the both the midterm and final exams: part A , part B and part C .
  • First practice exam , answers . (note this is only a subset of question types on the final)
  • Second practice exam , answers . (note this is only a subset of question types on the final)
  • Some questions students asked in previous years. (Note: in earlier years they did not do the x86, and they did more ARC work).
  • Here are the datasheets you will have at the back of the final CPS310_final_exam_datasheets.pdf, part B and part C .

  • CPS 310 Microprocessors
    In this course we will use a variety of simulated and real processors.

  • Microcoding state machines - logic built in Multimedia Logic logic simulator, used for the first lectures and first two labs (same simulator we used in CPS213).
  • PIC16C5X datasheet .
  • 6502 - two simulators: 6502.exe and java emulator . Here is an interesting link on "illegal" instructions from microcoding.
  • ARC (subset of SPARC RISC processor)- simulator . Sheet of ARC instructions .
  • Atmega 168 data sheet and very similar Atmega 8535 data sheet . The Atmega 8535 is on the lab board , here is the board's datasheet . Download AVR Studio for Windows for Lab 5-7. Here are some instructions and drivers for the USB/serial adapter to connect the Atmega 8535 board to your laptop.
  • x86/IA32: Links to Wikipedia introduction , simple x86 tutorial , a more detailed x86 tutorial , and a tutorial on assembly in Visual Studio .

  • 'UNO' Microcontroller
    In this course you purchase an AVR microcontroller board ($50 from Computer Science office), this is in place of a mandatory textbook. We are using the Arduino 'Uno' board which contains an Atmel Atmega M328P microcontroller that we will write assembly code for, we are not using the Arduino environment.
  • We are using the 'Uno' microcontroller from Arduino .
  • You need to download AVRStudio4 from AVR Studio for Windows .
  • You also need to download the Uno drivers . Unzip the files onto your system and then plug in the Uno and direct the install to the drivers.
  • the Uno board has an Atmel Atmega328P microcontroller on it. Here are datasheets: summary , full datasheets .
  • here is a local copy of the Atmega328P datasheet m328_uno_datasheet_doc8271.pdf and a document from Atmel using the LPM instruction DOC3049.PDF
  • here is the Uno board schematic itself.


    Labs

  • LAB #0 Multimedia Simulator: memory based state machines. (updated Jan 13 with ASCII table).
  • Here are the required base simulator files cps310_lab0.zip .

  • LAB #1 Multimedia Simulator: memory based state machines (Updated Jan 20 errors with mux1 in part C).
  • Here are the required simulator files cps310_lab1.zip .
    Prepare in advance - you must have at least Part A and B of the paper work done in advance when you arrive, so that you can finish in time.

  • LAB #2 Multimedia Simulator: address decoding.
  • Here is the required base simulator files lab2_address_decoding.lgi .

  • LAB #3 PIC16C5X Instructions.
  • LAB #4 6502 Assembly and first program.
  • LAB #5 Intro to 'Uno' AVR microcontroller board and more 6502 programming. Lab5 AVR program and 'AVRDude' program blinktest.zip . Note, you will need to install AVRStudio and the Uno drivers (see 'UNO' Microcontroller section above).
  • LAB #6 AVR assembly and serial communications. Lab6 AVR program and Hyperterminal program lab6.zip
  • LAB #7 AVR LED output and switch inputs, floating point numbers.
    Here are the necesssary files for Lab 7: lab7_led_count.asm and lab7_leds_switches.asm .

  • LAB #8 AVR 'calculator' program, ADC input, unsigned multiplication on paper and in software (6502).
    Here is the necesssary file for Lab 8: lab8_adc_demo.asm and
  • LAB #9 x86, ARC programming. File for bonus question cps310_lab9_bonus_q25.asm .

  • Recommended textbook:

    No textbook is required for this course.


    Additional Reading:

    Computer Architecture and Organization: An Integrated Approach
    Miles J. Murdocca, Internet Institute, USA
    Vincent P. Heuring, University of Colorado
    ISBN: 978-0-471-73388-1
    ©2007, 544 pages

    I suggest the less expensive online version.