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 McConnell Engineering Building

                                          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.

 

 Articles and Manuals:

             Supplementary documents will be posted on the WebCT course page (manuals for hardware, articles on example microarchitectures).

                                   

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