Ordinateurs: Structure et Applications GIF-1001

Bienvenue sur le site web du cours d'OSA pour la session d'hiver 2018!

Ce cours présente l'architecture interne de l'ordinateur et l'organisation de ses principaux éléments. Il prépare à l'exploitation de l'ordinateur dans des problèmes d'ingénierie tels l'acquisition et le traitement de données, la commande industrielle et la gestion de périphériques. Afin de bien dégager la vision physique et logique, il utilise principalement le langage d'assemblage. L'architecture ARM sert de cas d'étude dans la discussion des divers concepts et lors de travaux pratiques.

Semaine courante

Équipe

Jean-Francois Lalonde

Jean-François Lalonde
Professeur

Contactjflalonde@gel.ulaval.ca
BureauPLT-1138E
Disponibilités Lundi 15h30-16h30
Mercredi 14h30-15h30
Marc-Andre Gardner

Marc-André Gardner
Assistant

DisponibilitésAteliers
Julien Lavoie-Bernier

Julien Lavoie-Bernier
Assistant

ContactPiazza
BureauPLT-0103
Disponibilités Mardi 9h30-11h
Philippe Trépanier

Philippe Trépanier
Assistant

ContactPiazza
BureauPLT-0103
DisponibilitésJeudi 10h-11h30

Logistique

Horaire

Jour Heure Local
Mardi 14h30 à 16h20 PLT-1112
Vendredi 10h30 à 11h20 VCH-2850
Vendredi 11h30 à 12h20 (ateliers) VCH-2850

Plan de cours

Forum de discussions

Nous utilisons Piazza pour toutes questions, discussions, etc.

Simulateur ARM

Le simulateur ARM utilisé en classe et pour les travaux pratiques est disponible ici.

Évaluations

Travaux pratiques

Tous les travaux pratiques devront être remis sur le portail des cours. Aucun retard n'est permis, tel qu'indiqué dans le plan de cours.

Travail Date de disponibilité Date de remise Pondération
TP0: Réchauffement 16 janvier, 14h30 23 janvier, 23h59 1%
TP1: Devenez un microprocesseur 23 janvier, 14h30 6 février, 23h59 3%
TP2: Initiation à l'assembleur ARM 6 février, 14h30 20 février, 23h59 3%
TP3: Branchements et appels de fonction 20 février, 14h30 13 mars, 23h59 3%
TP4: Interruptions et ordonnancement 13 mars, 14h30 3 avril, 23h59 4%
TP5: Gestion d'une mémoire paginée 3 avril, 14h30 17 avril, 23h59 4%
TP6: Récapitulation 17 avril, 14h30 27 avril, 23h59 2%

Examens

Examen Date et heure Lieu Pondération
Mi-session 27 février, 14h30 à 17h20 PLT-1112 40%
Final 1 mai, 14h30 à 17h20 TBD 40%

Modules de cours

Cliquez sur le module pour révéler plus d'informations. Les informations manquantes seront mises à jour durant la session.

1. Introduction et format des données

16 et 19 janvier 2018

Objectifs d'apprentissage
  • Connaître les principaux événements dans l'historique des ordinateurs
  • Identifier les trois étapes principales du cycle d'instructions
  • Identifier les façons de représenter les données sur un ordinateur
  • Convertir des données du format binaire au décimal, et vice-versa
  • Convertir des données du format hexadécimal au décimal, et vice-versa
  • Convertir des données du format binaire complément-2 au décimal, et vice-versa
  • Convertir des données du format binaire IEEE754 au décimal, et vice-versa
  • Convertir des chaînes de caractères (ASCII) en binaire, et vice-versa
Contenu détaillé
Description Notes Contenu complémentaire
Introduction et historique des ordinateurs PDF Chapitre 1.6
Logistique du cours PDF
Représentation des entiers PDF Chapitres 3 et 4.2
Outil de conversion en binaire
Représentation des rationnels et des caractères PDF Chapitres 3 et 4.2
Table ASCII

2. Composantes principales des ordinateurs

23 et 27 janvier 2018

Objectifs d'apprentissage
  • Décoder un programme simplifié
  • Reconnaître les principales composantes des ordinateurs: microprocesseur, mémoire, entrées-sorties, bus
  • Reconnaître les trois principaux types de bus: données, adresses, contrôle
  • Connaître les trois étapes du cycle d'instructions
  • Comprendre les interactions entre le microprocesseur et la mémoire via les bus
  • Reproduire le comportement d'un microprocesseur pour des instructions simples
Simulateur
  • Le simulateur d'ordinateur dont il sera question durant l'atelier est disponible sur la page web du TP1.
Contenu détaillé
Description Notes Contenu complémentaire
Introduction aux microprocesseurs PDF Chapitre 6
Composantes principales des ordinateurs PDF Chapitres 7.1 à 7.6
Bus et adressage PDF Chapitre 7.6
Atelier: Introduction au simulateur d'ordinateur du TP1 Simulateur d'ordinateur du TP1

3. Instructions et jeu d'instructions

30 janvier et 2 février 2018

Objectifs d'apprentissage
  • Reconnaître et différencier les types d'instructions
  • Comprendre l'utilité des registres
  • Comprendre la signification des instructions principales (MOV, LDR/STR, ADD/SUB, JZE)
  • Distinguer les instructions MOV des instructions LDR/STR
  • Décoder une instruction en binaire
  • Connaître les différences entre RISC et CISC
  • Écrire un programme simple en assembleur simplifié
  • Décoder un programme simple en assembleur simplifié
Contenu détaillé
Description Notes Contenu complémentaire
Instructions et jeu d'instructions PDF Fichiers pour exercices avec simulateur
Chapitres 7.7, 7.8
Atelier: TP1 et instructions

4. Introduction à l'architecture ARM

6 et 9 février 2018

Objectifs d'apprentissage
  • S'initier à la programmation en assembleur ARM
  • Connaître les principales caractéristiques de l'architecture ARM (32 bits)
  • Distinguer la notation « Big Endian » et « Little Endian »
  • Comprendre l'utilisation de variables en ARM
  • Savoir utiliser les différents modes d'adressage en ARM
  • Distinguer les assignations des allocations (ASSIGN vs ALLOC)
Documentation ARM
Contenu détaillé
Description Notes Contenu complémentaire
Introduction à l'architecture ARM PDF ARM7 Technical Reference Manual
Lecture facultative: chapitres 1, 2.3, 2.4 et 2.6.1.
ARM: variables PDF Démonstrations sur simulateur ARM
ARM: décalages et déplacements PDF Démonstrations sur simulateur ARM
Atelier: TP2

5. Assembleur ARM: variables et conditions

13 et 16 février 2018

Objectifs d'apprentissage
  • Distinguer l'assembleur du compilateur de l'éditeur de liens
  • Comprendre l'utilisation de variables en ARM
  • Comprendre le remplacement par l'assembleur des instructions LDR avec variables par des instructions relatives à PC
  • Expliquer l'avantage des instructions relatives à PC
  • Établir le lien entre les instructions conditionnelles et les drapeaux de l'ALU
  • Implémenter des programmes simples en assembleur ARM utilisant des instructions conditionnelles
Documentation ARM
Contenu détaillé
Description Notes Contenu complémentaire
Assembleur, compilateur et langage interprété PDF
ARM: variables et assembleur PDF Démonstrations sur simulateur ARM
ARM: arithmétique et conditions PDF Démonstrations sur simulateur ARM
Exercices formatifs sections 1-3

6. Assembleur ARM: branchements et fonctions

20 et 23 février 2018

Objectifs d'apprentissage
  • Comprendre le fonctionnement des branchements et de l'utilisation du registre LR
  • Implémenter des programmes simples faisant des appels de fonctions
  • Utiliser la pile pour sauvegarder et restaurer les registres lors d'appels de fonction
Documentation ARM
Contenu détaillé
Description Notes Contenu complémentaire
ARM: Séquence d'exécution et branchements PDF Exercices formatifs section 1-4
Atelier: Révision mi-session Révision de mi-session La révision sera de 10h30 à 12h20!

7. Examen mi-session

27 février 2018, 14h30-17h20, PLT-1112

Informations sur l'examen de mi-session
  • Local: PLT-1112
  • Vous avez droit à une calculatrice approuvée et une feuille aide-mémoire 8.5x11, recto-verso, écrite à la main.
  • Les annexes suivantes vous seront donnés à l'examen.
Objectifs d'apprentissage
  • Distinguer les différents types d'interruptions
  • Comprendre le fonctionnement d'une table des vecteurs d'interruptions
Contenu détaillé
Description Notes Contenu complémentaire
Table des vecteurs d'interruption PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Exercices formatifs section 5
Atelier: TP3

8. Semaine de lecture

5 au 9 mars 2018

9. Interruptions

13 et 16 mars 2018

Objectifs d'apprentissage
  • Distinguer les différents types d'interruptions
  • Comprendre le fonctionnement d'une table des vecteurs d'interruptions
  • Comprendre la sauvegarde du contexte et le changement des registres lors d'une interruption
  • Connaître l'utilité d'un contrôleur d'interruptions
  • Implanter un système de gestion d'une interruption simple
Contenu détaillé
Description Notes Contenu complémentaire
Table des vecteurs d'interruption PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Les interruptions PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Démonstrations, sec. 8
Exercices formatifs, sec. 5

10. Introduction aux systèmes d'exploitation

20 et 23 mars 2018

Objectifs d'apprentissage
  • Connaître les rôles d'un système d'exploitation
  • Distinguer divers types de systèmes d'exploitation
  • Comprendre comment un système d'exploitation est chargé en mémoire
  • Connaître les rôles du BIOS
Contenu détaillé
Description Notes Contenu complémentaire
Introduction aux systèmes d'exploitation PDF Chapitre 15
Le démarrage d'un ordinateur PDF
Atelier: TP4 et interruptions

11. Gestion des processus

27 mars 2018

Objectifs d'apprentissage
  • Comprendre la nécessité d'ordonnancer les processus
  • Indiquer l'ordre d'exécution des processus en fonction d'algorithmes d'ordonnancement simples
  • Comprendre l'interaction entre les interruptions et l'ordonnancement des processus
  • S'initier aux algorithmes d'ordonnancement des systèmes d'exploitation modernes
Contenu détaillé
Description Notes Contenu complémentaire
Gestion des processus PDF Chapitres 15.3, 18 (jusqu'à 18.5)

12. Gestion de la mémoire

3 et 6 avril 2018

Objectifs d'apprentissage
  • Déterminer l'organisation de la mémoire en allocation contigüe avec partitions de taille fixe et variable
  • Distinguer les adresses virtuelles des adresses physiques
  • Distinguer les pages des trames
  • Utiliser une table des pages pour traduire une adresse virtuelle en une adresse physique
  • Comprendre le mécanisme des fautes de page
  • Calculer la taille d'une table de pages
  • Mettre à jour les tables après une série d'accès mémoire
Contenu détaillé
Description Notes Contenu complémentaire
Gestion de la mémoire PDF Chapitres 18.6-18.7
Atelier: TP5 et mémoire paginée

13. Entrées-sorties

10 et 13 avril 2018

Objectifs d'apprentissage
  • Connaître les fonctions principales d'un contrôleur de périphériques
  • Comprendre le fonctionnement de trois modes d'accès aux périphériques: programmées, par interruptions, et par DMA.
  • Connaître les avantages et inconvénients principaux de ces modes d'accès aux périphériques
Contenu détaillé
Description Notes Contenu complémentaire
Entrées-sorties: programmées, par interruption, DMA PDF Chapitres 9, 11.2, 11.2
Atelier: Processus, entrées-sorties

14. Port série et USB

17 et 20 avril 2018

Objectifs d'apprentissage
  • Traduire une chaîne de bits à envoyer sur une ligne série RS-232 en voltage, et vice-versa
  • Comprendre le mode différentiel
  • Connaître l'organisation hiérarchique du bus USB
  • Connaître les principales caractéristiques du bus USB: adresses, ordonnancement temporel et organisation par paquets
Contenu détaillé
Description Notes Contenu complémentaire
Le port série PDF
Le bus USB PDF Spécifications USB 2.0 (pour les curieux)
Atelier: Port série et USB

15. Caches et révision finale

24 et 27 avril 2018

Objectifs d'apprentissage
  • Comprendre pourquoi on utilise des caches
  • Déterminer pourquoi l'ordre d'exécution de deux boucles imbriquées est important
  • Distinguer une cache « write-back » d'une cache « write-through »
  • Énumérer les étapes d'accès mémoire lors d'un « hit » et d'un « miss » en cache
Contenu détaillé
Description Notes Contenu complémentaire
Mémoire : cache PDF Chapitres 7, 8.3 (cache), 9
Révision finale PDF
Atelier: Révision de l'examen final H2017 Examen H2017, Solutions H2017

16. Examen final

1 mai 2018, 14h30-17h20, PLT-1112

Informations sur l'examen final
  • Vous avez droit à une calculatrice approuvée et une feuille aide-mémoire 8.5x11, recto-verso, écrite à la main.
  • Nous évaluons en fonction des objectifs établis pour chaque module/semaine de cours. Nous vous recommandons donc fortement de les passer en revue et de vous assurez que vous y répondez bien!
  • Les annexes suivantes vous seront donnés à l'examen.

Ressources additionnelles

Voici les examens des sessions antérieures pour vous pratiquer.

Examens des années antérieures

Sujet Examen Solutions
H2018, final PDF PDF
H2018, mi-session PDF PDF
A2017, final PDF PDF
A2017, mi-session PDF PDF
H2017, final PDF PDF
H2017, mi-session PDF PDF
A2016, final PDF PDF
A2016, mi-session PDF PDF
H2016, final PDF PDF
H2016, mi-session PDF PDF
H2015, final PDF PDF
H2015, mi-session PDF PDF

Livre

Bien que non obligatoire, le livre suivant pourrait vous être utile:

Irv Englander, "The architecture of computer hardware, systems software, and networking", Wiley, 2014.

La 4e édition est accessible en ligne (5 usagers simultanés maximum), vous aurez besoin de votre IDUL/NIP.

Remerciements

Merci à Étienne Tremblay pour le matériel et l'aide apportés à l'élaboration du contenu de ce cours. Merci également à Jean-Sébastien A. Beaudry pour sa contribution à l'amélioration du cours depuis 2016. Finalement, merci à Marc-André Gardner, Yannick Hold-Geoffroy, Étienne Dubeau, Jonathan Goudreault et Jessica Déziel pour le développement de notre simulateur ARM. Je donne la permission à quiconque d'utiliser le contenu présent sur ce cours, à condition de créditer les sources originales.