Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF4103  Gr. 01
Titre : Architecture des ordinateurs II
Session : Hiver 2016  Horaire et local
Professeur : Cretu, Ana-Maria
1. Description du cours paraissant à l'annuaire :

Objectifs

Étudier le fonctionnement et la communication entre les différentes parties matérielles et logicielles d'un ordinateur à l'aide du langage d'assembleur. Apprendre les principes de base de la programmation structurée.

Contenu

Structure interne des ordinateurs: processeur, mémoire, entrées/sorties, bus, cycles, instructions et exécution. Modèle du processeur: registres, unité arithmétique et logique, les instructions machine, les modes d'adressage, la gestion de la pile. Utilisation des processeurs: comparaison des architectures CISC et RISC. Programmation langage machine: introduction à la programmation sur un processeur d’ordinateur et sur un microcontrôleur, fondement du langage assembleur. Programmation avancée, pratique des structures de données et des structures de contrôle, débogage. Interfaçage de l'assembleur avec les langages de haut niveau. Programmation des ports d’entrées/sorties sur microcontrôleur, programmation des interruptions. 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.

Le cours couvre 5 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) :

  1. Qualité 1 : Connaissances en génie
  2. Qualité 2 : Analyse de problèmes
  3. Qualité 3 : Investigation
  4. Qualité 4 : Conception
  5. Qualité 5 : Utilisation d'outils d'ingénierie

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 oeuvre 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.
  • Devoirs et séances de travaux pratiques.
  • 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 : B-2034 , Courriel: ana-maria.cretu@uqo.ca
5. Plan détaillé du cours sur NaN semaines :
Semaine Thèmes Dates
1    Introduction
  • Brève présentation et organisation du cours
  • Logiciel et matériel. Langage machine et de haut niveau. Dispositifs d’entrée et de sortie. Stockage de données. Communication. Technologie. Performance
11 jan. 2016 
2    Structure interne des ordinateurs
  • Unité centrale, architectures RISC et CISC, exécution des instructions, unité arithmétique et logique, horloge, mémoire, microprocesseur, bus.
18 jan. 2016 
3    Principes généraux des microcontrôleurs.
  • Un microcontrôleur typique. Architecture et fonctionnement d’un picocontrôleur
  • Le développement de logiciel (firmware) pour les microcontrôleurs

Conception structurée des programmes

Le microcontrôleur HCS12: Aperçu. Registres et codes d'états

Devoir 1: Rappel sur les bases d'encodage. Performance. Principes généraux des microcontrôleurs. Conception structurée des programmes.
25 jan. 2016 
4   

Le microcontrôleur HCS12: Aperçu.

  • Modes d'adressage.
  • Instructions de base.
  • Introduction à la programmation en langage assembleur.
Devoir 2: Registres. Mode d’adressage. Programmation en langage assembleur.

Travail pratique #1 : Structure interne des ordinateurs.

01 fév. 2016 
5    Le microcontrôleur HCS12: Programmation en langage assembleur
  • Instructions arithmétiques, logiques et de test.
  • Instructions de branchement
  • Boucles de programme
  • Outils de développement logiciels et matériels.

Travail pratique #2 : Introduction du microcontrôleur HCS12 et la carteDragon12.

08 fév. 2016 
6   

Le microcontrôleur HCS12: Outils de développement logiciels et matériels (suite). Programmation avancée en langage assembleur.

  • Outils de développement pour HCS12. Débogage.
  • Sous-programmes. La gestion de la pile. Interfaçage E/S.

Travail pratique #3 : Programmation en langage assembleur.

15 fév. 2016 
7   

Examen de mi-session

22 fév. 2016 
8   

Semaine d'études

29 fév. 2016 
9   

Le microcontrôleur Atmel AVR et Arduino: Brève présentation.

Arduino: Introduction à la programmation en langage C.

  • Organisation générale des programmes.
  • Données, variables et constantes. Fonctions mathématiques et arithmétiques. Structures de contrôle
  • Gestion du temps et d'E/S. Gestion du port série.
Travail pratique #4 : Programmation avancée en langage assembleur.
07 mars 2016 
10    Discussion examen de mi-session

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.
Travail pratique #5 : Introduction à l'Arduino et à la programmation en langage C.
14 mars 2016 
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.
Travail pratique #6 : Interfaçage E/S avec l’Arduino: DEL et boutons poussoirs.
21 mars 2016 
12   

Congé férié (Lundi de Pâques)

28 mars 2016 
13   

Arduino: Programmation en langage C (suite)

  • Programmation avancée en C: Pointeurs. Structures. Unions.
  • Séance de révision
Travail pratique #7 : Mini-projet.
04 avr. 2016 
14   

EXAMEN FINAL

11 avr. 2016 
15   

Présentation des projets d'étudiants

18 avr. 2016 
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% points par jour (y compris les jours fériés et les fins de semaines).

Outils d'évaluation Pondération Indicateurs mesurés
Examen de mi-session
25 %
Examen final
35 %
2.2
Travaux pratiques
25 %
3.2
Projet
15 %
4.3 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 oeuvre 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équate ou inexistante 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équates 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

  • Des notes de cours seront fournies couvrant la matière du cours

Référence recommandée

  • E. Han-Way Huang, HCS12/9S12: An introduction: Software and hardware interfacing, Clifton Park, USA, Delmar Learning, 2010.

Autres références

  • F D.A. Patterson, J.L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 4éme ou 5ème édition), Morgan Kaufmann, 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îtrisez sa programmation et ses cartes d’interfaces, Dunod, 2011
9. Page Web du cours :
https://moodle.uqo.ca