Bienvenue sur le site web du cours d'OSA pour la session d'hiver 2020!
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.
Les notes de cours de la première semaine sur la logistique sont également disponibles ici: Logistique du cours.
Jour | Heure | Local |
---|---|---|
Mardi | 14h30 à 16h20 | classe virtuelle |
Vendredi | 10h30 à 11h20 | classe virtuelle |
Pour joindre les classes virtuelles:
Lien vers le plan de cours officiel, et vers la page Capsule.
Plutôt que d'employer le format « traditionnel » avec cours magistraux de 3h par semaine et de l'étude personnelle à la maison, le cours opte maintenant pour la formule suivante:
Nous utilisons Piazza pour toutes questions, discussions, etc.
Les travaux pratiques devront être remis sur le portail des cours.
Tous les travaux doivent être faits individuellement et aucun retard n'est permis.
Travail | Date de disponibilité | Date de remise | Pondération |
---|---|---|---|
TP0: Format des nombres en binaire | 14 janvier | 27 janvier, 23h59 | 1% |
TP1: Devenez un microprocesseur | 21 janvier | 10 février, 23h59 | 3% |
TP2: Initiation à l'assembleur ARM Partie 1: questionnaire Partie 2: code |
11 février | 21 février (vendredi), 23h59 | 3% |
TP3: Branchements et appels de fonction | 25 février | 16 mars, 23h59 | 3% |
TP4: Interruptions et ordonnancement | 17 mars | 30 mars, 23h59 | 4% |
TP5: Gestion d'une mémoire paginée | 31 mars | 13 avril, 23h59 | 4% |
TP6: Récapitulation | 14 avril | 24 avril (vendredi), 23h59 | 2% |
Examen | Date et heure | Lieu | Pondération |
---|---|---|---|
Mi-session | 25 février, 14h30 à 17h20 | PLT-1112 | 40% |
Final | 28 avril, 14h30 à 17h30 | En ligne | 40% |
Cliquez sur le module pour révéler plus d'informations. Les informations manquantes seront mises à jour durant la session.
Le TP0 est disponible! Date de remise: 27 janvier, 23h59
SVP remplissez le doodle suivant pour déterminer les disponibilités des assistants durant la semaine!
Notes de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
1. Introduction au cours | Chapitre 1.6 | 1. Introduction au cours | |
Logistique du cours | Remplir le Doodle pour disponibilités. | ||
2. Bref historique des ordinateurs | Chapitre 1.6 | 2. Bref historique des ordinateurs | Vidéo sur la loi de Moore |
3. Représenter des entiers en binaire | Chapitres 3 et 4.2 |
3a. Compter en décimal et en binaire 3b. Représenter des entiers non-signés 3c. Représenter des entiers signés 3d. Retenues et débordements |
Savoir utiliser l'outil de conversion en binaire. |
4. Hexadécimal | Chapitres 3 et 4.2 | 4. Hexadécimal | |
5. Représentation des rationnels | Chapitres 3 et 4.2 |
5a. Représenter des rationnels 5b. IEEE754 vers décimal 5c. Décimal vers IEEE754 |
Expérimenter avec cet outil de visualisation IEEE754, ou encore celui-ci. |
6. Représentation des caractères | Chapitres 3 et 4.2 | 6. Représenter des caractères |
Se familiariser avec la Table ASCII. Questionnaire : format des données |
Notes de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
7. Introduction aux microprocesseurs | Chapitre 6 |
7a. Le microprocesseur 7b. Exécuter un premier programme 7c. Écrire un premier programme 7d. Composantes d'un ordinateur |
|
8. Mémoire et bus | Chapitres 7.1 à 7.6 |
8a. La mémoire 8b. La mémoire, exercices 8c. Les bus 8d. Lire et écrire en mémoire 8e. Utiliser les bus avec le simulateur du TP1 |
Installez le simulateur du TP1 pour la capsule 8e, et téléchargez le fichier pour la démonstration ici. Questionnaire : microprocesseurs et mémoire |
9. Adressage | Chapitre 7.6 |
9. Adressage |
Questionnaire : bus et adressage |
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
10. Instructions et jeu d'instructions | Chapitres 7.7, 7.8 |
10a. Instructions et jeu d'instructions 10b. Déplacements entre registres 10c. Déplacements registres mémoire 10d. Opérations arithmétiques 10e. Contrôle de programme 10f. Représenter une instruction en binaire |
Faire les exercices du cours avec le simulateur du TP1 en utilisant ces fichiers. |
Voici de la documentation additionnelle sur l'architecture ARM vue au cours:
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
11. Introduction à l'architecture ARM | Chapitres 1, 2.3, 2.4 et 2.6.1 |
11a. ARM - introduction 11b. ARM - PC et registres |
Questionnaire: Introduction à l'architecture ARM Visionner les 2 vidéos d'introduction au simulateur ARM Lire les pages 1 à 15 du manuel du simulateur ARM |
12. ARM -- mémoire |
12a. Programme en assembleur ARM 12b. ARM - Organisation de la mémoire 12c. ARM - mémoire dans le simulateur |
||
13. ARM -- variables |
13a. Assignation et allocation 13b. Démonstration - l'utilisation de variables |
Série d'exercices 1. Chargement de données |
Le TP2 est disponible! Il est divisé en 2 parties: 1) questionnaire et 2) code. La date de remise (pour les 2 parties) est le vendredi 21 février, 23h59
Lien vers l'appréciation de l'enseignement en cours de session.
Voici de la documentation additionnelle sur l'architecture ARM vue au cours:
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
14. ARM -- adressage |
14a. Décalage et MOV 14b. LDR et STR 14c. Pre et post indexing 14d. Adressage avec PC |
Questionnaire: ARM variables et accès mémoire | |
15. ARM -- instructions conditionnelles |
15a. Instructions logiques 15b. Instructions conditionnelles 15c. ARM -- Simulateur 15d. ARM -- Exercices |
Série d'exercices 2. Opérations arithmétiques et logiques Série d'exercices 3. Énoncés conditionnels |
|
16. ARM -- séquence d'exécution et branchements |
16a. Modifications à PC 16b. Branchements 16c. Boucles |
||
17. ARM -- appels de fonction |
17a. Fonctions 17b. La pile 17c. Fonctions et pile 17d. Exemple détaillé |
Série d'exercices: 4. Fonctions |
Attention: regarder immédiatement les solutions des examens antérieurs ne constitue pas une façon appropriée d'étudier! Pratiquez-vous d'abord sérieusement, sans regarder les solutions. Ne les consultez qu'après avoir essayé de répondre aux questions. Notez également que la matière peut avoir changé légèrement (surtout depuis 2016).
Le TP3 est disponible! Date de remise: 16 mars, 23h59
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
20. Les interruptions | Chapitre 9.3 (Interrupts) Sec. 2.8 du ARM7 Technical Reference Manual |
20a. Introduction aux interruptions 20b. Interruptions ARM 20c. La table des vecteurs d'interruption 20d. Le mode du microprocesseur 20e. Sauvegarde du contexte 20f. Les interruptions matérielles |
Série d'exercices 5. Interruptions Questionnaire: Les interruptions |
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
21. Introduction aux systèmes d'exploitation |
21a. Introduction aux systèmes d'exploitation 21b. Les types de systèmes d'exploitation |
||
22. Démarrage d'un ordinateur |
22a. Démarrage d'un ordinateur 22b. Le BIOS |
Questionnaire: Introduction aux systèmes d'exploitation |
Le TP4 est disponible! Date de remise: 30 mars, 23h59
Nous tiendrons une classe virtuelle vendredi de 10h30 à 11h30.
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
23. Les processus | Chapitres 15.3, 18 (jusqu'à 18.5) |
23a. Introduction aux processus 23b. Les états des processus 23c. Ordonnancement des processus 23d. L'algorithme du tourniquet 23e. Priorité des processus 23f. Processus et entrées-sorties |
Questionnaire: Les processus |
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
24. Allocation mémoire contigüe | Chapitres 18.6-18.7 |
24a. Allocation mémoire introduction 24b. Partitions de taille fixe 24c. Partitions de taille variable 24d. Mémoire virtuelle et mémoire physique |
|
25. Allocation mémoire paginée | Chapitres 18.6-18.7 |
25a. Pages et trames 25b. Taille de la table des pages 25c. Traduction d'adresses 25d. Allocation dynamique |
Questionnaire: Gestion de la mémoire |
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
26. Modules d'entrées-sorties |
26a. Introduction aux entrées-sorties 26b. Modules d'entrées-sorties 26c. Modules d'entrées-sorties, suite |
||
27. Entrées-sorties | Chapitres 9, 11.2, 11.2 |
27a. E-S programmées 27b. E-S par interruptions 27c. Le DMA 27d. E-S et ordonnancement |
Questionnaire: Les entrées-sorties |
Rappel: il n'y aura pas de classe virtuelle ce vendredi 10 avril. Joyeuses Pâques!
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
28. Mémoire cache | Chapitres 7, 8.3 (cache), 9 |
28a. Introduction à la mémoire cache 28b. Lecture en cache 28c. Écriture en cache write-through 28d. Écriture en cache write-back 28e. Hiérarchie de caches 28f. Mémoire cache, conclusion |
Questionnaire: Cache |
29. Meltdown (BONUS) |
Modules de cours | Lectures facultatives | Capsules à étudier | Devoirs à faire |
---|---|---|---|
30. Communication série |
30a. Protocole RS-232 30b. Signaux 30c. Exercice 30d. Mode différentiel |
||
31. USB | Spécifications USB 2.0 (pour les curieux) |
31a. USB - connecteurs 31b. USB - paquets et transactions 31c. USB - transferts |
Questionnaire: Série USB |
Conformément à la politique universitaire pour les évaluations à distance, « les étudiantes et étudiants devront désormais joindre à chaque travail et examen réalisé à distance une déclaration d’intégrité relative aux travaux et aux examens, à défaut de quoi le travail ou l’examen ne sera pas corrigé. »
Assurez-vous de remplir et signer la déclaration, et de la téléverser dans la boîte de dépot.
Bonne chance et bon été!
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.
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.