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 2017  Horaire et local
Professeur : Touati, Hédi
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.
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é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 demande. Bureau : Local des chargés de cours, Courriel : touati@uqo.ca
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
  • Environnement de travail

Création des groupes de Travaux pratiques

Rappels sur les systèmes de numération

  • Représentation binaire, décimal et hexadécimal
  • Conversion binaire-hexadécimale et binaire-décimale
11 jan. 2017 
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
TD1 : Systèmes de numération
18 jan. 2017 
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
TD2 : Arithmétique binaire
25 jan. 2017 
4    Le microcontrôleur HCS12 :
  • Modes d'adressage
  • Le jeu d'instructions de base
  • Structure d'une instruction : adressage et format
TP1 : Structure interne des ordinateurs.
01 fév. 2017 
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
TP2 : Introduction du microcontrôleur HCS12 et la carte Dragon12.
08 fév. 2017 
6    Le microcontrôleur HCS12 : Outils de développement logiciels et matériels
  • Outils de développement pour HCS12. Débogage
  • Sous-programmes. La gestion de la pile
TP3 : Programmation en langage assembleur.

Devoir : Registres. Mode d'adressage. Programmation en langage assembleur

15 fév. 2017 
7    Programmation avancée en langage assembleur
  • Structures remarquables
  • Tableaux & chaînes de caractères
  • Piles
  • Interfaçage E/S
TP4 : Programmation avancée en langage assembleur.
22 fév. 2017 
8    Semaine d'études 01 mars 2017 
9    Examen Intra 08 mars 2017 
10    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
15 mars 2017 
11    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
TP5 : Introduction à l'Arduino et à la programmation en langage C.

Devoir : Programmation en langage C.

22 mars 2017 
12    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
TP6 : Interfaçage E/S avec l'Arduino : DEL et bouton-poussoir.
29 mars 2017 
13    Arduino : Programmation en langage C (suite)
  • Programmation avancée en C :
    • Utilisation des Pointeurs
    • Utilisation des Structures
  • Séance de révision
TP7 : Mini-projet.
05 avr. 2017 
14    Présentation des projets d'étudiants 12 avr. 2017 
15    EXAMEN FINAL 19 avr. 2017 
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
30 %
2.2
Travaux et devoirs
30 %
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 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. Kelly and I. Pohl, A Book on C, Edition 4, Addison-Wesley, ISBN : 0-201-18399-4.

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