Ordinateurs: Structure et Applications GIF-1001

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

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

jflalonde@gel.ulaval.ca
PLT-1138E
Lundi 11h00-11h50
Vendredi 9h30-10h20
Marc-Andre Gardner

Marc-André Gardner
Assistant

Ateliers

Marc-Antoine Dion
Assistant

Piazza
PLT-0103
Mardi 10h30-12h00

Julien Lavoie-Bernier
Assistant

Piazza
PLT-0103
Jeudi 10h00-11h30
Philippe Trépanier

Philippe Trépanier
Assistant

Piazza
PLT-0103
Jeudi 13h30-15h00

Logistique

Horaire

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

Plan de cours

Forum de discussions

Nous utilisons Piazza pour toutes questions, discussions, etc.

Évaluations

Travaux pratiques

Tous les travaux pratiques devront être remis sur le portail des cours. Aucun retard n'est permis.

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

Examens

Examen Date et heure Lieu Pondération
Mi-session 26 février, 14h30 à 17h20 PLT-1112 40%
Final 30 avril, 14h30 à 17h20 PLT-1112 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

15 et 18 janvier 2019

Messages

Le TP0 est disponible! Date de remise: 22 janvier, 23h59

Objectifs d'apprentissage
  • Connaître les principaux événements dans l'historique des ordinateurs
  • 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

2. Composantes principales des ordinateurs

22 et 25 janvier 2019

Messages

Le TP1 est disponible! Date de remise: 5 février, 23h59

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
6. Introduction aux microprocesseurs Chapitre 6 Questionnaire : format des données
7. Mémoire et bus Chapitres 7.1 à 7.6 Questionnaire : microprocesseurs et mémoire
8. Bus et adressage Chapitre 7.6
Atelier du vendredi Contenu supplémentaire pour l'atelier
Introduction au simulateur d'ordinateur du TP1 Simulateur d'ordinateur du TP1

3. Instructions et jeu d'instructions

29 janvier et 1er février 2019

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é
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
9. Instructions et jeu d'instructions Chapitres 7.7, 7.8
  1. Faire les exercices du cours avec le simulateur en utilisant ces fichiers.
  2. Questionnaire: Bus et adressage
Atelier du vendredi Contenu supplémentaire pour l'atelier
Introduction au simulateur d'ordinateur du TP1 Simulateur d'ordinateur du TP1

4. Introduction à l'architecture ARM

5 et 8 février 2019

Messages

Le TP2 est disponible! Date de remise: 19 février, 23h59

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
Atelier du vendredi Contenu supplémentaire pour l'atelier
Introduction au simulateur ARM Simulateur ARM

5. Assembleur ARM: variables et conditions

12 et 15 février 2019

Objectifs d'apprentissage
  • Distinguer l'assembleur du compilateur de l'éditeur de liens
  • Comprendre l'utilisation de variables en ARM
  • 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
Atelier du vendredi Contenu supplémentaire pour l'atelier
Simulateur ARM et TP2 Simulateur ARM

6. Assembleur ARM: branchements et fonctions

19 et 22 février 2019

Messages

Le TP3 est disponible! Date de remise: 12 mars, 23h59

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
17. ARM: Séquence d'exécution et branchements Série d'exercices: 4. Fonctions
18. Révision de mi-session Faire les 3 examens des années antérieures
Atelier du vendredi Contenu supplémentaire pour l'atelier
Révision mi-session

7. Examen mi-session

26 février 2019, 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ées à l'examen.
Examens des années antérieures

8. Semaine de lecture

4 au 8 mars 2019

9. Interruptions

12 et 15 mars 2019

Messages

Le TP4 est disponible! Date de remise: 2 avril, 23h59

De plus: il y aura un cours de deux heures vendredi le 15 mars (10h30 à 12h20). L'atelier manquant sera repris le 22 mars prochain.

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
19. Table des vecteurs d'interruption Chapitre 9.3 (Interrupts)
Sec. 2.8 du ARM7 Technical Reference Manual
20. Les interruptions Chapitre 9.3 (Interrupts)
Sec. 2.8 du ARM7 Technical Reference Manual
Série d'exercices 5. Interruptions

10. Introduction aux systèmes d'exploitation

19 et 22 mars 2019

Messages

Il n'y aura pas de cours vendredi le 22 mars. Le cours est remplacé par 2h d'atelier (de 10h30 à 12h20).

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
21. Introduction aux systèmes d'exploitation Chapitre 15
22. Le démarrage d'un ordinateur Questionnaire: Introduction aux systèmes d'exploitation

11. Gestion des processus

26 et 29 mars 2019

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
  • Exécuter l'algorithme du tourniquet (avec ou sans priorité)
  • Comprendre l'interaction entre les interruptions et l'ordonnancement des processus
  • S'initier aux algorithmes d'ordonnancement des systèmes d'exploitation modernes
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
23. Gestion des processus Chapitres 15.3, 18 (jusqu'à 18.5) Questionnaire: Les processus

12. Gestion de la mémoire

2 et 5 avril 2019

Messages

Le TP5 est disponible! Date de remise: 16 avril, 23h59

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
24. Gestion de la mémoire Chapitres 18.6-18.7 Questionnaire: Gestion de la mémoire

13. Entrées-sorties

9 et 12 avril 2019

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
25. Entrées-sorties: programmées, par interruption, DMA Chapitres 9, 11.2, 11.2 Questionnaire: Les entrées-sorties

14. Mémoire cache

16 avril 2019

Messages

Le TP6 est disponible! Date de remise: 26 avril (vendredi prochain!) 23h59. Il s'agit d'un questionnaire sur le portail des cours. À faire individuellement, il comporte 42 questions évaluées sur un total de 75 points et il compte pour 2% de la session.

Rappel: il n'y aura pas de cours ni d'atelier ce vendredi 19 avril. Joyeuses Pâques!

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
26. Mémoire : cache Chapitres 7, 8.3 (cache), 9 Questionnaire: Cache

15. Série/USB et révision finale

23 et 26 avril 2019

Messages

Il y aura deux heures de cours mardi le 23 avril (comme d'habitude) pour terminer la matière. Il n'y aura pas de cours vendredi le 26 avril. Le cours est remplacé par 2 heures d'atelier pour la révision finale.

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
Modules de cours Lectures facultatives Devoirs à faire pour la semaine prochaine
27. Le port série
28. Le bus USB Spécifications USB 2.0 (pour les curieux) Questionnaire: Série USB
Atelier du vendredi Contenu supplémentaire pour l'atelier
Révision finale

16. Examen final

30 avril 2019, 14h30-17h20, PLT-1112

Informations sur l'examen final
  • 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ées à l'examen.
Examens des années antérieures

Livre

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

Irv Englander, "The architecture of computer hardware, systems software, and networking", 4e édition, Wiley, 2014, ISBN : 9780471715429.

Remerciements

Merci à Marc-André Gardner, Yannick Hold-Geoffroy, Étienne Dubeau, Jonathan Goudreault et Jessica Déziel pour le développement de notre simulateur ARM. Merci à Julien Lavoie-Bernier pour les exercices sur le portail des cours. Merci également à Étienne Tremblay pour le matériel original et l'aide apportés à l'élaboration du contenu initial de ce cours. Je donne la permission à quiconque d'utiliser le contenu présent sur ce cours, à condition de créditer les sources originales.