Ordinateurs: Structure et Applications GIF-1001

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

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 Merc. 14h30-15h30
Jeudi 13h30-14h30
Marc-Andre Gardner

Marc-André Gardner
Assistant

DisponibilitésAteliers
Jonathan Gilbert

Jonathan Gilbert
Assistant

ContactPiazza
BureauPLT-0103
Disponibilités Mardi 8h30-10h20
Jeudi 15h30-16h30
Charles-Olivier Dufresne Camaro

Charles-Olivier Dufresne Camaro
Assistant

ContactPiazza

Logistique

Horaire

Jour Heure Local
Mardi 14h30 à 16h20 VCH-3880
Vendredi 10h30 à 11h20 VCH-2880
Vendredi 11h30 à 12h20 (ateliers) VCH-2880

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. La politique des retards est disponible dans le plan de cours.

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

Examens

Examen Date et heure Lieu Pondération
Mi-session 28 février, 14h30 à 17h20 VCH-3880: «Acheche» à «Laflamme»
PLT-2548: «Lafontaine» à «Matteau»
PLT-2551: «Mayrand» à «Zerrad»
40%
Final 25 avril, 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

10 et 13 janvier 2017

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 Doodle pour disponibilités
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

17 et 20 janvier 2017

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

24 et 27 janvier 2017

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
  • Décoder un programme simple en assembleur
  • Transcrire une instruction en une séquence de micro-instructions
  • Identifier les composantes activées lors de l'exécution de micro-instructions
Contenu détaillé
Description Notes Contenu complémentaire
Instructions et jeu d'instructions PDF Fichiers pour exercices avec simulateur
Chapitres 7.7, 7.8
Micro-instructions PDF Chapitres 6.6, 7.5
Atelier: TP1 et instructions

4. Introduction à l'architecture ARM

31 janvier et 3 février 2017

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 déclarations des allocations (constantes et variables)
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 et accès mémoire PDF Démonstrations sur simulateur ARM
Atelier: TP2

5. Assembleur ARM: variables et conditions

7 et 10 février 2017

Objectifs d'apprentissage
  • Distinguer l'assembleur du compilateur de l'éditeur de liens
  • Comprendre l'utilisation de variables en ARM
  • Comprendre par quoi l'assembleur remplace-t-il les variables et leurs adresses
  • É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
Atelier: TP2 et programmation ARM

6. Assembleur ARM: branchements et fonctions

14 et 17 février 2017

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
Atelier: Assembleur ARM et TP3

7. Table des vecteurs d'interruption et révision mi-session

21 et 24 février 2017

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
Révision mi-session PDF Démonstrations sur simulateur
Atelier: Révision mi-session

Examen mi-session

28 février 2016, 14h30-17h20

Locaux

Le groupe sera divisé en trois, selon les noms de famille:

  • VCH-3880: «Acheche» à «Laflamme»
  • PLT-2548: «Lafontaine» à «Matteau»
  • PLT-2551: «Mayrand» à «Zerrad»

Vous devez impérativement vous rendre au bon local!

Informations sur l'examen de mi-session
  • Vous avez droit à une calculatrice approuvée et une feuille aide-mémoire 8.5x11, recto-verso, écrite à la main.
  • Les annexes suivants 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
  • 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
Les interruptions PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Démonstrations sur simulateur
Atelier: TP4

Semaine de lecture

6 au 11 mars 2016

8. Interruptions et introduction aux systèmes d'exploitation

14 et 17 mars 2016

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
Les interruptions PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Démonstrations sur simulateur
Introduction aux systèmes d'exploitation PDF Chapitre 15
Atelier: TP4 et interruptions

9. Démarrage d'un ordinateur et gestion de la mémoire

21 et 24 mars 2016

Objectifs d'apprentissage
  • Comprendre comment un système d'exploitation est chargé en mémoire
  • Connaître les rôles du BIOS
  • 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
Simulateur d'allocation mémoire contigüe
Contenu détaillé
Description Notes Contenu complémentaire
Le démarrage d'un ordinateur PDF
Gestion de la mémoire PDF Chapitres 18.6-18.7

10. Mémoire cache et ordonnancement de processus

28 et 31 mars 2016

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
  • Comprendre le fonctionnement d'une hiérarchie de caches
  • 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
Mémoire : cache PDF Chapitres 7, 8.3 (cache), 9
Gestion des processus PDF Chapitres 15.3, 18 (jusqu'à 18.5)
Atelier: TP5 et mémoire paginée

11. Entrées-sorties

4 et 7 avril 2016

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

12. Port série et USB

11 avril 2016

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 employé en RS-422
Contenu détaillé
Description Notes Contenu complémentaire
Le port série PDF
Atelier: Pas d'atelier cette semaine (Vendredi Saint)

13. USB et révision

18 et 21 avril 2016

Objectifs d'apprentissage
  • Connaître l'organisation hiérarchique du bus USB
  • Connaître les principales caractéristiques du bus USB: ordonnancement temporel et organisation par paquets
Contenu détaillé
Description Notes Contenu complémentaire
Le bus USB PDF Spécifications USB 2.0 (pour les curieux)
Révision finale PDF
Exercices de révision finale PDF
Atelier: Révision de l'examen final H2016 Examen H2016, Solutions H2016

Examen final

25 avril 2016, 14h30-17h20

Locaux
Informations sur l'examen de mi-session
  • 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!

Ressources additionnelles

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

Exercices

Sujet Exercices Solutions
Gestion de la mémoire PDF PDF
Les processus PDF PDF
Les entrées-sorties PDF PDF

Examens des années antérieures

Sujet Examen Solutions
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 et Yannick Hold-Geoffroy pour le développement de notre nouveau simulateur ARM. Je donne la permission à quiconque d'utiliser le contenu présent sur ce cours, à condition de créditer les sources originales.