Ordinateurs: Structure et Applications GIF-1001

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

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 13h30-14h30
Vendredi 9h30-10h30
Marc-Andre Gardner

Marc-André Gardner
Assistant

ContactForums
Bureau
DisponibilitésAteliers
Vincent Cote

Vincent Côté
Assistant

ContactForums
BureauPLT-0103
DisponibilitésVendredi 13h30-15h30
Iron Man

Charles-Olivier Dufresne Camaro
Assistant

ContactForums
BureauPLT-0103
DisponibilitésLundi 14h30-16h30

Logistique

Horaire

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

Plan de cours

Forum de discussions

Nous utiliserons le portail des cours pour toutes questions, discussions, etc. N'hésitez pas à vous en servir!

Évaluations

Travaux pratiques

Tous les travaux pratiques devront être remis sur le portail des cours.

Travail Date de disponibilité Date de remise Pondération
TP1: Devenez un microprocesseur! 19 janvier 1er février, 23h59 4%
TP2: Adressage en assembleur ARM 2 février 15 février, 23h59 4%
TP3: Branchements et appels de fonction 16 février 7 mars, 23h59 4%
TP4: Gestion des interruptions et ordonnancement de processus 8 mars 21 mars, 23h59 3%
TP5: Gestion d'une mémoire paginée 22 mars 11 avril, 23h59 3%
TP6: Récapitulation 5 avril 22 avril, 23h59 2%

Examens

Examen Date et heure Lieu Pondération
Mi-session 23 février, 14h30 à 16h20 PLT-4118: Andande à Charbonneau
VCH-3870: Corado-Castillo à Iquira
VCH-2860: Jean à Weber-Boisvert
40%
Final 26 avril, 14h30 à 16h30 PLT-2341: Andande à Gaudy
PLT-2751: Gauvin à Weber-Boisvert
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 à la structure des ordinateurs

12 et 15 janvier 2016

Objectifs d'apprentissage
  • Connaître les principaux événements dans l'historique des ordinateurs
  • Identifier les trois étapes principales du cycle d'instructions
  • Décoder un programme simplifié
  • Identifier les façons de représenter les données sur un ordinateur
  • Convertir les données en format binaire
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
Introduction aux microprocesseurs PDF Chapitre 6
Format des données PDF Chapitres 3 et 4.2
Outil de conversion en binaire
Atelier: format des données

2. Composantes principales des ordinateurs

19 et 22 janvier 2016

Objectifs d'apprentissage
  • Reconnaître les principales composantes des ordinateurs: microprocesseur, mémoire, 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
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
Démonstration: calculer une puissance.

3. Instructions et micro-instructions

26 et 29 janvier 2016

Objectifs d'apprentissage
  • Reconnaître et différencier les types d'instructions
  • Comprendre la signification des instructions principales (MOV, LDR/STR, ADD/SUB)
  • Décoder une instruction en binaire
  • Connaître les différences entre RISC et CISC
  • Transcrire une instruction en une séquence de micro-instructions
  • Identifier les composantes activées lors de l'exécution de micro-instructions
Simulateur de micro-instructions
Contenu détaillé
Description Notes Contenu complémentaire
Instructions et jeu d'instructions PDF Chapitres 7.7, 7.8
Micro-instructions PDF Chapitres 6.6, 7.5
Atelier: TP1 et micro-instructions Simulateur d'ordinateur du TP1
Fichiers pour atelier: contenu mémoire, et programme.

4. Introduction à l'architecture ARM

2 et 5 février 2016

Objectifs d'apprentissage
  • Distinguer l'assembleur du compilateur de l'éditeur de liens
  • 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 le fonctionnement d'une pile
Contenu détaillé
Description Notes Contenu complémentaire
Révision #1: introduction à la structure interne des ordinateurs PDF
Assembleur, compilateur, éditeur de liens PDF
Introduction à l'architecture ARM PDF ARM7 Technical Reference Manual
Lecture facultative: chapitres 1, 2.3, 2.4 et 2.6.1.
Atelier: TP2 et installation de IAR Programme de test pour IAR

5. Assembleur ARM

9 et 12 février 2016

Objectifs d'apprentissage
  • Comprendre l'utilisation de variables en ARM
  • Savoir utiliser les différents modes d'adressage en ARM
  • Distinguer les variables des constantes
  • Comprendre le fonctionnement d'un programme simple en ARM
  • Implémenter soi-même un programme simple en ARM
Contenu détaillé
Description Notes Contenu complémentaire
ARM: Variables et accès mémoire PDF Addition en assembleur ARM sur IAR
Adressage en assembleur ARM sur IAR
Atelier: TP2 et programmation ARM Instructions ARM

6. Assembleur ARM

16 et 19 février 2016

Objectifs d'apprentissage
  • É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
  • 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
Contenu détaillé
Description Notes Contenu complémentaire
ARM: Arithmétique et conditions PDF Addition de nombres sur 64 bits
ARM: Séquence d'exécution et branchements PDF
Révision de mi-session PDF
Atelier: Révision examen mi-session

Examen mi-session

23 février 2016, 14h30-16h20

Locaux

Nous devrons diviser le groupe en trois. Nous utiliserons vos noms de famille pour diviser le groupe:

  • PLT-4118: Andande à Charbonneau
  • VCH-3870: Corado-Castillo à Iquira
  • VCH-2860: Jean à Weber-Boisvert

Portez bien attention à cette liste à l'avance!

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.
Contenu détaillé
Description Notes Contenu complémentaire
Retour sur l'examen 1 L'examen et les solutions sont disponibles!
Atelier: TP3

Semaine de lecture

29 février au 4 mars 2016

7. Les interruptions

8 et 11 mars 2016

Objectifs d'apprentissage
  • Distinguer les différents types d'interruptions et leur priorité
  • 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
Correctifs PDF p. 2-8 du ARM7 Technical Reference Manual
Interruptions PDF Chapitre 9.4
Sec. 2.8 du ARM7 Technical Reference Manual
Atelier: TP4

8. Introduction aux systèmes d'exploitation

15 et 18 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
  • Se familiariser avec deux propriétés importantes du DOS: la non-préemption, et l'arrangement mémoire
  • Déterminer l'organisation de la mémoire en allocation contigüe avec partitions de taille fixe et variable
Simulateur d'allocation mémoire contigüe
Contenu détaillé
Description Notes Contenu complémentaire
Introduction aux systèmes d'exploitation PDF Chapitre 15
Le BIOS PDF
Le DOS PDF "The man who could have been Bill Gates", Bloomberg.com
Chapitre 15.3
Code source du DOS
Gestion de la mémoire (mémoire contigüe) PDF Chapitres 18.6-18.7
Atelier: TP4 et interruptions

9. Gestion de la mémoire

22 mars 2016

Objectifs d'apprentissage
  • 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
Gestion de la mémoire (mémoire paginée) PDF Chapitres 18.6-18.7

10. Optimisations de la mémoire

29 mars et 1er avril 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
Contenu détaillé
Description Notes Contenu complémentaire
Mémoire : optimisations PDF Chapitres 7, 8.3 (cache), 9
Atelier: TP5 et mémoire paginée

11. Gestion des processus et des entrées-sorties

5 et 8 avril 2016

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
  • 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
Gestion des processus PDF Chapitres 15.3, 18 (jusqu'à 18.5)
Entrées-sorties: programmées, par interruption, DMA PDF Chapitres 9, 11.2, 11.2
Atelier: TP5 et mémoire paginée

12. Port série et USB

12 et 15 avril 2016

Objectifs d'apprentissage
  • Traduire une chaîne de bits à envoyer sur une ligne série RS-232 en voltage, et vice-versa
  • Identifier le rôle d'un UART
  • Comprendre le mode différentiel employé en RS-422
  • Connaître l'organisation hiérarchique du bus USB
Contenu détaillé
Description Notes Contenu complémentaire
Entrées-sorties: programmées, par interruption, DMA PDF Chapitres 9, 11.2, 11.2
Le port série et le bus USB PDF Spécifications USB 2.0 (pour les curieux)
Atelier: Ordonnancement, DMA

13. Gestion des fichiers

19 et 22 avril 2016

Objectifs d'apprentissage
  • Distinguer l'allocation contigüe, chaînée, et indexée
  • Reconstruire un fichier à partir d'une table d'allocation (FAT)
  • Reconstruire une table d'allocation à partir d'une liste de "clusters"
  • Calculer la taille d'une table d'allocation
Contenu détaillé
Description Notes Contenu complémentaire
La gestion des fichiers PDF Chapitres 17
Révision finale PDF
Atelier: Révision de l'examen final H2015 Examen H2015, Solutions H2015

Examen final

26 avril 2016, 14h30-16h30

Locaux

Nous devrons diviser le groupe en deux. Nous utiliserons vos noms de famille pour diviser le groupe:

  • PLT-2341: Andande à Gaudy
  • PLT-2751: Gauvin à Weber-Boisvert

Portez bien attention à cette liste à l'avance!

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 supplémentaires et examens antérieurs qui vous permettront de vous pratiquer.

Structure interne des ordinateurs

Sujet Exercices Solutions
Format des données PDF PDF
Composantes PDF PDF
Bus et addressage PDF PDF
Instructions et micro-instructions PDF PDF

Assembleur ARM

Sujet Exercices Solutions
Introduction à l'architecture ARM PDF PDF
ARM -- variables et accès mémoire PDF PDF
ARM -- sequence d'exécution et branchements PDF PDF

Systèmes d'exploitation

Sujet Exercices Solutions
Les interruptions PDF PDF
Gestion de la mémoire PDF PDF
Les processus PDF PDF

Les entrées-sorties

Sujet Exercices Solutions
Les entrées-sorties PDF PDF
Le port série et le bus USB PDF PDF

Examens des années antérieures

Sujet Examen Solutions
2016, final PDF PDF
2016, mi-session PDF PDF
2015, final PDF PDF
2015, mi-session PDF PDF
2014, mi-session PDF PDF
2014, final PDF N/D
2012, mi-session PDF PDF
2012, final 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. Le livre est aussi disponible en format papier à la bibliothèque scientifique au Vachon, cote: QA 76.5 E58 2009.

Remerciements

Merci à Étienne Tremblay pour le matériel et l'aide apportés à l'élaboration du contenu de ce cours. Je donne la permission à quiconque d'utiliser le contenu présent sur ce cours, à condition de créditer les sources originales.