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
Contenu détaillé
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

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

26 février 2019, 14h30-17h20, TBD

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.

8. Semaine de lecture

4 au 8 mars 2019

9. Interruptions

12 et 15 mars 2019

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

19 et 22 mars 2019

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

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
  • 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

2 et 5 avril 2019

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

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
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

16 avril 2019

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

23 et 26 avril 2019

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

30 avril 2019, 14h30-17h20, TBD

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ées à l'examen.

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 à Étienne Tremblay pour le matériel et l'aide apportés à l'élaboration du contenu de ce cours. Merci également à 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.