Logo ÉTS
Session
Cours
Responsable(s) Iannick Gagnon, Pierre Bélisle

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Iannick Gagnon, Pierre Bélisle


PLAN DE COURS

Hiver 2024
TCH017 : Architecture des ordinateurs (3 crédits)





Préalables
Aucun préalable requis
Unités d'agrément
Données non disponibles




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours

Cours offert à compter de la session d'automne 2023.
Ce cours ne peut être reconnu dans le cadre d’un programme de baccalauréat.

Ce cours vise l'initiation au rôle des différentes composantes matérielles d’un ordinateur.

Au terme de ce cours, l’étudiant ou l'étudiante sera en mesure :

  • d'identifier les principales composantes matérielles d’un ordinateur et leurs rôles;
  • de manipuler des nombres sous forme binaire et hexadécimale;
  • d'écrire un programme à l’aide du langage assembleur d’une machine virtuelle.

Architecture de base d’un ordinateur : unités de stockage, d’entrées/sorties, de contrôle, arithmétique et logique, bus de données et types de mémoires. Éléments de base du langage assembleur : opérations booléennes et arithmétiques avec les entiers, modes d’adressage, structures de contrôle, appels de fonctions, variables locales et entrées/sorties. Notations binaire et hexadécimale. Calculs en virgule flottante. Composition et fonctionnement d’un processeur : registres, instructions-machine, unité de contrôle et unité arithmétique/logique. Modes d’adressage et cycle d’instructions. Organisation et adressage de la mémoire. Bases du traitement parallèle : en pipeline, matriciel et multiprocesseur




Objectifs du cours

Ce cours a pour objectif de permettre à l'étudiante ou l'étudiant de : 

  • identifier les principales composants matérielles d’un ordinateur et leurs rôles;
  • manipuler des nombres sous forme binaire, décimale, octale et hexadécimale;
  • écrire un programme en langage assembleur.

De façon plus spécifique, ce cours devra permettre à l’étudiante et l'étudiant de :

  • comprendre le fonctionnement de base d'un ordinateur et de ses composants;
  • apprendre les instructions d'un environnement de programation en langage assembleur;
  • résoudre des problèmes et de les coder en langage assembleur.



Stratégies pédagogiques

3 heures de cours magistral par semaine
3 heures de laboratoire par semaine

Le matériel (c.-à-d. notes de cours, carnets, etc.) sont disponibles sur la page Moodle du cours à l'adresse : https://ena.etsmtl.ca. Du matériel pédagogique supplémentaire pourrait vous être fourni par l'enseignante ou l'enseignant.

Les objectifs principaux des laboratoires sont :

  • l’assimilation par l’expérience des notions vues en cours, à travers des exercices proposés par l'enseignante ou l'enseignant;
  • le développement de programmes donnés en travaux pratiques.



Utilisation d’appareils électroniques

Chaque étudiante ou étudiant doit disposer d'un ordinateur portable permettant d'exécuter l'environnement de développement du cours.




Horaire
Groupe Jour Heure Activité
01 Mercredi 13:30 - 17:00 Activité de cours
Vendredi 08:15 - 10:15 TP/Laboratoire (Groupe A)
Vendredi 10:30 - 12:30 TP/Laboratoire (Groupe B)
02 Mercredi 13:30 - 15:30 TP/Laboratoire (Groupe A)
Mercredi 15:45 - 17:45 TP/Laboratoire (Groupe B)
Vendredi 09:00 - 12:30 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Francis Bourdeau Activité de cours Francis.Bourdeau@etsmtl.ca
01 Francis Bourdeau TP/Laboratoire (Groupe B) Francis.Bourdeau@etsmtl.ca
02 Saad Belgana Activité de cours saad.belgana@etsmtl.ca
02 Thimoté Desroches TP/Laboratoire (Groupe A) thimote.desroches.1@ens.etsmtl.ca



Cours
BLOCS MATIÈRE

 

 

 

 

 

 

 

 

Bloc 1
(3 semaines)

 

 

Architecture d’un ordinateur

- Architectures Von Neumann et Harvard

- Unité centrale de traitements (UCT), cartes (PCI et mémoire), bus et périphériques d’entrées/sorties.

- Types de mémoire (RAM, ROM, PROM, EPROM, EEPROM, flash, cache)

- Mémoire virtuelle

Base numérique (binaire, octale, décimale, hexadécimale).

Représentation des nombres et des symboles :

- Nombres entiers (positif, négatif)
- Caractères alphabétiques
- Nombre réels à simple et double précision (IEEE-754)

Calcul à virgules flottantes

Composition d’un processeur (UCT) :

- Bus de données, registres, unité arithmétique et logique (UAL), unités de stockage, unité de contrôle et de commande (UCC)

Bases du traitement parallèle  (branchements, dépendances, instructions) :

            - Exécution séquentielle sur mémoire unique (SISD)
            - Instruction unique sur données variées (SIMD)
            - Instructions variées sur données variées (MIMD)

Semaine 4

Intra bloc 1  : 3 heures

 

 

 

 

 

 

 

 

 

Bloc 2
(3 semaines)

 

Fonctionnement d’un processeur :  

Organisation de la mémoire : tas ou heap, pile ou stack, pointeur de pile ou stack pointer et compteur ordinal ou program counter

Programmation à l’aide du langage assembleur d’une machine virtuelle

- Éléments de base du langage assembleur

-Registres (A, X, Z, N, C, V)
-Instructions machine - Pep/8 (LDr, STr, LDBYTEr, STBYTEr, ADDr,
 SUBr, NEGr, NOTr, ORr, ANDr, ASLr, ASRr, ROLr, RORr, NOP, STOP)

- Comparaison booléenne

- Branchement absolu et conditionnel (BRLT, BRLE, BREQ, BRGE, BRGT)
- CPr

- Variables globales : .WORD, .BYTE, .ASCII, .BLOCK, .ADDRSS
- Constantes littérales : .EQUATE
- Entrées/sorties (DECI, CHARI, DECO, CHARO)
- Structures de contrôle (if, if-else, if-else-if, switch-case, while, do-while et for)
- Arithmétique de base avec les entiers et les réels (+, -, * et /)
- Modes d'adressage : immédiat (i), direct (d) et indirect (n)

*** Programme principal sans sous-programme avec variables globales

Semaine 8

Intra blocs 2 : 3 heures

Bloc 3
(5 semaines)

Programmation à l’aide du langage assembleur d’une machine virtuelle (suite)

- Déclaration de tableaux statiques à une et deux dimensions (suite d'octets consécutifs).

  • Mode d'adressage indexé (x) 

- Pile système et pointeur de pile en Pep8 (SP)

  • Empile (adresse décroissante) et désempile (adresse croissante)
  • ADDSP et SUBSP

- Variables globales (heap) version variables locales (pile)

  • Mécanisme d'empilement des variables locales
  • Déclaration de variables et de tableaux (avec son adresse) sur la pile (MOVSPA)

- Appel (call) et écriture de sous-programmes (avec et sans paramètre)

  • CALL, RETn
    • Passage de paramètres
      • Partage des responsabilités entre les sous-programmes appelants et appelés
      • Déclaration des constantes pour les paramètres effectifs et empilement
      • Modes d'adressage sur la pile : direct (s), indexé (sx), indirect (sf) et indirect indexé (sxf)
      • Passage par copie de valeur
      • Mécanisme de dépilement des variables locales et des paramètres formels avant le retour d'un sous-programme
      • Passage par copie d'adresse (p. ex. scanf("%d", &x);)
  • Fonction et valeur de retour

- Enregistrement : Structures simples et tableaux d'enregistrements

  • Déclaration sur la pile et passage de paramètres par copie et par copie d'adresse (référence).

- Explication simple d'une table d'allocation, d'allocation dynamique sur le tas ou heap et de contraintes d'alignement.

Semaine d'examens Final : 3 heures

 




Laboratoires et travaux pratiques

L'étudiante ou l'étudiant expérimentera les notions vues au cours sous forme de recherche et d'exercices.




Utilisation d'outils d'ingénierie

S.O.




Évaluation

Les dates de remise des travaux pratiques dans ce tableau sont données à titre indicatif. En cours de session, votre enseignante ou votre enseignant vous fera part à l’avance de tout changement à l’horaire d’évaluation en ce qui concerne les travaux pratiques. Ces modifications devront être équitables pour tous les groupes.

Évaluation Pondération Semaine Groupe 01 Groupe 02
Évaluation continue 10% 01 à 10 ---- ---

Examen intra 1
(3 heures)

12%

4 31 janvier 26 janvier

Examen intra 2
(3 heures)

13%

8 28 février 23 février

Travail #1

12%

11 24 mars

Travail #2

13%

13 14 avril

Examen final
(3 heures)

40%

Période des examens finaux

À propos de l'évaluation continue : 

  • L'évaluation continue représente 10% des points qui sont à la discrétion de l'enseignant-e qui peut, sans toutefois s'y limiter, les distribuer sur des travaux pendant ou à l'extérieur des séances de cours et de laboratoire. Les modalités spécifiques vous seront communiquées par votre enseignante ou enseignant.

À propos des travaux pratiques :

  • Les travaux pratiques sont communs à tous les groupes et visent à mettre en application, dans le cadre d'un problème réaliste, les concepts et les méthodes de programmation enseignés pendant les cours théoriques. Il est attendu des étudiantes et étudiants qu'ils produisent des travaux permettant de résoudre le problème de l'énoncé MAIS SURTOUT qu'ils les réalisent selon les standards de qualité et les bonnes pratiques enseignés. La cohérence et l'optimalité des algorithmes implémentés constituent également des critères importants qui seront considérés. En tout état de cause, la note attribuée à l'exécution correcte du programme ne pourra excéder 40% de la note globale d'un travail pratique.
     
  • Pour chaque travail pratique, l’enseignante ou l'enseignant indiquera sur l’énoncé s’il doit être réalisé en équipe et, si tel est le cas, la taille de l’équipe. Une équipe ne doit remettre qu’un seul travail.
     
  • Il est à noter que pour les travaux en équipe, chaque membre recevra une note inférieure ou égale à la note obtenue par l'équipe. Cette note individuelle est directement proportionnelle à l'implication de l'individu. La méthode d’évaluation de l’implication de chaque
    individu est laissée à la discrétion de l'enseignante ou de l'enseignant.

À propos des examens :

  •  Les examens ont lieu en présence.

À propos de l'examen final :

  • Aucune documentation et aucun accès Internet n'est permis.
  • Aucun appareil électronique (téléphone, tablette,etc.) n'est permis autre qu'un ordinateur personnel lorsque l'examen est sur ordinateur.

Double seuil : 

  • Une note moyenne pondérée de 50 % est exigée pour l’ensemble des évaluations à caractère individuel. Ce seuil est une condition nécessaire à la réussite du cours mais ne la garantit pas.

À propos de la langue utilisée :

  • Afin de respecter les exigences relatives à la langue française, le code et les commentaires de code doivent être principalement en français tel que c'est le cas pour tous les exemples et documents qui seront fournis aux étudiantes et étudiants.

 




Double seuil
Note minimale : 50



Dates des examens intra
# Intra Groupe(s) Date
1 1 31 janvier 2024
1 2 26 janvier 2024
2 1 28 février 2024
2 2 23 février 2024



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.



Absence à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page "Citer, pas plagier !" (https://www.etsmtl.ca/Etudes/citer-pas-plagier). Les clauses du règlement sur les infractions de nature académique de l’ÉTS (« Règlement ») s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique) pour identifier les actes qui constituent des infractions de nature académique au sens du Règlement ainsi que prendre connaissance des sanctions prévues à cet effet.

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignant(e) du cours.



Documentation obligatoire

Aucune.




Ouvrages de références

Les références suivantes ne sont pas obligatoires, car le matériel qui vous sera fourni est suffisant. Toutefois, notez que le langage assembleur Pep/8 utilisé dans le cours fut introduit à la référence no. 1 ci-dessous (Warford, 2010).

Les références nos. 2, 3 et 5 sont abordables et accessibles à votre niveau. La référence no. 5 est plus avancée et vous pourriez la rencontrer au niveau baccalauréat.

RÉFÉRENCES OPTIONNELLES

  1. Stanley J. Warford. Computer Science. Jones and Bartlet Publisher, 4e édition, 2010 : https://computersystemsbook.com/
  2. Nicholas Carter. Schaum's Outline of Computer Architecture, 2002.
  3. John C. Scott. But How Do It Know?, 2009.
  4. Kenneth  Hoganson. Concepts in Computing, 2008.
  5. David A. Patterson & John L. Hennessey. Computer Organization and Design, 5e édition, 2014.



Adresse internet du site de cours et autres liens utiles

LIEN INTERNET

  • Le site du cours se trouve sur Moodle : cliquez ici
  • Livre Web qui couvre l'architecture de l'ordinateur du point de vue de la programmation : cliquez ici