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.