Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF1643  Gr. 01
Titre : Architecture des ordinateurs II
Session : Hiver 2019  Horaire et local
Professeur : Bougataya, Mohammed
1. Description du cours paraissant à l'annuaire :

Objectifs

Comprendre le fonctionnement global d'un ordinateur et de ses composants. Comprendre la communication entre les différentes parties matérielles et logicielles d'un ordinateur à l'aide du langage assembleur.

Contenu

Rappel sur la représentation des nombres, arithmétique en compléments et codes numériques. Structure interne des ordinateurs : processeur, mémoire, entrées/sorties, bus. Modèle du processeur : registres, unité arithmétique et logique, modes d'adressage, gestion de la pile. Introduction à la programmation sur un microcontrôleur et au langage assembleur. Programmation des ports d'entrée/sortie sur un microcontrôleur en langage de haut niveau. Ce cours comporte des séances obligatoires de travaux pratiques (TP) de trois heures par semaine.

Descriptif – Annuaire

2. Objectifs spécifiques du cours :

À la fin de ce cours, l'étudiant(e) sera en mesure de :

  • Présenter les concepts fondamentaux des microprocesseurs.
  • Décrire le rôle des composantes et le fonctionnement d'un microprocesseur et d'un ordinateur.
  • Introduire les techniques de base de programmation en assembleur HCS12 et en langage C.

Le cours couvre 6 des 12 qualités requises des diplômé(e)s telles que définies dans les normes d'agrément des programmes de génie au Canada (http://www.engineerscanada.ca/fr/ressources-en-matiere-dagrement).

a. Qualité 1 : Connaissances en génie

b. Qualité 2 : Analyse de problèmes

c. Qualité 3 : Investigation

d. Qualité 4 : Conception

e. Qualité 5 : Utilisation d'outils d'ingénierie

f. Qualité 6 : Travail individuel et en équipe

Les qualités 2, 3, et 4 sont mesurées dans ce cours pour fins de rétroaction.

Objectifs spécifiques Qualité Indicateurs Introduit Développé Appliqué
  • Résoudre des problèmes spécifiques à l'aide d'un microprocesseur.

2

2. Formuler un processus de résolution de problèmes, comprenant des approximations et des hypothèses.

X

  • Concevoir, développer, tester et évaluer des prototypes sur les microcontrôleurs HCS12 et Arduino.

3

2. Mettre en œuvre des investigations documentaires, des expériences et/ou des prototypes.

X

4

3. Créer des modèles, simulations, prototypes, et faire des tests.

X

4

4. Vérifier la conformité de la conception par rapport au cahier des charges.

X

3. Stratégies pédagogiques :

Les formules pédagogiques suivantes seront utilisées :

  • Cours magistraux
  • Séances de travaux dirigés et de laboratoire
  • Projet en équipe

La présence aux cours et aux laboratoires est obligatoire.

4. Heures de disponibilité ou modalités pour rendez-vous :

Sur rendez-vous.
Bureau LB-2093.

5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1   

Introduction

Présentation du plan de cours

  • Mise en contexte
  • Objectifs du cours
  • Organisation du cours

Rappels sur les systèmes de numération

09 jan. 2019 
2   

Structure interne des ordinateurs

  • Arithmétique binaire des nombres signés et non signés
  • Opérations dans l'unité Arithmétique et Logique (ALU)

Architecture d'un ordinateur monoprocesseur

  • Schéma bloc et fonctionnement global d'un ordinateur
  • Architectures RISC et CISC

16 jan. 2019 
3   

Principes généraux des microcontrôleurs

  • Un microcontrôleur typique
  • Exécution du code (instructions)
  • Le développement de logiciel (firmware) pour les microcontrôleurs

Introduction au microcontrôleur HCS12

  • Aperçu
  • Les registres et les mots d'états

TD1 : Systèmes de numération

Groupe A : le 21 janv. 2019 à 8 h 30 – Groupes B et C : le 24 janv. 2019 à 8 h 30 et 12 h 30

23 jan. 2019 
4   

Le microcontrôleur HCS12

  • Modes d'adressage
  • Le jeu d'instructions de base
  • Structure d'une instruction : adressage et format

TD2 : Arithmétique binaire

Groupe A : le 28 janv. 2019 à 8 h 30 – Groupes B et C : le 31 janv. 2019 à 8 h 30 et 12 h 30

30 jan. 2019 
5   

Introduction à la programmation en assembleur HCS12

  • Instructions de stockage
  • Instructions de transfert
  • Instructions arithmétiques
  • Instructions logiques
  • Instructions de test
  • Instructions de branchement
  • Outils de développement logiciels et matériels
  • Outils de développement pour HCS12. Débogage

TP1 : Structure interne des ordinateurs et introduction du microcontrôleur HCS12

Groupe A : le 04 févr. 2019 – Groupes B et C : le 07 févr. 2019

06 fév. 2019 
6   

Programmation avancée en langage assembleur

  • Sous-programmes. La gestion de la pile
  • Structures remarquables
  • Tableaux & chaînes de caractères
  • Piles
  • Interfaçage E/S

TP2 : Programmation en langage assembleur

Groupe A : le 11 févr. 2019 – Groupes B et C : le 14 févr. 2019

13 fév. 2019 
7   

Introduction à la programmation en langage C

  • Structure générale du langage C
  • Organisation générale des programmes
  • Les types, constantes et variables
  • Les structures de contrôle
  • Les bibliothèques standards

TP3 : Programmation avancée en langage assembleur
Groupe A : le 18 févr. 2019 – Groupes B et C : le 21 févr. 2019

20 fév. 2019 
8   

Examen intra

27 fév. 2019 
9   

Semaine d'études

06 mars 2019 
10   

Arduino : Programmation en langage C

  • Déclaration et utilisation des fonctions
  • Gestion d'interruptions
  • Interfaçage E/S avec l'Arduino : DEL, potentiomètre, bouton-poussoir, afficheur 7-segments

TP4 : Introduction à l'Arduino et à la programmation en langage C

Groupe A : le 11 mars 2019 – Groupes B et C : le 14 mars 2019

13 mars 2019 
11   

Arduino : Programmation en langage C (suite)

  • Interfaçage E/S avec l'Arduino : afficheurs LCD, capteur de distance, manette de jeux, boucliers
  • Interfaçage avec Processing

TP5 : Interfaçage E/S avec l'Arduino : DEL et bouton-poussoir

Groupe A : le 18 mars 2019 – Groupes B et C : le 21 mars 2019

20 mars 2019 
12   

Arduino : Programmation avancée en langage C

  • Introduction aux pointeurs
  • Type du pointeur
  • Initialisation d’un pointeur
  • Utilisation des pointeurs

Mini-projet

27 mars 2019 
13   

Arduino : Programmation avancée en langage C (suite)

  • Structures
  • Unions

Mini-projet

03 avr. 2019 
14   

Présentation des projets d'étudiants

10 avr. 2019 
15   

EXAMEN FINAL

17 avr. 2019 
6. Évaluation du cours :

Une moyenne inférieure à 50 % dans n'importe laquelle des composantes : (1) moyenne pondérée des examens de mi-session et final, (2) moyenne des laboratoires et des devoirs et (3) la note du projet est éliminatoire et conduit automatiquement à l'échec de l'étudiant(e). La pénalité de retard pour la remise d'un travail est de 20 % des points par jour (y compris les jours fériés et les fins de semaine).

Outils d'évaluation Pondération Indicateurs évalués
Examen de mi-session

25 %

2.2

Examen final

35 %

2.2

Travaux pratiques

25 %

4.3

Projet

15 %

3.2 et 4.4

Par indicateur mesuré, on entend qu’à la fin du cours, un niveau de performance (0, 1, 2, 3) est donné pour chaque indicateur et pour chaque étudiant(e) selon la grille ci-dessous :

Indicateurs Niveau 0 Niveau 1 Niveau 2 Niveau 3
2.2. Formuler un processus de résolution de problème, comprenant des approximations et des hypothèses. Formulation du processus de résolution inacceptable et traitement inadéquat des approximations et des hypothèses Formulation du processus de résolution acceptable, mais traitement partiel des approximations et des hypothèses Formulation du processus de résolution et traitement des approximations et des hypothèses acceptables Formulation du processus de résolution et traitement des approximations et des hypothèses remarquables
3.2. Mettre en œuvre des investigations documentaires, des expériences et/ou des prototypes.

Mise en œuvre inacceptable

Mise en œuvre partielle

Mise en œuvre acceptable

Mise en œuvre remarquable

4.3. Créer des modèles, simulations, prototypes, et faire des tests.

Création de modèles, simulations, prototypes et/ou exécution de tests inadéquates ou inexistantes

Création acceptable de modèles, simulations, prototypes, mais exécution de tests insuffisante

Création de modèles, simulations, prototypes et/ou exécution de tests adéquats

Création de modèles, simulations, prototypes et/ou exécution de tests remarquables

4.4. Vérifier la conformité de la conception par rapport au cahier des charges.

Vérification inadéquate ou inexistante

Vérification partielle

Vérification acceptable

Vérification exhaustive

7. Politiques départementales et institutionnelles :
8. Principales références :

Notes de cours (lectures)

Références recommandées

  • E. Han-Way Huang, HCS12/9S12 : An introduction : Software and hardware interfacing, Clifton Park, USA, Delmar Learning, 2010.
  • A. Kelley and I. Pohl, A Book on C, Edition 4, Addison-Wesley, ISBN : 0-201-18399-4, 1998.

Autres références

  • F.D.A. Patterson, J.L. Hennessy, Computer Organization and Design : The Hardware/Sorfware Interfac, 4e ou 5e édition, Morgan Kaufman, 2012 ou 2013.
  • A. Tanenbaum, Architecture de l'ordinateur, Paris, France, Dunod, 2001.
  • F.M. Cady, Microcontrollers and Microcomputers : Principles of Software and Hardware Engineering, Oxford University Press, 2010.
  • S. Monk, Arduino : Les bases de la programmation, Pearson, 2013.
  • C. Tavernier, Arduino : Maîtriser sa programmation et ses cartes d'interfaces, Dunod, 2011.
9. Page Web du cours :
https://moodle.uqo.ca