ECSE-426: Microprocessor Systems Laboratory
Fall 2004
(3 credits, Tues. 1:05-2:25, Room ENGTR
2120)
Course Outline
General
Information
Prerequisites: ECSE-323 and EDEC 206
Instructor: Prof. Mark Coates
Room
759
Phone: 398-7137
e-mail: coates@ece.mcgill.ca
TAs: Milos Prokic, Stephan Bourduas, Albert Law (contact details
to be announced).
Office Hours: After class, other times by appointment.
Course
Content
The objective of this course is to teach necessary skills for building embedded processor-based systems. A series of seminars will discuss background knowledge including:
(1) the basics of modern processor architectures;
(2) assembler, linker and C compiler use in embedded systems; and
(3) fundamental real-time embedded system design.
The seminars will explain (at a high level) how these concepts have impacted real-world architectures, including the Intel Pentium and Centrino microprocessors, the Sun SPARC systems, ARM microcontrollers (and low-power microcontrollers, such as Texas Instruments MSP430 series).
The course focuses primarily on experimental work and an engineering project. There are four experiments in the course. The first three are designed to familiarise students with the primary components that will be used in the project (these include the compiler, assembler, simulators, the microprocessor board and peripherals). The fourth is intended as a preparatory exercise for a larger-scale final project.
Course Component |
Approximate No. Lectures |
Introduction |
1 |
Overview Historical perspective, computer systems organization, Design Principles, Instruction set Assemblers, linker, loader, simulator, processor architecture |
1 |
Instruction Set Architecture Properties, registers, instructions, data types, instruction formats, addressing, instruction types, control flow, |
1-2 |
Microarchitecture Microinstructions, pipelining, branch prediction, prefetching, examples: Pentium, UltraSPARC, picoJava. |
2 |
Embedded Processors RISC vs. CISC, ARM, MSP430, |
1-2 |
I/O, Processor Interfacing Interrupts, clocks, interacting with peripheral devices. |
1 |
Course Materials
Recommended Reading:
A. Tanenbaum, Structured Computer Organization, fourth edition, Prentice-Hall, 1999.
B. Shriver and B. Smith, The Anatomy of a High-Performance Microprocessor - A Systems Perspective, IEEE Computer Society Press, 1998.
C. Hamacher, Z. Vranesic and S. Zaky, Computer Organization, fifth edition, McGraw-Hill, 2002.
Assignments and Evaluation
Evaluations |
Description |
Contribution to Final Grade |
Lab Experiments |
Experiments 1-3 (3 one-week experiments) |
30 % |
Mini-project |
Experiment 4 (2-week extended experiment) |
20 % |
Final Project |
4-week project involving software development to interact with microprocessor board and hardware peripherals |
50 % |
The grade for each experiment and for the final project is composed of 50% for the lab report and 50% for experimental performance. Each team of 2 students need only submit one report for each experiment (students who wish to submit individual reports should check with the instructor). Instructions concerning the expectations for the lab reports will be available on WebCT.
Each student (not team) will be given an individual grade for each experiment based on lab preparation and practice; various means of assessment will be used to assign a grade (e.g. demonstration, verbal questioning or written quizzes on relevant background, debugging methods, experiments, observations, etc.).
Lab Groups and Room Access
Experiments will be conducted in pairs. The lab groups will be assigned specific time slots for lab demonstrations. Before the first day of the lab, you will be given lab material. Instructions concerning access to the lab and access to the hardware will be provided during the semester.
Preliminary Schedule
Week |
Lecture
Material |
Experiment |
1 half-week, Sep 1 |
No Lecture |
|
2 Sep. 6 |
Overview |
|
3 Sep. 13 |
Instruction Set Architecture | Lab 1: Assembler and Embedded Programming |
4 Sep. 20 |
Instruction Set Architecture |
Lab 2: Simulation and timing; hardware preliminaries |
5 Sep. 27 |
Microarchitecture |
Lab 3: Basic hardware interfacing |
6 Oct. 4 |
No Lecture |
Lab 4: Hardware Interfacing |
7 Oct. 11 |
Microarchitecture |
Lab 4: I/O, interrupts, memory, etc. |
8 Oct. 18 |
Embedded Processors |
Project |
9 Oct. 25 |
Embedded Processors |
Project |
10 Nov. 1 |
I/O; Processor Interfacing |
Project |
11 Nov. 8 |
Project | |
12 Nov. 15 |
Project | |
13 Nov. 22 |
||
14 Nov. 29 |