Upload
others
View
60
Download
1
Embed Size (px)
Citation preview
Génie informatique et génie logiciel 1
INF1600: Architecture des micro-ordinateurs
Introduction
Professeur : Giovanni Beltrame
Local: M-4018
Génie informatique et génie logiciel 2
Le professeur
• Formation:
– MS, Electrical Engineering, UIC, USA. (2001)
– MTech, CEFRIEL, Milano, Italie (2002)
– Laurea, Computer Engineering, Politecnico di Milano, Italy (2002)
– PhD, Computer Engineering, Politecnico di Milano, Italy (2006)
• Experience industrielle
– CEFRIEL, Italie (2001-2003)
– STMicroelectronics, Canada (2004)
– European Space Agency, Netherlands (2006-2009)
– École Polytechnique de Montréal (2010-present)
Introduction
3Génie informatique et génie logiciel
Objectifs de la leçon
1
3
2
5
Faire une liste des objectifs du cours
Décrire le programme du cours
Décrire comment les apprentissages seront évalués
Faire une liste de composants d'un ordinateur
Expliquer le comportement d'un inverseur CMOS
4
Introduction
4Génie informatique et génie logiciel
Agenda
3• Introduction à INF1600
• Vue d'ensemble d'un ordinateur
• Logique électronique numérique 5
4
21
Objectifs
Introduction
5Génie informatique et génie logiciel
Vos attentes?
• Ce que j’attends du cours:
1)
2)
3)
• Ce que j'attends du professeur:
1)
2)
3)
1
Introduction
6Génie informatique et génie logiciel
Architecture des micro-ordinateurs3 crédits (3 / 1,5 / 4,5)
• Le cours vise à:
– Démontrer l'importance du microprocesseur
– Expliquer l’organisation d’un micro-ordinateur
• Impact de ses composants sur le coût et la performance
– Expliquer comment le microprocesseur exécute les programmes
– Développer les aptitudes requises pour la programmation en assembleur
• INF1600 constitue un élément clé de la chaîne « architecture »
– Suite de INF1500 - Logique des systèmes numériques
– Nécessaire pour :
• INF1995 Projet initial en ingénierie informatique
• INF2610 Noyau d’un système d’exploitation
1
Objectifs
Introduction
7Génie informatique et génie logiciel
Great Reality #1: You’ve Got to Know Assembly
• Vous n’écrirez probablement jamais des programmes complets en
assembleur
• Les compilateurs sont beaucoup plus patients que nous !
• Mais comprendre l’assembleur est primordial
• Le comportement des bogues
• Le modèle des langages à haut niveau ne marche pas toujours
• Optimiser nos programmes
• Comprendre les optimisations du compilateur
• Trouver les sources d’inefficacité bas niveau
• Implémentation des noyaux
• Créer ou éliminer le malware
• x86 est le langage approprié!
1
Introduction
8Génie informatique et génie logiciel
Great Reality #1: You’ve Got to Know Assembly
« To be a great programmer, you really do need to know
how the machine works, I believe. You need to really
understand what can be done efficiently, and what
needs a lot of work from the CPU or the system. »
- Linus Torvald, Simple Talk 2011
« Well, I fondly remember the days when I was an
assembly language programmer. » - Jim, Senior Developer
1
Introduction
9Génie informatique et génie logiciel
Exemples pratiques
Time Stamp Counter
Registre spécial à 64-bit dans les processeurs Intel
Incrémenté à chaque cycle d’horloge
Lu avec l’instruction rdtsc – « read time stamp counter »
Application
Mesurer le temps (en cycles) requis par une fonction P.
double t;
start_counter();
P();
t = get_counter();
printf("P required %f clock cycles\n", t);
1
Introduction
10Génie informatique et génie logiciel
Code pour lire le compteur
/* Initialize the cycle counter */
static unsigned cyc_hi = 0;
static unsigned cyc_lo = 0;
/* Set *hi and *lo to the high and low order bits of the cycle
counter. Implementation requires assembly code to use the rdtsc
instruction.
*/
void access_counter(unsigned *hi, unsigned *lo)
{
asm("rdtsc; movl %%edx,%0; movl %%eax,%1“ /* Read cycle counter */
: "=r" (*hi), "=r" (*lo) /* and move results to */
: /* No input */ /* the two outputs */
: "%edx", "%eax");
}
1
Introduction
11Génie informatique et génie logiciel
Great Reality #2: Memory Matters
La mémoire avec accès aléatoire est une abstraction loin de l’implantation physique
• La mémoire a des limites
• Doit être allouée et gérée
• Les performances de la plupart des applications sont dominées par la
mémoire
• Les performances des mémoires ne sont pas uniformes
• La mémoire cache et la mémoire virtuelle peuvent changer beaucoup les
performances
• Adapter un programme aux caractéristiques de la mémoire peut améliorer
largement sa vitesse d’exécution
1
Introduction
12Génie informatique et génie logiciel
Exemple des effets de la mémoire
• Organisation hiérarchique
• Les performances dépendent des trames d’accès
• Incluant comment explorer des structures multidimensionnelles
void copyji(int src[2048][2048],int dst[2048][2048])
{int i,j;for (j = 0; j < 2048; j++)
for (i = 0; i < 2048; i++)dst[i][j] = src[i][j];
}
void copyij(int src[2048][2048],int dst[2048][2048])
{int i,j;for (i = 0; i < 2048; i++)
for (j = 0; j < 2048; j++)dst[i][j] = src[i][j];
}
30 times slower(Core i7)
1
Introduction
13Génie informatique et génie logiciel
La montagne de la mémoire
64M
8M
1M 128
K 16K
2K
0
1000
2000
3000
4000
5000
6000
7000
s1
s3
s5
s7
s9
s1
1
s1
3
s1
5
s3
2
Dimension de l’ensemble le de travail(octets)
Déb
itd
e le
ctu
re (
MB
/s)
Paquets (x8 octets)
L1
L2
Mem
L3
copyij
copyji
Intel Core i7
2.67 GHz
32 KB L1 d-cache
256 KB L2 cache
8 MB L3 cache
1
Introduction
14Génie informatique et génie logiciel
Carnegie Mellon
Great Reality #3:Computers do more than execute programs
• Ils ont besoin d’importer et d'exporter les données
• Les entrées/sorties sont critiques pour la fiabilité et les
performances des ordinateurs
• Ils communiquent à travers les réseaux
• Les réseaux introduisent plusieurs défis :
• Opérations simultanées
• Utilisation de médias peu fiables
• Compatibilité sur plusieurs plateformes
• Problèmes complexes de performance
• Etc.
1
Introduction
15Génie informatique et génie logiciel
Programme du cours
Introduction
Programmation en assembleur
Architecture
d'un microprocesseur
Organisation interne du
microprocesseur
Hierarchie de mémoireTP0
Introduction aux outils
TP1
Périphériques et architecture
Micro-ordinateur
et périphériques
TP2
Architecture
du microprocesseur
TP3
Programmation en assembleur
TP4
Lien entre C++ et assembleur
TP5
Mémoires
C++ et assembleur
2
Théorie
Travaux Pratiques
Introduction
16Génie informatique et génie logiciel
Plan du cours
• Introduction (1h)
• Vue d’ensemble d’un micro-ordinateur et périphériques (5h)
• Architecture et boucle d’exécution d’un microprocesseur (6h)
– Accès mémoires, exécution, entrées-sorties et interruptions…
• Organisation interne d’un microprocesseur (3h)
– Horloges, unités de traitement, registres…
• Programmation d’un microprocesseur (13h)
– Instructions, registres, modes d’adressage, indicateurs, lien avec C++…
• Hiérarchie de mémoire (9h)
– Limitations d’une seule mémoire, compromis coût/performance…
• 5 travaux pratiques (15h)
2
Introduction
17Génie informatique et génie logiciel
Documentation et organisation
• Toute documentation sur Moodle
• Manuel (pas obligatoire) :
Computer Systems Design and Architecture
V.P. Heuring and H.F. Jordan
Pearson Prentice Hall, 2004
• Je commence à l'heure, une pause de 10 min chaque 50 min de leçon
• Chaque semaine, mini-tests (quiz) formatifs comptabilisés sur Moodle
2
Introduction
18Génie informatique et génie logiciel
Évaluation des apprentissages
• Mini-tests formatifs 10%
• Travaux pratiques 30%
• Contrôle périodique (<=2h) 30%
• Examen final (<=2h30) 30%
– Toute documentation papier permise sauf anciens examens
Les 4P, dans le but de rendre le temps en classe agréable pour tous:
Ponctualité: être en classe ou au laboratoire aux heures prescrites.
Participation: être présent(e) et impliqué(e) lors des activités.
Politesse: être conscient(e) et respectueux(se) des autres.
Propreté: préserver l’environnement du local de classe
(exempt de nourriture et de déchets).
3
Introduction
19Génie informatique et génie logiciel
Chargés de laboratoires
2
01(mardi)
Benjamin
02(mardi)
Astrid
03(lundi)
Pierre-Yves
04(lundi)
David
05(mardi)
Ulrich
06(mardi)
Ulrich
Introduction
20Génie informatique et génie logiciel
Agenda
3• Introduction à INF1600
• Vue d'ensemble d'un ordinateur
• Logique électronique numérique 5
4
21
Introduction
21Génie informatique et génie logiciel
(pas micro) processeur ENIAC
Source: ds-wordpress.haverford.edu
Introduction
22Génie informatique et génie logiciel
4
Un voyage dans l'ordinateur
Introduction
23Génie informatique et génie logiciel
On ouvre la boite
• Si l´on enlève quelques
morceaux...
4
Introduction
24Génie informatique et génie logiciel
Composants de l'ordinateur
Processeur
Mémoire
Entrées/Sorties
Bus
4
Introduction
25Génie informatique et génie logiciel
Architecture de base
Processeur
Mémoire
Entrées/Sorties
Bus
Entrées/Sorties
4
Introduction
26Génie informatique et génie logiciel
L'architecture de Von Neumann
• Inventé par John Von Neumann in 1950
• Idée: fonctionnalité traitée comme les données
• Suivre une recette (programme)
• Appliquer chaque étape au ingrédients (données)
Cuisinier / outils
ComptoirFrigo/Table
Recette/
Programme?Memory Input/Output
Processor
Bus
4
Introduction
27Génie informatique et génie logiciel
4
Processeur
Bas
Memory
Processor
Input/Output
Bus
Haut
Introduction
28Génie informatique et génie logiciel
Microprocesseur
• Exécute des instructions simples
– Arithmétique
– Logique
– Branchement (condition)
• Accompli des tâches complexes
• Programmable
• Centre de la majorité des systèmes numériques
– Aussi appelé CPU (Central Processing Unit)
– ou UCT (Unité Centrale de Traitement)
• Types plus spécialisés:
– Microcontrôleur
• Emphase sur autosuffisance et faible coût
– DSP (Digital Signal Processor)
Introduction
29Génie informatique et génie logiciel
4
Mémoire
DIMM:
Dual In-Line
Memory Module
Memory
Processor
Input/Output
Bus
Introduction
30Génie informatique et génie logiciel
Mémoire vive
• Version originale de l’ENIAC:
– bascule bistable (deux triodes)
• Magnetic core memory (~1955)
– Anneaux de ferrite
• Microélectronique:
– Bascule bistable (registres)
– Capacitance (DRAM)
– Mémoires émergeantes (spin-torque transfer, nanotubes, DNA, etc.)
Source: oldcomputers.arcula.co.uk
4
Introduction
31Génie informatique et génie logiciel
Entrées/Sorties
4
Memory
Processor
Input/Output
Bus
Introduction
32Génie informatique et génie logiciel
Systèmes modernes
• Plusieurs processeurs
• Mémoire souvent intégrée dans la puce
• Réseau sur puce
• Wafer empilés
• Connections optiques
Introduction
33Génie informatique et génie logiciel
Exemple
Carte mère
Socket
Interposer
Substrat
SubstrateLogiqueMémoire
Dissipateur de chaleur
TSVs
• ARM v8
Introduction
34Génie informatique et génie logiciel
Agenda
3• Introduction à INF1600
• Vue d'ensemble d'un ordinateur
• Logique électronique numérique 5
4
21
Introduction
35Génie informatique et génie logiciel
Logique électronique numérique
• Portes logiques
– non (inverseur), et, ou, ou-exclusif …
– anglais: not, and, or, xor …
• Bascule bistable (D)
• Porte 3 états: 0, 1, Z
– Z=Haute impédance (grande résistance)
• Basé sur les transistors
– Plus utilisé présentement: CMOS
– Transistors NMOS et PMOS sur la même puce
• MOS = metal oxide semiconductor
– « Taille »: 180nm … 65nm … 26nm (réalisé; pas disponible)
• Plus petite largeur du « fil » utilisé comme canal de transistor
• Appelé la longueur du transistor, ce fil étant perpendiculaire au lien source-drain
• Résolution deux fois plus fine
5
Copyright © 2017http://www.electronics-tutorials.ws
Introduction
36Génie informatique et génie logiciel
5
Copyright © 2000 by Prentice Hall, Inc.Digital Design Principles and Practices, 3/e
Copyright © 2000 by Prentice Hall, Inc.Digital Design Principles and Practices, 3/e
Copyright © 2017http://www.electronics-tutorials.ws
Introduction
37Génie informatique et génie logiciel
Pour quelle(s) valeur(s) de A,B,C la sortie sera à Z
(haute impédance)? (où +V vaut la valeur
logique 1, et la mise à la terre vaut la valeur logique 0) :
C=0, A=1, B=1
C=0, A=0, B=1
C=0, A=1, B=0
Introduction
38Génie informatique et génie logiciel
A=0, B=0
Sortie à 1 ? Court-circuit ?
A=1 B=0, C=0, D=1, E=1
A=0, B=1, C=0, D=1, E=1
A=0, B=0, C=1, D=1, E=1
....
CMOS ?
Introduction
39Génie informatique et génie logiciel
Agenda
3• Introduction à INF1600
• Vue d'ensemble d'un ordinateur
• Logique électronique numérique 5
4
21
Introduction
40Génie informatique et génie logiciel
Sommaire
1 Faire une liste des objectifs du cours
• Démontrer l'importance du microprocesseur
• Expliquer l’organisation d’un micro-ordinateur
• Expliquer comment le microprocesseur exécute les
programmes
• Développer les aptitudes requises pour la programmation
en assembleur
Introduction
41Génie informatique et génie logiciel
Sommaire
2 Décrire le programme du cours
Introduction
Programmation en assembleur
Architecture
d'un microprocesseur
Organisation interne du
microprocesseur Hierarchie de mémoire
Micro-ordinateur
et périphériques
C++ et assembleur
3 Décrire comment les apprentissages seront évalués
Introduction
42Génie informatique et génie logiciel
Sommaire
5
Faire une liste de composants d'un ordinateur
Expliquer le comportement d'un invertisseur CMOS
4
Memory Input/Output
Processor
Bus
Introduction
43Génie informatique et génie logiciel
Introduction
44Génie informatique et génie logiciel
INF1600: Architecture des micro-ordinateurs
Introduction
Professeur : Giovanni Beltrame
Local: M-4018